
/* 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 "ComplianceType": Some values do not have unique names */
/* WARNING: Enum "ExceptionType": Some values do not have unique names */
/* DWARF original prototype: void DrawAffineImage._omp_fn.0(anon_struct_44_11_f125fec2 * param_0) */

void __thiscall DrawAffineImage__omp_fn_0(void *this)

{
  bool bVar1;
  undefined4 *puVar2;
  int *piVar3;
  int iVar4;
  undefined4 uVar5;
  double *pdVar6;
  undefined *puVar7;
  int *piVar8;
  uint uVar9;
  undefined4 *puVar10;
  undefined4 *puVar11;
  int iVar12;
  int *piVar13;
  int iVar14;
  void *pvVar15;
  double *pdVar16;
  int extraout_v1;
  double *extraout_v1_00;
  int extraout_v1_01;
  int extraout_v1_02;
  double *extraout_v1_03;
  int extraout_v1_04;
  int extraout_v1_05;
  int extraout_v1_06;
  int extraout_v1_07;
  int extraout_v1_08;
  undefined4 *puVar17;
  double *pdVar18;
  int *piVar19;
  uint uVar20;
  int *piVar21;
  undefined8 *puVar22;
  void *pvVar23;
  uint uVar24;
  uint *puVar25;
  int **ppiVar26;
  undefined4 uVar27;
  uint uVar28;
  undefined4 uVar29;
  int iVar30;
  double *pdVar31;
  double *pdVar32;
  int unaff_s2;
  int iVar33;
  uint *puVar34;
  double *unaff_s3;
  int **ppiVar35;
  int *unaff_s4;
  int **ppiVar36;
  undefined1 *puVar37;
  double *unaff_s6;
  uint unaff_s7;
  undefined *puVar38;
  code *pcVar39;
  code *pcVar40;
  double dVar41;
  double dVar42;
  double dVar43;
  float fVar45;
  double dVar44;
  double dVar46;
  double dVar47;
  double dVar48;
  double in_f20_21;
  double dVar49;
  double in_f22_23;
  double in_f24_25;
  double in_f26_27;
  double in_f28_29;
  double in_f30_31;
  int *piVar50;
  int iVar51;
  int iVar52;
  undefined8 uVar53;
  undefined1 auStack_898 [4];
  int iStack_894;
  undefined8 *puStack_88c;
  undefined4 uStack_888;
  double *pdStack_884;
  int **ppiStack_880;
  int **ppiStack_87c;
  undefined1 *puStack_878;
  code *pcStack_874;
  int iStack_860;
  code *pcStack_858;
  undefined4 uStack_850;
  code *pcStack_84c;
  int iStack_838;
  int iStack_834;
  code *pcStack_830;
  int *piStack_828;
  int *piStack_824;
  int *piStack_820;
  int *piStack_81c;
  double dStack_818;
  int iStack_810;
  double *pdStack_80c;
  undefined4 uStack_808;
  int **ppiStack_804;
  int **ppiStack_800;
  undefined1 *puStack_7fc;
  int **ppiStack_7f8;
  undefined4 uStack_7f4;
  undefined1 auStack_7f0 [92];
  undefined8 *puStack_794;
  double *pdStack_790;
  int *piStack_78c;
  uint *puStack_788;
  double *pdStack_784;
  int iStack_780;
  code *pcStack_77c;
  double dStack_778;
  int iStack_760;
  int *piStack_75c;
  code *pcStack_758;
  double dStack_750;
  double dStack_748;
  double dStack_740;
  double dStack_738;
  int *piStack_72c;
  uint *puStack_728;
  double *pdStack_724;
  double *pdStack_720;
  undefined1 *puStack_71c;
  undefined4 uStack_718;
  undefined1 *puStack_714;
  double *pdStack_710;
  int iStack_70c;
  int iStack_708;
  int iStack_704;
  double dStack_700;
  double dStack_6f8;
  double dStack_6f0;
  double dStack_6e8;
  double dStack_6e0;
  double dStack_6d8;
  undefined1 auStack_6d0 [88];
  undefined8 uStack_678;
  undefined4 uStack_670;
  undefined4 uStack_66c;
  double dStack_668;
  undefined4 uStack_660;
  undefined4 uStack_65c;
  double dStack_658;
  double dStack_650;
  undefined4 uStack_648;
  undefined4 uStack_644;
  double dStack_640;
  undefined8 uStack_638;
  double *pdStack_62c;
  int *piStack_628;
  uint *puStack_624;
  double *pdStack_620;
  int iStack_61c;
  undefined1 *puStack_618;
  double *pdStack_614;
  uint uStack_610;
  code *pcStack_60c;
  double dStack_608;
  double dStack_600;
  double dStack_5f8;
  double dStack_5f0;
  int iStack_5d8;
  code *pcStack_5d0;
  double *pdStack_5c8;
  code *pcStack_5c4;
  undefined4 uStack_5b0;
  uint uStack_5ac;
  code *pcStack_5a8;
  undefined8 uStack_5a0;
  double dStack_598;
  double dStack_590;
  double *pdStack_588;
  int iStack_584;
  double dStack_580;
  double dStack_578;
  int iStack_570;
  undefined1 *puStack_56c;
  double *pdStack_568;
  uint uStack_564;
  double dStack_560;
  double dStack_558;
  uint uStack_550;
  undefined4 uStack_54c;
  double dStack_548;
  double dStack_540;
  uint uStack_538;
  undefined4 uStack_534;
  double dStack_530;
  uint uStack_528;
  undefined4 uStack_524;
  double dStack_520;
  double dStack_518;
  int aiStack_510 [4];
  undefined8 uStack_500;
  int iStack_4f8;
  double dStack_4e8;
  double dStack_4e0;
  double dStack_4d8;
  double dStack_4d0;
  double dStack_4c8;
  double dStack_4c0;
  int iStack_4b4;
  uint uStack_4b0;
  int iStack_4ac;
  double *pdStack_4a8;
  double *pdStack_4a4;
  int iStack_4a0;
  void *pvStack_49c;
  double *pdStack_498;
  uint uStack_494;
  int iStack_490;
  code *pcStack_48c;
  double dStack_488;
  double dStack_480;
  double dStack_478;
  double dStack_470;
  double dStack_468;
  double dStack_460;
  int *piStack_448;
  uint uStack_444;
  code *pcStack_440;
  uint uStack_434;
  uint uStack_430;
  double *pdStack_42c;
  uint uStack_428;
  uint uStack_424;
  uint uStack_420;
  undefined4 uStack_41c;
  int aiStack_418 [10];
  double dStack_3f0;
  double dStack_3e8;
  double dStack_3e0;
  double dStack_3d8;
  double dStack_3d0;
  int iStack_3bc;
  int iStack_3b8;
  uint uStack_3b4;
  double *pdStack_3b0;
  double *pdStack_3ac;
  int *piStack_3a8;
  void *pvStack_3a4;
  double *pdStack_3a0;
  uint uStack_39c;
  int iStack_398;
  code *pcStack_394;
  double dStack_390;
  double dStack_388;
  double dStack_380;
  double dStack_378;
  double dStack_370;
  undefined4 *puStack_358;
  undefined4 uStack_354;
  undefined *puStack_350;
  undefined8 uStack_348;
  double dStack_340;
  double dStack_338;
  double dStack_330;
  uint uStack_328;
  int iStack_324;
  double dStack_320;
  double dStack_318;
  uint uStack_310;
  undefined4 uStack_30c;
  int iStack_308;
  int *piStack_304;
  double dStack_300;
  uint uStack_2f8;
  int iStack_2f4;
  int iStack_2f0;
  double *pdStack_2ec;
  uint uStack_2e8;
  undefined4 uStack_2e4;
  uint uStack_2e0;
  undefined4 uStack_2dc;
  double *pdStack_2d8;
  uint uStack_2d4;
  undefined4 uStack_2d0;
  double *pdStack_2cc;
  uint uStack_2c8;
  undefined4 uStack_2c4;
  int iStack_2c0;
  undefined4 *puStack_2bc;
  double dStack_2b8;
  uint uStack_2b0;
  undefined4 uStack_2ac;
  double *pdStack_2a8;
  undefined1 *puStack_2a4;
  double *pdStack_2a0;
  int iStack_29c;
  undefined4 auStack_298 [18];
  double dStack_250;
  undefined4 auStack_240 [18];
  double dStack_1f8;
  int iStack_1e4;
  double *pdStack_1e0;
  int *piStack_1dc;
  int iStack_1d8;
  double *pdStack_1d4;
  int *piStack_1d0;
  void *pvStack_1cc;
  double *pdStack_1c8;
  uint uStack_1c4;
  int iStack_1c0;
  code *pcStack_1bc;
  double dStack_1b8;
  double dStack_1b0;
  double dStack_1a8;
  double dStack_1a0;
  double dStack_198;
  double dStack_190;
  undefined8 local_178;
  double local_170;
  int *local_168;
  int *local_164;
  int local_110 [4];
  undefined8 local_100;
  int local_f8;
  double local_e8;
  double local_e0;
  double local_d8;
  double local_d0;
  double local_c8;
  double local_c0;
  int local_b8 [10];
  double local_90;
  double local_88;
  double local_80;
  double local_78;
  double local_70;
  int local_5c;
  
  local_5c = *(int *)PTR___stack_chk_guard_003fa248;
  pdVar31 = *(double **)((int)this + 0x20);
  piVar3 = (int *)(*(code *)PTR_omp_get_num_threads_003fa924)();
  iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)();
  puVar38 = PTR_LAB_003f98e0;
  iVar12 = (*(int *)((int)this + 0x24) + 1) - (int)pdVar31;
  if (piVar3 == (int *)0x0) {
    trap(7);
  }
  iVar51 = iVar12 / (int)piVar3;
  iVar12 = iVar12 % (int)piVar3;
  if (iVar4 < iVar12) {
    iVar51 = iVar51 + 1;
    iVar12 = 0;
  }
  iVar12 = iVar51 * iVar4 + iVar12;
  pdVar18 = (double *)(iVar51 + iVar12);
  iVar4 = (int)pdVar31 + iVar12;
  if (iVar12 < (int)pdVar18) {
    uVar5 = *(undefined4 *)((int)this + 0x14);
    pdVar6 = *(double **)((int)this + 0x10);
    unaff_s4 = *(int **)((int)this + 8);
    unaff_s7 = *(uint *)((int)this + 4);
                    /* WARNING: Load size is inaccurate */
    piVar3 = *this;
    puVar7 = (undefined *)((int)pdVar31 + (int)pdVar18);
    dVar41 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);
    in_f26_27 = *(double *)(PTR_LAB_003f98e0 + 0x4410);
    in_f30_31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);
    do {
      in_f24_25 = (double)iVar4;
      pdVar31 = *(double **)((int)this + 0xc);
      in_f20_21 = **(double **)((int)this + 0x1c);
      in_f28_29 = (*(double **)((int)this + 0x1c))[2];
      dVar42 = in_f24_25 * pdVar31[2] + pdVar31[4];
      dVar49 = *pdVar31;
      dVar43 = in_f28_29;
      if (dVar41 <= dVar49) {
        in_f22_23 = -dVar42 / dVar49;
        if (in_f22_23 <= in_f20_21) {
          in_f22_23 = in_f20_21;
        }
        dVar46 = (double)*(int *)(unaff_s7 + 0x18);
        if (*(int *)(unaff_s7 + 0x18) < 0) {
          dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);
        }
        dVar49 = (dVar46 - dVar42) / dVar49;
        if (dVar49 < in_f28_29) {
          dVar43 = dVar49;
        }
LAB_000a3890:
        dVar42 = in_f24_25 * pdVar31[3] + pdVar31[5];
        dVar49 = pdVar31[1];
        if (*(double *)(puVar38 + 0x43c8) <= dVar49) {
          dVar46 = -dVar42 / dVar49;
          if (-dVar42 / dVar49 <= in_f22_23) {
            dVar46 = in_f22_23;
          }
          in_f22_23 = dVar46;
          pdVar18 = *(double **)(unaff_s7 + 0x1c);
          dVar46 = (double)(int)pdVar18;
          if ((int)pdVar18 < 0) {
            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);
            pdVar18 = (double *)PTR_LAB_003f98e0;
          }
          in_f20_21 = (dVar46 - dVar42) / dVar49;
          if (dVar43 <= in_f20_21) {
            in_f20_21 = dVar43;
          }
        }
        else if (dVar49 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {
          dVar46 = (double)*(int *)(unaff_s7 + 0x1c);
          if (*(int *)(unaff_s7 + 0x1c) < 0) {
            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);
          }
          dVar46 = (dVar46 - dVar42) / dVar49;
          if (dVar46 <= in_f22_23) {
            dVar46 = in_f22_23;
          }
          in_f22_23 = dVar46;
          pdVar18 = (double *)((uint)((ulonglong)dVar42 >> 0x20) ^ 0x80000000);
          in_f20_21 = -dVar42 / dVar49;
          if (dVar43 <= -dVar42 / dVar49) {
            in_f20_21 = dVar43;
          }
        }
        else {
          pdVar18 = (double *)puVar38;
          in_f20_21 = in_f28_29;
          if (0.0 <= dVar42) {
            dVar42 = (double)(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0));
            if (dVar42 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {
              uVar28 = (uint)dVar42;
            }
            else {
              uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;
            }
            in_f20_21 = dVar43;
            if (*(uint *)(unaff_s7 + 0x1c) <= uVar28) {
              in_f20_21 = in_f28_29;
            }
          }
        }
        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;
      }
      else {
        if (dVar49 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {
          dVar46 = (double)*(int *)(unaff_s7 + 0x18);
          if (*(int *)(unaff_s7 + 0x18) < 0) {
            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);
          }
          in_f22_23 = (dVar46 - dVar42) / dVar49;
          if (in_f22_23 <= in_f20_21) {
            in_f22_23 = in_f20_21;
          }
          if (-dVar42 / dVar49 < in_f28_29) {
            dVar43 = -dVar42 / dVar49;
          }
          goto LAB_000a3890;
        }
        in_f22_23 = in_f20_21;
        if (0.0 <= dVar42) {
          dVar42 = (double)(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0));
          if (dVar42 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {
            uVar28 = (uint)dVar42;
          }
          else {
            uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;
          }
          in_f22_23 = in_f20_21;
          in_f28_29 = dVar43;
          if (uVar28 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;
        }
LAB_000a3938:
        in_f28_29 = *(double *)(puVar38 + 0x43d0);
        in_f22_23 = in_f22_23 - in_f28_29;
        dVar43 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);
        unaff_s2 = (int)dVar43;
        in_f28_29 = in_f20_21 + in_f28_29;
        dVar43 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);
        dVar42 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);
        dVar43 = (dVar43 - dVar42) + *(double *)(PTR_LAB_003f98e0 + 0x4408);
        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);
        if (dVar43 < in_f20_21) {
          uVar28 = (uint)dVar43;
        }
        else {
          uVar28 = (int)(dVar43 - in_f20_21) | 0x80000000;
        }
        local_178 = (double)CONCAT44(1,unaff_s4);
        pdVar18 = pdVar6;
        pdVar31 = (double *)
                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar6,unaff_s2,iVar4,uVar28);
        if (pdVar31 != (double *)0x0) {
          piVar19 = *(int **)((int)this + 0x18);
          piVar50 = piVar19;
          piVar21 = local_b8;
          do {
            piVar13 = piVar21;
            piVar8 = piVar50;
            iVar30 = piVar8[1];
            iVar51 = piVar8[2];
            iVar12 = piVar8[3];
            *piVar13 = *piVar8;
            piVar13[1] = iVar30;
            piVar13[2] = iVar51;
            piVar13[3] = iVar12;
            piVar50 = piVar8 + 4;
            piVar21 = piVar13 + 4;
          } while (piVar50 != piVar19 + 0x14);
          iVar12 = piVar8[5];
          piVar13[4] = *piVar50;
          piVar13[5] = iVar12;
          piVar50 = piVar19;
          piVar21 = local_110;
          do {
            piVar13 = piVar21;
            piVar8 = piVar50;
            iVar30 = piVar8[1];
            iVar51 = piVar8[2];
            iVar12 = piVar8[3];
            *piVar13 = *piVar8;
            piVar13[1] = iVar30;
            piVar13[2] = iVar51;
            piVar13[3] = iVar12;
            piVar50 = piVar8 + 4;
            piVar21 = piVar13 + 4;
          } while (piVar50 != piVar19 + 0x14);
          iVar12 = piVar8[5];
          piVar13[4] = *piVar50;
          piVar13[5] = iVar12;
          dVar43 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);
          unaff_s3 = (double *)PTR_LAB_003f98e0;
          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);
          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);
          for (; unaff_s2 <= (int)dVar43; unaff_s2 = unaff_s2 + 1) {
            pdVar18 = *(double **)((int)this + 0xc);
            local_168 = local_b8;
            local_170 = (double)unaff_s2 * pdVar18[1] + in_f24_25 * pdVar18[3] + pdVar18[5];
            local_178 = (double)unaff_s2 * *pdVar18 + in_f24_25 * pdVar18[2] + pdVar18[4];
            local_164 = unaff_s4;
            iVar12 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar5,0);
            *(int *)((int)this + 0x28) = iVar12;
            if (iVar12 == 0) break;
            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);
            local_110[0] = 1;
            local_110[1] = 0x17;
            local_f8 = 0x10;
            local_110[2] = 0;
            local_c8 = in_f30_31;
            if (piVar3 != (int *)0x0) {
              local_110[0] = *piVar3;
              local_110[1] = piVar3[1];
              local_100 = *(undefined8 *)(piVar3 + 0x92);
              local_f8 = piVar3[8];
              local_110[2] = piVar3[0xaf];
              if (pdVar31 != (double *)0x0) {
                iVar12 = piVar3[0xb4];
                local_e8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4);
                local_e0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4);
                local_d8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4);
                if (*(int *)(iVar12 + 0x28) != 0) {
                  local_d0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4);
                }
                if (*(int *)(iVar12 + 0x34) != 0) {
                  local_c8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4);
                  local_110[2] = 4;
                }
                if (*(int *)(iVar12 + 0x40) != 0) {
                  local_c0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x44) * 4);
                }
              }
            }
            dVar42 = local_70 * in_f26_27;
            dVar49 = local_c8 * in_f26_27;
            dVar46 = (dVar42 + dVar49) - dVar42 * dVar49;
            if (0.0 <= dVar46) {
              local_c8 = dVar46;
              if (in_f20_21 < dVar46) {
                local_c8 = *(double *)((int)unaff_s3 + 0x4408);
              }
              local_c8 = local_c8 * *(double *)(puVar38 + 0x4a48);
              if (0.0 <= dVar46) {
                dVar47 = *(double *)((int)unaff_s3 + 0x4408);
              }
              else {
                dVar47 = *(double *)((int)unaff_s3 + 0x4418);
              }
            }
            else {
              local_c8 = 0.0;
              dVar47 = in_f22_23;
            }
            if (*(double *)(puVar38 + 0x43c8) <= dVar46 * dVar47) {
              dVar47 = *(double *)((int)unaff_s3 + 0x4408) / dVar46;
            }
            else {
              dVar47 = dVar47 / *(double *)(puVar38 + 0x43c8);
            }
            dVar46 = *(double *)((int)unaff_s3 + 0x4408) - dVar42;
            local_e8 = (dVar49 * local_e8 * dVar46 + dVar42 * local_90) * dVar47;
            local_e0 = (dVar49 * local_e0 * dVar46 + dVar42 * local_88) * dVar47;
            local_d8 = (dVar49 * local_d8 * dVar46 + dVar42 * local_80) * dVar47;
            if (local_110[1] == 2) {
              local_d0 = (dVar49 * local_d0 * dVar46 + dVar42 * local_78) * dVar47;
            }
            iVar12 = piVar3[0xb4];
            *(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4) = (float)local_e8;
            *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4) = (float)local_e0;
            *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4) = (float)local_d8;
            if (*(int *)(iVar12 + 0x28) != 0) {
              *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4) = (float)local_d0;
            }
            if (*(int *)(iVar12 + 0x34) != 0) {
              if (local_110[2] == 0) {
                fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);
              }
              else {
                fVar45 = (float)local_c8;
              }
              *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4) = fVar45;
            }
            pdVar31 = (double *)((int)pdVar31 + piVar3[0xb0] * 4);
          }
          pdVar18 = pdVar6;
          iVar12 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar6,unaff_s4);
          if (iVar12 == 0) {
            *(undefined4 *)((int)this + 0x28) = 0;
          }
        }
      }
      iVar4 = iVar4 + 1;
      unaff_s6 = (double *)puVar38;
    } while (iVar4 < (int)puVar7);
  }
  if (local_5c == *(int *)PTR___stack_chk_guard_003fa248) {
    return;
  }
  pcVar39 = DrawPolygonPrimitive__omp_fn_3;
  puVar38 = PTR___stack_chk_fail_003fa07c;
  (*(code *)PTR___stack_chk_fail_003fa07c)();
  puStack_350 = puVar38 + 0x35d9c0;
  iStack_1e4 = **(int **)(puVar38 + 0x356358);
  iVar30 = *(int *)((int)pdVar18 + 0x24);
  pdStack_2a8 = pdVar18;
  pdStack_1e0 = pdVar31;
  piStack_1dc = piVar3;
  iStack_1d8 = unaff_s2;
  pdStack_1d4 = unaff_s3;
  piStack_1d0 = unaff_s4;
  pvStack_1cc = this;
  pdStack_1c8 = unaff_s6;
  uStack_1c4 = unaff_s7;
  iStack_1c0 = iVar4;
  pcStack_1bc = pcVar39;
  dStack_1b8 = in_f20_21;
  dStack_1b0 = in_f22_23;
  dStack_1a8 = in_f24_25;
  dStack_1a0 = in_f26_27;
  dStack_198 = in_f28_29;
  dStack_190 = in_f30_31;
  iVar12 = (**(code **)(puVar38 + 0x356a34))();
  iVar51 = (**(code **)(puStack_350 + -0x7390))();
  iVar14 = (*(int *)(pdVar18 + 5) + 1) - iVar30;
  if (iVar12 == 0) {
    trap(7);
  }
  iVar52 = iVar14 / iVar12;
  iVar14 = iVar14 % iVar12;
  uVar28 = (uint)(iVar51 < iVar14);
  if (uVar28 != 0) {
    iVar52 = iVar52 + 1;
    iVar14 = 0;
  }
  uVar9 = iVar52 * iVar51 + iVar14;
  pdVar31 = (double *)(iVar52 + uVar9);
  if ((int)uVar9 < (int)pdVar31) {
    iStack_29c = *(int *)((int)pdStack_2a8 + 0x1c);
    in_f28_29 = *pdStack_2a8;
    iStack_2f4 = *(int *)(pdStack_2a8 + 3);
    pdStack_2a0 = *(double **)((int)pdStack_2a8 + 0x14);
    uStack_2d0 = *(undefined4 *)(pdStack_2a8 + 2);
    iStack_324 = *(int *)((int)pdStack_2a8 + 0xc);
    unaff_s6 = *(double **)(pdStack_2a8 + 1);
    iStack_2f0 = iVar30 + uVar9;
    puStack_2a4 = (undefined1 *)(iVar30 + (int)pdVar31);
    unaff_s7 = *(uint *)(puStack_350 + -0x7fd0);
    dStack_320 = *(double *)(unaff_s7 + 0x4408);
    iVar4 = *(int *)(puStack_350 + -0x7fd0);
    dStack_2b8 = *(double *)(iVar4 + 0x43c8);
    uStack_2f8 = uVar9;
    do {
      iVar30 = (**(code **)(puStack_350 + -0x7390))();
      if (*(int *)((int)pdStack_2a8 + 0x2c) != 0) {
        pdVar31 = *(double **)(pdStack_2a8 + 4);
        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);
        dVar41 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar31 - in_f20_21);
        uStack_2d4 = (uint)dVar41;
        dVar41 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar31[2] + in_f20_21);
        uVar28 = uStack_2d4;
        pdVar18 = (double *)(int)dVar41;
        uStack_354 = uStack_2d0;
        puStack_358 = (undefined4 *)0x1;
        pdVar31 = pdStack_2a0;
        pdStack_2cc = pdVar18;
        iStack_308 = (**(code **)(puStack_350 + -0x724c))
                               (pdStack_2a0,uStack_2d4,iStack_2f0,
                                (undefined *)((int)pdVar18 + (1 - uStack_2d4)));
        if (iStack_308 == 0) {
          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;
        }
        else {
          iVar30 = iVar30 * 4;
          puVar38 = puStack_350;
          if ((int)uVar28 <= (int)pdVar18) {
            puStack_2bc = (undefined4 *)(iStack_29c + iVar30);
            uStack_328 = uStack_2d4;
            pdVar18 = unaff_s6;
            do {
              unaff_s4 = (int *)*puStack_2bc;
              iStack_2c0 = *(int *)(iStack_324 + 0x240);
              unaff_s3 = (double *)*unaff_s4;
              pvVar15 = (void *)unaff_s4[1];
              pdStack_2ec = unaff_s3;
              if ((int)pvVar15 < 1) {
                if (iStack_2f4 != 0) {
                  dStack_338 = 0.0;
                  dStack_340 = 0.0;
                  dVar41 = in_f30_31;
LAB_000a4f34:
                  pdVar31 = (double *)*unaff_s4;
                  if (0 < (int)pvVar15) goto LAB_000a4f3c;
                  goto LAB_000a4684;
                }
LAB_000a4f94:
                if (*(int *)(iStack_324 + 0x238) == 0) {
                  dStack_338 = 0.0;
                  dStack_340 = 0.0;
                  dVar41 = in_f30_31;
LAB_000a4ec0:
                  iVar12 = *(int *)(puVar38 + -0x7fd0);
                  goto LAB_000a4ec4;
                }
                dStack_338 = 0.0;
                dStack_340 = 0.0;
                dVar41 = in_f30_31;
              }
              else {
                in_f26_27 = (double)iStack_2f0;
                iVar12 = *(int *)(puVar38 + -0x7fd0);
                dVar41 = *(double *)(iVar12 + 0x43d0);
                this = (void *)0x0;
                if ((unaff_s3[1] - in_f28_29) - dVar41 < in_f26_27) {
                  dStack_338 = 0.0;
                  dStack_340 = 0.0;
                  pdVar31 = unaff_s3;
                  dStack_330 = dVar41;
                  pdStack_2d8 = pdVar18;
                  do {
                    pdVar18 = pdStack_2ec;
                    iVar51 = iStack_2f4;
                    if (in_f26_27 <= in_f28_29 + pdVar31[3] + dVar41) {
                      in_f22_23 = (double)(int)uStack_328;
                      if (((*pdVar31 - in_f28_29) - dStack_330 < in_f22_23) &&
                         (in_f22_23 <= in_f28_29 + pdVar31[2] + *(double *)(iVar12 + 0x43d0))) {
                        iVar30 = *(int *)(pdVar31 + 7);
                        dVar43 = (double)iVar30;
                        if (iVar30 < 0) {
                          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);
                        }
                        if (dVar43 <= *(double *)(unaff_s7 + 0x4408)) {
                          iVar30 = 1;
                        }
                        if (iVar30 < *(int *)((int)pdVar31 + 0x2c)) {
                          iVar14 = *(int *)(pdVar31 + 5);
                          iVar52 = (iVar30 + 0xfffffff) * 0x10;
                          pdVar18 = (double *)(iVar14 + iVar52);
                          dVar43 = *(double *)(iVar12 + 0x43d0);
                          if ((pdVar18[1] - in_f28_29) - dVar43 < in_f26_27) {
                            dStack_318 = *(double *)(unaff_s7 + 0x4408);
                            iVar33 = *(int *)(puVar38 + -0x7fcc);
                            dStack_300 = *(double *)(iVar33 + 0x2a8);
                            piStack_304 = unaff_s4;
                            do {
                              iVar52 = iVar52 + 0x10;
                              dVar42 = dStack_340;
                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43
                                 ) {
                                if (in_f26_27 != pdVar31[4]) {
                                  pdVar31[4] = in_f26_27;
                                  *(int *)(pdVar31 + 7) = iVar30;
                                }
                                dVar46 = pdVar18[2] - *pdVar18;
                                dVar44 = pdVar18[3] - pdVar18[1];
                                dVar49 = in_f22_23 - *pdVar18;
                                dVar42 = in_f26_27 - pdVar18[1];
                                dVar47 = dVar46 * dVar49 + dVar44 * dVar42;
                                if (0.0 < dVar47) {
                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;
                                  if (dVar48 <= dVar47) {
                                    dVar49 = in_f22_23 - pdVar18[2];
                                    dVar42 = in_f26_27 - pdVar18[3];
                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;
                                  }
                                  else {
                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {
                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;
                                    }
                                    else {
                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);
                                    }
                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +
                                                *(double *)(iVar4 + 0x43c8);
                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;
                                  }
                                }
                                else {
                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;
                                }
                                dVar42 = dStack_338;
                                if (*(int *)((int)pdVar31 + 0x34) == 0) {
                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {
                                    uStack_348 = 0.0;
                                  }
                                  else {
                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;
                                    if (in_f20_21 <= dVar49 * dVar49) {
                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +
                                               *(double *)(iVar33 + 0x2a8);
                                      if (dVar42 * dVar42 < in_f20_21) {
                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);
                                        uStack_2ac = SUB84(dVar42,0);
                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;
                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);
                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&
                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {
                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);
                                          puVar38 = puStack_350;
                                        }
                                        dVar42 = ((uStack_348 - in_f28_29) -
                                                 *(double *)(iVar12 + 0x43d0)) -
                                                 *(double *)(iVar33 + 0x2a8);
                                        dVar42 = dVar42 * dVar42;
                                        if (dVar42 <= dStack_338) {
                                          dVar42 = dStack_338;
                                        }
                                      }
                                      else {
                                        uStack_348 = 0.0;
                                        dVar42 = *(double *)(unaff_s7 + 0x4408);
                                      }
                                    }
                                    else {
                                      uStack_348 = 0.0;
                                    }
                                  }
                                }
                                else {
                                  uStack_348 = 0.0;
                                }
                                dStack_338 = dVar42;
                                dVar42 = dStack_340;
                                if (((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&
                                   (dStack_340 < dStack_318)) {
                                  if (0.0 < in_f20_21) {
                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;
                                    uStack_30c = uStack_348._4_4_;
                                    dVar42 = *(double *)(unaff_s7 + 0x4408);
                                    if (ABS(uStack_348) < dStack_2b8) {
                                      dVar42 = in_f20_21 - dVar42;
                                      uStack_2c4 = SUB84(dVar42,0);
                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;
                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);
                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||
                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {
                                        dVar42 = *(double *)(unaff_s7 + 0x4408);
                                      }
                                      else {
                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);
                                        dVar42 = *(double *)(unaff_s7 + 0x4408);
                                        puVar38 = puStack_350;
                                      }
                                    }
                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);
                                    if (dVar42 <= dStack_340) {
                                      dVar42 = dStack_340;
                                    }
                                  }
                                  else {
                                    dVar42 = *(double *)(unaff_s7 + 0x4408);
                                  }
                                }
                              }
                              dStack_340 = dVar42;
                              iVar30 = iVar30 + 1;
                              unaff_s4 = piStack_304;
                              in_f24_25 = dVar43;
                              if (*(int *)((int)pdVar31 + 0x2c) <= iVar30) break;
                              iVar14 = *(int *)(pdVar31 + 5);
                              pdVar18 = (double *)(iVar14 + iVar52);
                            } while ((pdVar18[1] - in_f28_29) - *(double *)(iVar12 + 0x43d0) <
                                     in_f26_27);
                          }
                        }
                      }
                    }
                    else {
                      if (pvVar15 <= this) {
                        (**(code **)(puVar38 + -0x7290))
                                  (*(int *)(puVar38 + -0x7fcc) + 0x69fc,
                                   *(int *)(puVar38 + -0x7fcc) + 0x69c0,0x3e3,
                                   *(int *)(puVar38 + -0x7fcc) + 0x773c);
                        return;
                      }
                      iVar51 = *unaff_s4 - (int)pdStack_2ec;
                      uVar5 = (**(code **)(puVar38 + -0x78d8))
                                        (*(undefined4 *)((int)pdVar31 + iVar51 + 0x28));
                      *(undefined4 *)((int)pdVar31 + iVar51 + 0x28) = uVar5;
                      pvVar15 = (void *)(unaff_s4[1] + -1);
                      unaff_s4[1] = (int)pvVar15;
                      puVar38 = puStack_350;
                      if (this < pvVar15) {
                        (**(code **)(puStack_350 + -0x7948))
                                  ((undefined *)((int)pdVar31 + (*unaff_s4 - (int)pdVar18)),
                                   *unaff_s4 + ((int)this + 1) * 0x40,
                                   ((int)pvVar15 - (int)this) * 0x40);
                        puVar38 = puStack_350;
                      }
                    }
                    this = (void *)((int)this + 1);
                    unaff_s3 = pdVar31 + 8;
                    pvVar15 = (void *)unaff_s4[1];
                  } while (((int)this < (int)pvVar15) &&
                          (pdVar18 = pdVar31 + 9, pdVar31 = unaff_s3,
                          (*pdVar18 - in_f28_29) - *(double *)(iVar12 + 0x43d0) < in_f26_27));
                  pdVar18 = pdStack_2d8;
                  if (iStack_2f4 != 0) {
                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;
                    goto LAB_000a4528;
                  }
                  if (*(int *)(iStack_324 + 0x238) == 0) {
                    dStack_340 = 0.0;
                    goto LAB_000a4ec0;
                  }
                  dStack_340 = 0.0;
                  goto LAB_000a46d8;
                }
                if (iStack_2f4 == 0) goto LAB_000a4f94;
                pdVar31 = (double *)*unaff_s4;
                dStack_338 = 0.0;
                dStack_340 = 0.0;
                dVar41 = in_f30_31;
LAB_000a4f3c:
                dVar43 = (double)iStack_2f0;
                pvVar23 = (void *)0x0;
                if (pdVar31[1] < dVar43) {
                  uVar28 = 0;
                  do {
                    if ((dVar43 <= pdVar31[3]) &&
                       (dVar42 = (double)(int)uStack_328, *pdVar31 < dVar42)) {
                      iVar12 = -1;
                      if (dVar42 <= pdVar31[2]) {
                        iVar12 = *(int *)(pdVar31 + 7);
                        dVar49 = (double)iVar12;
                        if (iVar12 < 0) {
                          dVar49 = dVar49 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);
                        }
                        if (dVar49 <= *(double *)(unaff_s7 + 0x4408)) {
                          iVar12 = 1;
                        }
                        iVar51 = *(int *)((int)pdVar31 + 0x2c) + -1;
                        if (iVar12 < iVar51) {
                          iVar30 = *(int *)(pdVar31 + 5) + iVar12 * 0x10;
                          dVar49 = *(double *)(iVar30 + 8);
                          while (dVar49 < dVar43) {
                            iVar12 = iVar12 + 1;
                            if (iVar51 <= iVar12) break;
                            dVar49 = *(double *)(iVar30 + 0x18);
                            iVar30 = iVar30 + 0x10;
                          }
                        }
                        pdVar6 = (double *)(*(int *)(pdVar31 + 5) + (iVar12 + 0xfffffff) * 0x10);
                        iVar12 = -1;
                        if ((pdVar6[2] - *pdVar6) * (dVar43 - pdVar6[1]) <=
                            (pdVar6[3] - pdVar6[1]) * (dVar42 - *pdVar6)) {
                          if (*(int *)(pdVar31 + 6) != 0) {
                            iVar12 = 1;
                          }
                          uVar28 = uVar28 + iVar12;
                        }
                      }
                      else {
                        if (*(int *)(pdVar31 + 6) != 0) {
                          iVar12 = 1;
                        }
                        uVar28 = uVar28 + iVar12;
                      }
                    }
                    pvVar23 = (void *)((int)pvVar23 + 1);
                  } while ((pvVar23 != pvVar15) &&
                          (pdVar6 = pdVar31 + 9, pdVar31 = pdVar31 + 8, *pdVar6 < dVar43));
                  if (iStack_2c0 != 2) {
                    if ((int)uVar28 < 0) {
                      uVar28 = -uVar28;
                    }
                    if ((uVar28 & 1) != 0) goto LAB_000a4528;
                    goto LAB_000a4684;
                  }
                  if (uVar28 != 0) {
LAB_000a4528:
                    dStack_340 = *(double *)(unaff_s7 + 0x4408);
                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;
                    goto LAB_000a46d8;
                  }
                  iVar12 = *(int *)(iStack_324 + 0x238);
                }
                else {
LAB_000a4684:
                  iVar12 = *(int *)(iStack_324 + 0x238);
                }
                if (iVar12 == 0) {
                  iVar12 = *(int *)(puVar38 + -0x7fd0);
                  bVar1 = dStack_340 <= *(double *)(iVar12 + 0x43d0);
                  dStack_340 = *(double *)(unaff_s7 + 0x4408);
                  if (bVar1) {
                    dStack_340 = 0.0;
                    goto LAB_000a4ec0;
                  }
LAB_000a4ec4:
                  bVar1 = dStack_338 <= *(double *)(iVar12 + 0x43d0);
                  dStack_338 = *(double *)(unaff_s7 + 0x4408);
                  if (bVar1) {
                    dStack_338 = 0.0;
                  }
                }
              }
LAB_000a46d8:
              uVar28 = uStack_2f8;
              iVar30 = uStack_328 - uStack_2d4;
              iVar12 = *(int *)(iStack_324 + 0x1a8);
              if (iVar12 == 0) {
                puVar10 = (undefined4 *)(iStack_324 + 0x48);
                puVar2 = auStack_298;
                do {
                  puVar17 = puVar2;
                  puVar11 = puVar10;
                  uVar29 = puVar11[1];
                  uVar27 = puVar11[2];
                  uVar5 = puVar11[3];
                  *puVar17 = *puVar11;
                  puVar17[1] = uVar29;
                  puVar17[2] = uVar27;
                  puVar17[3] = uVar5;
                  puVar10 = puVar11 + 4;
                  puVar2 = puVar17 + 4;
                } while (puVar10 != (undefined4 *)(iStack_324 + 0x98));
                uVar5 = puVar11[5];
                puVar17[4] = *puVar10;
                puVar17[5] = uVar5;
              }
              else {
                uStack_354 = uStack_2d0;
                puStack_358 = auStack_298;
                (**(code **)(puVar38 + -0x747c))
                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),
                           uStack_2f8 + *(int *)(iVar12 + 0x29c));
                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);
                pdVar31 = (double *)(iStack_324 + 0x398);
                uStack_2e8 = *(uint *)pdVar31 & 0x7fffffff;
                puVar38 = puStack_350;
                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {
                  dStack_250 = dStack_250 *
                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);
                }
              }
              if (*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0) {
                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);
              }
              else {
                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);
              }
              dVar43 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);
              dVar42 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);
              dVar43 = (dVar43 + dVar42) - dVar43 * dVar42;
              in_f30_31 = dVar41;
              if (0 < *(int *)(pdVar18 + 0x58)) {
                iVar51 = 0;
                iVar12 = 0;
                in_f26_27 = 0.0;
                in_f20_21 = *(double *)(unaff_s7 + 0x4408);
                do {
                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar51);
                  uStack_348 = dVar43;
                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {
                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7370 + uVar9 * 4))
                    )();
                    return;
                  }
                  iVar12 = iVar12 + 1;
                  iVar51 = iVar51 + 0xc;
                  in_f22_23 = in_f20_21;
                  in_f24_25 = in_f20_21;
                  in_f30_31 = in_f20_21;
                } while (iVar12 < *(int *)(pdVar18 + 0x58));
              }
              iVar12 = *(int *)(iStack_324 + 0x1ac);
              if (iVar12 == 0) {
                puVar10 = (undefined4 *)(iStack_324 + 0xa0);
                puVar2 = auStack_240;
                do {
                  puVar17 = puVar2;
                  puVar11 = puVar10;
                  uVar29 = puVar11[1];
                  uVar27 = puVar11[2];
                  uVar5 = puVar11[3];
                  *puVar17 = *puVar11;
                  puVar17[1] = uVar29;
                  puVar17[2] = uVar27;
                  puVar17[3] = uVar5;
                  puVar10 = puVar11 + 4;
                  puVar2 = puVar17 + 4;
                } while (puVar10 != (undefined4 *)(iStack_324 + 0xf0));
                uVar5 = puVar11[5];
                puVar17[4] = *puVar10;
                puVar17[5] = uVar5;
              }
              else {
                uStack_354 = uStack_2d0;
                puStack_358 = auStack_240;
                (**(code **)(puVar38 + -0x747c))
                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),
                           uVar28 + *(int *)(iVar12 + 0x29c));
                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);
                pdVar31 = (double *)(iStack_324 + 0x3a0);
                uStack_2e0 = *(uint *)pdVar31 & 0x7fffffff;
                puVar38 = puStack_350;
                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {
                  dStack_1f8 = dStack_1f8 *
                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);
                }
              }
              if (*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0) {
                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);
              }
              else {
                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);
              }
              dVar41 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);
              dVar43 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);
              dVar41 = (dVar41 + dVar43) - dVar41 * dVar43;
              iVar12 = *(int *)(pdVar18 + 0x58);
              if (0 < iVar12) {
                iVar14 = 0;
                iVar51 = 0;
                in_f30_31 = 0.0;
                in_f20_21 = *(double *)(unaff_s7 + 0x4408);
                do {
                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar14);
                  uStack_348 = dVar41;
                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {
                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7384 + uVar9 * 4))
                    )(in_f20_21,*(undefined8 *)(*(int *)(puVar38 + -0x7fd0) + 0x4a48));
                    return;
                  }
                  iVar51 = iVar51 + 1;
                  iVar12 = *(int *)(pdVar18 + 0x58);
                  iVar14 = iVar14 + 0xc;
                  in_f22_23 = in_f20_21;
                  in_f24_25 = in_f20_21;
                  in_f26_27 = in_f20_21;
                } while (iVar51 < iVar12);
              }
              iStack_308 = iStack_308 + iVar12 * 4;
              uStack_328 = uStack_328 + 1;
              unaff_s6 = pdVar18;
            } while ((int)uStack_328 <= (int)pdStack_2cc);
          }
          pdVar31 = pdStack_2a0;
          iVar12 = (**(code **)(puVar38 + -0x73a0))(pdStack_2a0,uStack_2d0);
          if (iVar12 == 0) {
            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;
          }
        }
      }
      iStack_2f0 = iStack_2f0 + 1;
      uStack_2f8 = uStack_2f8 + 1;
    } while (iStack_2f0 < (int)puStack_2a4);
  }
  if (iStack_1e4 == **(int **)(puStack_350 + -0x7668)) {
    return;
  }
  pcVar39 = *(code **)(puStack_350 + -0x7834);
  pcVar40 = DrawPolygonPrimitive__omp_fn_2;
  (*pcVar39)();
  pcStack_440 = pcVar39 + 0x35c870;
  iStack_3bc = **(int **)(pcVar39 + 0x355208);
  uVar9 = *(uint *)(pdVar31 + 3);
  pdVar6 = pdVar31;
  uStack_428 = uVar9;
  iStack_3b8 = iVar30;
  uStack_3b4 = uVar28;
  pdStack_3b0 = pdVar18;
  pdStack_3ac = unaff_s3;
  piStack_3a8 = unaff_s4;
  pvStack_3a4 = this;
  pdStack_3a0 = unaff_s6;
  uStack_39c = unaff_s7;
  iStack_398 = iVar4;
  pcStack_394 = pcVar40;
  dStack_390 = in_f20_21;
  dStack_388 = in_f22_23;
  dStack_380 = in_f24_25;
  dStack_378 = in_f26_27;
  dStack_370 = in_f28_29;
  iVar4 = (**(code **)(pcVar39 + 0x3558e4))();
  iVar12 = (**(code **)(pcStack_440 + -0x7390))();
  iVar51 = (*(uint *)((int)pdVar31 + 0x1c) + 1) - uVar9;
  if (iVar4 == 0) {
    trap(7);
  }
  iVar30 = iVar51 / iVar4;
  iVar51 = iVar51 % iVar4;
  uVar28 = (uint)(iVar12 < iVar51);
  if (uVar28 != 0) {
    iVar30 = iVar30 + 1;
    iVar51 = 0;
  }
  iVar51 = iVar30 * iVar12 + iVar51;
  iVar30 = iVar30 + iVar51;
  iVar4 = *(int *)(pcStack_440 + -0x7fd0);
  pcVar39 = pcStack_440;
  if (iVar51 < iVar30) {
    pdStack_42c = *(double **)(pdVar31 + 2);
    uStack_430 = *(uint *)((int)pdVar31 + 0xc);
    unaff_s6 = *(double **)(pdVar31 + 1);
    uStack_424 = *(uint *)((int)pdVar31 + 4);
    unaff_s7 = *(uint *)pdVar31;
    iVar51 = uStack_428 + iVar51;
    iVar30 = uStack_428 + iVar30;
    in_f22_23 = *(double *)(iVar4 + 0x43d0);
    in_f26_27 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8);
    in_f28_29 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410);
    do {
      in_f20_21 = *(double *)(iVar4 + 0x43d0);
      if (*(uint *)(pdVar31 + 4) != 0) {
        pdVar18 = *(double **)((int)pdVar31 + 0x14);
        dVar41 = (double)(**(code **)(pcVar39 + -0x7c78))(*pdVar18 - in_f20_21);
        uStack_434 = (uint)dVar41;
        dVar41 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar18[2] + in_f20_21);
        uVar28 = uStack_434;
        this = (void *)(int)dVar41;
        uStack_444 = uStack_430;
        piStack_448 = (int *)0x1;
        pdVar6 = pdStack_42c;
        pdVar18 = (double *)
                  (**(code **)(pcStack_440 + -0x724c))
                            (pdStack_42c,uStack_434,iVar51,(int)this + (1 - uStack_434));
        if (pdVar18 == (double *)0x0) {
          *(uint *)(pdVar31 + 4) = 0;
          pcVar39 = pcStack_440;
        }
        else {
          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);
          bVar1 = (int)uVar28 <= (int)this;
          uVar28 = uStack_434;
          if (bVar1) {
            in_f20_21 = *(double *)(iVar4 + 0x43d0);
            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),
                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));
            do {
              dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);
              if (((int)dVar41 == uVar28) &&
                 (dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),
                 iVar51 == (int)dVar41)) {
                iVar12 = *(int *)(uStack_424 + 0x1a8);
                if (iVar12 == 0) {
                  piVar3 = (int *)(uStack_424 + 0x48);
                  piVar50 = aiStack_418;
                  do {
                    piVar19 = piVar50;
                    piVar21 = piVar3;
                    iVar52 = piVar21[1];
                    iVar14 = piVar21[2];
                    iVar12 = piVar21[3];
                    *piVar19 = *piVar21;
                    piVar19[1] = iVar52;
                    piVar19[2] = iVar14;
                    piVar19[3] = iVar12;
                    piVar3 = piVar21 + 4;
                    piVar50 = piVar19 + 4;
                  } while (piVar3 != (int *)(uStack_424 + 0x98));
                  iVar12 = piVar21[5];
                  piVar19[4] = *piVar3;
                  piVar19[5] = iVar12;
                }
                else {
                  uStack_444 = uStack_430;
                  piStack_448 = aiStack_418;
                  (**(code **)(pcStack_440 + -0x747c))
                            (iVar12,6,(uVar28 - uStack_434) + *(int *)(iVar12 + 0x298),
                             (iVar51 - uStack_428) + *(int *)(iVar12 + 0x29c));
                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);
                  pdVar6 = (double *)(uStack_424 + 0x398);
                  uStack_420 = *(uint *)pdVar6 & 0x7fffffff;
                  if (in_f26_27 <= ABS(*pdVar6)) {
                    dStack_3d0 = dStack_3d0 * *pdVar6 * in_f28_29;
                  }
                }
                iVar12 = *(int *)(unaff_s7 + 0x2d0);
                *(float *)((int)pdVar18 + *(int *)(iVar12 + 8) * 4) = (float)dStack_3f0;
                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x14) * 4) = (float)dStack_3e8;
                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x20) * 4) = (float)dStack_3e0;
                if (*(int *)(iVar12 + 0x28) != 0) {
                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x2c) * 4) = (float)dStack_3d8;
                }
                if (*(int *)(iVar12 + 0x34) != 0) {
                  if (aiStack_418[2] == 0) {
                    fVar45 = SUB84(in_f24_25,0);
                  }
                  else {
                    fVar45 = (float)dStack_3d0;
                  }
                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x38) * 4) = fVar45;
                }
              }
              pdVar18 = (double *)((int)pdVar18 + *(int *)(unaff_s7 + 0x2c0) * 4);
              uVar28 = uVar28 + 1;
            } while ((int)uVar28 <= (int)this);
          }
          pdVar6 = pdStack_42c;
          iVar12 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);
          pcVar39 = pcStack_440;
          if (iVar12 == 0) {
            *(uint *)(pdVar31 + 4) = 0;
          }
        }
      }
      iVar51 = iVar51 + 1;
    } while (iVar51 < iVar30);
  }
  if (iStack_3bc == **(int **)(pcVar39 + -0x7668)) {
    return;
  }
  pcVar39 = *(code **)(pcVar39 + -0x7834);
  pcVar40 = DrawGradientImage__omp_fn_1;
  (*pcVar39)();
  pcStack_5a8 = pcVar39 + 0x35c414;
  iStack_4b4 = **(int **)(pcVar39 + 0x354dac);
  puVar34 = *(uint **)(pdVar6 + 4);
  pdVar32 = (double *)puVar34[3];
  pdVar16 = pdVar6;
  uStack_4b0 = uVar28;
  iStack_4ac = iVar51;
  pdStack_4a8 = pdVar18;
  pdStack_4a4 = pdVar31;
  iStack_4a0 = iVar30;
  pvStack_49c = this;
  pdStack_498 = unaff_s6;
  uStack_494 = unaff_s7;
  iStack_490 = iVar4;
  pcStack_48c = pcVar40;
  dStack_488 = in_f20_21;
  dStack_480 = in_f22_23;
  dStack_478 = in_f24_25;
  dStack_470 = in_f26_27;
  dStack_468 = in_f28_29;
  dStack_460 = in_f30_31;
  iVar4 = (**(code **)(pcVar39 + 0x355488))();
  iVar12 = (**(code **)(pcStack_5a8 + -0x7390))();
  if (iVar4 == 0) {
    trap(7);
  }
  iVar51 = (int)(puVar34[1] - (int)pdVar32) / iVar4;
  piVar50 = (int *)((int)(puVar34[1] - (int)pdVar32) % iVar4);
  piVar3 = piVar50;
  if (iVar12 < (int)piVar50) {
    iVar51 = iVar51 + 1;
    piVar3 = (int *)0x0;
  }
  piVar3 = (int *)(iVar51 * iVar12 + (int)piVar3);
  puVar37 = (undefined1 *)((int)pdVar32 + (int)piVar3);
  pcVar39 = pcStack_5a8;
  if ((int)piVar3 < iVar51 + (int)piVar3) {
    dStack_580 = *pdVar6;
    pdStack_588 = *(double **)(pdVar6 + 3);
    puVar34 = *(uint **)((int)pdVar6 + 0x14);
    pdStack_568 = *(double **)(pdVar6 + 2);
    uStack_564 = *(uint *)((int)pdVar6 + 0xc);
    piVar50 = *(int **)(pdVar6 + 1);
    puStack_56c = (undefined1 *)((int)pdVar32 + iVar51 + (int)piVar3);
    dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);
    if (dStack_580 < 0.0) {
      dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
    }
    iStack_570 = *(int *)(pcStack_5a8 + -0x7fd0);
    dStack_598 = *(double *)(iStack_570 + 0x4a48);
    iStack_584 = *(int *)(pcStack_5a8 + -0x7fd0);
    dStack_560 = *(double *)(iStack_584 + 0x43d0);
    unaff_s6 = *(double **)(pcStack_5a8 + -0x7fd0);
    dStack_548 = unaff_s6[0x879];
    do {
      if (*(uint *)((int)pdVar6 + 0x24) != 0) {
        uStack_5ac = uStack_564;
        uStack_5b0 = 1;
        pdVar16 = pdStack_568;
        pdVar32 = (double *)(**(code **)(pcVar39 + -0x724c))(pdStack_568,0,puVar37,piVar50[6]);
        if (pdVar32 == (double *)0x0) {
          *(uint *)((int)pdVar6 + 0x24) = 0;
          pcVar39 = pcStack_5a8;
        }
        else {
          piVar19 = *(int **)((int)pdVar6 + 0x1c);
          piVar3 = piVar19;
          piVar21 = aiStack_510;
          do {
            piVar13 = piVar21;
            piVar8 = piVar3;
            iVar51 = piVar8[1];
            iVar12 = piVar8[2];
            iVar4 = piVar8[3];
            *piVar13 = *piVar8;
            piVar13[1] = iVar51;
            piVar13[2] = iVar12;
            piVar13[3] = iVar4;
            piVar3 = piVar8 + 4;
            piVar21 = piVar13 + 4;
          } while (piVar3 != piVar19 + 0x14);
          iVar12 = *piVar3;
          iVar4 = piVar8[5];
          *piVar21 = iVar12;
          piVar13[5] = iVar4;
          in_f20_21 = *(double *)(piVar19 + 10);
          in_f22_23 = *(double *)(piVar19 + 0xc);
          in_f24_25 = *(double *)(piVar19 + 0xe);
          dStack_590 = *(double *)(piVar19 + 0x10);
          dVar41 = *(double *)(piVar19 + 0x12);
          if (*puVar34 < 2) {
            uStack_5a0 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);
            dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);
            dStack_540 = 0.0 - *(double *)(puVar34 + 6);
            dStack_530 = (double)(int)puVar37 - *(double *)(puVar34 + 8);
            dVar43 = dStack_540 * dStack_540 + dStack_530 * dStack_530;
            dStack_558 = SQRT(dVar43);
            if (0.0 <= dVar43) {
              dVar43 = dVar42 * dVar42;
            }
            else {
              (**(code **)(pcStack_5a8 + -0x7418))();
              dVar43 = dVar42 * dVar42;
            }
            dVar43 = uStack_5a0 * uStack_5a0 + dVar43;
            in_f26_27 = SQRT(dVar43);
            if (dVar43 < 0.0) {
              (**(code **)(pcStack_5a8 + -0x7418))();
            }
            in_f26_27 = dStack_558 * in_f26_27;
            if (0.0 <= in_f26_27) {
              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);
            }
            else {
              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
            }
            if (unaff_s6[0x879] <= in_f26_27 * dVar43) {
              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;
            }
            else {
              in_f26_27 = unaff_s6[0x879];
              dVar43 = dVar43 / in_f26_27;
            }
            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar42 * dStack_530) * dVar43 * dStack_558;
LAB_000a56c0:
            uVar28 = *puVar34;
LAB_000a56c4:
            if (uVar28 != 2) {
              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {
                dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;
              }
              else {
                dVar43 = dStack_578 / unaff_s6[0x879];
              }
              uStack_5a0 = uStack_5a0 * dVar43;
            }
          }
          else {
            if (*puVar34 != 2) {
              uStack_5a0 = 0.0;
              goto LAB_000a56c0;
            }
            if (puVar34[0x10] != 3) {
              in_f26_27 = 0.0;
              dVar42 = 0.0 - *(double *)(puVar34 + 0x12);
              (**(code **)(pcStack_5a8 + -0x78e0))
                        ((*(double *)(puVar34 + 0x1c) *
                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /
                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar21,iVar12,
                         &dStack_518,&dStack_520);
              dVar43 = *(double *)(puVar34 + 0x16);
              if (in_f26_27 <= dVar43) {
                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);
              }
              else {
                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
              }
              if (unaff_s6[0x879] <= dVar43 * dVar49) {
                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;
              }
              else {
                dVar49 = dVar49 / unaff_s6[0x879];
              }
              dVar49 = (dVar42 * dStack_520 +
                       ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) * dVar49;
              dVar43 = *(double *)(puVar34 + 0x18);
              if (0.0 <= dVar43) {
                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);
              }
              else {
                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
              }
              if (unaff_s6[0x879] <= dVar43 * dVar46) {
                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;
              }
              else {
                dVar46 = dVar46 / unaff_s6[0x879];
              }
              dVar46 = (dVar42 * dStack_518 -
                       dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) * dVar46;
              dVar43 = dVar49 * dVar49 + dVar46 * dVar46;
              uStack_5a0 = SQRT(dVar43);
              if (0.0 <= dVar43) goto LAB_000a5700;
              (**(code **)(pcStack_5a8 + -0x7418))();
              uVar28 = *puVar34;
              goto LAB_000a56c4;
            }
            dVar43 = (0.0 - *(double *)(puVar34 + 0x12)) * (0.0 - *(double *)(puVar34 + 0x12)) +
                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *
                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));
            uStack_5a0 = SQRT(dVar43);
            if (dVar43 < 0.0) {
              (**(code **)(pcStack_5a8 + -0x7418))();
              uVar28 = *puVar34;
              goto LAB_000a56c4;
            }
          }
LAB_000a5700:
          iVar30 = (*(int **)(pdVar6 + 4))[2];
          pdVar31 = *(double **)(pcStack_5a8 + -0x7fd0);
          if (iVar30 < **(int **)(pdVar6 + 4)) {
            dStack_540 = pdVar31[0x881];
            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);
            dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);
            do {
              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);
              aiStack_510[0] = 1;
              aiStack_510[1] = 0x17;
              iStack_4f8 = 0x10;
              aiStack_510[2] = 0;
              dStack_4c8 = dStack_598;
              if (piVar50 != (int *)0x0) {
                aiStack_510[0] = *piVar50;
                aiStack_510[1] = piVar50[1];
                uStack_500 = *(undefined8 *)(piVar50 + 0x92);
                iStack_4f8 = piVar50[8];
                aiStack_510[2] = piVar50[0xaf];
                if (pdVar32 != (double *)0x0) {
                  iVar4 = piVar50[0xb4];
                  dStack_4e8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4);
                  dStack_4e0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4);
                  dStack_4d8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4);
                  if (*(int *)(iVar4 + 0x28) != 0) {
                    dStack_4d0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4);
                  }
                  if (*(int *)(iVar4 + 0x34) != 0) {
                    dStack_4c8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4);
                    aiStack_510[2] = 4;
                  }
                  if (*(int *)(iVar4 + 0x40) != 0) {
                    dStack_4c0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x44) * 4);
                  }
                }
              }
              unaff_s7 = puVar34[0x10];
              if (unaff_s7 == 2) {
                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);
                if (((int)dVar41 == iVar30) &&
                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))
                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),
                   puVar37 == (undefined1 *)(int)dVar41)) {
LAB_000a63a4:
                  if (uStack_5a0 < 0.0) {
                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;
                    uStack_54c = uStack_5a0._4_4_;
                    uStack_5a0 = -uStack_5a0;
                  }
LAB_000a63bc:
                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);
                }
                else {
                  if (*puVar34 < 2) {
                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);
                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);
                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);
                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);
                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;
                    uStack_5a0 = SQRT(dVar41);
                    if (0.0 <= dVar41) {
                      dVar41 = dVar42 * dVar42;
                    }
                    else {
                      (**(code **)(pcStack_5a8 + -0x7418))();
                      dVar41 = dVar42 * dVar42;
                    }
                    dVar41 = dVar46 * dVar46 + dVar41;
                    dVar44 = SQRT(dVar41);
                    if (dVar41 < 0.0) {
                      (**(code **)(pcStack_5a8 + -0x7418))();
                    }
                    dVar44 = uStack_5a0 * dVar44;
                    if (0.0 <= dVar44) {
                      in_f26_27 = pdVar31[0x881];
                    }
                    else {
                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                    }
                    if (unaff_s6[0x879] <= dVar44 * in_f26_27) {
                      in_f26_27 = pdVar31[0x881] / dVar44;
                    }
                    else {
                      in_f26_27 = in_f26_27 / unaff_s6[0x879];
                    }
                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;
                    uStack_5a0 = in_f26_27 * uStack_5a0;
LAB_000a6368:
                    if (*puVar34 != 2) {
LAB_000a6378:
                      if (dStack_548 <= dStack_580 * dStack_578) {
                        dVar41 = dStack_540 / dStack_580;
                      }
                      else {
                        dVar41 = dStack_578 / unaff_s6[0x879];
                      }
                      uStack_5a0 = uStack_5a0 * dVar41;
                    }
                    goto LAB_000a63a4;
                  }
                  if (*puVar34 != 2) {
                    uStack_5a0 = 0.0;
                    goto LAB_000a6368;
                  }
                  dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);
                  (**(code **)(pcStack_5a8 + -0x78e0))
                            ((*(double *)(puVar34 + 0x1c) *
                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /
                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));
                  dVar41 = *(double *)(puVar34 + 0x16);
                  if (0.0 <= dVar41) {
                    dVar49 = pdVar31[0x881];
                  }
                  else {
                    dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                  }
                  if (unaff_s6[0x879] <= dVar41 * dVar49) {
                    dVar49 = pdVar31[0x881] / dVar41;
                  }
                  else {
                    dVar49 = dVar49 / unaff_s6[0x879];
                  }
                  dVar41 = *(double *)(puVar34 + 0x18);
                  dVar49 = (dVar42 * dStack_520 +
                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *
                           dVar49;
                  if (0.0 <= dVar41) {
                    dVar46 = pdVar31[0x881];
                  }
                  else {
                    dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                  }
                  if (unaff_s6[0x879] <= dVar41 * dVar46) {
                    dVar46 = pdVar31[0x881] / dVar41;
                  }
                  else {
                    dVar46 = dVar46 / unaff_s6[0x879];
                  }
                  dVar46 = (dVar42 * dStack_518 -
                           dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *
                           dVar46;
                  dVar41 = dVar49 * dVar49 + dVar46 * dVar46;
                  uStack_5a0 = SQRT(dVar41);
                  if (0.0 <= dVar41) goto LAB_000a63bc;
                  (**(code **)(pcStack_5a8 + -0x7418))();
                  if (*puVar34 != 2) goto LAB_000a6378;
                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);
                }
                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))
                                           (uStack_5a0,*(undefined8 *)(iVar4 + 0x298));
                if ((int)dVar41 == 0) {
                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))
                                                 (uStack_5a0,pdVar31[0x881]);
                }
                else {
                  dVar41 = pdVar31[0x881];
                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar41);
                  uStack_5a0 = dVar41 - uStack_5a0;
                }
                uVar28 = puVar34[0xf];
                if (0 < (int)uVar28) {
                  uVar9 = puVar34[0xe];
                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {
                    pdVar18 = (double *)(uVar9 + 0xb8);
                    uVar20 = 0;
                    do {
                      uVar24 = uVar20;
                      uVar20 = uVar24 + 1;
                      if (uVar20 == uVar28) {
                        if (uVar20 == 0) goto LAB_000a6248;
                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;
                        in_f20_21 = *(double *)(iVar4 + 0x28);
                        in_f22_23 = *(double *)(iVar4 + 0x30);
                        in_f24_25 = *(double *)(iVar4 + 0x38);
                        dStack_590 = *(double *)(iVar4 + 0x40);
                        dVar41 = *(double *)(iVar4 + 0x48);
                        goto LAB_000a5af8;
                      }
                      dVar41 = *pdVar18;
                      pdVar18 = pdVar18 + 0xc;
                    } while (dVar41 <= uStack_5a0);
                    if (uVar20 != 0) {
                      iVar12 = uVar9 + uVar24 * 0x60;
                      iVar4 = uVar9 + uVar20 * 0x60;
                      dVar41 = (uStack_5a0 - *(double *)(iVar12 + 0x58)) /
                               (*(double *)(iVar4 + 0x58) - *(double *)(iVar12 + 0x58));
                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *
                               *(double *)(dStack_558._0_4_ + 0x4410);
                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *
                               *(double *)(dStack_558._0_4_ + 0x4410);
                      dVar46 = dVar49 + dVar42;
                      if (0.0 <= dVar46) {
                        if (pdVar31[0x881] < dVar46) {
                          dVar46 = pdVar31[0x881];
                          goto LAB_000a6e58;
                        }
                        if (0.0 <= dVar46) {
                          dVar41 = dVar46;
                          if (pdVar31[0x881] < dVar46) {
                            dVar41 = pdVar31[0x881];
                          }
                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);
                          if (dVar46 < 0.0) {
                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                          }
                          else {
                            dVar47 = pdVar31[0x881];
                          }
                        }
                        else {
                          dVar41 = 0.0;
                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                        }
                      }
                      else {
                        dVar46 = 0.0;
LAB_000a6e58:
                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);
                        dVar47 = pdVar31[0x881];
                      }
                      if (unaff_s6[0x879] <= dVar47 * dVar46) {
                        dVar47 = pdVar31[0x881] / dVar46;
                      }
                      else {
                        dVar47 = dVar47 / unaff_s6[0x879];
                      }
                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +
                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;
                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +
                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;
                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +
                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;
                      if (*(int *)(iVar4 + 4) == 2) {
                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +
                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;
                      }
                      goto LAB_000a5af8;
                    }
                  }
                }
LAB_000a6248:
                uVar28 = puVar34[0xe];
                in_f20_21 = *(double *)(uVar28 + 0x28);
                in_f22_23 = *(double *)(uVar28 + 0x30);
                in_f24_25 = *(double *)(uVar28 + 0x38);
                dStack_590 = *(double *)(uVar28 + 0x40);
                dVar41 = *(double *)(uVar28 + 0x48);
              }
              else if (unaff_s7 < 2) {
                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))
                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));
                if (((int)dVar41 == iVar30) &&
                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))
                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),
                   puVar37 == (undefined1 *)(int)dVar41)) goto LAB_000a6944;
                if (*puVar34 < 2) {
                  dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);
                  dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);
                  dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);
                  dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);
                  dVar41 = dVar47 * dVar47 + dVar49 * dVar49;
                  uStack_5a0 = SQRT(dVar41);
                  if (0.0 <= dVar41) {
                    dVar41 = dVar42 * dVar42;
                  }
                  else {
                    (**(code **)(pcStack_5a8 + -0x7418))();
                    dVar41 = dVar42 * dVar42;
                  }
                  dVar41 = dVar46 * dVar46 + dVar41;
                  dVar44 = SQRT(dVar41);
                  if (dVar41 < 0.0) {
                    (**(code **)(pcStack_5a8 + -0x7418))();
                  }
                  dVar44 = uStack_5a0 * dVar44;
                  if (0.0 <= dVar44) {
                    in_f26_27 = pdVar31[0x881];
                  }
                  else {
                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                  }
                  if (unaff_s6[0x879] <= dVar44 * in_f26_27) {
                    in_f26_27 = pdVar31[0x881] / dVar44;
                  }
                  else {
                    in_f26_27 = in_f26_27 / unaff_s6[0x879];
                  }
                  in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;
                  uStack_5a0 = in_f26_27 * uStack_5a0;
LAB_000a6908:
                  uVar28 = *puVar34;
LAB_000a690c:
                  if (uVar28 != 2) {
                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {
                      dVar41 = pdVar31[0x881] / dStack_580;
                    }
                    else {
                      dVar41 = dStack_578 / unaff_s6[0x879];
                    }
                    uStack_5a0 = uStack_5a0 * dVar41;
                  }
                }
                else {
                  if (*puVar34 != 2) {
                    uStack_5a0 = 0.0;
                    goto LAB_000a6908;
                  }
                  if (unaff_s7 != 3) {
                    dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);
                    (**(code **)(pcStack_5a8 + -0x78e0))
                              ((*(double *)(puVar34 + 0x1c) *
                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /
                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));
                    dVar41 = *(double *)(puVar34 + 0x16);
                    if (0.0 <= dVar41) {
                      dVar49 = pdVar31[0x881];
                    }
                    else {
                      dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                    }
                    if (unaff_s6[0x879] <= dVar41 * dVar49) {
                      dVar49 = pdVar31[0x881] / dVar41;
                    }
                    else {
                      dVar49 = dVar49 / unaff_s6[0x879];
                    }
                    dVar41 = *(double *)(puVar34 + 0x18);
                    dVar49 = (dVar42 * dStack_520 +
                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *
                             dVar49;
                    if (0.0 <= dVar41) {
                      dVar46 = pdVar31[0x881];
                    }
                    else {
                      dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                    }
                    if (unaff_s6[0x879] <= dVar41 * dVar46) {
                      dVar46 = pdVar31[0x881] / dVar41;
                    }
                    else {
                      dVar46 = dVar46 / unaff_s6[0x879];
                    }
                    dVar46 = (dVar42 * dStack_518 -
                             dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *
                             dVar46;
                    dVar41 = dVar49 * dVar49 + dVar46 * dVar46;
                    uStack_5a0 = SQRT(dVar41);
                    if (0.0 <= dVar41) goto LAB_000a6944;
                    (**(code **)(pcStack_5a8 + -0x7418))();
                    uVar28 = *puVar34;
                    goto LAB_000a690c;
                  }
                  dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *
                           ((double)iVar30 - *(double *)(puVar34 + 0x12)) +
                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *
                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));
                  uStack_5a0 = SQRT(dVar41);
                  if (dVar41 < 0.0) {
                    (**(code **)(pcStack_5a8 + -0x7418))();
                    uVar28 = *puVar34;
                    goto LAB_000a690c;
                  }
                }
LAB_000a6944:
                uVar28 = puVar34[0xf];
                if (0 < (int)uVar28) {
                  uVar9 = puVar34[0xe];
                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {
                    pdVar18 = (double *)(uVar9 + 0xb8);
                    uVar20 = 0;
                    do {
                      uVar24 = uVar20;
                      uVar20 = uVar24 + 1;
                      if (uVar20 == uVar28) {
                        if (uStack_5a0 < 0.0) goto LAB_000a6694;
                        dVar41 = pdVar31[0x881];
                        uVar20 = uVar28;
                        goto LAB_000a6f20;
                      }
                      dVar41 = *pdVar18;
                      pdVar18 = pdVar18 + 0xc;
                    } while (dVar41 <= uStack_5a0);
                    if ((0.0 <= uStack_5a0) && (dVar41 = pdVar31[0x881], uVar20 != 0)) {
LAB_000a6f20:
                      if ((dVar41 < uStack_5a0) || (uVar28 == uVar20)) {
                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;
                        in_f20_21 = *(double *)(iVar4 + 0x28);
                        in_f22_23 = *(double *)(iVar4 + 0x30);
                        in_f24_25 = *(double *)(iVar4 + 0x38);
                        dStack_590 = *(double *)(iVar4 + 0x40);
                        dVar41 = *(double *)(iVar4 + 0x48);
                        goto LAB_000a5af8;
                      }
                      iVar4 = uVar9 + uVar24 * 0x60;
                      iVar12 = uVar9 + uVar20 * 0x60;
                      dVar41 = (uStack_5a0 - *(double *)(iVar4 + 0x58)) /
                               (*(double *)(iVar12 + 0x58) - *(double *)(iVar4 + 0x58));
                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar4 + 0x48) *
                               *(double *)(dStack_558._0_4_ + 0x4410);
                      dVar42 = dVar41 * *(double *)(iVar12 + 0x48) *
                               *(double *)(dStack_558._0_4_ + 0x4410);
                      dVar46 = dVar49 + dVar42;
                      if (0.0 <= dVar46) {
                        if (pdVar31[0x881] < dVar46) {
                          dVar46 = pdVar31[0x881];
                          goto LAB_000a6740;
                        }
                        if (0.0 <= dVar46) {
                          dVar41 = dVar46;
                          if (pdVar31[0x881] < dVar46) {
                            dVar41 = pdVar31[0x881];
                          }
                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);
                          if (dVar46 < 0.0) {
                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                          }
                          else {
                            dVar47 = pdVar31[0x881];
                          }
                        }
                        else {
                          dVar41 = 0.0;
                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                        }
                      }
                      else {
                        dVar46 = 0.0;
LAB_000a6740:
                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);
                        dVar47 = pdVar31[0x881];
                      }
                      if (unaff_s6[0x879] <= dVar47 * dVar46) {
                        dVar47 = pdVar31[0x881] / dVar46;
                      }
                      else {
                        dVar47 = dVar47 / unaff_s6[0x879];
                      }
                      in_f20_21 = (dVar49 * *(double *)(iVar4 + 0x28) +
                                  dVar42 * *(double *)(iVar12 + 0x28)) * dVar47;
                      in_f22_23 = (dVar49 * *(double *)(iVar4 + 0x30) +
                                  dVar42 * *(double *)(iVar12 + 0x30)) * dVar47;
                      in_f24_25 = (dVar49 * *(double *)(iVar4 + 0x38) +
                                  dVar42 * *(double *)(iVar12 + 0x38)) * dVar47;
                      if (*(int *)(iVar12 + 4) == 2) {
                        dStack_590 = (dVar49 * *(double *)(iVar4 + 0x40) +
                                     dVar42 * *(double *)(iVar12 + 0x40)) * dVar47;
                      }
                      goto LAB_000a5af8;
                    }
                  }
                }
LAB_000a6694:
                uVar28 = puVar34[0xe];
                in_f20_21 = *(double *)(uVar28 + 0x28);
                in_f22_23 = *(double *)(uVar28 + 0x30);
                in_f24_25 = *(double *)(uVar28 + 0x38);
                dStack_590 = *(double *)(uVar28 + 0x40);
                dVar41 = *(double *)(uVar28 + 0x48);
              }
              else if (unaff_s7 == 3) {
                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))
                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));
                if (((int)dVar41 == iVar30) &&
                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))
                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),
                   puVar37 == (undefined1 *)(int)dVar41)) {
                  dVar42 = 0.0;
                  bVar1 = false;
                }
                else {
                  if (*puVar34 < 2) {
                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);
                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);
                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);
                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);
                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;
                    uStack_5a0 = SQRT(dVar41);
                    if (0.0 <= dVar41) {
                      dVar41 = dVar42 * dVar42;
                    }
                    else {
                      (**(code **)(pcStack_5a8 + -0x7418))();
                      dVar41 = dVar42 * dVar42;
                    }
                    dVar41 = dVar46 * dVar46 + dVar41;
                    dVar44 = SQRT(dVar41);
                    if (dVar41 < 0.0) {
                      (**(code **)(pcStack_5a8 + -0x7418))();
                    }
                    dVar44 = uStack_5a0 * dVar44;
                    if (0.0 <= dVar44) {
                      dVar41 = pdVar31[0x881];
                    }
                    else {
                      dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                    }
                    if (unaff_s6[0x879] <= dVar44 * dVar41) {
                      dVar41 = pdVar31[0x881] / dVar44;
                    }
                    else {
                      dVar41 = dVar41 / unaff_s6[0x879];
                    }
                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * dVar41 * uStack_5a0;
LAB_000a5e90:
                    uVar28 = *puVar34;
LAB_000a5e94:
                    if (uVar28 == 1) {
                      dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);
                      uStack_5a0 = dVar41;
                      if (0.0 <= dVar41) {
                        dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);
                      }
                      else {
                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);
                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;
                        uStack_5a0._4_4_ = SUB84(dVar41,0);
                        uStack_524 = uStack_5a0._4_4_;
                        dVar42 = dStack_580;
                        dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580);
                        dVar42 = dVar42 - dVar41;
                      }
                      bVar1 = dVar42 < dStack_580 && dStack_580 < dVar42 + pdVar31[0x881];
                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {
                        uStack_5a0 = pdVar31[0x881] / dStack_580;
                      }
                      else {
                        uStack_5a0 = dStack_578 / unaff_s6[0x879];
                      }
                      uStack_5a0 = dVar42 * uStack_5a0;
                      goto LAB_000a5f08;
                    }
                  }
                  else {
                    if (*puVar34 != 2) {
                      in_f26_27 = 0.0;
                      goto LAB_000a5e90;
                    }
                    dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *
                             ((double)iVar30 - *(double *)(puVar34 + 0x12)) +
                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *
                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));
                    in_f26_27 = SQRT(dVar41);
                    if (dVar41 < 0.0) {
                      (**(code **)(pcStack_5a8 + -0x7418))();
                      uVar28 = *puVar34;
                      goto LAB_000a5e94;
                    }
                  }
                  dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))
                                             (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));
                  uStack_5a0 = dVar41;
                  if (0.0 <= dVar41) {
                    dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))
                                               (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));
                  }
                  else {
                    dVar42 = *(double *)(puVar34 + 0x1a);
                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);
                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;
                    uStack_5a0._4_4_ = SUB84(dVar41,0);
                    uStack_534 = uStack_5a0._4_4_;
                    dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dVar42);
                    dVar42 = dVar42 - dVar41;
                  }
                  bVar1 = *(double *)(puVar34 + 0x1a) < dVar42 + pdVar31[0x881];
                  uStack_5a0 = dVar42 / *(double *)(puVar34 + 0x1a);
                }
LAB_000a5f08:
                uVar28 = puVar34[0xf];
                if (0 < (int)uVar28) {
                  uVar9 = puVar34[0xe];
                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {
                    pdVar18 = (double *)(uVar9 + 0xb8);
                    uVar20 = 0;
                    do {
                      uVar24 = uVar20;
                      uVar20 = uVar24 + 1;
                      if (uVar20 == uVar28) {
                        if (uVar20 == 0) goto LAB_000a5db0;
                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;
                        in_f20_21 = *(double *)(iVar4 + 0x28);
                        in_f22_23 = *(double *)(iVar4 + 0x30);
                        in_f24_25 = *(double *)(iVar4 + 0x38);
                        dStack_590 = *(double *)(iVar4 + 0x40);
                        dVar41 = *(double *)(iVar4 + 0x48);
                        goto LAB_000a5af8;
                      }
                      dVar41 = *pdVar18;
                      pdVar18 = pdVar18 + 0xc;
                    } while (dVar41 <= uStack_5a0);
                    if (uVar20 != 0) {
                      dVar41 = *(double *)(uVar9 + uVar24 * 0x60 + 0x58);
                      if (bVar1) {
                        dVar41 = dStack_580;
                        if (*puVar34 != 1) {
                          dVar41 = *(double *)(puVar34 + 0x1a);
                        }
                        dVar41 = dVar41 - dVar42;
                        uVar20 = uVar28 - 1;
                        uVar24 = 0;
                      }
                      else {
                        dVar41 = (uStack_5a0 - dVar41) /
                                 (*(double *)(uVar9 + uVar20 * 0x60 + 0x58) - dVar41);
                      }
                      iVar12 = uVar9 + uVar24 * 0x60;
                      iVar4 = uVar9 + uVar20 * 0x60;
                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *
                               *(double *)(dStack_558._0_4_ + 0x4410);
                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *
                               *(double *)(dStack_558._0_4_ + 0x4410);
                      dVar46 = dVar49 + dVar42;
                      if (0.0 <= dVar46) {
                        if (pdVar31[0x881] < dVar46) {
                          dVar46 = pdVar31[0x881];
                          goto LAB_000a6d30;
                        }
                        if (0.0 <= dVar46) {
                          dVar41 = dVar46;
                          if (pdVar31[0x881] < dVar46) {
                            dVar41 = pdVar31[0x881];
                          }
                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);
                          if (dVar46 < 0.0) {
                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                          }
                          else {
                            dVar47 = pdVar31[0x881];
                          }
                        }
                        else {
                          dVar41 = 0.0;
                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                        }
                      }
                      else {
                        dVar46 = 0.0;
LAB_000a6d30:
                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);
                        dVar47 = pdVar31[0x881];
                      }
                      if (unaff_s6[0x879] <= dVar47 * dVar46) {
                        dVar47 = pdVar31[0x881] / dVar46;
                      }
                      else {
                        dVar47 = dVar47 / unaff_s6[0x879];
                      }
                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +
                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;
                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +
                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;
                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +
                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;
                      if (*(int *)(iVar4 + 4) == 2) {
                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +
                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;
                      }
                      goto LAB_000a5af8;
                    }
                  }
                }
LAB_000a5db0:
                uVar28 = puVar34[0xe];
                in_f20_21 = *(double *)(uVar28 + 0x28);
                in_f22_23 = *(double *)(uVar28 + 0x30);
                in_f24_25 = *(double *)(uVar28 + 0x38);
                dStack_590 = *(double *)(uVar28 + 0x40);
                dVar41 = *(double *)(uVar28 + 0x48);
              }
LAB_000a5af8:
              dVar46 = dVar41 * dVar43;
              dVar49 = dStack_4c8 * dVar43;
              dVar42 = (dVar46 + dVar49) - dVar46 * dVar49;
              if (0.0 <= dVar42) {
                dStack_4c8 = pdVar31[0x881];
                if (dVar42 <= pdVar31[0x881]) {
                  dStack_4c8 = dVar42;
                }
                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);
                if (0.0 <= dVar42) {
                  dVar47 = pdVar31[0x881];
                }
                else {
                  dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                }
              }
              else {
                dStack_4c8 = 0.0;
                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
              }
              if (unaff_s6[0x879] <= dVar42 * dVar47) {
                dVar47 = pdVar31[0x881] / dVar42;
              }
              else {
                dVar47 = dVar47 / unaff_s6[0x879];
              }
              dVar42 = pdVar31[0x881] - dVar46;
              dStack_4e8 = (dVar49 * dStack_4e8 * dVar42 + dVar46 * in_f20_21) * dVar47;
              dStack_4e0 = (dVar49 * dStack_4e0 * dVar42 + in_f22_23 * dVar46) * dVar47;
              dStack_4d8 = (dVar49 * dStack_4d8 * dVar42 + dVar46 * in_f24_25) * dVar47;
              if (aiStack_510[1] == 2) {
                dStack_4d0 = (dVar49 * dStack_4d0 * dVar42 + dStack_590 * dVar46) * dVar47;
              }
              iVar4 = piVar50[0xb4];
              *(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4) = (float)dStack_4e8;
              *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4) = (float)dStack_4e0;
              *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4) = (float)dStack_4d8;
              if (*(int *)(iVar4 + 0x28) != 0) {
                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4) = (float)dStack_4d0;
              }
              if (*(int *)(iVar4 + 0x34) != 0) {
                if (aiStack_510[2] == 0) {
                  fVar45 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);
                }
                else {
                  fVar45 = (float)dStack_4c8;
                }
                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4) = fVar45;
              }
              pdVar32 = (double *)((int)pdVar32 + piVar50[0xb0] * 4);
              iVar30 = iVar30 + 1;
            } while (iVar30 < **(int **)(pdVar6 + 4));
          }
          pdVar16 = pdStack_568;
          iVar4 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);
          pcVar39 = pcStack_5a8;
          if (iVar4 == 0) {
            *(uint *)((int)pdVar6 + 0x24) = 0;
          }
        }
      }
      puVar37 = puVar37 + 1;
    } while ((int)puVar37 < (int)puStack_56c);
  }
  if (iStack_4b4 == **(int **)(pcVar39 + -0x7668)) {
    return;
  }
  pcVar39 = *(code **)(pcVar39 + -0x7834);
  pcVar40 = DestroyDrawInfo;
  (*pcVar39)();
  pcStack_5d0 = pcVar39 + 0x35a8f0;
  pdStack_5c8 = pdVar32;
  pcStack_5c4 = pcVar40;
  if (pdVar16 == (double *)0x0) {
    (**(code **)(pcVar39 + 0x353660))
              (*(int *)(pcVar39 + 0x352920) + 0x40e4,*(int *)(pcVar39 + 0x352924) + 0x69c0,0x39a,
               *(int *)(pcVar39 + 0x352924) + 0x7914);
    pdVar16 = pdVar32;
LAB_000a7234:
    iStack_5d8 = *(int *)(pcVar39 + 0x352924) + 0x10f4;
    (**(code **)(pcVar39 + 0x353238))
              (0x8000,*(int *)(pcVar39 + 0x352924) + 0x69c0,*(int *)(pcVar39 + 0x352924) + 0x7904,
               0x39c);
    uVar28 = *(uint *)(pdVar16 + 0x72);
  }
  else {
    if (*(uint *)((int)pdVar16 + 0x38c) != 0) goto LAB_000a7234;
    uVar28 = *(uint *)(pdVar16 + 0x72);
  }
  if (uVar28 == 0xabacadab) {
    if (*(uint *)(pdVar16 + 0x77) != 0) {
      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();
      *(uint *)(pdVar16 + 0x77) = uVar28;
    }
    if (*(uint *)pdVar16 != 0) {
      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();
      *(uint *)pdVar16 = uVar28;
    }
    if (*(uint *)(pdVar16 + 0x4c) != 0) {
      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();
      *(uint *)(pdVar16 + 0x4c) = uVar28;
    }
    if (*(uint *)((int)pdVar16 + 4) != 0) {
      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();
      *(uint *)((int)pdVar16 + 4) = uVar28;
    }
    if (*(uint *)(pdVar16 + 0x35) != 0) {
      uVar28 = (**(code **)(pcStack_5d0 + -0x794c))();
      *(uint *)(pdVar16 + 0x35) = uVar28;
    }
    if (*(uint *)((int)pdVar16 + 0x1ac) != 0) {
      uVar28 = (**(code **)(pcStack_5d0 + -0x794c))();
      *(uint *)((int)pdVar16 + 0x1ac) = uVar28;
    }
    if (*(uint *)((int)pdVar16 + 0x264) != 0) {
      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();
      *(uint *)((int)pdVar16 + 0x264) = uVar28;
    }
    if (*(uint *)(pdVar16 + 0x4d) != 0) {
      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();
      *(uint *)(pdVar16 + 0x4d) = uVar28;
    }
    if (*(uint *)((int)pdVar16 + 0x26c) != 0) {
      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();
      *(uint *)((int)pdVar16 + 0x26c) = uVar28;
    }
    if (*(uint *)(pdVar16 + 0x50) != 0) {
      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();
      *(uint *)(pdVar16 + 0x50) = uVar28;
    }
    if (*(uint *)(pdVar16 + 0x52) != 0) {
      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();
      *(uint *)(pdVar16 + 0x52) = uVar28;
    }
    if (*(uint *)((int)pdVar16 + 0x29c) != 0) {
      uVar28 = (**(code **)(pcStack_5d0 + -0x78d8))();
      *(uint *)((int)pdVar16 + 0x29c) = uVar28;
    }
    if (*(uint *)(pdVar16 + 0x54) != 0) {
      uVar28 = (**(code **)(pcStack_5d0 + -0x78d8))();
      *(uint *)(pdVar16 + 0x54) = uVar28;
    }
    if (*(uint *)(pdVar16 + 0x3e) != 0) {
      uVar28 = (**(code **)(pcStack_5d0 + -0x78d8))();
      *(uint *)(pdVar16 + 0x3e) = uVar28;
    }
    if (*(uint *)((int)pdVar16 + 0x2a4) != 0) {
      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();
      *(uint *)((int)pdVar16 + 0x2a4) = uVar28;
    }
    if (*(uint *)((int)pdVar16 + 0x3ac) != 0) {
      uVar28 = (**(code **)(pcStack_5d0 + -0x794c))();
      *(uint *)((int)pdVar16 + 0x3ac) = uVar28;
    }
    if (*(uint *)((int)pdVar16 + 0x3b4) != 0) {
      uVar28 = (**(code **)(pcStack_5d0 + -0x794c))();
      *(uint *)((int)pdVar16 + 0x3b4) = uVar28;
    }
    *(uint *)(pdVar16 + 0x72) = 0x54535254;
    (**(code **)(pcStack_5d0 + -0x78d8))(pdVar16);
    return;
  }
  pdVar6 = (double *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x7914);
  pdVar18 = (double *)&DAT_0000039d;
  puVar25 = (uint *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x69c0);
  piVar3 = (int *)(*(int *)(pcStack_5d0 + -0x7fd0) + 0x4128);
  pcVar39 = *(code **)(pcStack_5d0 + -0x7290);
  pcVar40 = DrawAffineImage;
  (*pcVar39)();
  pcStack_758 = pcVar39 + 0x35a61c;
  uStack_638._4_4_ = **(int **)(pcVar39 + 0x352fb4);
  pdStack_62c = pdVar16;
  piStack_628 = piVar50;
  puStack_624 = puVar34;
  pdStack_620 = pdVar31;
  iStack_61c = iVar30;
  puStack_618 = puVar37;
  pdStack_614 = unaff_s6;
  uStack_610 = unaff_s7;
  pcStack_60c = pcVar40;
  dStack_608 = in_f20_21;
  dStack_600 = in_f22_23;
  dStack_5f8 = in_f24_25;
  dStack_5f0 = in_f26_27;
  if (piVar3 == (int *)0x0) {
    (**(code **)(pcVar39 + 0x35338c))
              (*(int *)(pcVar39 + 0x35264c) + 0x3da0,*(int *)(pcVar39 + 0x352650) + 0x69c0,0x4c0,
               *(int *)(pcVar39 + 0x352650) + 0x78f4);
    pdVar18 = pdVar16;
    piVar3 = piVar50;
    puVar25 = puVar34;
    pdVar6 = pdVar31;
LAB_000a7434:
    piVar50 = (int *)(**(code **)(pcVar39 + 0x35338c))
                               (*(int *)(pcVar39 + 0x352650) + -0x784,
                                *(int *)(pcVar39 + 0x352650) + 0x69c0,0x4c1,
                                *(int *)(pcVar39 + 0x352650) + 0x78f4);
LAB_000a745c:
    iStack_760 = *(int *)(pcVar39 + 0x352654) + -0x2f6c;
    piStack_75c = piVar50;
    (**(code **)(pcVar39 + 0x352f64))
              (0x8000,*(int *)(pcVar39 + 0x352650) + 0x69c0,*(int *)(pcVar39 + 0x352650) + 0x78e4,
               0x4c3);
  }
  else {
    if (piVar3[0xcdb] != -0x54535255) goto LAB_000a7434;
    piVar50 = piVar3 + 0xd0;
    if (piVar3[0xcd4] != 0) goto LAB_000a745c;
  }
  pcVar39 = pcStack_758;
  if (puVar25 == (uint *)0x0) {
    (**(code **)(pcStack_758 + -0x7290))
              (*(int *)(pcStack_758 + -0x7fcc) + 0x6a20,*(int *)(pcStack_758 + -0x7fcc) + 0x69c0,
               0x4c4,*(int *)(pcStack_758 + -0x7fcc) + 0x78f4);
LAB_000a74c4:
    (**(code **)(pcVar39 + -0x7290))
              (*(int *)(pcVar39 + -0x7fcc) + 0x6a40,*(int *)(pcVar39 + -0x7fcc) + 0x69c0);
LAB_000a74e8:
    dStack_668 = (double)(**(code **)(pcVar39 + -0x7290))
                                   (*(int *)(pcVar39 + -0x7fcc) + 0x6a6c,
                                    *(int *)(pcVar39 + -0x7fcc) + 0x69c0);
LAB_000a750c:
    dStack_668 = dStack_668 + *(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x43e8);
  }
  else {
    if (puVar25[0xcdb] != 0xabacadab) goto LAB_000a74c4;
    if (pdVar18 == (double *)0x0) goto LAB_000a74e8;
    uStack_678._4_4_ = 0;
    uStack_678._0_4_ = 0;
    uStack_66c = 0;
    uStack_670 = 0;
    dStack_668 = (double)(int)puVar25[6];
    if ((int)puVar25[6] < 0) goto LAB_000a750c;
  }
  dStack_668 = dStack_668 - *(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x4408);
  uStack_65c = 0;
  uStack_660 = 0;
  dStack_658 = dStack_668;
  dStack_650 = (double)(int)puVar25[7];
  if ((int)puVar25[7] < 0) {
    dStack_650 = dStack_650 + *(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x43e8);
  }
  dStack_650 = dStack_650 - *(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x4408);
  uStack_644 = 0;
  uStack_648 = 0;
  dStack_640 = dStack_650;
  dVar47 = *pdVar18;
  dVar46 = pdVar18[2];
  dVar49 = pdVar18[4];
  dVar42 = pdVar18[1];
  dVar43 = pdVar18[3];
  dVar41 = pdVar18[5];
  pdVar16 = (double *)&uStack_678;
  pdVar31 = pdVar16;
  do {
    dVar44 = *pdVar31;
    *pdVar31 = dVar47 * dVar44 + dVar46 * pdVar31[1] + dVar49;
    pdVar31[1] = dVar42 * dVar44 + dVar43 * pdVar31[1] + dVar41;
    pdVar31 = pdVar31 + 2;
  } while (pdVar31 != (double *)&uStack_638);
  dVar41 = (double)CONCAT44(uStack_670,uStack_66c);
  dVar43 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_);
  dVar42 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_);
  dVar49 = (double)CONCAT44(uStack_670,uStack_66c);
  do {
    dVar47 = pdVar16[2];
    dVar46 = dVar47;
    if (dVar43 <= dVar47) {
      dVar46 = dVar43;
    }
    dVar44 = pdVar16[3];
    dVar48 = dVar44;
    if (dVar49 <= dVar44) {
      dVar48 = dVar49;
    }
    if (dVar47 <= dVar42) {
      dVar47 = dVar42;
    }
    if (dVar44 <= dVar41) {
      dVar44 = dVar41;
    }
    pdVar16 = pdVar16 + 2;
    dVar41 = dVar44;
    dVar43 = dVar46;
    dVar42 = dVar47;
    dVar49 = dVar48;
  } while ((double *)&uStack_648 != pdVar16);
  ppiVar26 = (int **)0x1;
  pdVar31 = pdVar6;
  iVar4 = (**(code **)(pcVar39 + -0x7074))(piVar3);
  if (iVar4 != 0) {
    dStack_750 = dVar46;
    if (dVar46 <= 0.0) {
      dStack_750 = 0.0;
    }
    dStack_748 = dVar48;
    if (dVar48 <= 0.0) {
      dStack_748 = 0.0;
    }
    dStack_740 = (double)piVar3[6];
    if (piVar3[6] < 0) {
      dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);
    }
    dStack_740 = dStack_740 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);
    if (dVar47 < dStack_740) {
      dStack_740 = dVar47;
    }
    dStack_738 = (double)piVar3[7];
    if (piVar3[7] < 0) {
      dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);
    }
    dStack_738 = dStack_738 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);
    if (dVar44 < dStack_738) {
      dStack_738 = dVar44;
    }
    dStack_6e8 = *pdVar18 * pdVar18[3] - pdVar18[1] * pdVar18[2];
    if (0.0 <= dStack_6e8) {
      dVar41 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);
    }
    else {
      dVar41 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);
    }
    if (dStack_6e8 * dVar41 < *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)) {
      dStack_6e8 = dVar41 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8);
    }
    else {
      dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;
    }
    dStack_700 = pdVar18[3] * dStack_6e8;
    dStack_6f8 = -pdVar18[1] * dStack_6e8;
    dStack_6f0 = -pdVar18[2] * dStack_6e8;
    dStack_6e8 = *pdVar18 * dStack_6e8;
    dStack_6e0 = dStack_700 * -pdVar18[4] - dStack_6f0 * pdVar18[5];
    dStack_6d8 = dStack_6f8 * -pdVar18[4] - dStack_6e8 * pdVar18[5];
    (**(code **)(pcStack_758 + -0x75e4))(piVar3,auStack_6d0);
    dVar44 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0);
    dVar41 = (double)(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar44);
    dVar43 = (double)(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar44);
    uVar5 = (**(code **)(pcStack_758 + -0x7144))(puVar25,pdVar6);
    puVar37 = (undefined1 *)(**(code **)(pcStack_758 + -0x79c4))(piVar3,pdVar6);
    iVar4 = (**(code **)(pcStack_758 + -0x73e4))(puVar25);
    if (((iVar4 == 4) || (iVar4 = (**(code **)(pcStack_758 + -0x73e4))(puVar25), iVar4 == 3)) &&
       ((iVar4 = (**(code **)(pcStack_758 + -0x73e4))(piVar3), iVar4 == 4 ||
        (iVar4 = (**(code **)(pcStack_758 + -0x73e4))(piVar3), iVar4 == 3)))) {
      (**(code **)(pcStack_758 + -0x775c))(7);
      iVar12 = (int)dVar43 - (int)dVar41;
      iVar4 = iVar12;
      if (iVar12 < 0) {
        iVar4 = iVar12 + 0x3f;
      }
      pdVar18 = (double *)(iVar4 >> 6);
      if (extraout_v1 < (int)pdVar18) {
        (**(code **)(pcStack_758 + -0x775c))(7);
        bVar1 = extraout_v1_01 < 2;
      }
      else {
        bVar1 = iVar12 < 0x80;
      }
      pdVar31 = (double *)0x1;
      if (((bool)(bVar1 ^ 1)) &&
         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar31 = pdVar18, extraout_v1_02 < (int)pdVar18)
         ) {
        (**(code **)(pcStack_758 + -0x775c))(7);
        pdVar31 = extraout_v1_03;
        pdVar18 = extraout_v1_03;
      }
    }
    else {
      uVar53 = (**(code **)(pcStack_758 + -0x775c))(7);
      if (((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)) {
        uVar53 = (**(code **)(pcStack_758 + -0x775c))(7);
        if ((int)((ulonglong)uVar53 >> 0x20) != 0) goto LAB_000a77f8;
        pcVar39 = *(code **)(pcStack_758 + -0x775c);
        if ((uint)uVar53 < 2) {
          pdVar31 = (double *)0x1;
          goto LAB_000a7818;
        }
      }
      else {
LAB_000a77f8:
        pcVar39 = *(code **)(pcStack_758 + -0x775c);
      }
      uVar53 = (*pcVar39)(7);
      if (((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)) {
        (**(code **)(pcStack_758 + -0x775c))(7);
        pdVar31 = extraout_v1_00;
      }
      else {
        pdVar31 = (double *)0x2;
      }
    }
LAB_000a7818:
    pdStack_720 = &dStack_700;
    puStack_714 = auStack_6d0;
    pdStack_710 = &dStack_750;
    iStack_704 = 1;
    ppiVar26 = &piStack_72c;
    piStack_72c = piVar3;
    puStack_728 = puVar25;
    pdStack_724 = pdVar6;
    puStack_71c = puVar37;
    uStack_718 = uVar5;
    iStack_70c = (int)dVar41;
    iStack_708 = (int)dVar43;
    (**(code **)(pcStack_758 + -0x7700))
              (*(int *)(pcStack_758 + -0x7ea0) + 0x34c4,ppiVar26,pdVar31,0);
    iVar4 = iStack_704;
    (**(code **)(pcStack_758 + -0x79a4))(uVar5);
    (**(code **)(pcStack_758 + -0x79a4))(puVar37);
  }
  if (uStack_638._4_4_ == **(int **)(pcStack_758 + -0x7668)) {
    return;
  }
  pcVar39 = *(code **)(pcStack_758 + -0x7834);
  pcVar40 = DrawGradientImage;
  iVar12 = uStack_638._4_4_;
  (*pcVar39)();
  pcStack_830 = pcVar39 + 0x359e18;
  puStack_794 = (undefined8 *)**(undefined4 **)(pcVar39 + 0x3527b0);
  pdStack_790 = pdVar18;
  piStack_78c = piVar3;
  puStack_788 = puVar25;
  pdStack_784 = pdVar6;
  iStack_780 = iVar4;
  pcStack_77c = pcVar40;
  dStack_778 = dVar44;
  if (iVar12 == 0) {
    (**(code **)(pcVar39 + 0x352b88))
              (*(int *)(pcVar39 + 0x351e48) + 0x3da0,*(int *)(pcVar39 + 0x351e4c) + 0x69c0,0x80a,
               *(int *)(pcVar39 + 0x351e4c) + 0x7818);
    return;
  }
  if (*(int *)(iVar12 + 0x336c) != -0x54535255) {
    (**(code **)(pcVar39 + 0x352b88))
              (*(int *)(pcVar39 + 0x351e4c) + -0x784,*(int *)(pcVar39 + 0x351e4c) + 0x69c0,0x80b,
               *(int *)(pcVar39 + 0x351e4c) + 0x7818);
    return;
  }
  if (*(int *)(iVar12 + 0x3350) != 0) {
    iStack_838 = *(int *)(pcVar39 + 0x351e50) + -0x2f6c;
    iStack_834 = iVar12 + 0x340;
    (**(code **)(pcVar39 + 0x352760))
              (0x8000,*(int *)(pcVar39 + 0x351e4c) + 0x69c0,*(int *)(pcVar39 + 0x351e4c) + 0x7804,
               0x80d);
  }
  if (ppiVar26 == (int **)0x0) {
    (**(code **)(pcStack_830 + -0x7290))
              (*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c,*(int *)(pcStack_830 + -0x7fcc) + 0x69c0,
               0x80e,*(int *)(pcStack_830 + -0x7fcc) + 0x7818);
    return;
  }
  ppiVar35 = ppiVar26 + 0x6e;
  (**(code **)(pcStack_830 + -0x6fc4))
            (ppiVar26[0x7c],ppiVar26[0x7d],0x60,*(int *)(pcStack_830 + -0x7ea0) + 0x224c);
  ppiVar36 = ppiVar26 + 0x74;
  dVar41 = (*(double *)(ppiVar26 + 0x78) - *(double *)(ppiVar26 + 0x74)) *
           (*(double *)(ppiVar26 + 0x78) - *(double *)(ppiVar26 + 0x74)) +
           (*(double *)(ppiVar26 + 0x7a) - *(double *)(ppiVar26 + 0x76)) *
           (*(double *)(ppiVar26 + 0x7a) - *(double *)(ppiVar26 + 0x76));
  dVar43 = SQRT(dVar41);
  if (0.0 <= dVar41) {
    piStack_828 = ppiVar26[0x6f];
  }
  else {
    (**(code **)(pcStack_830 + -0x7418))();
    piStack_828 = ppiVar26[0x6f];
  }
  piStack_824 = ppiVar26[0x70];
  piStack_820 = ppiVar26[0x71];
  piStack_81c = ppiVar26[0x72];
  (**(code **)(pcStack_830 + -0x75e4))(iVar12,auStack_7f0);
  uVar5 = (**(code **)(pcStack_830 + -0x79c4))(iVar12,pdVar31);
  iVar4 = (**(code **)(pcStack_830 + -0x73e4))(iVar12);
  if ((iVar4 == 4) || (iVar4 = (**(code **)(pcStack_830 + -0x73e4))(iVar12), iVar4 == 3)) {
    iVar4 = (**(code **)(pcStack_830 + -0x73e4))(iVar12);
    if ((iVar4 != 4) && (iVar4 = (**(code **)(pcStack_830 + -0x73e4))(iVar12), iVar4 != 3))
    goto LAB_000a7bf4;
    (**(code **)(pcStack_830 + -0x775c))(7);
    iVar51 = (int)piStack_824 - (int)piStack_81c;
    iVar4 = iVar51;
    if (iVar51 < 0) {
      iVar4 = iVar51 + 0x3f;
    }
    if (extraout_v1_04 < iVar4 >> 6) {
      (**(code **)(pcStack_830 + -0x775c))(7);
      bVar1 = extraout_v1_06 < 2;
    }
    else {
      bVar1 = iVar51 < 0x80;
    }
    iVar4 = 1;
    dStack_818 = dVar43;
    if ((bool)(bVar1 ^ 1)) {
      (**(code **)(pcStack_830 + -0x775c))(7);
      iVar4 = (int)piStack_824 - (int)piStack_81c;
      if (iVar4 < 0) {
        iVar4 = iVar4 + 0x3f;
      }
      iVar4 = iVar4 >> 6;
      dStack_818 = dVar43;
      if (extraout_v1_07 < iVar4) {
        (**(code **)(pcStack_830 + -0x775c))(7);
        iVar4 = extraout_v1_08;
        dStack_818 = dVar43;
      }
    }
  }
  else {
LAB_000a7bf4:
    uVar53 = (**(code **)(pcStack_830 + -0x775c))(7);
    if (((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)) {
      uVar53 = (**(code **)(pcStack_830 + -0x775c))(7);
      if ((int)((ulonglong)uVar53 >> 0x20) != 0) goto LAB_000a7c10;
      pcVar39 = *(code **)(pcStack_830 + -0x775c);
      if ((uint)uVar53 < 2) {
        iVar4 = 1;
        dStack_818 = dVar43;
        goto LAB_000a7c30;
      }
    }
    else {
LAB_000a7c10:
      pcVar39 = *(code **)(pcStack_830 + -0x775c);
    }
    uVar53 = (*pcVar39)(7);
    if (((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)) {
      (**(code **)(pcStack_830 + -0x775c))(7);
      iVar4 = extraout_v1_05;
      dStack_818 = dVar43;
    }
    else {
      iVar4 = 2;
      dStack_818 = dVar43;
    }
  }
LAB_000a7c30:
  puStack_7fc = auStack_7f0;
  ppiStack_7f8 = &piStack_828;
  uStack_7f4 = 1;
  iStack_810 = iVar12;
  pdStack_80c = pdVar31;
  uStack_808 = uVar5;
  ppiStack_804 = ppiVar35;
  ppiStack_800 = ppiVar36;
  (**(code **)(pcStack_830 + -0x7700))(*(int *)(pcStack_830 + -0x7ea0) + 0x549c,&dStack_818,iVar4,0)
  ;
  uVar27 = uStack_7f4;
  (**(code **)(pcStack_830 + -0x79a4))(uVar5);
  if (puStack_794 == (undefined8 *)**(int **)(pcStack_830 + -0x7668)) {
    return;
  }
  pcVar39 = *(code **)(pcStack_830 + -0x7834);
  pcVar40 = GetAffineMatrix;
  puVar22 = puStack_794;
  (*pcVar39)();
  pcStack_858 = pcVar39 + 0x359994;
  iStack_860 = *(int *)(pcVar39 + 0x3519c8) + 0x10f4;
  uStack_850 = uVar5;
  pcStack_84c = pcVar40;
  (**(code **)(pcVar39 + 0x3522dc))
            (0x8000,*(int *)(pcVar39 + 0x3519c8) + 0x69c0,*(int *)(pcVar39 + 0x3519c8) + 0x76b0,
             0x16d2);
  if (puVar22 != (undefined8 *)0x0) {
    (**(code **)(pcStack_858 + -0x71c4))(puVar22 + 1,0,0x28);
    uVar53 = *(undefined8 *)(*(int *)(pcStack_858 + -0x7fd0) + 0x4408);
    *puVar22 = uVar53;
    puVar22[3] = uVar53;
    return;
  }
  iVar12 = *(int *)(pcStack_858 + -0x7fcc) + 0x69c0;
  iVar4 = *(int *)(pcStack_858 + -0x7fcc) + 0x6368;
  pcVar39 = *(code **)(pcStack_858 + -0x7290);
  pcVar40 = GetDrawInfo;
  (*pcVar39)(iVar4,iVar12,0x16d3,*(int *)(pcStack_858 + -0x7fcc) + 0x76a0);
  uStack_888 = uVar27;
  iStack_894 = **(int **)(pcVar39 + 0x352270);
  puStack_88c = puVar22;
  pdStack_884 = pdVar31;
  ppiStack_880 = ppiVar35;
  ppiStack_87c = ppiVar36;
  puStack_878 = puVar37;
  pcStack_874 = pcVar40;
  (**(code **)(pcVar39 + 0x352220))
            (0x8000,*(int *)(pcVar39 + 0x35190c) + 0x69c0,*(int *)(pcVar39 + 0x35190c) + 0x7694,
             0x1702,*(int *)(pcVar39 + 0x35190c) + 0x10f4);
  if (iVar12 == 0) {
    (**(code **)(pcVar39 + 0x352648))
              (*(int *)(pcVar39 + 0x351908) + 0x40e4,*(int *)(pcVar39 + 0x35190c) + 0x69c0,0x1703,
               *(int *)(pcVar39 + 0x35190c) + 0x7688);
  }
  else {
    (**(code **)(pcVar39 + 0x352714))(iVar12,0,0x3c0);
    iVar4 = (**(code **)(pcVar39 + 0x3521dc))(iVar4);
    (**(code **)(pcVar39 + 0x351e5c))(iVar12 + 0x18);
    pdVar31 = (double *)(**(code **)(pcVar39 + 0x351f2c))();
    ppiVar36 = (int **)(iVar12 + 0x48);
    (**(code **)(pcVar39 + 0x351e54))
              (*(int *)(pcVar39 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar36,pdVar31);
    ppiVar35 = (int **)(iVar12 + 0xa0);
    (**(code **)(pcVar39 + 0x351e54))
              (*(int *)(pcVar39 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar35,pdVar31);
    *(undefined4 *)(iVar12 + 0x238) = *(undefined4 *)(iVar4 + 0x14);
    *(undefined8 *)(iVar12 + 0x1b0) = *(undefined8 *)(*(int *)(pcVar39 + 0x351908) + 0x4408);
    *(undefined4 *)(iVar12 + 0x240) = 1;
    *(undefined4 *)(iVar12 + 0x2cc) = *(undefined4 *)(*(int *)(pcVar39 + 0x351908) + 0x4aa8);
    uVar53 = *(undefined8 *)(*(int *)(pcVar39 + 0x351908) + 0x4a48);
    *(undefined8 *)(iVar12 + 0x398) = uVar53;
    *(undefined8 *)(iVar12 + 0x3a0) = uVar53;
    *(undefined4 *)(iVar12 + 0x244) = 1;
    *(undefined4 *)(iVar12 + 0x248) = 1;
    *(undefined4 *)(iVar12 + 0x24c) = 10;
    *(undefined4 *)(iVar12 + 600) = 1;
    *(undefined8 *)(iVar12 + 0x288) = *(undefined8 *)(*(int *)(pcVar39 + 0x35190c) + 0x7970);
    *(undefined4 *)(iVar12 + 0x144) = 0;
    *(undefined4 *)(iVar12 + 0x140) = 0;
    *(undefined4 *)(iVar12 + 0x25c) = 0x36;
    *(undefined4 *)(iVar12 + 0x2d0) = 1;
    *(undefined4 *)(iVar12 + 0x3a8) = 0;
    uVar5 = (**(code **)(pcVar39 + 0x3527e8))();
    *(undefined4 *)(iVar12 + 0x38c) = uVar5;
    if (*(int *)(iVar4 + 0x4c) != 0) {
      uVar5 = (**(code **)(pcVar39 + 0x352854))();
      *(undefined4 *)(iVar12 + 0x264) = uVar5;
    }
    if (*(int *)(iVar4 + 0x54) != 0) {
      uVar5 = (**(code **)(pcVar39 + 0x352854))();
      *(undefined4 *)(iVar12 + 0x290) = uVar5;
    }
    *(undefined4 *)(iVar12 + 0x23c) = *(undefined4 *)(iVar4 + 0x14);
    uVar5 = *(undefined4 *)(iVar4 + 0x58);
    if (*(double *)(*(int *)(pcVar39 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar4 + 0x58))) {
      *(undefined4 *)(iVar12 + 0x28c) = *(undefined4 *)(iVar4 + 0x5c);
      *(undefined4 *)(iVar12 + 0x288) = uVar5;
    }
    puVar10 = (undefined4 *)(iVar4 + 0x118);
    puVar2 = (undefined4 *)(iVar12 + 0x150);
    do {
      puVar17 = puVar2;
      puVar11 = puVar10;
      uVar29 = puVar11[1];
      uVar27 = puVar11[2];
      uVar5 = puVar11[3];
      *puVar17 = *puVar11;
      puVar17[1] = uVar29;
      puVar17[2] = uVar27;
      puVar17[3] = uVar5;
      puVar10 = puVar11 + 4;
      puVar2 = puVar17 + 4;
    } while (puVar10 != (undefined4 *)(iVar4 + 0x168));
    uVar5 = puVar11[5];
    puVar17[4] = *puVar10;
    puVar17[5] = uVar5;
    if (*(int *)(iVar4 + 0x48) != 0) {
      uVar5 = (**(code **)(pcVar39 + 0x352854))();
      *(undefined4 *)(iVar12 + 0x29c) = uVar5;
    }
    iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6ac4);
    if (iVar51 != 0) {
      uVar5 = (**(code **)(pcVar39 + 0x3526d4))(0x14,0,iVar51);
      *(undefined4 *)(iVar12 + 0x388) = uVar5;
      goto LAB_000a8298;
    }
  }
  *(undefined4 *)(iVar12 + 0x388) = 0;
LAB_000a8298:
  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6ad0);
  if (iVar51 != 0) {
    (**(code **)(pcVar39 + 0x3524c8))(iVar12 + 0x280,iVar51);
  }
  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6adc);
  if (iVar51 != 0) {
    (**(code **)(pcVar39 + 0x3524c8))(iVar12 + 0x26c,iVar51);
  }
  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6ae4);
  if (iVar51 != 0) {
    (**(code **)(pcVar39 + 0x351e54))(iVar51,0x7fffffff,ppiVar36,pdVar31);
  }
  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6aec);
  if (iVar51 != 0) {
    uVar5 = (**(code **)(pcVar39 + 0x3526d4))(0x21,0,iVar51);
    *(undefined4 *)(iVar12 + 0x298) = uVar5;
  }
  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6af4);
  if (iVar51 != 0) {
    dVar41 = (double)(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898);
    if (NAN(dVar41)) {
      dVar41 = 0.0;
    }
    else if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41) {
      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {
        dVar41 = 0.0;
      }
    }
    else {
      dVar41 = 0.0;
    }
    *(double *)(iVar12 + 0x380) = dVar41;
  }
  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b08);
  if (iVar51 != 0) {
    dVar41 = (double)(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898);
    if (NAN(dVar41)) {
      dVar41 = 0.0;
    }
    else if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41) {
      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {
        dVar41 = 0.0;
      }
    }
    else {
      dVar41 = 0.0;
    }
    *(double *)(iVar12 + 0x378) = dVar41;
  }
  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b1c);
  if (iVar51 != 0) {
    dVar41 = (double)(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898);
    if (NAN(dVar41)) {
      dVar41 = 0.0;
    }
    else if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41) {
      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {
        dVar41 = 0.0;
      }
    }
    else {
      dVar41 = 0.0;
    }
    *(double *)(iVar12 + 0x370) = dVar41;
  }
  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b24);
  if (iVar51 != 0) {
    (**(code **)(pcVar39 + 0x351e54))(iVar51,0x7fffffff,ppiVar35,pdVar31);
  }
  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b2c);
  if (iVar51 != 0) {
    dVar41 = (double)(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898);
    if (NAN(dVar41)) {
      dVar41 = 0.0;
    }
    else if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41) {
      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {
        dVar41 = 0.0;
      }
    }
    else {
      dVar41 = 0.0;
    }
    *(double *)(iVar12 + 0x1b0) = dVar41;
  }
  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b38);
  if (iVar51 != 0) {
    uVar5 = (**(code **)(pcVar39 + 0x3526d4))(0x47,0,iVar51);
    *(undefined4 *)(iVar12 + 0x274) = uVar5;
  }
  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b40);
  if (iVar51 != 0) {
    (**(code **)(pcVar39 + 0x351e54))(iVar51,0x7fffffff,iVar12 + 0xf8,pdVar31);
  }
  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x351920) + -0x3000);
  if (iVar51 != 0) {
    iVar30 = (**(code **)(pcVar39 + 0x3526d4))(0x4c,0,iVar51);
    if (iVar30 == -1) {
      uVar5 = (**(code **)(pcVar39 + 0x352380))(iVar51,0,10);
      *(undefined4 *)(iVar12 + 0x27c) = uVar5;
    }
    else {
      *(int *)(iVar12 + 0x27c) = iVar30;
    }
  }
  (**(code **)(pcVar39 + 0x351d90))(pdVar31);
  *(undefined4 *)(iVar12 + 0x390) = 0xabacadab;
  (**(code **)(pcVar39 + 0x352628))(iVar4);
  if (iStack_894 == **(int **)(pcVar39 + 0x352270)) {
    return;
  }
  pcVar39 = *(code **)(pcVar39 + 0x3520a4);
  (*pcVar39)();
  uVar5 = (**(code **)(pcVar39 + 0x351be4))(0x3c0);
  (**(code **)(pcVar39 + 0x3518b4))(0,uVar5);
  return;
}



int FUN_000a34c4(undefined4 *param_1)

{
  bool bVar1;
  int *piVar2;
  int iVar3;
  undefined4 uVar4;
  double *pdVar5;
  undefined *puVar6;
  int *piVar7;
  uint uVar8;
  undefined4 *puVar9;
  int iVar10;
  int *piVar11;
  int iVar12;
  undefined4 *puVar13;
  double *pdVar14;
  int extraout_v1;
  double *extraout_v1_00;
  int extraout_v1_01;
  int extraout_v1_02;
  double *extraout_v1_03;
  int extraout_v1_04;
  int extraout_v1_05;
  int extraout_v1_06;
  int extraout_v1_07;
  int extraout_v1_08;
  undefined4 *puVar15;
  double *pdVar16;
  int *piVar17;
  uint uVar18;
  int *piVar19;
  undefined8 *puVar20;
  undefined4 *puVar21;
  uint uVar22;
  uint *puVar23;
  int **ppiVar24;
  undefined4 uVar25;
  uint uVar26;
  undefined4 uVar27;
  int iVar28;
  double *pdVar29;
  double *pdVar30;
  int unaff_s2;
  int iVar31;
  uint *puVar32;
  double *unaff_s3;
  int **ppiVar33;
  int *unaff_s4;
  int **ppiVar34;
  undefined1 *puVar35;
  double *unaff_s6;
  uint unaff_s7;
  undefined *puVar36;
  code *pcVar37;
  code *pcVar38;
  double dVar39;
  double dVar40;
  double dVar41;
  float fVar43;
  double dVar42;
  double dVar44;
  double dVar45;
  double dVar46;
  double in_f20_21;
  double dVar47;
  double in_f22_23;
  double in_f24_25;
  double in_f26_27;
  double in_f28_29;
  double in_f30_31;
  int *piVar48;
  int iVar49;
  int iVar50;
  undefined8 uVar51;
  undefined1 auStack_898 [4];
  int iStack_894;
  undefined8 *puStack_88c;
  int iStack_888;
  double *pdStack_884;
  int **ppiStack_880;
  int **ppiStack_87c;
  undefined1 *puStack_878;
  code *pcStack_874;
  int iStack_860;
  code *pcStack_858;
  undefined4 uStack_850;
  code *pcStack_84c;
  int iStack_838;
  int iStack_834;
  code *pcStack_830;
  int *piStack_828;
  int *piStack_824;
  int *piStack_820;
  int *piStack_81c;
  double dStack_818;
  int iStack_810;
  double *pdStack_80c;
  undefined4 uStack_808;
  int **ppiStack_804;
  int **ppiStack_800;
  undefined1 *puStack_7fc;
  int **ppiStack_7f8;
  int iStack_7f4;
  undefined1 auStack_7f0 [92];
  undefined8 *puStack_794;
  double *pdStack_790;
  int *piStack_78c;
  uint *puStack_788;
  double *pdStack_784;
  int iStack_780;
  code *pcStack_77c;
  double dStack_778;
  int iStack_760;
  int *piStack_75c;
  code *pcStack_758;
  double dStack_750;
  double dStack_748;
  double dStack_740;
  double dStack_738;
  int *piStack_72c;
  uint *puStack_728;
  double *pdStack_724;
  double *pdStack_720;
  undefined1 *puStack_71c;
  undefined4 uStack_718;
  undefined1 *puStack_714;
  double *pdStack_710;
  int iStack_70c;
  int iStack_708;
  int iStack_704;
  double dStack_700;
  double dStack_6f8;
  double dStack_6f0;
  double dStack_6e8;
  double dStack_6e0;
  double dStack_6d8;
  undefined1 auStack_6d0 [88];
  undefined8 uStack_678;
  undefined4 uStack_670;
  undefined4 uStack_66c;
  double dStack_668;
  undefined4 uStack_660;
  undefined4 uStack_65c;
  double dStack_658;
  double dStack_650;
  undefined4 uStack_648;
  undefined4 uStack_644;
  double dStack_640;
  undefined8 uStack_638;
  double *pdStack_62c;
  int *piStack_628;
  uint *puStack_624;
  double *pdStack_620;
  int iStack_61c;
  undefined1 *puStack_618;
  double *pdStack_614;
  uint uStack_610;
  code *pcStack_60c;
  double dStack_608;
  double dStack_600;
  double dStack_5f8;
  double dStack_5f0;
  int iStack_5d8;
  code *pcStack_5d0;
  double *pdStack_5c8;
  code *pcStack_5c4;
  undefined4 uStack_5b0;
  uint uStack_5ac;
  code *pcStack_5a8;
  undefined8 uStack_5a0;
  double dStack_598;
  double dStack_590;
  double *pdStack_588;
  int iStack_584;
  double dStack_580;
  double dStack_578;
  int iStack_570;
  undefined1 *puStack_56c;
  double *pdStack_568;
  uint uStack_564;
  double dStack_560;
  double dStack_558;
  uint uStack_550;
  undefined4 uStack_54c;
  double dStack_548;
  double dStack_540;
  uint uStack_538;
  undefined4 uStack_534;
  double dStack_530;
  uint uStack_528;
  undefined4 uStack_524;
  double dStack_520;
  double dStack_518;
  int aiStack_510 [4];
  undefined8 uStack_500;
  int iStack_4f8;
  double dStack_4e8;
  double dStack_4e0;
  double dStack_4d8;
  double dStack_4d0;
  double dStack_4c8;
  double dStack_4c0;
  int iStack_4b4;
  uint uStack_4b0;
  int iStack_4ac;
  double *pdStack_4a8;
  double *pdStack_4a4;
  int iStack_4a0;
  undefined4 *puStack_49c;
  double *pdStack_498;
  uint uStack_494;
  int iStack_490;
  code *pcStack_48c;
  double dStack_488;
  double dStack_480;
  double dStack_478;
  double dStack_470;
  double dStack_468;
  double dStack_460;
  int *piStack_448;
  uint uStack_444;
  code *pcStack_440;
  uint uStack_434;
  uint uStack_430;
  double *pdStack_42c;
  uint uStack_428;
  uint uStack_424;
  uint uStack_420;
  undefined4 uStack_41c;
  int aiStack_418 [10];
  double dStack_3f0;
  double dStack_3e8;
  double dStack_3e0;
  double dStack_3d8;
  double dStack_3d0;
  int iStack_3bc;
  int iStack_3b8;
  uint uStack_3b4;
  double *pdStack_3b0;
  double *pdStack_3ac;
  int *piStack_3a8;
  undefined4 *puStack_3a4;
  double *pdStack_3a0;
  uint uStack_39c;
  int iStack_398;
  code *pcStack_394;
  double dStack_390;
  double dStack_388;
  double dStack_380;
  double dStack_378;
  double dStack_370;
  undefined4 *puStack_358;
  undefined4 uStack_354;
  undefined *puStack_350;
  undefined8 uStack_348;
  double dStack_340;
  double dStack_338;
  double dStack_330;
  uint uStack_328;
  int iStack_324;
  double dStack_320;
  double dStack_318;
  uint uStack_310;
  undefined4 uStack_30c;
  int iStack_308;
  int *piStack_304;
  double dStack_300;
  uint uStack_2f8;
  int iStack_2f4;
  int iStack_2f0;
  double *pdStack_2ec;
  uint uStack_2e8;
  undefined4 uStack_2e4;
  uint uStack_2e0;
  undefined4 uStack_2dc;
  double *pdStack_2d8;
  uint uStack_2d4;
  undefined4 uStack_2d0;
  double *pdStack_2cc;
  uint uStack_2c8;
  undefined4 uStack_2c4;
  int iStack_2c0;
  undefined4 *puStack_2bc;
  double dStack_2b8;
  uint uStack_2b0;
  undefined4 uStack_2ac;
  double *pdStack_2a8;
  undefined1 *puStack_2a4;
  double *pdStack_2a0;
  int iStack_29c;
  undefined4 auStack_298 [18];
  double dStack_250;
  undefined4 auStack_240 [18];
  double dStack_1f8;
  int iStack_1e4;
  double *pdStack_1e0;
  int *piStack_1dc;
  int iStack_1d8;
  double *pdStack_1d4;
  int *piStack_1d0;
  undefined4 *puStack_1cc;
  double *pdStack_1c8;
  uint uStack_1c4;
  int iStack_1c0;
  code *pcStack_1bc;
  double dStack_1b8;
  double dStack_1b0;
  double dStack_1a8;
  double dStack_1a0;
  double dStack_198;
  double dStack_190;
  undefined8 local_178;
  double local_170;
  int *local_168;
  int *local_164;
  int local_110 [4];
  undefined8 local_100;
  int local_f8;
  double local_e8;
  double local_e0;
  double local_d8;
  double local_d0;
  double local_c8;
  double local_c0;
  int local_b8 [10];
  double local_90;
  double local_88;
  double local_80;
  double local_78;
  double local_70;
  int local_5c;
  
  local_5c = *(int *)PTR___stack_chk_guard_003fa248;
  pdVar29 = (double *)param_1[8];
  piVar2 = (int *)(*(code *)PTR_omp_get_num_threads_003fa924)();
  iVar3 = (*(code *)PTR_omp_get_thread_num_003fa520)();
  puVar36 = PTR_LAB_003f98e0;
  iVar10 = (param_1[9] + 1) - (int)pdVar29;
  if (piVar2 == (int *)0x0) {
    trap(7);
  }
  iVar49 = iVar10 / (int)piVar2;
  iVar10 = iVar10 % (int)piVar2;
  if (iVar3 < iVar10) {
    iVar49 = iVar49 + 1;
    iVar10 = 0;
  }
  iVar10 = iVar49 * iVar3 + iVar10;
  pdVar16 = (double *)(iVar49 + iVar10);
  iVar3 = (int)pdVar29 + iVar10;
  if (iVar10 < (int)pdVar16) {
    uVar4 = param_1[5];
    pdVar5 = (double *)param_1[4];
    unaff_s4 = (int *)param_1[2];
    unaff_s7 = param_1[1];
    piVar2 = (int *)*param_1;
    puVar6 = (undefined *)((int)pdVar29 + (int)pdVar16);
    dVar39 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);
    in_f26_27 = *(double *)(PTR_LAB_003f98e0 + 0x4410);
    in_f30_31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);
    do {
      in_f24_25 = (double)iVar3;
      pdVar29 = (double *)param_1[3];
      in_f20_21 = *(double *)param_1[7];
      in_f28_29 = ((double *)param_1[7])[2];
      dVar40 = in_f24_25 * pdVar29[2] + pdVar29[4];
      dVar47 = *pdVar29;
      dVar41 = in_f28_29;
      if (dVar39 <= dVar47) {
        in_f22_23 = -dVar40 / dVar47;
        if (in_f22_23 <= in_f20_21) {
          in_f22_23 = in_f20_21;
        }
        dVar44 = (double)*(int *)(unaff_s7 + 0x18);
        if (*(int *)(unaff_s7 + 0x18) < 0) {
          dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);
        }
        dVar47 = (dVar44 - dVar40) / dVar47;
        if (dVar47 < in_f28_29) {
          dVar41 = dVar47;
        }
LAB_000a3890:
        dVar40 = in_f24_25 * pdVar29[3] + pdVar29[5];
        dVar47 = pdVar29[1];
        if (*(double *)(puVar36 + 0x43c8) <= dVar47) {
          dVar44 = -dVar40 / dVar47;
          if (-dVar40 / dVar47 <= in_f22_23) {
            dVar44 = in_f22_23;
          }
          in_f22_23 = dVar44;
          pdVar16 = *(double **)(unaff_s7 + 0x1c);
          dVar44 = (double)(int)pdVar16;
          if ((int)pdVar16 < 0) {
            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);
            pdVar16 = (double *)PTR_LAB_003f98e0;
          }
          in_f20_21 = (dVar44 - dVar40) / dVar47;
          if (dVar41 <= in_f20_21) {
            in_f20_21 = dVar41;
          }
        }
        else if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {
          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);
          if (*(int *)(unaff_s7 + 0x1c) < 0) {
            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);
          }
          dVar44 = (dVar44 - dVar40) / dVar47;
          if (dVar44 <= in_f22_23) {
            dVar44 = in_f22_23;
          }
          in_f22_23 = dVar44;
          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);
          in_f20_21 = -dVar40 / dVar47;
          if (dVar41 <= -dVar40 / dVar47) {
            in_f20_21 = dVar41;
          }
        }
        else {
          pdVar16 = (double *)puVar36;
          in_f20_21 = in_f28_29;
          if (0.0 <= dVar40) {
            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));
            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {
              uVar26 = (uint)dVar40;
            }
            else {
              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;
            }
            in_f20_21 = dVar41;
            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {
              in_f20_21 = in_f28_29;
            }
          }
        }
        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;
      }
      else {
        if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {
          dVar44 = (double)*(int *)(unaff_s7 + 0x18);
          if (*(int *)(unaff_s7 + 0x18) < 0) {
            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);
          }
          in_f22_23 = (dVar44 - dVar40) / dVar47;
          if (in_f22_23 <= in_f20_21) {
            in_f22_23 = in_f20_21;
          }
          if (-dVar40 / dVar47 < in_f28_29) {
            dVar41 = -dVar40 / dVar47;
          }
          goto LAB_000a3890;
        }
        in_f22_23 = in_f20_21;
        if (0.0 <= dVar40) {
          dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));
          if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {
            uVar26 = (uint)dVar40;
          }
          else {
            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;
          }
          in_f22_23 = in_f20_21;
          in_f28_29 = dVar41;
          if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;
        }
LAB_000a3938:
        in_f28_29 = *(double *)(puVar36 + 0x43d0);
        in_f22_23 = in_f22_23 - in_f28_29;
        dVar41 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);
        unaff_s2 = (int)dVar41;
        in_f28_29 = in_f20_21 + in_f28_29;
        dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);
        dVar40 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);
        dVar41 = (dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408);
        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);
        if (dVar41 < in_f20_21) {
          uVar26 = (uint)dVar41;
        }
        else {
          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;
        }
        local_178 = (double)CONCAT44(1,unaff_s4);
        pdVar16 = pdVar5;
        pdVar29 = (double *)
                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26);
        if (pdVar29 != (double *)0x0) {
          piVar17 = (int *)param_1[6];
          piVar48 = piVar17;
          piVar19 = local_b8;
          do {
            piVar11 = piVar19;
            piVar7 = piVar48;
            iVar28 = piVar7[1];
            iVar49 = piVar7[2];
            iVar10 = piVar7[3];
            *piVar11 = *piVar7;
            piVar11[1] = iVar28;
            piVar11[2] = iVar49;
            piVar11[3] = iVar10;
            piVar48 = piVar7 + 4;
            piVar19 = piVar11 + 4;
          } while (piVar48 != piVar17 + 0x14);
          iVar10 = piVar7[5];
          piVar11[4] = *piVar48;
          piVar11[5] = iVar10;
          piVar48 = piVar17;
          piVar19 = local_110;
          do {
            piVar11 = piVar19;
            piVar7 = piVar48;
            iVar28 = piVar7[1];
            iVar49 = piVar7[2];
            iVar10 = piVar7[3];
            *piVar11 = *piVar7;
            piVar11[1] = iVar28;
            piVar11[2] = iVar49;
            piVar11[3] = iVar10;
            piVar48 = piVar7 + 4;
            piVar19 = piVar11 + 4;
          } while (piVar48 != piVar17 + 0x14);
          iVar10 = piVar7[5];
          piVar11[4] = *piVar48;
          piVar11[5] = iVar10;
          dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);
          unaff_s3 = (double *)PTR_LAB_003f98e0;
          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);
          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);
          for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {
            pdVar16 = (double *)param_1[3];
            local_168 = local_b8;
            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];
            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];
            local_164 = unaff_s4;
            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);
            param_1[10] = iVar10;
            if (iVar10 == 0) break;
            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);
            local_110[0] = 1;
            local_110[1] = 0x17;
            local_f8 = 0x10;
            local_110[2] = 0;
            local_c8 = in_f30_31;
            if (piVar2 != (int *)0x0) {
              local_110[0] = *piVar2;
              local_110[1] = piVar2[1];
              local_100 = *(undefined8 *)(piVar2 + 0x92);
              local_f8 = piVar2[8];
              local_110[2] = piVar2[0xaf];
              if (pdVar29 != (double *)0x0) {
                iVar10 = piVar2[0xb4];
                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);
                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);
                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);
                if (*(int *)(iVar10 + 0x28) != 0) {
                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);
                }
                if (*(int *)(iVar10 + 0x34) != 0) {
                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);
                  local_110[2] = 4;
                }
                if (*(int *)(iVar10 + 0x40) != 0) {
                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);
                }
              }
            }
            dVar40 = local_70 * in_f26_27;
            dVar47 = local_c8 * in_f26_27;
            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;
            if (0.0 <= dVar44) {
              local_c8 = dVar44;
              if (in_f20_21 < dVar44) {
                local_c8 = *(double *)((int)unaff_s3 + 0x4408);
              }
              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);
              if (0.0 <= dVar44) {
                dVar45 = *(double *)((int)unaff_s3 + 0x4408);
              }
              else {
                dVar45 = *(double *)((int)unaff_s3 + 0x4418);
              }
            }
            else {
              local_c8 = 0.0;
              dVar45 = in_f22_23;
            }
            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {
              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;
            }
            else {
              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);
            }
            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;
            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;
            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;
            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;
            if (local_110[1] == 2) {
              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;
            }
            iVar10 = piVar2[0xb4];
            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;
            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;
            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;
            if (*(int *)(iVar10 + 0x28) != 0) {
              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;
            }
            if (*(int *)(iVar10 + 0x34) != 0) {
              if (local_110[2] == 0) {
                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);
              }
              else {
                fVar43 = (float)local_c8;
              }
              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;
            }
            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);
          }
          pdVar16 = pdVar5;
          iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);
          if (iVar10 == 0) {
            param_1[10] = 0;
          }
        }
      }
      iVar3 = iVar3 + 1;
      unaff_s6 = (double *)puVar36;
    } while (iVar3 < (int)puVar6);
  }
  if (local_5c == *(int *)PTR___stack_chk_guard_003fa248) {
    return *(int *)PTR___stack_chk_guard_003fa248;
  }
  pcVar37 = FUN_000a3ef0;
  puVar36 = PTR___stack_chk_fail_003fa07c;
  (*(code *)PTR___stack_chk_fail_003fa07c)();
  puStack_350 = puVar36 + 0x35d9c0;
  iStack_1e4 = **(int **)(puVar36 + 0x356358);
  iVar28 = *(int *)((int)pdVar16 + 0x24);
  pdStack_2a8 = pdVar16;
  pdStack_1e0 = pdVar29;
  piStack_1dc = piVar2;
  iStack_1d8 = unaff_s2;
  pdStack_1d4 = unaff_s3;
  piStack_1d0 = unaff_s4;
  puStack_1cc = param_1;
  pdStack_1c8 = unaff_s6;
  uStack_1c4 = unaff_s7;
  iStack_1c0 = iVar3;
  pcStack_1bc = pcVar37;
  dStack_1b8 = in_f20_21;
  dStack_1b0 = in_f22_23;
  dStack_1a8 = in_f24_25;
  dStack_1a0 = in_f26_27;
  dStack_198 = in_f28_29;
  dStack_190 = in_f30_31;
  iVar10 = (**(code **)(puVar36 + 0x356a34))();
  iVar49 = (**(code **)(puStack_350 + -0x7390))();
  iVar12 = (*(int *)(pdVar16 + 5) + 1) - iVar28;
  if (iVar10 == 0) {
    trap(7);
  }
  iVar50 = iVar12 / iVar10;
  iVar12 = iVar12 % iVar10;
  uVar26 = (uint)(iVar49 < iVar12);
  if (uVar26 != 0) {
    iVar50 = iVar50 + 1;
    iVar12 = 0;
  }
  uVar8 = iVar50 * iVar49 + iVar12;
  pdVar29 = (double *)(iVar50 + uVar8);
  if ((int)uVar8 < (int)pdVar29) {
    iStack_29c = *(int *)((int)pdStack_2a8 + 0x1c);
    in_f28_29 = *pdStack_2a8;
    iStack_2f4 = *(int *)(pdStack_2a8 + 3);
    pdStack_2a0 = *(double **)((int)pdStack_2a8 + 0x14);
    uStack_2d0 = *(undefined4 *)(pdStack_2a8 + 2);
    iStack_324 = *(int *)((int)pdStack_2a8 + 0xc);
    unaff_s6 = *(double **)(pdStack_2a8 + 1);
    iStack_2f0 = iVar28 + uVar8;
    puStack_2a4 = (undefined1 *)(iVar28 + (int)pdVar29);
    unaff_s7 = *(uint *)(puStack_350 + -0x7fd0);
    dStack_320 = *(double *)(unaff_s7 + 0x4408);
    iVar3 = *(int *)(puStack_350 + -0x7fd0);
    dStack_2b8 = *(double *)(iVar3 + 0x43c8);
    uStack_2f8 = uVar8;
    do {
      iVar28 = (**(code **)(puStack_350 + -0x7390))();
      if (*(int *)((int)pdStack_2a8 + 0x2c) != 0) {
        pdVar29 = *(double **)(pdStack_2a8 + 4);
        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);
        dVar39 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21);
        uStack_2d4 = (uint)dVar39;
        dVar39 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21);
        uVar26 = uStack_2d4;
        pdVar16 = (double *)(int)dVar39;
        uStack_354 = uStack_2d0;
        puStack_358 = (undefined4 *)0x1;
        pdVar29 = pdStack_2a0;
        pdStack_2cc = pdVar16;
        iStack_308 = (**(code **)(puStack_350 + -0x724c))
                               (pdStack_2a0,uStack_2d4,iStack_2f0,
                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)));
        if (iStack_308 == 0) {
          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;
        }
        else {
          iVar28 = iVar28 * 4;
          puVar36 = puStack_350;
          if ((int)uVar26 <= (int)pdVar16) {
            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);
            uStack_328 = uStack_2d4;
            pdVar16 = unaff_s6;
            do {
              unaff_s4 = (int *)*puStack_2bc;
              iStack_2c0 = *(int *)(iStack_324 + 0x240);
              unaff_s3 = (double *)*unaff_s4;
              puVar13 = (undefined4 *)unaff_s4[1];
              pdStack_2ec = unaff_s3;
              if ((int)puVar13 < 1) {
                if (iStack_2f4 != 0) {
                  dStack_338 = 0.0;
                  dStack_340 = 0.0;
                  dVar39 = in_f30_31;
LAB_000a4f34:
                  pdVar29 = (double *)*unaff_s4;
                  if (0 < (int)puVar13) goto LAB_000a4f3c;
                  goto LAB_000a4684;
                }
LAB_000a4f94:
                if (*(int *)(iStack_324 + 0x238) == 0) {
                  dStack_338 = 0.0;
                  dStack_340 = 0.0;
                  dVar39 = in_f30_31;
LAB_000a4ec0:
                  iVar10 = *(int *)(puVar36 + -0x7fd0);
                  goto LAB_000a4ec4;
                }
                dStack_338 = 0.0;
                dStack_340 = 0.0;
                dVar39 = in_f30_31;
              }
              else {
                in_f26_27 = (double)iStack_2f0;
                iVar10 = *(int *)(puVar36 + -0x7fd0);
                dVar39 = *(double *)(iVar10 + 0x43d0);
                param_1 = (undefined4 *)0x0;
                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {
                  dStack_338 = 0.0;
                  dStack_340 = 0.0;
                  pdVar29 = unaff_s3;
                  dStack_330 = dVar39;
                  pdStack_2d8 = pdVar16;
                  do {
                    pdVar16 = pdStack_2ec;
                    iVar49 = iStack_2f4;
                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {
                      in_f22_23 = (double)(int)uStack_328;
                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&
                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {
                        iVar28 = *(int *)(pdVar29 + 7);
                        dVar41 = (double)iVar28;
                        if (iVar28 < 0) {
                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);
                        }
                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {
                          iVar28 = 1;
                        }
                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {
                          iVar12 = *(int *)(pdVar29 + 5);
                          iVar50 = (iVar28 + 0xfffffff) * 0x10;
                          pdVar16 = (double *)(iVar12 + iVar50);
                          dVar41 = *(double *)(iVar10 + 0x43d0);
                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {
                            dStack_318 = *(double *)(unaff_s7 + 0x4408);
                            iVar31 = *(int *)(puVar36 + -0x7fcc);
                            dStack_300 = *(double *)(iVar31 + 0x2a8);
                            piStack_304 = unaff_s4;
                            do {
                              iVar50 = iVar50 + 0x10;
                              dVar40 = dStack_340;
                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41
                                 ) {
                                if (in_f26_27 != pdVar29[4]) {
                                  pdVar29[4] = in_f26_27;
                                  *(int *)(pdVar29 + 7) = iVar28;
                                }
                                dVar44 = pdVar16[2] - *pdVar16;
                                dVar42 = pdVar16[3] - pdVar16[1];
                                dVar47 = in_f22_23 - *pdVar16;
                                dVar40 = in_f26_27 - pdVar16[1];
                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;
                                if (0.0 < dVar45) {
                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;
                                  if (dVar46 <= dVar45) {
                                    dVar47 = in_f22_23 - pdVar16[2];
                                    dVar40 = in_f26_27 - pdVar16[3];
                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;
                                  }
                                  else {
                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {
                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;
                                    }
                                    else {
                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);
                                    }
                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +
                                                *(double *)(iVar3 + 0x43c8);
                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;
                                  }
                                }
                                else {
                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;
                                }
                                dVar40 = dStack_338;
                                if (*(int *)((int)pdVar29 + 0x34) == 0) {
                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {
                                    uStack_348 = 0.0;
                                  }
                                  else {
                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;
                                    if (in_f20_21 <= dVar47 * dVar47) {
                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +
                                               *(double *)(iVar31 + 0x2a8);
                                      if (dVar40 * dVar40 < in_f20_21) {
                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);
                                        uStack_2ac = SUB84(dVar40,0);
                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;
                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);
                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&
                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {
                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);
                                          puVar36 = puStack_350;
                                        }
                                        dVar40 = ((uStack_348 - in_f28_29) -
                                                 *(double *)(iVar10 + 0x43d0)) -
                                                 *(double *)(iVar31 + 0x2a8);
                                        dVar40 = dVar40 * dVar40;
                                        if (dVar40 <= dStack_338) {
                                          dVar40 = dStack_338;
                                        }
                                      }
                                      else {
                                        uStack_348 = 0.0;
                                        dVar40 = *(double *)(unaff_s7 + 0x4408);
                                      }
                                    }
                                    else {
                                      uStack_348 = 0.0;
                                    }
                                  }
                                }
                                else {
                                  uStack_348 = 0.0;
                                }
                                dStack_338 = dVar40;
                                dVar40 = dStack_340;
                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&
                                   (dStack_340 < dStack_318)) {
                                  if (0.0 < in_f20_21) {
                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;
                                    uStack_30c = uStack_348._4_4_;
                                    dVar40 = *(double *)(unaff_s7 + 0x4408);
                                    if (ABS(uStack_348) < dStack_2b8) {
                                      dVar40 = in_f20_21 - dVar40;
                                      uStack_2c4 = SUB84(dVar40,0);
                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;
                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);
                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||
                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {
                                        dVar40 = *(double *)(unaff_s7 + 0x4408);
                                      }
                                      else {
                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);
                                        dVar40 = *(double *)(unaff_s7 + 0x4408);
                                        puVar36 = puStack_350;
                                      }
                                    }
                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);
                                    if (dVar40 <= dStack_340) {
                                      dVar40 = dStack_340;
                                    }
                                  }
                                  else {
                                    dVar40 = *(double *)(unaff_s7 + 0x4408);
                                  }
                                }
                              }
                              dStack_340 = dVar40;
                              iVar28 = iVar28 + 1;
                              unaff_s4 = piStack_304;
                              in_f24_25 = dVar41;
                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;
                              iVar12 = *(int *)(pdVar29 + 5);
                              pdVar16 = (double *)(iVar12 + iVar50);
                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <
                                     in_f26_27);
                          }
                        }
                      }
                    }
                    else {
                      if (puVar13 <= param_1) {
                        iVar3 = (**(code **)(puVar36 + -0x7290))
                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,
                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,
                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);
                        return iVar3;
                      }
                      iVar49 = *unaff_s4 - (int)pdStack_2ec;
                      uVar4 = (**(code **)(puVar36 + -0x78d8))
                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));
                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;
                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);
                      unaff_s4[1] = (int)puVar13;
                      puVar36 = puStack_350;
                      if (param_1 < puVar13) {
                        (**(code **)(puStack_350 + -0x7948))
                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),
                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,
                                   ((int)puVar13 - (int)param_1) * 0x40);
                        puVar36 = puStack_350;
                      }
                    }
                    param_1 = (undefined4 *)((int)param_1 + 1);
                    unaff_s3 = pdVar29 + 8;
                    puVar13 = (undefined4 *)unaff_s4[1];
                  } while (((int)param_1 < (int)puVar13) &&
                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,
                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));
                  pdVar16 = pdStack_2d8;
                  if (iStack_2f4 != 0) {
                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;
                    goto LAB_000a4528;
                  }
                  if (*(int *)(iStack_324 + 0x238) == 0) {
                    dStack_340 = 0.0;
                    goto LAB_000a4ec0;
                  }
                  dStack_340 = 0.0;
                  goto LAB_000a46d8;
                }
                if (iStack_2f4 == 0) goto LAB_000a4f94;
                pdVar29 = (double *)*unaff_s4;
                dStack_338 = 0.0;
                dStack_340 = 0.0;
                dVar39 = in_f30_31;
LAB_000a4f3c:
                dVar41 = (double)iStack_2f0;
                puVar21 = (undefined4 *)0x0;
                if (pdVar29[1] < dVar41) {
                  uVar26 = 0;
                  do {
                    if ((dVar41 <= pdVar29[3]) &&
                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {
                      iVar10 = -1;
                      if (dVar40 <= pdVar29[2]) {
                        iVar10 = *(int *)(pdVar29 + 7);
                        dVar47 = (double)iVar10;
                        if (iVar10 < 0) {
                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);
                        }
                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {
                          iVar10 = 1;
                        }
                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;
                        if (iVar10 < iVar49) {
                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;
                          dVar47 = *(double *)(iVar28 + 8);
                          while (dVar47 < dVar41) {
                            iVar10 = iVar10 + 1;
                            if (iVar49 <= iVar10) break;
                            dVar47 = *(double *)(iVar28 + 0x18);
                            iVar28 = iVar28 + 0x10;
                          }
                        }
                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);
                        iVar10 = -1;
                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=
                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {
                          if (*(int *)(pdVar29 + 6) != 0) {
                            iVar10 = 1;
                          }
                          uVar26 = uVar26 + iVar10;
                        }
                      }
                      else {
                        if (*(int *)(pdVar29 + 6) != 0) {
                          iVar10 = 1;
                        }
                        uVar26 = uVar26 + iVar10;
                      }
                    }
                    puVar21 = (undefined4 *)((int)puVar21 + 1);
                  } while ((puVar21 != puVar13) &&
                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));
                  if (iStack_2c0 != 2) {
                    if ((int)uVar26 < 0) {
                      uVar26 = -uVar26;
                    }
                    if ((uVar26 & 1) != 0) goto LAB_000a4528;
                    goto LAB_000a4684;
                  }
                  if (uVar26 != 0) {
LAB_000a4528:
                    dStack_340 = *(double *)(unaff_s7 + 0x4408);
                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;
                    goto LAB_000a46d8;
                  }
                  iVar10 = *(int *)(iStack_324 + 0x238);
                }
                else {
LAB_000a4684:
                  iVar10 = *(int *)(iStack_324 + 0x238);
                }
                if (iVar10 == 0) {
                  iVar10 = *(int *)(puVar36 + -0x7fd0);
                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);
                  dStack_340 = *(double *)(unaff_s7 + 0x4408);
                  if (bVar1) {
                    dStack_340 = 0.0;
                    goto LAB_000a4ec0;
                  }
LAB_000a4ec4:
                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);
                  dStack_338 = *(double *)(unaff_s7 + 0x4408);
                  if (bVar1) {
                    dStack_338 = 0.0;
                  }
                }
              }
LAB_000a46d8:
              uVar26 = uStack_2f8;
              iVar28 = uStack_328 - uStack_2d4;
              iVar10 = *(int *)(iStack_324 + 0x1a8);
              if (iVar10 == 0) {
                puVar13 = (undefined4 *)(iStack_324 + 0x48);
                puVar21 = auStack_298;
                do {
                  puVar15 = puVar21;
                  puVar9 = puVar13;
                  uVar27 = puVar9[1];
                  uVar25 = puVar9[2];
                  uVar4 = puVar9[3];
                  *puVar15 = *puVar9;
                  puVar15[1] = uVar27;
                  puVar15[2] = uVar25;
                  puVar15[3] = uVar4;
                  puVar13 = puVar9 + 4;
                  puVar21 = puVar15 + 4;
                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));
                uVar4 = puVar9[5];
                puVar15[4] = *puVar13;
                puVar15[5] = uVar4;
              }
              else {
                uStack_354 = uStack_2d0;
                puStack_358 = auStack_298;
                (**(code **)(puVar36 + -0x747c))
                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),
                           uStack_2f8 + *(int *)(iVar10 + 0x29c));
                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);
                pdVar29 = (double *)(iStack_324 + 0x398);
                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;
                puVar36 = puStack_350;
                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {
                  dStack_250 = dStack_250 *
                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);
                }
              }
              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {
                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);
              }
              else {
                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);
              }
              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);
              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);
              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;
              in_f30_31 = dVar39;
              if (0 < *(int *)(pdVar16 + 0x58)) {
                iVar49 = 0;
                iVar10 = 0;
                in_f26_27 = 0.0;
                in_f20_21 = *(double *)(unaff_s7 + 0x4408);
                do {
                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);
                  uStack_348 = dVar41;
                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {
                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                    iVar3 = (*(code *)(puVar36 +
                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()
                    ;
                    return iVar3;
                  }
                  iVar10 = iVar10 + 1;
                  iVar49 = iVar49 + 0xc;
                  in_f22_23 = in_f20_21;
                  in_f24_25 = in_f20_21;
                  in_f30_31 = in_f20_21;
                } while (iVar10 < *(int *)(pdVar16 + 0x58));
              }
              iVar10 = *(int *)(iStack_324 + 0x1ac);
              if (iVar10 == 0) {
                puVar13 = (undefined4 *)(iStack_324 + 0xa0);
                puVar21 = auStack_240;
                do {
                  puVar15 = puVar21;
                  puVar9 = puVar13;
                  uVar27 = puVar9[1];
                  uVar25 = puVar9[2];
                  uVar4 = puVar9[3];
                  *puVar15 = *puVar9;
                  puVar15[1] = uVar27;
                  puVar15[2] = uVar25;
                  puVar15[3] = uVar4;
                  puVar13 = puVar9 + 4;
                  puVar21 = puVar15 + 4;
                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));
                uVar4 = puVar9[5];
                puVar15[4] = *puVar13;
                puVar15[5] = uVar4;
              }
              else {
                uStack_354 = uStack_2d0;
                puStack_358 = auStack_240;
                (**(code **)(puVar36 + -0x747c))
                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),
                           uVar26 + *(int *)(iVar10 + 0x29c));
                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);
                pdVar29 = (double *)(iStack_324 + 0x3a0);
                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;
                puVar36 = puStack_350;
                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {
                  dStack_1f8 = dStack_1f8 *
                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);
                }
              }
              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {
                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);
              }
              else {
                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);
              }
              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);
              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);
              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;
              iVar10 = *(int *)(pdVar16 + 0x58);
              if (0 < iVar10) {
                iVar12 = 0;
                iVar49 = 0;
                in_f30_31 = 0.0;
                in_f20_21 = *(double *)(unaff_s7 + 0x4408);
                do {
                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);
                  uStack_348 = dVar39;
                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {
                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                    iVar3 = (*(code *)(puVar36 +
                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))
                                      (in_f20_21,
                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));
                    return iVar3;
                  }
                  iVar49 = iVar49 + 1;
                  iVar10 = *(int *)(pdVar16 + 0x58);
                  iVar12 = iVar12 + 0xc;
                  in_f22_23 = in_f20_21;
                  in_f24_25 = in_f20_21;
                  in_f26_27 = in_f20_21;
                } while (iVar49 < iVar10);
              }
              iStack_308 = iStack_308 + iVar10 * 4;
              uStack_328 = uStack_328 + 1;
              unaff_s6 = pdVar16;
            } while ((int)uStack_328 <= (int)pdStack_2cc);
          }
          pdVar29 = pdStack_2a0;
          iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);
          if (iVar10 == 0) {
            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;
          }
        }
      }
      iStack_2f0 = iStack_2f0 + 1;
      uStack_2f8 = uStack_2f8 + 1;
    } while (iStack_2f0 < (int)puStack_2a4);
  }
  if (iStack_1e4 == **(int **)(puStack_350 + -0x7668)) {
    return **(int **)(puStack_350 + -0x7668);
  }
  pcVar37 = *(code **)(puStack_350 + -0x7834);
  pcVar38 = FUN_000a5040;
  (*pcVar37)();
  pcStack_440 = pcVar37 + 0x35c870;
  iStack_3bc = **(int **)(pcVar37 + 0x355208);
  uVar8 = *(uint *)(pdVar29 + 3);
  pdVar5 = pdVar29;
  uStack_428 = uVar8;
  iStack_3b8 = iVar28;
  uStack_3b4 = uVar26;
  pdStack_3b0 = pdVar16;
  pdStack_3ac = unaff_s3;
  piStack_3a8 = unaff_s4;
  puStack_3a4 = param_1;
  pdStack_3a0 = unaff_s6;
  uStack_39c = unaff_s7;
  iStack_398 = iVar3;
  pcStack_394 = pcVar38;
  dStack_390 = in_f20_21;
  dStack_388 = in_f22_23;
  dStack_380 = in_f24_25;
  dStack_378 = in_f26_27;
  dStack_370 = in_f28_29;
  iVar3 = (**(code **)(pcVar37 + 0x3558e4))();
  iVar10 = (**(code **)(pcStack_440 + -0x7390))();
  iVar49 = (*(uint *)((int)pdVar29 + 0x1c) + 1) - uVar8;
  if (iVar3 == 0) {
    trap(7);
  }
  iVar28 = iVar49 / iVar3;
  iVar49 = iVar49 % iVar3;
  uVar26 = (uint)(iVar10 < iVar49);
  if (uVar26 != 0) {
    iVar28 = iVar28 + 1;
    iVar49 = 0;
  }
  iVar49 = iVar28 * iVar10 + iVar49;
  iVar28 = iVar28 + iVar49;
  iVar3 = *(int *)(pcStack_440 + -0x7fd0);
  pcVar37 = pcStack_440;
  if (iVar49 < iVar28) {
    pdStack_42c = *(double **)(pdVar29 + 2);
    uStack_430 = *(uint *)((int)pdVar29 + 0xc);
    unaff_s6 = *(double **)(pdVar29 + 1);
    uStack_424 = *(uint *)((int)pdVar29 + 4);
    unaff_s7 = *(uint *)pdVar29;
    iVar49 = uStack_428 + iVar49;
    iVar28 = uStack_428 + iVar28;
    in_f22_23 = *(double *)(iVar3 + 0x43d0);
    in_f26_27 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8);
    in_f28_29 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410);
    do {
      in_f20_21 = *(double *)(iVar3 + 0x43d0);
      if (*(uint *)(pdVar29 + 4) != 0) {
        pdVar16 = *(double **)((int)pdVar29 + 0x14);
        dVar39 = (double)(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21);
        uStack_434 = (uint)dVar39;
        dVar39 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21);
        uVar26 = uStack_434;
        param_1 = (undefined4 *)(int)dVar39;
        uStack_444 = uStack_430;
        piStack_448 = (int *)0x1;
        pdVar5 = pdStack_42c;
        pdVar16 = (double *)
                  (**(code **)(pcStack_440 + -0x724c))
                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434));
        if (pdVar16 == (double *)0x0) {
          *(uint *)(pdVar29 + 4) = 0;
          pcVar37 = pcStack_440;
        }
        else {
          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);
          bVar1 = (int)uVar26 <= (int)param_1;
          uVar26 = uStack_434;
          if (bVar1) {
            in_f20_21 = *(double *)(iVar3 + 0x43d0);
            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),
                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));
            do {
              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);
              if (((int)dVar39 == uVar26) &&
                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),
                 iVar49 == (int)dVar39)) {
                iVar10 = *(int *)(uStack_424 + 0x1a8);
                if (iVar10 == 0) {
                  piVar2 = (int *)(uStack_424 + 0x48);
                  piVar48 = aiStack_418;
                  do {
                    piVar17 = piVar48;
                    piVar19 = piVar2;
                    iVar50 = piVar19[1];
                    iVar12 = piVar19[2];
                    iVar10 = piVar19[3];
                    *piVar17 = *piVar19;
                    piVar17[1] = iVar50;
                    piVar17[2] = iVar12;
                    piVar17[3] = iVar10;
                    piVar2 = piVar19 + 4;
                    piVar48 = piVar17 + 4;
                  } while (piVar2 != (int *)(uStack_424 + 0x98));
                  iVar10 = piVar19[5];
                  piVar17[4] = *piVar2;
                  piVar17[5] = iVar10;
                }
                else {
                  uStack_444 = uStack_430;
                  piStack_448 = aiStack_418;
                  (**(code **)(pcStack_440 + -0x747c))
                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),
                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));
                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);
                  pdVar5 = (double *)(uStack_424 + 0x398);
                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;
                  if (in_f26_27 <= ABS(*pdVar5)) {
                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;
                  }
                }
                iVar10 = *(int *)(unaff_s7 + 0x2d0);
                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;
                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;
                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;
                if (*(int *)(iVar10 + 0x28) != 0) {
                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;
                }
                if (*(int *)(iVar10 + 0x34) != 0) {
                  if (aiStack_418[2] == 0) {
                    fVar43 = SUB84(in_f24_25,0);
                  }
                  else {
                    fVar43 = (float)dStack_3d0;
                  }
                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;
                }
              }
              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);
              uVar26 = uVar26 + 1;
            } while ((int)uVar26 <= (int)param_1);
          }
          pdVar5 = pdStack_42c;
          iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);
          pcVar37 = pcStack_440;
          if (iVar10 == 0) {
            *(uint *)(pdVar29 + 4) = 0;
          }
        }
      }
      iVar49 = iVar49 + 1;
    } while (iVar49 < iVar28);
  }
  if (iStack_3bc == **(int **)(pcVar37 + -0x7668)) {
    return **(int **)(pcVar37 + -0x7668);
  }
  pcVar37 = *(code **)(pcVar37 + -0x7834);
  pcVar38 = FUN_000a549c;
  (*pcVar37)();
  pcStack_5a8 = pcVar37 + 0x35c414;
  iStack_4b4 = **(int **)(pcVar37 + 0x354dac);
  puVar32 = *(uint **)(pdVar5 + 4);
  pdVar30 = (double *)puVar32[3];
  pdVar14 = pdVar5;
  uStack_4b0 = uVar26;
  iStack_4ac = iVar49;
  pdStack_4a8 = pdVar16;
  pdStack_4a4 = pdVar29;
  iStack_4a0 = iVar28;
  puStack_49c = param_1;
  pdStack_498 = unaff_s6;
  uStack_494 = unaff_s7;
  iStack_490 = iVar3;
  pcStack_48c = pcVar38;
  dStack_488 = in_f20_21;
  dStack_480 = in_f22_23;
  dStack_478 = in_f24_25;
  dStack_470 = in_f26_27;
  dStack_468 = in_f28_29;
  dStack_460 = in_f30_31;
  iVar3 = (**(code **)(pcVar37 + 0x355488))();
  iVar10 = (**(code **)(pcStack_5a8 + -0x7390))();
  if (iVar3 == 0) {
    trap(7);
  }
  iVar49 = (int)(puVar32[1] - (int)pdVar30) / iVar3;
  piVar48 = (int *)((int)(puVar32[1] - (int)pdVar30) % iVar3);
  piVar2 = piVar48;
  if (iVar10 < (int)piVar48) {
    iVar49 = iVar49 + 1;
    piVar2 = (int *)0x0;
  }
  piVar2 = (int *)(iVar49 * iVar10 + (int)piVar2);
  puVar35 = (undefined1 *)((int)pdVar30 + (int)piVar2);
  pcVar37 = pcStack_5a8;
  if ((int)piVar2 < iVar49 + (int)piVar2) {
    dStack_580 = *pdVar5;
    pdStack_588 = *(double **)(pdVar5 + 3);
    puVar32 = *(uint **)((int)pdVar5 + 0x14);
    pdStack_568 = *(double **)(pdVar5 + 2);
    uStack_564 = *(uint *)((int)pdVar5 + 0xc);
    piVar48 = *(int **)(pdVar5 + 1);
    puStack_56c = (undefined1 *)((int)pdVar30 + iVar49 + (int)piVar2);
    dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);
    if (dStack_580 < 0.0) {
      dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
    }
    iStack_570 = *(int *)(pcStack_5a8 + -0x7fd0);
    dStack_598 = *(double *)(iStack_570 + 0x4a48);
    iStack_584 = *(int *)(pcStack_5a8 + -0x7fd0);
    dStack_560 = *(double *)(iStack_584 + 0x43d0);
    unaff_s6 = *(double **)(pcStack_5a8 + -0x7fd0);
    dStack_548 = unaff_s6[0x879];
    do {
      if (*(uint *)((int)pdVar5 + 0x24) != 0) {
        uStack_5ac = uStack_564;
        uStack_5b0 = 1;
        pdVar14 = pdStack_568;
        pdVar30 = (double *)(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6]);
        if (pdVar30 == (double *)0x0) {
          *(uint *)((int)pdVar5 + 0x24) = 0;
          pcVar37 = pcStack_5a8;
        }
        else {
          piVar17 = *(int **)((int)pdVar5 + 0x1c);
          piVar2 = piVar17;
          piVar19 = aiStack_510;
          do {
            piVar11 = piVar19;
            piVar7 = piVar2;
            iVar49 = piVar7[1];
            iVar10 = piVar7[2];
            iVar3 = piVar7[3];
            *piVar11 = *piVar7;
            piVar11[1] = iVar49;
            piVar11[2] = iVar10;
            piVar11[3] = iVar3;
            piVar2 = piVar7 + 4;
            piVar19 = piVar11 + 4;
          } while (piVar2 != piVar17 + 0x14);
          iVar10 = *piVar2;
          iVar3 = piVar7[5];
          *piVar19 = iVar10;
          piVar11[5] = iVar3;
          in_f20_21 = *(double *)(piVar17 + 10);
          in_f22_23 = *(double *)(piVar17 + 0xc);
          in_f24_25 = *(double *)(piVar17 + 0xe);
          dStack_590 = *(double *)(piVar17 + 0x10);
          dVar39 = *(double *)(piVar17 + 0x12);
          if (*puVar32 < 2) {
            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);
            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);
            dStack_540 = 0.0 - *(double *)(puVar32 + 6);
            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);
            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;
            dStack_558 = SQRT(dVar41);
            if (0.0 <= dVar41) {
              dVar41 = dVar40 * dVar40;
            }
            else {
              (**(code **)(pcStack_5a8 + -0x7418))();
              dVar41 = dVar40 * dVar40;
            }
            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;
            in_f26_27 = SQRT(dVar41);
            if (dVar41 < 0.0) {
              (**(code **)(pcStack_5a8 + -0x7418))();
            }
            in_f26_27 = dStack_558 * in_f26_27;
            if (0.0 <= in_f26_27) {
              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);
            }
            else {
              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
            }
            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {
              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;
            }
            else {
              in_f26_27 = unaff_s6[0x879];
              dVar41 = dVar41 / in_f26_27;
            }
            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;
LAB_000a56c0:
            uVar26 = *puVar32;
LAB_000a56c4:
            if (uVar26 != 2) {
              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {
                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;
              }
              else {
                dVar41 = dStack_578 / unaff_s6[0x879];
              }
              uStack_5a0 = uStack_5a0 * dVar41;
            }
          }
          else {
            if (*puVar32 != 2) {
              uStack_5a0 = 0.0;
              goto LAB_000a56c0;
            }
            if (puVar32[0x10] != 3) {
              in_f26_27 = 0.0;
              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);
              (**(code **)(pcStack_5a8 + -0x78e0))
                        ((*(double *)(puVar32 + 0x1c) *
                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /
                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,
                         &dStack_518,&dStack_520);
              dVar41 = *(double *)(puVar32 + 0x16);
              if (in_f26_27 <= dVar41) {
                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);
              }
              else {
                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
              }
              if (unaff_s6[0x879] <= dVar41 * dVar47) {
                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;
              }
              else {
                dVar47 = dVar47 / unaff_s6[0x879];
              }
              dVar47 = (dVar40 * dStack_520 +
                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;
              dVar41 = *(double *)(puVar32 + 0x18);
              if (0.0 <= dVar41) {
                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);
              }
              else {
                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
              }
              if (unaff_s6[0x879] <= dVar41 * dVar44) {
                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;
              }
              else {
                dVar44 = dVar44 / unaff_s6[0x879];
              }
              dVar44 = (dVar40 * dStack_518 -
                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;
              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;
              uStack_5a0 = SQRT(dVar41);
              if (0.0 <= dVar41) goto LAB_000a5700;
              (**(code **)(pcStack_5a8 + -0x7418))();
              uVar26 = *puVar32;
              goto LAB_000a56c4;
            }
            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +
                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *
                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));
            uStack_5a0 = SQRT(dVar41);
            if (dVar41 < 0.0) {
              (**(code **)(pcStack_5a8 + -0x7418))();
              uVar26 = *puVar32;
              goto LAB_000a56c4;
            }
          }
LAB_000a5700:
          iVar28 = (*(int **)(pdVar5 + 4))[2];
          pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);
          if (iVar28 < **(int **)(pdVar5 + 4)) {
            dStack_540 = pdVar29[0x881];
            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);
            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);
            do {
              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);
              aiStack_510[0] = 1;
              aiStack_510[1] = 0x17;
              iStack_4f8 = 0x10;
              aiStack_510[2] = 0;
              dStack_4c8 = dStack_598;
              if (piVar48 != (int *)0x0) {
                aiStack_510[0] = *piVar48;
                aiStack_510[1] = piVar48[1];
                uStack_500 = *(undefined8 *)(piVar48 + 0x92);
                iStack_4f8 = piVar48[8];
                aiStack_510[2] = piVar48[0xaf];
                if (pdVar30 != (double *)0x0) {
                  iVar3 = piVar48[0xb4];
                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);
                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);
                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);
                  if (*(int *)(iVar3 + 0x28) != 0) {
                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);
                  }
                  if (*(int *)(iVar3 + 0x34) != 0) {
                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);
                    aiStack_510[2] = 4;
                  }
                  if (*(int *)(iVar3 + 0x40) != 0) {
                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);
                  }
                }
              }
              unaff_s7 = puVar32[0x10];
              if (unaff_s7 == 2) {
                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);
                if (((int)dVar39 == iVar28) &&
                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))
                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),
                   puVar35 == (undefined1 *)(int)dVar39)) {
LAB_000a63a4:
                  if (uStack_5a0 < 0.0) {
                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;
                    uStack_54c = uStack_5a0._4_4_;
                    uStack_5a0 = -uStack_5a0;
                  }
LAB_000a63bc:
                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);
                }
                else {
                  if (*puVar32 < 2) {
                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);
                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);
                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);
                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);
                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;
                    uStack_5a0 = SQRT(dVar39);
                    if (0.0 <= dVar39) {
                      dVar39 = dVar40 * dVar40;
                    }
                    else {
                      (**(code **)(pcStack_5a8 + -0x7418))();
                      dVar39 = dVar40 * dVar40;
                    }
                    dVar39 = dVar44 * dVar44 + dVar39;
                    dVar42 = SQRT(dVar39);
                    if (dVar39 < 0.0) {
                      (**(code **)(pcStack_5a8 + -0x7418))();
                    }
                    dVar42 = uStack_5a0 * dVar42;
                    if (0.0 <= dVar42) {
                      in_f26_27 = pdVar29[0x881];
                    }
                    else {
                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                    }
                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {
                      in_f26_27 = pdVar29[0x881] / dVar42;
                    }
                    else {
                      in_f26_27 = in_f26_27 / unaff_s6[0x879];
                    }
                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;
                    uStack_5a0 = in_f26_27 * uStack_5a0;
LAB_000a6368:
                    if (*puVar32 != 2) {
LAB_000a6378:
                      if (dStack_548 <= dStack_580 * dStack_578) {
                        dVar39 = dStack_540 / dStack_580;
                      }
                      else {
                        dVar39 = dStack_578 / unaff_s6[0x879];
                      }
                      uStack_5a0 = uStack_5a0 * dVar39;
                    }
                    goto LAB_000a63a4;
                  }
                  if (*puVar32 != 2) {
                    uStack_5a0 = 0.0;
                    goto LAB_000a6368;
                  }
                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);
                  (**(code **)(pcStack_5a8 + -0x78e0))
                            ((*(double *)(puVar32 + 0x1c) *
                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /
                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));
                  dVar39 = *(double *)(puVar32 + 0x16);
                  if (0.0 <= dVar39) {
                    dVar47 = pdVar29[0x881];
                  }
                  else {
                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                  }
                  if (unaff_s6[0x879] <= dVar39 * dVar47) {
                    dVar47 = pdVar29[0x881] / dVar39;
                  }
                  else {
                    dVar47 = dVar47 / unaff_s6[0x879];
                  }
                  dVar39 = *(double *)(puVar32 + 0x18);
                  dVar47 = (dVar40 * dStack_520 +
                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *
                           dVar47;
                  if (0.0 <= dVar39) {
                    dVar44 = pdVar29[0x881];
                  }
                  else {
                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                  }
                  if (unaff_s6[0x879] <= dVar39 * dVar44) {
                    dVar44 = pdVar29[0x881] / dVar39;
                  }
                  else {
                    dVar44 = dVar44 / unaff_s6[0x879];
                  }
                  dVar44 = (dVar40 * dStack_518 -
                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *
                           dVar44;
                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;
                  uStack_5a0 = SQRT(dVar39);
                  if (0.0 <= dVar39) goto LAB_000a63bc;
                  (**(code **)(pcStack_5a8 + -0x7418))();
                  if (*puVar32 != 2) goto LAB_000a6378;
                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);
                }
                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))
                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));
                if ((int)dVar39 == 0) {
                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))
                                                 (uStack_5a0,pdVar29[0x881]);
                }
                else {
                  dVar39 = pdVar29[0x881];
                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);
                  uStack_5a0 = dVar39 - uStack_5a0;
                }
                uVar26 = puVar32[0xf];
                if (0 < (int)uVar26) {
                  uVar8 = puVar32[0xe];
                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {
                    pdVar16 = (double *)(uVar8 + 0xb8);
                    uVar18 = 0;
                    do {
                      uVar22 = uVar18;
                      uVar18 = uVar22 + 1;
                      if (uVar18 == uVar26) {
                        if (uVar18 == 0) goto LAB_000a6248;
                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;
                        in_f20_21 = *(double *)(iVar3 + 0x28);
                        in_f22_23 = *(double *)(iVar3 + 0x30);
                        in_f24_25 = *(double *)(iVar3 + 0x38);
                        dStack_590 = *(double *)(iVar3 + 0x40);
                        dVar39 = *(double *)(iVar3 + 0x48);
                        goto LAB_000a5af8;
                      }
                      dVar39 = *pdVar16;
                      pdVar16 = pdVar16 + 0xc;
                    } while (dVar39 <= uStack_5a0);
                    if (uVar18 != 0) {
                      iVar10 = uVar8 + uVar22 * 0x60;
                      iVar3 = uVar8 + uVar18 * 0x60;
                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /
                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));
                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *
                               *(double *)(dStack_558._0_4_ + 0x4410);
                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *
                               *(double *)(dStack_558._0_4_ + 0x4410);
                      dVar44 = dVar47 + dVar40;
                      if (0.0 <= dVar44) {
                        if (pdVar29[0x881] < dVar44) {
                          dVar44 = pdVar29[0x881];
                          goto LAB_000a6e58;
                        }
                        if (0.0 <= dVar44) {
                          dVar39 = dVar44;
                          if (pdVar29[0x881] < dVar44) {
                            dVar39 = pdVar29[0x881];
                          }
                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);
                          if (dVar44 < 0.0) {
                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                          }
                          else {
                            dVar45 = pdVar29[0x881];
                          }
                        }
                        else {
                          dVar39 = 0.0;
                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                        }
                      }
                      else {
                        dVar44 = 0.0;
LAB_000a6e58:
                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);
                        dVar45 = pdVar29[0x881];
                      }
                      if (unaff_s6[0x879] <= dVar45 * dVar44) {
                        dVar45 = pdVar29[0x881] / dVar44;
                      }
                      else {
                        dVar45 = dVar45 / unaff_s6[0x879];
                      }
                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +
                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;
                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +
                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;
                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +
                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;
                      if (*(int *)(iVar3 + 4) == 2) {
                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +
                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;
                      }
                      goto LAB_000a5af8;
                    }
                  }
                }
LAB_000a6248:
                uVar26 = puVar32[0xe];
                in_f20_21 = *(double *)(uVar26 + 0x28);
                in_f22_23 = *(double *)(uVar26 + 0x30);
                in_f24_25 = *(double *)(uVar26 + 0x38);
                dStack_590 = *(double *)(uVar26 + 0x40);
                dVar39 = *(double *)(uVar26 + 0x48);
              }
              else if (unaff_s7 < 2) {
                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))
                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));
                if (((int)dVar39 == iVar28) &&
                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))
                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),
                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;
                if (*puVar32 < 2) {
                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);
                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);
                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);
                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);
                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;
                  uStack_5a0 = SQRT(dVar39);
                  if (0.0 <= dVar39) {
                    dVar39 = dVar40 * dVar40;
                  }
                  else {
                    (**(code **)(pcStack_5a8 + -0x7418))();
                    dVar39 = dVar40 * dVar40;
                  }
                  dVar39 = dVar44 * dVar44 + dVar39;
                  dVar42 = SQRT(dVar39);
                  if (dVar39 < 0.0) {
                    (**(code **)(pcStack_5a8 + -0x7418))();
                  }
                  dVar42 = uStack_5a0 * dVar42;
                  if (0.0 <= dVar42) {
                    in_f26_27 = pdVar29[0x881];
                  }
                  else {
                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                  }
                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {
                    in_f26_27 = pdVar29[0x881] / dVar42;
                  }
                  else {
                    in_f26_27 = in_f26_27 / unaff_s6[0x879];
                  }
                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;
                  uStack_5a0 = in_f26_27 * uStack_5a0;
LAB_000a6908:
                  uVar26 = *puVar32;
LAB_000a690c:
                  if (uVar26 != 2) {
                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {
                      dVar39 = pdVar29[0x881] / dStack_580;
                    }
                    else {
                      dVar39 = dStack_578 / unaff_s6[0x879];
                    }
                    uStack_5a0 = uStack_5a0 * dVar39;
                  }
                }
                else {
                  if (*puVar32 != 2) {
                    uStack_5a0 = 0.0;
                    goto LAB_000a6908;
                  }
                  if (unaff_s7 != 3) {
                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);
                    (**(code **)(pcStack_5a8 + -0x78e0))
                              ((*(double *)(puVar32 + 0x1c) *
                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /
                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));
                    dVar39 = *(double *)(puVar32 + 0x16);
                    if (0.0 <= dVar39) {
                      dVar47 = pdVar29[0x881];
                    }
                    else {
                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                    }
                    if (unaff_s6[0x879] <= dVar39 * dVar47) {
                      dVar47 = pdVar29[0x881] / dVar39;
                    }
                    else {
                      dVar47 = dVar47 / unaff_s6[0x879];
                    }
                    dVar39 = *(double *)(puVar32 + 0x18);
                    dVar47 = (dVar40 * dStack_520 +
                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *
                             dVar47;
                    if (0.0 <= dVar39) {
                      dVar44 = pdVar29[0x881];
                    }
                    else {
                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                    }
                    if (unaff_s6[0x879] <= dVar39 * dVar44) {
                      dVar44 = pdVar29[0x881] / dVar39;
                    }
                    else {
                      dVar44 = dVar44 / unaff_s6[0x879];
                    }
                    dVar44 = (dVar40 * dStack_518 -
                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *
                             dVar44;
                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;
                    uStack_5a0 = SQRT(dVar39);
                    if (0.0 <= dVar39) goto LAB_000a6944;
                    (**(code **)(pcStack_5a8 + -0x7418))();
                    uVar26 = *puVar32;
                    goto LAB_000a690c;
                  }
                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *
                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +
                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *
                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));
                  uStack_5a0 = SQRT(dVar39);
                  if (dVar39 < 0.0) {
                    (**(code **)(pcStack_5a8 + -0x7418))();
                    uVar26 = *puVar32;
                    goto LAB_000a690c;
                  }
                }
LAB_000a6944:
                uVar26 = puVar32[0xf];
                if (0 < (int)uVar26) {
                  uVar8 = puVar32[0xe];
                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {
                    pdVar16 = (double *)(uVar8 + 0xb8);
                    uVar18 = 0;
                    do {
                      uVar22 = uVar18;
                      uVar18 = uVar22 + 1;
                      if (uVar18 == uVar26) {
                        if (uStack_5a0 < 0.0) goto LAB_000a6694;
                        dVar39 = pdVar29[0x881];
                        uVar18 = uVar26;
                        goto LAB_000a6f20;
                      }
                      dVar39 = *pdVar16;
                      pdVar16 = pdVar16 + 0xc;
                    } while (dVar39 <= uStack_5a0);
                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {
LAB_000a6f20:
                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {
                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;
                        in_f20_21 = *(double *)(iVar3 + 0x28);
                        in_f22_23 = *(double *)(iVar3 + 0x30);
                        in_f24_25 = *(double *)(iVar3 + 0x38);
                        dStack_590 = *(double *)(iVar3 + 0x40);
                        dVar39 = *(double *)(iVar3 + 0x48);
                        goto LAB_000a5af8;
                      }
                      iVar3 = uVar8 + uVar22 * 0x60;
                      iVar10 = uVar8 + uVar18 * 0x60;
                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /
                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));
                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *
                               *(double *)(dStack_558._0_4_ + 0x4410);
                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *
                               *(double *)(dStack_558._0_4_ + 0x4410);
                      dVar44 = dVar47 + dVar40;
                      if (0.0 <= dVar44) {
                        if (pdVar29[0x881] < dVar44) {
                          dVar44 = pdVar29[0x881];
                          goto LAB_000a6740;
                        }
                        if (0.0 <= dVar44) {
                          dVar39 = dVar44;
                          if (pdVar29[0x881] < dVar44) {
                            dVar39 = pdVar29[0x881];
                          }
                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);
                          if (dVar44 < 0.0) {
                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                          }
                          else {
                            dVar45 = pdVar29[0x881];
                          }
                        }
                        else {
                          dVar39 = 0.0;
                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                        }
                      }
                      else {
                        dVar44 = 0.0;
LAB_000a6740:
                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);
                        dVar45 = pdVar29[0x881];
                      }
                      if (unaff_s6[0x879] <= dVar45 * dVar44) {
                        dVar45 = pdVar29[0x881] / dVar44;
                      }
                      else {
                        dVar45 = dVar45 / unaff_s6[0x879];
                      }
                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +
                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;
                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +
                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;
                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +
                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;
                      if (*(int *)(iVar10 + 4) == 2) {
                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +
                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;
                      }
                      goto LAB_000a5af8;
                    }
                  }
                }
LAB_000a6694:
                uVar26 = puVar32[0xe];
                in_f20_21 = *(double *)(uVar26 + 0x28);
                in_f22_23 = *(double *)(uVar26 + 0x30);
                in_f24_25 = *(double *)(uVar26 + 0x38);
                dStack_590 = *(double *)(uVar26 + 0x40);
                dVar39 = *(double *)(uVar26 + 0x48);
              }
              else if (unaff_s7 == 3) {
                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))
                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));
                if (((int)dVar39 == iVar28) &&
                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))
                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),
                   puVar35 == (undefined1 *)(int)dVar39)) {
                  dVar40 = 0.0;
                  bVar1 = false;
                }
                else {
                  if (*puVar32 < 2) {
                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);
                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);
                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);
                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);
                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;
                    uStack_5a0 = SQRT(dVar39);
                    if (0.0 <= dVar39) {
                      dVar39 = dVar40 * dVar40;
                    }
                    else {
                      (**(code **)(pcStack_5a8 + -0x7418))();
                      dVar39 = dVar40 * dVar40;
                    }
                    dVar39 = dVar44 * dVar44 + dVar39;
                    dVar42 = SQRT(dVar39);
                    if (dVar39 < 0.0) {
                      (**(code **)(pcStack_5a8 + -0x7418))();
                    }
                    dVar42 = uStack_5a0 * dVar42;
                    if (0.0 <= dVar42) {
                      dVar39 = pdVar29[0x881];
                    }
                    else {
                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                    }
                    if (unaff_s6[0x879] <= dVar42 * dVar39) {
                      dVar39 = pdVar29[0x881] / dVar42;
                    }
                    else {
                      dVar39 = dVar39 / unaff_s6[0x879];
                    }
                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;
LAB_000a5e90:
                    uVar26 = *puVar32;
LAB_000a5e94:
                    if (uVar26 == 1) {
                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);
                      uStack_5a0 = dVar39;
                      if (0.0 <= dVar39) {
                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);
                      }
                      else {
                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);
                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;
                        uStack_5a0._4_4_ = SUB84(dVar39,0);
                        uStack_524 = uStack_5a0._4_4_;
                        dVar40 = dStack_580;
                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);
                        dVar40 = dVar40 - dVar39;
                      }
                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];
                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {
                        uStack_5a0 = pdVar29[0x881] / dStack_580;
                      }
                      else {
                        uStack_5a0 = dStack_578 / unaff_s6[0x879];
                      }
                      uStack_5a0 = dVar40 * uStack_5a0;
                      goto LAB_000a5f08;
                    }
                  }
                  else {
                    if (*puVar32 != 2) {
                      in_f26_27 = 0.0;
                      goto LAB_000a5e90;
                    }
                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *
                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +
                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *
                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));
                    in_f26_27 = SQRT(dVar39);
                    if (dVar39 < 0.0) {
                      (**(code **)(pcStack_5a8 + -0x7418))();
                      uVar26 = *puVar32;
                      goto LAB_000a5e94;
                    }
                  }
                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))
                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));
                  uStack_5a0 = dVar39;
                  if (0.0 <= dVar39) {
                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))
                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));
                  }
                  else {
                    dVar40 = *(double *)(puVar32 + 0x1a);
                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);
                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;
                    uStack_5a0._4_4_ = SUB84(dVar39,0);
                    uStack_534 = uStack_5a0._4_4_;
                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);
                    dVar40 = dVar40 - dVar39;
                  }
                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];
                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);
                }
LAB_000a5f08:
                uVar26 = puVar32[0xf];
                if (0 < (int)uVar26) {
                  uVar8 = puVar32[0xe];
                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {
                    pdVar16 = (double *)(uVar8 + 0xb8);
                    uVar18 = 0;
                    do {
                      uVar22 = uVar18;
                      uVar18 = uVar22 + 1;
                      if (uVar18 == uVar26) {
                        if (uVar18 == 0) goto LAB_000a5db0;
                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;
                        in_f20_21 = *(double *)(iVar3 + 0x28);
                        in_f22_23 = *(double *)(iVar3 + 0x30);
                        in_f24_25 = *(double *)(iVar3 + 0x38);
                        dStack_590 = *(double *)(iVar3 + 0x40);
                        dVar39 = *(double *)(iVar3 + 0x48);
                        goto LAB_000a5af8;
                      }
                      dVar39 = *pdVar16;
                      pdVar16 = pdVar16 + 0xc;
                    } while (dVar39 <= uStack_5a0);
                    if (uVar18 != 0) {
                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);
                      if (bVar1) {
                        dVar39 = dStack_580;
                        if (*puVar32 != 1) {
                          dVar39 = *(double *)(puVar32 + 0x1a);
                        }
                        dVar39 = dVar39 - dVar40;
                        uVar18 = uVar26 - 1;
                        uVar22 = 0;
                      }
                      else {
                        dVar39 = (uStack_5a0 - dVar39) /
                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);
                      }
                      iVar10 = uVar8 + uVar22 * 0x60;
                      iVar3 = uVar8 + uVar18 * 0x60;
                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *
                               *(double *)(dStack_558._0_4_ + 0x4410);
                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *
                               *(double *)(dStack_558._0_4_ + 0x4410);
                      dVar44 = dVar47 + dVar40;
                      if (0.0 <= dVar44) {
                        if (pdVar29[0x881] < dVar44) {
                          dVar44 = pdVar29[0x881];
                          goto LAB_000a6d30;
                        }
                        if (0.0 <= dVar44) {
                          dVar39 = dVar44;
                          if (pdVar29[0x881] < dVar44) {
                            dVar39 = pdVar29[0x881];
                          }
                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);
                          if (dVar44 < 0.0) {
                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                          }
                          else {
                            dVar45 = pdVar29[0x881];
                          }
                        }
                        else {
                          dVar39 = 0.0;
                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                        }
                      }
                      else {
                        dVar44 = 0.0;
LAB_000a6d30:
                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);
                        dVar45 = pdVar29[0x881];
                      }
                      if (unaff_s6[0x879] <= dVar45 * dVar44) {
                        dVar45 = pdVar29[0x881] / dVar44;
                      }
                      else {
                        dVar45 = dVar45 / unaff_s6[0x879];
                      }
                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +
                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;
                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +
                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;
                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +
                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;
                      if (*(int *)(iVar3 + 4) == 2) {
                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +
                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;
                      }
                      goto LAB_000a5af8;
                    }
                  }
                }
LAB_000a5db0:
                uVar26 = puVar32[0xe];
                in_f20_21 = *(double *)(uVar26 + 0x28);
                in_f22_23 = *(double *)(uVar26 + 0x30);
                in_f24_25 = *(double *)(uVar26 + 0x38);
                dStack_590 = *(double *)(uVar26 + 0x40);
                dVar39 = *(double *)(uVar26 + 0x48);
              }
LAB_000a5af8:
              dVar44 = dVar39 * dVar41;
              dVar47 = dStack_4c8 * dVar41;
              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;
              if (0.0 <= dVar40) {
                dStack_4c8 = pdVar29[0x881];
                if (dVar40 <= pdVar29[0x881]) {
                  dStack_4c8 = dVar40;
                }
                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);
                if (0.0 <= dVar40) {
                  dVar45 = pdVar29[0x881];
                }
                else {
                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                }
              }
              else {
                dStack_4c8 = 0.0;
                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
              }
              if (unaff_s6[0x879] <= dVar40 * dVar45) {
                dVar45 = pdVar29[0x881] / dVar40;
              }
              else {
                dVar45 = dVar45 / unaff_s6[0x879];
              }
              dVar40 = pdVar29[0x881] - dVar44;
              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;
              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;
              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;
              if (aiStack_510[1] == 2) {
                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;
              }
              iVar3 = piVar48[0xb4];
              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;
              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;
              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;
              if (*(int *)(iVar3 + 0x28) != 0) {
                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;
              }
              if (*(int *)(iVar3 + 0x34) != 0) {
                if (aiStack_510[2] == 0) {
                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);
                }
                else {
                  fVar43 = (float)dStack_4c8;
                }
                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;
              }
              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);
              iVar28 = iVar28 + 1;
            } while (iVar28 < **(int **)(pdVar5 + 4));
          }
          pdVar14 = pdStack_568;
          iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);
          pcVar37 = pcStack_5a8;
          if (iVar3 == 0) {
            *(uint *)((int)pdVar5 + 0x24) = 0;
          }
        }
      }
      puVar35 = puVar35 + 1;
    } while ((int)puVar35 < (int)puStack_56c);
  }
  if (iStack_4b4 == **(int **)(pcVar37 + -0x7668)) {
    return **(int **)(pcVar37 + -0x7668);
  }
  pcVar37 = *(code **)(pcVar37 + -0x7834);
  pcVar38 = DestroyDrawInfo;
  (*pcVar37)();
  pcStack_5d0 = pcVar37 + 0x35a8f0;
  pdStack_5c8 = pdVar30;
  pcStack_5c4 = pcVar38;
  if (pdVar14 == (double *)0x0) {
    (**(code **)(pcVar37 + 0x353660))
              (*(int *)(pcVar37 + 0x352920) + 0x40e4,*(int *)(pcVar37 + 0x352924) + 0x69c0,0x39a,
               *(int *)(pcVar37 + 0x352924) + 0x7914);
    pdVar14 = pdVar30;
LAB_000a7234:
    iStack_5d8 = *(int *)(pcVar37 + 0x352924) + 0x10f4;
    (**(code **)(pcVar37 + 0x353238))
              (0x8000,*(int *)(pcVar37 + 0x352924) + 0x69c0,*(int *)(pcVar37 + 0x352924) + 0x7904,
               0x39c);
    uVar26 = *(uint *)(pdVar14 + 0x72);
  }
  else {
    if (*(uint *)((int)pdVar14 + 0x38c) != 0) goto LAB_000a7234;
    uVar26 = *(uint *)(pdVar14 + 0x72);
  }
  if (uVar26 == 0xabacadab) {
    if (*(uint *)(pdVar14 + 0x77) != 0) {
      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();
      *(uint *)(pdVar14 + 0x77) = uVar26;
    }
    if (*(uint *)pdVar14 != 0) {
      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();
      *(uint *)pdVar14 = uVar26;
    }
    if (*(uint *)(pdVar14 + 0x4c) != 0) {
      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();
      *(uint *)(pdVar14 + 0x4c) = uVar26;
    }
    if (*(uint *)((int)pdVar14 + 4) != 0) {
      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();
      *(uint *)((int)pdVar14 + 4) = uVar26;
    }
    if (*(uint *)(pdVar14 + 0x35) != 0) {
      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();
      *(uint *)(pdVar14 + 0x35) = uVar26;
    }
    if (*(uint *)((int)pdVar14 + 0x1ac) != 0) {
      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();
      *(uint *)((int)pdVar14 + 0x1ac) = uVar26;
    }
    if (*(uint *)((int)pdVar14 + 0x264) != 0) {
      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();
      *(uint *)((int)pdVar14 + 0x264) = uVar26;
    }
    if (*(uint *)(pdVar14 + 0x4d) != 0) {
      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();
      *(uint *)(pdVar14 + 0x4d) = uVar26;
    }
    if (*(uint *)((int)pdVar14 + 0x26c) != 0) {
      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();
      *(uint *)((int)pdVar14 + 0x26c) = uVar26;
    }
    if (*(uint *)(pdVar14 + 0x50) != 0) {
      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();
      *(uint *)(pdVar14 + 0x50) = uVar26;
    }
    if (*(uint *)(pdVar14 + 0x52) != 0) {
      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();
      *(uint *)(pdVar14 + 0x52) = uVar26;
    }
    if (*(uint *)((int)pdVar14 + 0x29c) != 0) {
      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();
      *(uint *)((int)pdVar14 + 0x29c) = uVar26;
    }
    if (*(uint *)(pdVar14 + 0x54) != 0) {
      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();
      *(uint *)(pdVar14 + 0x54) = uVar26;
    }
    if (*(uint *)(pdVar14 + 0x3e) != 0) {
      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();
      *(uint *)(pdVar14 + 0x3e) = uVar26;
    }
    if (*(uint *)((int)pdVar14 + 0x2a4) != 0) {
      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();
      *(uint *)((int)pdVar14 + 0x2a4) = uVar26;
    }
    if (*(uint *)((int)pdVar14 + 0x3ac) != 0) {
      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();
      *(uint *)((int)pdVar14 + 0x3ac) = uVar26;
    }
    if (*(uint *)((int)pdVar14 + 0x3b4) != 0) {
      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();
      *(uint *)((int)pdVar14 + 0x3b4) = uVar26;
    }
    *(uint *)(pdVar14 + 0x72) = 0x54535254;
    iVar3 = (**(code **)(pcStack_5d0 + -0x78d8))(pdVar14);
    return iVar3;
  }
  pdVar5 = (double *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x7914);
  pdVar16 = (double *)&DAT_0000039d;
  puVar23 = (uint *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x69c0);
  piVar2 = (int *)(*(int *)(pcStack_5d0 + -0x7fd0) + 0x4128);
  pcVar37 = *(code **)(pcStack_5d0 + -0x7290);
  pcVar38 = DrawAffineImage;
  (*pcVar37)();
  pcStack_758 = pcVar37 + 0x35a61c;
  uStack_638._4_4_ = **(int **)(pcVar37 + 0x352fb4);
  pdStack_62c = pdVar14;
  piStack_628 = piVar48;
  puStack_624 = puVar32;
  pdStack_620 = pdVar29;
  iStack_61c = iVar28;
  puStack_618 = puVar35;
  pdStack_614 = unaff_s6;
  uStack_610 = unaff_s7;
  pcStack_60c = pcVar38;
  dStack_608 = in_f20_21;
  dStack_600 = in_f22_23;
  dStack_5f8 = in_f24_25;
  dStack_5f0 = in_f26_27;
  if (piVar2 == (int *)0x0) {
    (**(code **)(pcVar37 + 0x35338c))
              (*(int *)(pcVar37 + 0x35264c) + 0x3da0,*(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c0,
               *(int *)(pcVar37 + 0x352650) + 0x78f4);
    pdVar16 = pdVar14;
    piVar2 = piVar48;
    puVar23 = puVar32;
    pdVar5 = pdVar29;
LAB_000a7434:
    piVar48 = (int *)(**(code **)(pcVar37 + 0x35338c))
                               (*(int *)(pcVar37 + 0x352650) + -0x784,
                                *(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c1,
                                *(int *)(pcVar37 + 0x352650) + 0x78f4);
LAB_000a745c:
    iStack_760 = *(int *)(pcVar37 + 0x352654) + -0x2f6c;
    piStack_75c = piVar48;
    (**(code **)(pcVar37 + 0x352f64))
              (0x8000,*(int *)(pcVar37 + 0x352650) + 0x69c0,*(int *)(pcVar37 + 0x352650) + 0x78e4,
               0x4c3);
  }
  else {
    if (piVar2[0xcdb] != -0x54535255) goto LAB_000a7434;
    piVar48 = piVar2 + 0xd0;
    if (piVar2[0xcd4] != 0) goto LAB_000a745c;
  }
  pcVar37 = pcStack_758;
  if (puVar23 == (uint *)0x0) {
    (**(code **)(pcStack_758 + -0x7290))
              (*(int *)(pcStack_758 + -0x7fcc) + 0x6a20,*(int *)(pcStack_758 + -0x7fcc) + 0x69c0,
               0x4c4,*(int *)(pcStack_758 + -0x7fcc) + 0x78f4);
LAB_000a74c4:
    (**(code **)(pcVar37 + -0x7290))
              (*(int *)(pcVar37 + -0x7fcc) + 0x6a40,*(int *)(pcVar37 + -0x7fcc) + 0x69c0);
LAB_000a74e8:
    dStack_668 = (double)(**(code **)(pcVar37 + -0x7290))
                                   (*(int *)(pcVar37 + -0x7fcc) + 0x6a6c,
                                    *(int *)(pcVar37 + -0x7fcc) + 0x69c0);
LAB_000a750c:
    dStack_668 = dStack_668 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);
  }
  else {
    if (puVar23[0xcdb] != 0xabacadab) goto LAB_000a74c4;
    if (pdVar16 == (double *)0x0) goto LAB_000a74e8;
    uStack_678._4_4_ = 0;
    uStack_678._0_4_ = 0;
    uStack_66c = 0;
    uStack_670 = 0;
    dStack_668 = (double)(int)puVar23[6];
    if ((int)puVar23[6] < 0) goto LAB_000a750c;
  }
  dStack_668 = dStack_668 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408);
  uStack_65c = 0;
  uStack_660 = 0;
  dStack_658 = dStack_668;
  dStack_650 = (double)(int)puVar23[7];
  if ((int)puVar23[7] < 0) {
    dStack_650 = dStack_650 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);
  }
  dStack_650 = dStack_650 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408);
  uStack_644 = 0;
  uStack_648 = 0;
  dStack_640 = dStack_650;
  dVar45 = *pdVar16;
  dVar44 = pdVar16[2];
  dVar47 = pdVar16[4];
  dVar40 = pdVar16[1];
  dVar41 = pdVar16[3];
  dVar39 = pdVar16[5];
  pdVar14 = (double *)&uStack_678;
  pdVar29 = pdVar14;
  do {
    dVar42 = *pdVar29;
    *pdVar29 = dVar45 * dVar42 + dVar44 * pdVar29[1] + dVar47;
    pdVar29[1] = dVar40 * dVar42 + dVar41 * pdVar29[1] + dVar39;
    pdVar29 = pdVar29 + 2;
  } while (pdVar29 != (double *)&uStack_638);
  dVar39 = (double)CONCAT44(uStack_670,uStack_66c);
  dVar41 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_);
  dVar40 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_);
  dVar47 = (double)CONCAT44(uStack_670,uStack_66c);
  do {
    dVar45 = pdVar14[2];
    dVar44 = dVar45;
    if (dVar41 <= dVar45) {
      dVar44 = dVar41;
    }
    dVar42 = pdVar14[3];
    dVar46 = dVar42;
    if (dVar47 <= dVar42) {
      dVar46 = dVar47;
    }
    if (dVar45 <= dVar40) {
      dVar45 = dVar40;
    }
    if (dVar42 <= dVar39) {
      dVar42 = dVar39;
    }
    pdVar14 = pdVar14 + 2;
    dVar39 = dVar42;
    dVar41 = dVar44;
    dVar40 = dVar45;
    dVar47 = dVar46;
  } while ((double *)&uStack_648 != pdVar14);
  ppiVar24 = (int **)0x1;
  pdVar29 = pdVar5;
  iVar3 = (**(code **)(pcVar37 + -0x7074))(piVar2);
  if (iVar3 != 0) {
    dStack_750 = dVar44;
    if (dVar44 <= 0.0) {
      dStack_750 = 0.0;
    }
    dStack_748 = dVar46;
    if (dVar46 <= 0.0) {
      dStack_748 = 0.0;
    }
    dStack_740 = (double)piVar2[6];
    if (piVar2[6] < 0) {
      dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);
    }
    dStack_740 = dStack_740 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);
    if (dVar45 < dStack_740) {
      dStack_740 = dVar45;
    }
    dStack_738 = (double)piVar2[7];
    if (piVar2[7] < 0) {
      dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);
    }
    dStack_738 = dStack_738 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);
    if (dVar42 < dStack_738) {
      dStack_738 = dVar42;
    }
    dStack_6e8 = *pdVar16 * pdVar16[3] - pdVar16[1] * pdVar16[2];
    if (0.0 <= dStack_6e8) {
      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);
    }
    else {
      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);
    }
    if (dStack_6e8 * dVar39 < *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)) {
      dStack_6e8 = dVar39 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8);
    }
    else {
      dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;
    }
    dStack_700 = pdVar16[3] * dStack_6e8;
    dStack_6f8 = -pdVar16[1] * dStack_6e8;
    dStack_6f0 = -pdVar16[2] * dStack_6e8;
    dStack_6e8 = *pdVar16 * dStack_6e8;
    dStack_6e0 = dStack_700 * -pdVar16[4] - dStack_6f0 * pdVar16[5];
    dStack_6d8 = dStack_6f8 * -pdVar16[4] - dStack_6e8 * pdVar16[5];
    (**(code **)(pcStack_758 + -0x75e4))(piVar2,auStack_6d0);
    dVar42 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0);
    dVar39 = (double)(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar42);
    dVar41 = (double)(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar42);
    uVar4 = (**(code **)(pcStack_758 + -0x7144))(puVar23,pdVar5);
    puVar35 = (undefined1 *)(**(code **)(pcStack_758 + -0x79c4))(piVar2,pdVar5);
    iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23);
    if (((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23), iVar3 == 3)) &&
       ((iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 4 ||
        (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3)))) {
      (**(code **)(pcStack_758 + -0x775c))(7);
      iVar10 = (int)dVar41 - (int)dVar39;
      iVar3 = iVar10;
      if (iVar10 < 0) {
        iVar3 = iVar10 + 0x3f;
      }
      pdVar16 = (double *)(iVar3 >> 6);
      if (extraout_v1 < (int)pdVar16) {
        (**(code **)(pcStack_758 + -0x775c))(7);
        bVar1 = extraout_v1_01 < 2;
      }
      else {
        bVar1 = iVar10 < 0x80;
      }
      pdVar29 = (double *)0x1;
      if (((bool)(bVar1 ^ 1)) &&
         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16)
         ) {
        (**(code **)(pcStack_758 + -0x775c))(7);
        pdVar29 = extraout_v1_03;
        pdVar16 = extraout_v1_03;
      }
    }
    else {
      uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);
      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {
        uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);
        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a77f8;
        pcVar37 = *(code **)(pcStack_758 + -0x775c);
        if ((uint)uVar51 < 2) {
          pdVar29 = (double *)0x1;
          goto LAB_000a7818;
        }
      }
      else {
LAB_000a77f8:
        pcVar37 = *(code **)(pcStack_758 + -0x775c);
      }
      uVar51 = (*pcVar37)(7);
      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {
        (**(code **)(pcStack_758 + -0x775c))(7);
        pdVar29 = extraout_v1_00;
      }
      else {
        pdVar29 = (double *)0x2;
      }
    }
LAB_000a7818:
    pdStack_720 = &dStack_700;
    puStack_714 = auStack_6d0;
    pdStack_710 = &dStack_750;
    iStack_704 = 1;
    ppiVar24 = &piStack_72c;
    piStack_72c = piVar2;
    puStack_728 = puVar23;
    pdStack_724 = pdVar5;
    puStack_71c = puVar35;
    uStack_718 = uVar4;
    iStack_70c = (int)dVar39;
    iStack_708 = (int)dVar41;
    (**(code **)(pcStack_758 + -0x7700))
              (*(int *)(pcStack_758 + -0x7ea0) + 0x34c4,ppiVar24,pdVar29,0);
    iVar3 = iStack_704;
    (**(code **)(pcStack_758 + -0x79a4))(uVar4);
    (**(code **)(pcStack_758 + -0x79a4))(puVar35);
  }
  if (uStack_638._4_4_ == **(int **)(pcStack_758 + -0x7668)) {
    return iVar3;
  }
  pcVar37 = *(code **)(pcStack_758 + -0x7834);
  pcVar38 = DrawGradientImage;
  iVar10 = uStack_638._4_4_;
  (*pcVar37)();
  pcStack_830 = pcVar37 + 0x359e18;
  puStack_794 = (undefined8 *)**(undefined4 **)(pcVar37 + 0x3527b0);
  pdStack_790 = pdVar16;
  piStack_78c = piVar2;
  puStack_788 = puVar23;
  pdStack_784 = pdVar5;
  iStack_780 = iVar3;
  pcStack_77c = pcVar38;
  dStack_778 = dVar42;
  if (iVar10 == 0) {
    iVar3 = (**(code **)(pcVar37 + 0x352b88))
                      (*(int *)(pcVar37 + 0x351e48) + 0x3da0,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,
                       0x80a,*(int *)(pcVar37 + 0x351e4c) + 0x7818);
    return iVar3;
  }
  if (*(int *)(iVar10 + 0x336c) != -0x54535255) {
    iVar3 = (**(code **)(pcVar37 + 0x352b88))
                      (*(int *)(pcVar37 + 0x351e4c) + -0x784,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,
                       0x80b,*(int *)(pcVar37 + 0x351e4c) + 0x7818);
    return iVar3;
  }
  if (*(int *)(iVar10 + 0x3350) != 0) {
    iStack_838 = *(int *)(pcVar37 + 0x351e50) + -0x2f6c;
    iStack_834 = iVar10 + 0x340;
    (**(code **)(pcVar37 + 0x352760))
              (0x8000,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,*(int *)(pcVar37 + 0x351e4c) + 0x7804,
               0x80d);
  }
  if (ppiVar24 == (int **)0x0) {
    iVar3 = (**(code **)(pcStack_830 + -0x7290))
                      (*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c,
                       *(int *)(pcStack_830 + -0x7fcc) + 0x69c0,0x80e,
                       *(int *)(pcStack_830 + -0x7fcc) + 0x7818);
    return iVar3;
  }
  ppiVar33 = ppiVar24 + 0x6e;
  (**(code **)(pcStack_830 + -0x6fc4))
            (ppiVar24[0x7c],ppiVar24[0x7d],0x60,*(int *)(pcStack_830 + -0x7ea0) + 0x224c);
  ppiVar34 = ppiVar24 + 0x74;
  dVar39 = (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) *
           (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) +
           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76)) *
           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76));
  dVar41 = SQRT(dVar39);
  if (0.0 <= dVar39) {
    piStack_828 = ppiVar24[0x6f];
  }
  else {
    (**(code **)(pcStack_830 + -0x7418))();
    piStack_828 = ppiVar24[0x6f];
  }
  piStack_824 = ppiVar24[0x70];
  piStack_820 = ppiVar24[0x71];
  piStack_81c = ppiVar24[0x72];
  (**(code **)(pcStack_830 + -0x75e4))(iVar10,auStack_7f0);
  uVar4 = (**(code **)(pcStack_830 + -0x79c4))(iVar10,pdVar29);
  iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10);
  if ((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 == 3)) {
    iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10);
    if ((iVar3 != 4) && (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 != 3))
    goto LAB_000a7bf4;
    (**(code **)(pcStack_830 + -0x775c))(7);
    iVar49 = (int)piStack_824 - (int)piStack_81c;
    iVar3 = iVar49;
    if (iVar49 < 0) {
      iVar3 = iVar49 + 0x3f;
    }
    if (extraout_v1_04 < iVar3 >> 6) {
      (**(code **)(pcStack_830 + -0x775c))(7);
      bVar1 = extraout_v1_06 < 2;
    }
    else {
      bVar1 = iVar49 < 0x80;
    }
    iVar3 = 1;
    dStack_818 = dVar41;
    if ((bool)(bVar1 ^ 1)) {
      (**(code **)(pcStack_830 + -0x775c))(7);
      iVar3 = (int)piStack_824 - (int)piStack_81c;
      if (iVar3 < 0) {
        iVar3 = iVar3 + 0x3f;
      }
      iVar3 = iVar3 >> 6;
      dStack_818 = dVar41;
      if (extraout_v1_07 < iVar3) {
        (**(code **)(pcStack_830 + -0x775c))(7);
        iVar3 = extraout_v1_08;
        dStack_818 = dVar41;
      }
    }
  }
  else {
LAB_000a7bf4:
    uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);
    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {
      uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);
      if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a7c10;
      pcVar37 = *(code **)(pcStack_830 + -0x775c);
      if ((uint)uVar51 < 2) {
        iVar3 = 1;
        dStack_818 = dVar41;
        goto LAB_000a7c30;
      }
    }
    else {
LAB_000a7c10:
      pcVar37 = *(code **)(pcStack_830 + -0x775c);
    }
    uVar51 = (*pcVar37)(7);
    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {
      (**(code **)(pcStack_830 + -0x775c))(7);
      iVar3 = extraout_v1_05;
      dStack_818 = dVar41;
    }
    else {
      iVar3 = 2;
      dStack_818 = dVar41;
    }
  }
LAB_000a7c30:
  puStack_7fc = auStack_7f0;
  ppiStack_7f8 = &piStack_828;
  iStack_7f4 = 1;
  iStack_810 = iVar10;
  pdStack_80c = pdVar29;
  uStack_808 = uVar4;
  ppiStack_804 = ppiVar33;
  ppiStack_800 = ppiVar34;
  (**(code **)(pcStack_830 + -0x7700))(*(int *)(pcStack_830 + -0x7ea0) + 0x549c,&dStack_818,iVar3,0)
  ;
  iVar3 = iStack_7f4;
  (**(code **)(pcStack_830 + -0x79a4))(uVar4);
  if (puStack_794 == (undefined8 *)**(int **)(pcStack_830 + -0x7668)) {
    return iVar3;
  }
  pcVar37 = *(code **)(pcStack_830 + -0x7834);
  pcVar38 = GetAffineMatrix;
  puVar20 = puStack_794;
  (*pcVar37)();
  pcStack_858 = pcVar37 + 0x359994;
  iStack_860 = *(int *)(pcVar37 + 0x3519c8) + 0x10f4;
  uStack_850 = uVar4;
  pcStack_84c = pcVar38;
  (**(code **)(pcVar37 + 0x3522dc))
            (0x8000,*(int *)(pcVar37 + 0x3519c8) + 0x69c0,*(int *)(pcVar37 + 0x3519c8) + 0x76b0,
             0x16d2);
  if (puVar20 != (undefined8 *)0x0) {
    (**(code **)(pcStack_858 + -0x71c4))(puVar20 + 1,0,0x28);
    iVar3 = *(int *)(pcStack_858 + -0x7fd0);
    uVar51 = *(undefined8 *)(iVar3 + 0x4408);
    *puVar20 = uVar51;
    puVar20[3] = uVar51;
    return iVar3;
  }
  iVar49 = *(int *)(pcStack_858 + -0x7fcc) + 0x69c0;
  iVar10 = *(int *)(pcStack_858 + -0x7fcc) + 0x6368;
  pcVar37 = *(code **)(pcStack_858 + -0x7290);
  pcVar38 = GetDrawInfo;
  (*pcVar37)(iVar10,iVar49,0x16d3,*(int *)(pcStack_858 + -0x7fcc) + 0x76a0);
  iStack_888 = iVar3;
  iStack_894 = **(int **)(pcVar37 + 0x352270);
  puStack_88c = puVar20;
  pdStack_884 = pdVar29;
  ppiStack_880 = ppiVar33;
  ppiStack_87c = ppiVar34;
  puStack_878 = puVar35;
  pcStack_874 = pcVar38;
  (**(code **)(pcVar37 + 0x352220))
            (0x8000,*(int *)(pcVar37 + 0x35190c) + 0x69c0,*(int *)(pcVar37 + 0x35190c) + 0x7694,
             0x1702,*(int *)(pcVar37 + 0x35190c) + 0x10f4);
  if (iVar49 == 0) {
    (**(code **)(pcVar37 + 0x352648))
              (*(int *)(pcVar37 + 0x351908) + 0x40e4,*(int *)(pcVar37 + 0x35190c) + 0x69c0,0x1703,
               *(int *)(pcVar37 + 0x35190c) + 0x7688);
  }
  else {
    (**(code **)(pcVar37 + 0x352714))(iVar49,0,0x3c0);
    iVar10 = (**(code **)(pcVar37 + 0x3521dc))(iVar10);
    (**(code **)(pcVar37 + 0x351e5c))(iVar49 + 0x18);
    pdVar29 = (double *)(**(code **)(pcVar37 + 0x351f2c))();
    ppiVar34 = (int **)(iVar49 + 0x48);
    (**(code **)(pcVar37 + 0x351e54))
              (*(int *)(pcVar37 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar34,pdVar29);
    ppiVar33 = (int **)(iVar49 + 0xa0);
    (**(code **)(pcVar37 + 0x351e54))
              (*(int *)(pcVar37 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar33,pdVar29);
    *(undefined4 *)(iVar49 + 0x238) = *(undefined4 *)(iVar10 + 0x14);
    *(undefined8 *)(iVar49 + 0x1b0) = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4408);
    *(undefined4 *)(iVar49 + 0x240) = 1;
    *(undefined4 *)(iVar49 + 0x2cc) = *(undefined4 *)(*(int *)(pcVar37 + 0x351908) + 0x4aa8);
    uVar51 = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4a48);
    *(undefined8 *)(iVar49 + 0x398) = uVar51;
    *(undefined8 *)(iVar49 + 0x3a0) = uVar51;
    *(undefined4 *)(iVar49 + 0x244) = 1;
    *(undefined4 *)(iVar49 + 0x248) = 1;
    *(undefined4 *)(iVar49 + 0x24c) = 10;
    *(undefined4 *)(iVar49 + 600) = 1;
    *(undefined8 *)(iVar49 + 0x288) = *(undefined8 *)(*(int *)(pcVar37 + 0x35190c) + 0x7970);
    *(undefined4 *)(iVar49 + 0x144) = 0;
    *(undefined4 *)(iVar49 + 0x140) = 0;
    *(undefined4 *)(iVar49 + 0x25c) = 0x36;
    *(undefined4 *)(iVar49 + 0x2d0) = 1;
    *(undefined4 *)(iVar49 + 0x3a8) = 0;
    uVar4 = (**(code **)(pcVar37 + 0x3527e8))();
    *(undefined4 *)(iVar49 + 0x38c) = uVar4;
    if (*(int *)(iVar10 + 0x4c) != 0) {
      uVar4 = (**(code **)(pcVar37 + 0x352854))();
      *(undefined4 *)(iVar49 + 0x264) = uVar4;
    }
    if (*(int *)(iVar10 + 0x54) != 0) {
      uVar4 = (**(code **)(pcVar37 + 0x352854))();
      *(undefined4 *)(iVar49 + 0x290) = uVar4;
    }
    *(undefined4 *)(iVar49 + 0x23c) = *(undefined4 *)(iVar10 + 0x14);
    uVar4 = *(undefined4 *)(iVar10 + 0x58);
    if (*(double *)(*(int *)(pcVar37 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar10 + 0x58))) {
      *(undefined4 *)(iVar49 + 0x28c) = *(undefined4 *)(iVar10 + 0x5c);
      *(undefined4 *)(iVar49 + 0x288) = uVar4;
    }
    puVar13 = (undefined4 *)(iVar10 + 0x118);
    puVar21 = (undefined4 *)(iVar49 + 0x150);
    do {
      puVar15 = puVar21;
      puVar9 = puVar13;
      uVar27 = puVar9[1];
      uVar25 = puVar9[2];
      uVar4 = puVar9[3];
      *puVar15 = *puVar9;
      puVar15[1] = uVar27;
      puVar15[2] = uVar25;
      puVar15[3] = uVar4;
      puVar13 = puVar9 + 4;
      puVar21 = puVar15 + 4;
    } while (puVar13 != (undefined4 *)(iVar10 + 0x168));
    uVar4 = puVar9[5];
    puVar15[4] = *puVar13;
    puVar15[5] = uVar4;
    if (*(int *)(iVar10 + 0x48) != 0) {
      uVar4 = (**(code **)(pcVar37 + 0x352854))();
      *(undefined4 *)(iVar49 + 0x29c) = uVar4;
    }
    iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ac4);
    if (iVar3 != 0) {
      uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x14,0,iVar3);
      *(undefined4 *)(iVar49 + 0x388) = uVar4;
      goto LAB_000a8298;
    }
  }
  *(undefined4 *)(iVar49 + 0x388) = 0;
LAB_000a8298:
  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ad0);
  if (iVar3 != 0) {
    (**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x280,iVar3);
  }
  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6adc);
  if (iVar3 != 0) {
    (**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x26c,iVar3);
  }
  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ae4);
  if (iVar3 != 0) {
    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar34,pdVar29);
  }
  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6aec);
  if (iVar3 != 0) {
    uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x21,0,iVar3);
    *(undefined4 *)(iVar49 + 0x298) = uVar4;
  }
  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6af4);
  if (iVar3 != 0) {
    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);
    if (NAN(dVar39)) {
      dVar39 = 0.0;
    }
    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {
      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {
        dVar39 = 0.0;
      }
    }
    else {
      dVar39 = 0.0;
    }
    *(double *)(iVar49 + 0x380) = dVar39;
  }
  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b08);
  if (iVar3 != 0) {
    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);
    if (NAN(dVar39)) {
      dVar39 = 0.0;
    }
    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {
      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {
        dVar39 = 0.0;
      }
    }
    else {
      dVar39 = 0.0;
    }
    *(double *)(iVar49 + 0x378) = dVar39;
  }
  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b1c);
  if (iVar3 != 0) {
    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);
    if (NAN(dVar39)) {
      dVar39 = 0.0;
    }
    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {
      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {
        dVar39 = 0.0;
      }
    }
    else {
      dVar39 = 0.0;
    }
    *(double *)(iVar49 + 0x370) = dVar39;
  }
  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b24);
  if (iVar3 != 0) {
    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar33,pdVar29);
  }
  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b2c);
  if (iVar3 != 0) {
    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);
    if (NAN(dVar39)) {
      dVar39 = 0.0;
    }
    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {
      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {
        dVar39 = 0.0;
      }
    }
    else {
      dVar39 = 0.0;
    }
    *(double *)(iVar49 + 0x1b0) = dVar39;
  }
  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b38);
  if (iVar3 != 0) {
    uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x47,0,iVar3);
    *(undefined4 *)(iVar49 + 0x274) = uVar4;
  }
  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b40);
  if (iVar3 != 0) {
    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,iVar49 + 0xf8,pdVar29);
  }
  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x351920) + -0x3000);
  if (iVar3 != 0) {
    iVar28 = (**(code **)(pcVar37 + 0x3526d4))(0x4c,0,iVar3);
    if (iVar28 == -1) {
      uVar4 = (**(code **)(pcVar37 + 0x352380))(iVar3,0,10);
      *(undefined4 *)(iVar49 + 0x27c) = uVar4;
    }
    else {
      *(int *)(iVar49 + 0x27c) = iVar28;
    }
  }
  (**(code **)(pcVar37 + 0x351d90))(pdVar29);
  *(undefined4 *)(iVar49 + 0x390) = 0xabacadab;
  (**(code **)(pcVar37 + 0x352628))(iVar10);
  if (iStack_894 == **(int **)(pcVar37 + 0x352270)) {
    return **(int **)(pcVar37 + 0x352270);
  }
  pcVar37 = *(code **)(pcVar37 + 0x3520a4);
  (*pcVar37)();
  iVar3 = (**(code **)(pcVar37 + 0x351be4))(0x3c0);
  (**(code **)(pcVar37 + 0x3518b4))(0,iVar3);
  return iVar3;
}


lui gp,0x36
addiu gp,gp,-0x1c14
addu gp,gp,t9
addiu sp,sp,-0x188
sw ra,0x154(sp)
sw s8,0x150(sp)
sw s7,0x14c(sp)
sw s6,0x148(sp)
sw s5,0x144(sp)
sw s4,0x140(sp)
sw s3,0x13c(sp)
sw s2,0x138(sp)
sw s1,0x134(sp)
sw s0,0x130(sp)
sdc1 f30,0x180(sp)
sdc1 f28,0x178(sp)
sdc1 f26,0x170(sp)
sdc1 f24,0x168(sp)
sdc1 f22,0x160(sp)
sdc1 f20,0x158(sp)
sw gp,0x28(sp)
or s5,a0,zero
lw v0,-0x7668(gp)
lw v0,0x0(v0)
sw v0,0x12c(sp)
lw s0,0x20(a0)
lw t9,-0x6f8c(gp)
jalr t9
_nop
lw gp,0x28(sp)
or s1,v0,zero
lw t9,-0x7390(gp)
jalr t9
_nop
lw gp,0x28(sp)
lw v1,0x24(s5)
addiu v1,v1,0x1
subu v1,v1,s0
teq s1,zero
div v1,s1
mfhi v1
or s8,v1,zero
slt v1,v0,v1
bne v1,zero,0x000a3e70
_mflo a0
mul v1,a0,v0
addu s8,v1,s8
addu a0,a0,s8
slt v0,s8,a0
beq v0,zero,0x000a3e8c
_addu s8,s0,s8
lw v0,0x14(s5)
sw v0,0x34(sp)
lw v0,0x10(s5)
sw v0,0x58(sp)
lw s4,0x8(s5)
lw s7,0x4(s5)
lw s1,0x0(s5)
addu v0,s0,a0
sw v0,0x4c(sp)
lw s6,-0x7fd0(gp)
ldc1 f0,0x43c8(s6)
sdc1 f0,0x50(sp)
lw v0,-0x7fd0(gp)
sw v0,0x5c(sp)
lw v1,-0x7fd0(gp)
sw v1,0x48(sp)
lw v0,-0x7fd0(gp)
ldc1 f26,0x4410(v0)
b 0x000a37f8
_ldc1 f30,0x4a48(v1)
lw a0,-0x7fd0(gp)
ldc1 f2,0x43e8(a0)
b 0x000a3870
_add.D f0,f0,f2
ldc1 f0,0x65b8(a0)
c.lt.D f20,f0
bc1f 0x3,0x000a3668
_nop
lw a0,0x18(s7)
mtc1 a0,f0
bltz a0,0x000a3658
_cvt.d.W f0,f0
mtc1 v1,f2
mthc1 v0,f2
sub.D D f0,f0,f2
div.D f0,f0,f20
c.lt.D f22,f0
bc1f 0x4,0x000a3630
_lui a0,0x8000
mov.D f22,f0
xor a0,v0,a0
sw a0,0x60(sp)
sw v1,0x64(sp)
ldc1 f0,0x60(sp)
div.D f20,f0,f20
c.lt.D f20,f28
bc1t 0x5,0x000a3890
_nop
b 0x000a3890
_mov.D f20,f28
lw a0,-0x7fd0(gp)
ldc1 f2,0x43e8(a0)
b 0x000a3610
_add.D f0,f0,f2
mtc1 zero,f0
mthc1 zero,f0
mtc1 v1,f2
mthc1 v0,f2
c.lt.D f2,f0
bc1t 0x6,0x000a3930
_lw a0,0x5c(sp)
ldc1 f12,0x43d0(a0)
mtc1 v1,f0
mthc1 v0,f0
add.D f12,f0,f12
lw t9,-0x7228(gp)
jalr t9
_nop
lw gp,0x28(sp)
lw v0,-0x7fd0(gp)
ldc1 f2,0x43e0(v0)
c.le.D f2,f0
bc1t 0x7,0x000a36d8
_lui v1,0x8000
trunc.w.D f0,f0
mfc1 v0,f0
lw v1,0x18(s7)
sltu v0,v0,v1
beq v0,zero,0x000a3ab4
_nop
b 0x000a3890
_mov.D f20,f28
sub.D D f2,f0,f2
trunc.w.D f0,f2
mfc1 v0,f0
b 0x000a36c0
_or v0,v0,v1
lw a0,-0x7fd0(gp)
ldc1 f4,0x43e8(a0)
b 0x000a38f0
_add.D f2,f2,f4
ldc1 f2,0x65b8(a0)
c.lt.D f0,f2
bc1f 0x3,0x000a3774
_nop
lw a0,0x1c(s7)
mtc1 a0,f2
bltz a0,0x000a3764
_cvt.d.W f2,f2
mtc1 v1,f4
mthc1 v0,f4
sub.D D f2,f2,f4
div.D f2,f2,f0
c.lt.D f22,f2
bc1f 0x4,0x000a373c
_lui a0,0x8000
mov.D f22,f2
xor a0,v0,a0
sw a0,0x68(sp)
sw v1,0x6c(sp)
ldc1 f2,0x68(sp)
div.D f0,f2,f0
c.lt.D f0,f20
bc1f 0x5,0x000a37d8
_nop
b 0x000a37d8
_mov.D f20,f0
lw a0,-0x7fd0(gp)
ldc1 f4,0x43e8(a0)
b 0x000a371c
_add.D f2,f2,f4
mtc1 zero,f0
mthc1 zero,f0
mtc1 v1,f2
mthc1 v0,f2
c.lt.D f2,f0
bc1t 0x6,0x000a3928
_lw a0,0x5c(sp)
ldc1 f12,0x43d0(a0)
mtc1 v1,f0
mthc1 v0,f0
add.D f12,f0,f12
lw t9,-0x7228(gp)
jalr t9
_nop
lw gp,0x28(sp)
lw v0,-0x7fd0(gp)
ldc1 f2,0x43e0(v0)
c.le.D f2,f0
bc1t 0x7,0x000a3914
_lui v1,0x8000
trunc.w.D f0,f0
mfc1 v0,f0
lw v1,0x1c(s7)
sltu v0,v0,v1
movz.D f20,f28,v0
c.lt.D f20,f22
bc1f 0x000a3938
_lw v0,0x5c(sp)
addiu s8,s8,0x1
lw v0,0x4c(sp)
slt v0,s8,v0
beq v0,zero,0x000a3e8c
_nop
mtc1 s8,f0
cvt.d.W f24,f0
lw v0,0x1c(s5)
lw s0,0xc(s5)
ldc1 f22,0x0(v0)
ldc1 f28,0x10(v0)
ldc1 f2,0x10(s0)
ldc1 f0,0x20(s0)
madd.D f0,f0,f24,f2
mfc1 v1,f0
mfhc1 v0,f0
ldc1 f20,0x0(s0)
ldc1 f0,0x50(sp)
c.le.D f0,f20
bc1f 0x000a35f0
_lw a0,-0x7fcc(gp)
lui a0,0x8000
xor a0,v0,a0
sw a0,0x38(sp)
sw v1,0x3c(sp)
ldc1 f0,0x38(sp)
div.D f0,f0,f20
c.lt.D f22,f0
bc1f 0x1,0x000a3860
_nop
mov.D f22,f0
lw a0,0x18(s7)
mtc1 a0,f0
bltz a0,0x000a35e0
_cvt.d.W f0,f0
mtc1 v1,f2
mthc1 v0,f2
sub.D D f0,f0,f2
div.D f20,f0,f20
c.lt.D f20,f28
bc1t 0x2,0x000a3890
_nop
mov.D f20,f28
ldc1 f2,0x18(s0)
ldc1 f0,0x28(s0)
madd.D f0,f0,f24,f2
mfc1 v1,f0
mfhc1 v0,f0
ldc1 f0,0x8(s0)
ldc1 f2,0x43c8(s6)
c.le.D f2,f0
bc1f 0x000a36fc
_lw a0,-0x7fcc(gp)
lui a0,0x8000
xor a0,v0,a0
sw a0,0x40(sp)
sw v1,0x44(sp)
ldc1 f2,0x40(sp)
div.D f2,f2,f0
c.lt.D f22,f2
bc1f 0x1,0x000a38e0
_nop
mov.D f22,f2
lw a0,0x1c(s7)
mtc1 a0,f2
bltz a0,0x000a36ec
_cvt.d.W f2,f2
mtc1 v1,f4
mthc1 v0,f4
sub.D D f2,f2,f4
div.D f2,f2,f0
c.lt.D f2,f20
bc1f 0x2,0x000a37d8
_nop
b 0x000a37d8
_mov.D f20,f2
sub.D D f2,f0,f2
trunc.w.D f0,f2
mfc1 v0,f0
b 0x000a37cc
_or v0,v0,v1
b 0x000a37d8
_mov.D f20,f28
mov.D f20,f22
lw v0,0x5c(sp)
ldc1 f28,0x43d0(v0)
sub.D D f22,f22,f28
mov.D f12,f22
lw t9,-0x7c78(gp)
jalr t9
_nop
lw gp,0x28(sp)
trunc.w.D f0,f0
mfc1 s2,f0
add.D f28,f20,f28
mov.D f12,f28
lw t9,-0x7228(gp)
jalr t9
_nop
lw gp,0x28(sp)
mov.D f20,f0
mov.D f12,f22
lw t9,-0x7c78(gp)
jalr t9
_nop
lw gp,0x28(sp)
sub.D D f0,f20,f0
lw v0,-0x7fd0(gp)
ldc1 f2,0x4408(v0)
add.D f0,f0,f2
lw v0,-0x7fd0(gp)
ldc1 f20,0x43e0(v0)
c.le.D f20,f0
bc1t 0x1,0x000a3abc
_lui v0,0x8000
trunc.w.D f0,f0
mfc1 a3,f0
sw s4,0x14(sp)
li v0,0x1
sw v0,0x10(sp)
or a2,s8,zero
or a1,s2,zero
lw a0,0x58(sp)
lw t9,-0x724c(gp)
jalr t9
_nop
lw gp,0x28(sp)
beq v0,zero,0x000a37e4
_or s0,v0,zero
lw a0,0x18(s5)
or v0,a0,zero
addiu v1,sp,0xd0
addiu a1,a0,0x50
lw t1,0x0(v0)
lw t0,0x4(v0)
lw a3,0x8(v0)
lw a2,0xc(v0)
sw t1,0x0(v1)
sw t0,0x4(v1)
sw a3,0x8(v1)
sw a2,0xc(v1)
addiu v0,v0,0x10
bne v0,a1,0x000a39f8
_addiu v1,v1,0x10
lw a1,0x0(v0)
lw v0,0x4(v0)
sw a1,0x0(v1)
sw v0,0x4(v1)
or v0,a0,zero
addiu v1,sp,0x78
addiu a0,a0,0x50
lw t0,0x0(v0)
lw a3,0x4(v0)
lw a2,0x8(v0)
lw a1,0xc(v0)
sw t0,0x0(v1)
sw a3,0x4(v1)
sw a2,0x8(v1)
sw a1,0xc(v1)
addiu v0,v0,0x10
bne v0,a0,0x000a3a40
_addiu v1,v1,0x10
lw a0,0x0(v0)
lw v0,0x4(v0)
sw a0,0x0(v1)
sw v0,0x4(v1)
mov.D f12,f28
lw t9,-0x7228(gp)
jalr t9
_nop
lw gp,0x28(sp)
trunc.w.D f0,f0
lw v0,-0x7fd0(gp)
sw v0,0x74(sp)
ldc1 f22,0x4418(v0)
lw s3,-0x7fd0(gp)
ldc1 f20,0x4408(s3)
sw s8,0x70(sp)
b 0x000a3cb4
_mfc1 s8,f0
b 0x000a3934
_mov.D f20,f22
sub.D D f0,f0,f20
trunc.w.D f0,f0
mfc1 a3,f0
b 0x000a39b8
_or a3,a3,v0
lw s8,0x70(sp)
or a1,s4,zero
lw a0,0x58(sp)
lw t9,-0x73a0(gp)
jalr t9
_nop
lw gp,0x28(sp)
bne v0,zero,0x000a37e4
_nop
b 0x000a37e4
_sw zero,0x28(s5)
lw v1,0x40(v0)
beq v1,zero,0x000a3b24
_ldc1 f0,0x118(sp)
lw v0,0x44(v0)
sll v0,v0,0x2
addu v0,s0,v0
lwc1 f0,0x0(v0)
cvt.d.S f0,f0
sdc1 f0,0xc8(sp)
ldc1 f0,0x118(sp)
mul.D f0,f0,f26
ldc1 f2,0xc0(sp)
mul.D f2,f2,f26
add.D f12,f0,f2
mul.D f6,f0,f2
sub.D D f6,f12,f6
mtc1 zero,f4
mthc1 zero,f4
c.lt.D f6,f4
bc1t 0x2,0x000a3e7c
_nop
c.lt.D f20,f6
bc1f 0x3,0x000a3b60
_mov.D f8,f6
ldc1 f8,0x4408(s3)
lw v0,0x48(sp)
ldc1 f4,0x4a48(v0)
mul.D f4,f8,f4
sdc1 f4,0xc0(sp)
mtc1 zero,f4
mthc1 zero,f4
c.lt.D f6,f4
bc1t 0x4,0x000a3e3c
_lw v0,0x74(sp)
ldc1 f10,0x4408(s3)
mul.D f4,f6,f10
ldc1 f14,0x43c8(s6)
c.le.D f14,f4
bc1f 0x5,0x000a3e44
_ldc1 f12,0x43c8(s6)
ldc1 f12,0x4408(s3)
div.D f12,f12,f6
ldc1 f10,0x4408(s3)
sub.D D f10,f10,f0
ldc1 f4,0xa0(sp)
mul.D f4,f2,f4
ldc1 f6,0xf8(sp)
mul.D f6,f0,f6
madd.D f6,f6,f4,f10
mul.D f6,f6,f12
sdc1 f6,0xa0(sp)
ldc1 f4,0xa8(sp)
mul.D f4,f2,f4
ldc1 f8,0x100(sp)
mul.D f8,f0,f8
madd.D f8,f8,f4,f10
mul.D f8,f8,f12
sdc1 f8,0xa8(sp)
ldc1 f4,0xb0(sp)
mul.D f4,f2,f4
ldc1 f8,0x108(sp)
mul.D f8,f0,f8
madd.D f8,f8,f4,f10
mul.D f8,f8,f12
sdc1 f8,0xb0(sp)
lw v1,0x7c(sp)
li v0,0x2
beq v1,v0,0x000a3e4c
_ldc1 f4,0xb8(sp)
lw v0,0x2d0(s1)
lw v1,0x8(v0)
sll v1,v1,0x2
addu v1,s0,v1
cvt.s.D f6,f6
swc1 f6,0x0(v1)
lw v1,0x14(v0)
sll v1,v1,0x2
addu v1,s0,v1
ldc1 f0,0xa8(sp)
cvt.s.D f0,f0
swc1 f0,0x0(v1)
lw v1,0x20(v0)
sll v1,v1,0x2
addu v1,s0,v1
ldc1 f0,0xb0(sp)
cvt.s.D f0,f0
swc1 f0,0x0(v1)
lw v1,0x28(v0)
beq v1,zero,0x000a3c78
_ldc1 f0,0xb8(sp)
lw v1,0x2c(v0)
sll v1,v1,0x2
addu v1,s0,v1
cvt.s.D f0,f0
swc1 f0,0x0(v1)
lw v1,0x34(v0)
beq v1,zero,0x000a3ca4
_lw v1,0x80(sp)
beq v1,zero,0x000a3e68
_lw v1,-0x7fd0(gp)
ldc1 f0,0xc0(sp)
cvt.s.D f0,f0
lw v0,0x38(v0)
sll v0,v0,0x2
addu v0,s0,v0
swc1 f0,0x0(v0)
lw v0,0x2c0(s1)
sll v0,v0,0x2
addu s0,s0,v0
addiu s2,s2,0x1
slt v0,s8,s2
bne v0,zero,0x000a3ad0
_mtc1 s2,f0
cvt.d.W f8,f0
lw v0,0xc(s5)
sw s4,0x24(sp)
addiu v1,sp,0xd0
sw v1,0x20(sp)
ldc1 f6,0x8(v0)
ldc1 f4,0x18(v0)
mul.D f4,f24,f4
madd.D f6,f4,f8,f6
ldc1 f4,0x28(v0)
add.D f4,f6,f4
sdc1 f4,0x18(sp)
ldc1 f0,0x0(v0)
ldc1 f2,0x10(v0)
mul.D f2,f24,f2
madd.D f2,f2,f8,f0
ldc1 f4,0x20(v0)
add.D f2,f2,f4
sdc1 f2,0x10(sp)
or a2,zero,zero
lw a1,0x34(sp)
or a0,s7,zero
lw t9,-0x780c(gp)
jalr t9
_nop
lw gp,0x28(sp)
beq v0,zero,0x000a3ad0
_sw v0,0x28(s5)
li a2,0x58
or a1,zero,zero
addiu a0,sp,0x78
lw t9,-0x78a4(gp)
jalr t9
_nop
lw gp,0x28(sp)
li v0,0x1
sw v0,0x78(sp)
li v0,0x17
sw v0,0x7c(sp)
li v0,0x10
sw v0,0x90(sp)
sw zero,0x80(sp)
beq s1,zero,0x000a3b20
_sdc1 f30,0xc0(sp)
lw v0,0x0(s1)
sw v0,0x78(sp)
lw v0,0x4(s1)
sw v0,0x7c(sp)
ldc1 f0,0x248(s1)
sdc1 f0,0x88(sp)
lw v0,0x20(s1)
sw v0,0x90(sp)
lw v0,0x2bc(s1)
beq s0,zero,0x000a3b20
_sw v0,0x80(sp)
lw v0,0x2d0(s1)
lw v1,0x8(v0)
sll v1,v1,0x2
addu v1,s0,v1
lwc1 f0,0x0(v1)
cvt.d.S f0,f0
sdc1 f0,0xa0(sp)
lw v1,0x14(v0)
sll v1,v1,0x2
addu v1,s0,v1
lwc1 f0,0x0(v1)
cvt.d.S f0,f0
sdc1 f0,0xa8(sp)
lw v1,0x20(v0)
sll v1,v1,0x2
addu v1,s0,v1
lwc1 f0,0x0(v1)
cvt.d.S f0,f0
sdc1 f0,0xb0(sp)
lw v1,0x28(v0)
beq v1,zero,0x000a3e0c
_nop
lw v1,0x2c(v0)
sll v1,v1,0x2
addu v1,s0,v1
lwc1 f0,0x0(v1)
cvt.d.S f0,f0
sdc1 f0,0xb8(sp)
lw v1,0x34(v0)
beq v1,zero,0x000a3afc
_nop
lw v1,0x38(v0)
sll v1,v1,0x2
addu v1,s0,v1
lwc1 f0,0x0(v1)
cvt.d.S f0,f0
sdc1 f0,0xc0(sp)
li v1,0x4
b 0x000a3afc
_sw v1,0x80(sp)
b 0x000a3b88
_ldc1 f10,0x4418(v0)
b 0x000a3ba4
_div.D f12,f10,f12
mul.D f2,f2,f4
ldc1 f8,0x110(sp)
mul.D f0,f0,f8
madd.D f2,f0,f2,f10
mul.D f2,f2,f12
b 0x000a3c10
_sdc1 f2,0xb8(sp)
b 0x000a3c94
_lwc1 f0,0x4aa8(v1)
addiu a0,a0,0x1
b 0x000a3578
_or s8,zero,zero
sw zero,0xc4(sp)
sw zero,0xc0(sp)
b 0x000a3b88
_mov.D f10,f22
lw v1,0x12c(sp)
lw v0,-0x7668(gp)
lw v0,0x0(v0)
bne v1,v0,0x000a3ee4
_lw ra,0x154(sp)
lw s8,0x150(sp)
lw s7,0x14c(sp)
lw s6,0x148(sp)
lw s5,0x144(sp)
lw s4,0x140(sp)
lw s3,0x13c(sp)
lw s2,0x138(sp)
lw s1,0x134(sp)
lw s0,0x130(sp)
ldc1 f30,0x180(sp)
ldc1 f28,0x178(sp)
ldc1 f26,0x170(sp)
ldc1 f24,0x168(sp)
ldc1 f22,0x160(sp)
ldc1 f20,0x158(sp)
jr ra
_addiu sp,sp,0x188
lw t9,-0x7834(gp)
jalr t9
_nop
(translation_unit "int FUN_000a34c4(undefined4 *param_1)\n\n{\n  bool bVar1;\n  int *piVar2;\n  int iVar3;\n  undefined4 uVar4;\n  double *pdVar5;\n  undefined *puVar6;\n  int *piVar7;\n  uint uVar8;\n  undefined4 *puVar9;\n  int iVar10;\n  int *piVar11;\n  int iVar12;\n  undefined4 *puVar13;\n  double *pdVar14;\n  int extraout_v1;\n  double *extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  double *extraout_v1_03;\n  int extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int extraout_v1_07;\n  int extraout_v1_08;\n  undefined4 *puVar15;\n  double *pdVar16;\n  int *piVar17;\n  uint uVar18;\n  int *piVar19;\n  undefined8 *puVar20;\n  undefined4 *puVar21;\n  uint uVar22;\n  uint *puVar23;\n  int **ppiVar24;\n  undefined4 uVar25;\n  uint uVar26;\n  undefined4 uVar27;\n  int iVar28;\n  double *pdVar29;\n  double *pdVar30;\n  int unaff_s2;\n  int iVar31;\n  uint *puVar32;\n  double *unaff_s3;\n  int **ppiVar33;\n  int *unaff_s4;\n  int **ppiVar34;\n  undefined1 *puVar35;\n  double *unaff_s6;\n  uint unaff_s7;\n  undefined *puVar36;\n  code *pcVar37;\n  code *pcVar38;\n  double dVar39;\n  double dVar40;\n  double dVar41;\n  float fVar43;\n  double dVar42;\n  double dVar44;\n  double dVar45;\n  double dVar46;\n  double in_f20_21;\n  double dVar47;\n  double in_f22_23;\n  double in_f24_25;\n  double in_f26_27;\n  double in_f28_29;\n  double in_f30_31;\n  int *piVar48;\n  int iVar49;\n  int iVar50;\n  undefined8 uVar51;\n  undefined1 auStack_898 [4];\n  int iStack_894;\n  undefined8 *puStack_88c;\n  int iStack_888;\n  double *pdStack_884;\n  int **ppiStack_880;\n  int **ppiStack_87c;\n  undefined1 *puStack_878;\n  code *pcStack_874;\n  int iStack_860;\n  code *pcStack_858;\n  undefined4 uStack_850;\n  code *pcStack_84c;\n  int iStack_838;\n  int iStack_834;\n  code *pcStack_830;\n  int *piStack_828;\n  int *piStack_824;\n  int *piStack_820;\n  int *piStack_81c;\n  double dStack_818;\n  int iStack_810;\n  double *pdStack_80c;\n  undefined4 uStack_808;\n  int **ppiStack_804;\n  int **ppiStack_800;\n  undefined1 *puStack_7fc;\n  int **ppiStack_7f8;\n  int iStack_7f4;\n  undefined1 auStack_7f0 [92];\n  undefined8 *puStack_794;\n  double *pdStack_790;\n  int *piStack_78c;\n  uint *puStack_788;\n  double *pdStack_784;\n  int iStack_780;\n  code *pcStack_77c;\n  double dStack_778;\n  int iStack_760;\n  int *piStack_75c;\n  code *pcStack_758;\n  double dStack_750;\n  double dStack_748;\n  double dStack_740;\n  double dStack_738;\n  int *piStack_72c;\n  uint *puStack_728;\n  double *pdStack_724;\n  double *pdStack_720;\n  undefined1 *puStack_71c;\n  undefined4 uStack_718;\n  undefined1 *puStack_714;\n  double *pdStack_710;\n  int iStack_70c;\n  int iStack_708;\n  int iStack_704;\n  double dStack_700;\n  double dStack_6f8;\n  double dStack_6f0;\n  double dStack_6e8;\n  double dStack_6e0;\n  double dStack_6d8;\n  undefined1 auStack_6d0 [88];\n  undefined8 uStack_678;\n  undefined4 uStack_670;\n  undefined4 uStack_66c;\n  double dStack_668;\n  undefined4 uStack_660;\n  undefined4 uStack_65c;\n  double dStack_658;\n  double dStack_650;\n  undefined4 uStack_648;\n  undefined4 uStack_644;\n  double dStack_640;\n  undefined8 uStack_638;\n  double *pdStack_62c;\n  int *piStack_628;\n  uint *puStack_624;\n  double *pdStack_620;\n  int iStack_61c;\n  undefined1 *puStack_618;\n  double *pdStack_614;\n  uint uStack_610;\n  code *pcStack_60c;\n  double dStack_608;\n  double dStack_600;\n  double dStack_5f8;\n  double dStack_5f0;\n  int iStack_5d8;\n  code *pcStack_5d0;\n  double *pdStack_5c8;\n  code *pcStack_5c4;\n  undefined4 uStack_5b0;\n  uint uStack_5ac;\n  code *pcStack_5a8;\n  undefined8 uStack_5a0;\n  double dStack_598;\n  double dStack_590;\n  double *pdStack_588;\n  int iStack_584;\n  double dStack_580;\n  double dStack_578;\n  int iStack_570;\n  undefined1 *puStack_56c;\n  double *pdStack_568;\n  uint uStack_564;\n  double dStack_560;\n  double dStack_558;\n  uint uStack_550;\n  undefined4 uStack_54c;\n  double dStack_548;\n  double dStack_540;\n  uint uStack_538;\n  undefined4 uStack_534;\n  double dStack_530;\n  uint uStack_528;\n  undefined4 uStack_524;\n  double dStack_520;\n  double dStack_518;\n  int aiStack_510 [4];\n  undefined8 uStack_500;\n  int iStack_4f8;\n  double dStack_4e8;\n  double dStack_4e0;\n  double dStack_4d8;\n  double dStack_4d0;\n  double dStack_4c8;\n  double dStack_4c0;\n  int iStack_4b4;\n  uint uStack_4b0;\n  int iStack_4ac;\n  double *pdStack_4a8;\n  double *pdStack_4a4;\n  int iStack_4a0;\n  undefined4 *puStack_49c;\n  double *pdStack_498;\n  uint uStack_494;\n  int iStack_490;\n  code *pcStack_48c;\n  double dStack_488;\n  double dStack_480;\n  double dStack_478;\n  double dStack_470;\n  double dStack_468;\n  double dStack_460;\n  int *piStack_448;\n  uint uStack_444;\n  code *pcStack_440;\n  uint uStack_434;\n  uint uStack_430;\n  double *pdStack_42c;\n  uint uStack_428;\n  uint uStack_424;\n  uint uStack_420;\n  undefined4 uStack_41c;\n  int aiStack_418 [10];\n  double dStack_3f0;\n  double dStack_3e8;\n  double dStack_3e0;\n  double dStack_3d8;\n  double dStack_3d0;\n  int iStack_3bc;\n  int iStack_3b8;\n  uint uStack_3b4;\n  double *pdStack_3b0;\n  double *pdStack_3ac;\n  int *piStack_3a8;\n  undefined4 *puStack_3a4;\n  double *pdStack_3a0;\n  uint uStack_39c;\n  int iStack_398;\n  code *pcStack_394;\n  double dStack_390;\n  double dStack_388;\n  double dStack_380;\n  double dStack_378;\n  double dStack_370;\n  undefined4 *puStack_358;\n  undefined4 uStack_354;\n  undefined *puStack_350;\n  undefined8 uStack_348;\n  double dStack_340;\n  double dStack_338;\n  double dStack_330;\n  uint uStack_328;\n  int iStack_324;\n  double dStack_320;\n  double dStack_318;\n  uint uStack_310;\n  undefined4 uStack_30c;\n  int iStack_308;\n  int *piStack_304;\n  double dStack_300;\n  uint uStack_2f8;\n  int iStack_2f4;\n  int iStack_2f0;\n  double *pdStack_2ec;\n  uint uStack_2e8;\n  undefined4 uStack_2e4;\n  uint uStack_2e0;\n  undefined4 uStack_2dc;\n  double *pdStack_2d8;\n  uint uStack_2d4;\n  undefined4 uStack_2d0;\n  double *pdStack_2cc;\n  uint uStack_2c8;\n  undefined4 uStack_2c4;\n  int iStack_2c0;\n  undefined4 *puStack_2bc;\n  double dStack_2b8;\n  uint uStack_2b0;\n  undefined4 uStack_2ac;\n  double *pdStack_2a8;\n  undefined1 *puStack_2a4;\n  double *pdStack_2a0;\n  int iStack_29c;\n  undefined4 auStack_298 [18];\n  double dStack_250;\n  undefined4 auStack_240 [18];\n  double dStack_1f8;\n  int iStack_1e4;\n  double *pdStack_1e0;\n  int *piStack_1dc;\n  int iStack_1d8;\n  double *pdStack_1d4;\n  int *piStack_1d0;\n  undefined4 *puStack_1cc;\n  double *pdStack_1c8;\n  uint uStack_1c4;\n  int iStack_1c0;\n  code *pcStack_1bc;\n  double dStack_1b8;\n  double dStack_1b0;\n  double dStack_1a8;\n  double dStack_1a0;\n  double dStack_198;\n  double dStack_190;\n  undefined8 local_178;\n  double local_170;\n  int *local_168;\n  int *local_164;\n  int local_110 [4];\n  undefined8 local_100;\n  int local_f8;\n  double local_e8;\n  double local_e0;\n  double local_d8;\n  double local_d0;\n  double local_c8;\n  double local_c0;\n  int local_b8 [10];\n  double local_90;\n  double local_88;\n  double local_80;\n  double local_78;\n  double local_70;\n  int local_5c;\n  \n  local_5c = *(int *)PTR___stack_chk_guard_003fa248;\n  pdVar29 = (double *)param_1[8];\n  piVar2 = (int *)(*(code *)PTR_omp_get_num_threads_003fa924)();\n  iVar3 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n  puVar36 = PTR_LAB_003f98e0;\n  iVar10 = (param_1[9] + 1) - (int)pdVar29;\n  if (piVar2 == (int *)0x0) {\n    trap(7);\n  }\n  iVar49 = iVar10 / (int)piVar2;\n  iVar10 = iVar10 % (int)piVar2;\n  if (iVar3 < iVar10) {\n    iVar49 = iVar49 + 1;\n    iVar10 = 0;\n  }\n  iVar10 = iVar49 * iVar3 + iVar10;\n  pdVar16 = (double *)(iVar49 + iVar10);\n  iVar3 = (int)pdVar29 + iVar10;\n  if (iVar10 < (int)pdVar16) {\n    uVar4 = param_1[5];\n    pdVar5 = (double *)param_1[4];\n    unaff_s4 = (int *)param_1[2];\n    unaff_s7 = param_1[1];\n    piVar2 = (int *)*param_1;\n    puVar6 = (undefined *)((int)pdVar29 + (int)pdVar16);\n    dVar39 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    in_f26_27 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    in_f30_31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n    do {\n      in_f24_25 = (double)iVar3;\n      pdVar29 = (double *)param_1[3];\n      in_f20_21 = *(double *)param_1[7];\n      in_f28_29 = ((double *)param_1[7])[2];\n      dVar40 = in_f24_25 * pdVar29[2] + pdVar29[4];\n      dVar47 = *pdVar29;\n      dVar41 = in_f28_29;\n      if (dVar39 <= dVar47) {\n        in_f22_23 = -dVar40 / dVar47;\n        if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }\n        dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n        if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }\n        dVar47 = (dVar44 - dVar40) / dVar47;\n        if (dVar47 < in_f28_29) {\n          dVar41 = dVar47;\n        }\nLAB_000a3890:\n        dVar40 = in_f24_25 * pdVar29[3] + pdVar29[5];\n        dVar47 = pdVar29[1];\n        if (*(double *)(puVar36 + 0x43c8) <= dVar47) {\n          dVar44 = -dVar40 / dVar47;\n          if (-dVar40 / dVar47 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = *(double **)(unaff_s7 + 0x1c);\n          dVar44 = (double)(int)pdVar16;\n          if ((int)pdVar16 < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar44 - dVar40) / dVar47;\n          if (dVar41 <= in_f20_21) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }\n        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;\n      }\n      else {\n        if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar44 - dVar40) / dVar47;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar40) {\n          dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n          if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar41;\n          if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar36 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar41 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar41;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar40 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar41 = (dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar41 < in_f20_21) {\n          uVar26 = (uint)dVar41;\n        }\n        else {\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar16 = pdVar5;\n        pdVar29 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26);\n        if (pdVar29 != (double *)0x0) {\n          piVar17 = (int *)param_1[6];\n          piVar48 = piVar17;\n          piVar19 = local_b8;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          piVar48 = piVar17;\n          piVar19 = local_110;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }\n          pdVar16 = pdVar5;\n          iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);\n          if (iVar10 == 0) {\n            param_1[10] = 0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n      unaff_s6 = (double *)puVar36;\n    } while (iVar3 < (int)puVar6);\n  }\n  if (local_5c == *(int *)PTR___stack_chk_guard_003fa248) {\n    return *(int *)PTR___stack_chk_guard_003fa248;\n  }\n  pcVar37 = FUN_000a3ef0;\n  puVar36 = PTR___stack_chk_fail_003fa07c;\n  (*(code *)PTR___stack_chk_fail_003fa07c)();\n  puStack_350 = puVar36 + 0x35d9c0;\n  iStack_1e4 = **(int **)(puVar36 + 0x356358);\n  iVar28 = *(int *)((int)pdVar16 + 0x24);\n  pdStack_2a8 = pdVar16;\n  pdStack_1e0 = pdVar29;\n  piStack_1dc = piVar2;\n  iStack_1d8 = unaff_s2;\n  pdStack_1d4 = unaff_s3;\n  piStack_1d0 = unaff_s4;\n  puStack_1cc = param_1;\n  pdStack_1c8 = unaff_s6;\n  uStack_1c4 = unaff_s7;\n  iStack_1c0 = iVar3;\n  pcStack_1bc = pcVar37;\n  dStack_1b8 = in_f20_21;\n  dStack_1b0 = in_f22_23;\n  dStack_1a8 = in_f24_25;\n  dStack_1a0 = in_f26_27;\n  dStack_198 = in_f28_29;\n  dStack_190 = in_f30_31;\n  iVar10 = (**(code **)(puVar36 + 0x356a34))();\n  iVar49 = (**(code **)(puStack_350 + -0x7390))();\n  iVar12 = (*(int *)(pdVar16 + 5) + 1) - iVar28;\n  if (iVar10 == 0) {\n    trap(7);\n  }\n  iVar50 = iVar12 / iVar10;\n  iVar12 = iVar12 % iVar10;\n  uVar26 = (uint)(iVar49 < iVar12);\n  if (uVar26 != 0) {\n    iVar50 = iVar50 + 1;\n    iVar12 = 0;\n  }\n  uVar8 = iVar50 * iVar49 + iVar12;\n  pdVar29 = (double *)(iVar50 + uVar8);\n  if ((int)uVar8 < (int)pdVar29) {\n    iStack_29c = *(int *)((int)pdStack_2a8 + 0x1c);\n    in_f28_29 = *pdStack_2a8;\n    iStack_2f4 = *(int *)(pdStack_2a8 + 3);\n    pdStack_2a0 = *(double **)((int)pdStack_2a8 + 0x14);\n    uStack_2d0 = *(undefined4 *)(pdStack_2a8 + 2);\n    iStack_324 = *(int *)((int)pdStack_2a8 + 0xc);\n    unaff_s6 = *(double **)(pdStack_2a8 + 1);\n    iStack_2f0 = iVar28 + uVar8;\n    puStack_2a4 = (undefined1 *)(iVar28 + (int)pdVar29);\n    unaff_s7 = *(uint *)(puStack_350 + -0x7fd0);\n    dStack_320 = *(double *)(unaff_s7 + 0x4408);\n    iVar3 = *(int *)(puStack_350 + -0x7fd0);\n    dStack_2b8 = *(double *)(iVar3 + 0x43c8);\n    uStack_2f8 = uVar8;\n    do {\n      iVar28 = (**(code **)(puStack_350 + -0x7390))();\n      if (*(int *)((int)pdStack_2a8 + 0x2c) != 0) {\n        pdVar29 = *(double **)(pdStack_2a8 + 4);\n        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21);\n        uStack_2d4 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21);\n        uVar26 = uStack_2d4;\n        pdVar16 = (double *)(int)dVar39;\n        uStack_354 = uStack_2d0;\n        puStack_358 = (undefined4 *)0x1;\n        pdVar29 = pdStack_2a0;\n        pdStack_2cc = pdVar16;\n        iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)));\n        if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar28 = iVar28 * 4;\n          puVar36 = puStack_350;\n          if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar29 = pdStack_2a0;\n          iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }\n      }\n      iStack_2f0 = iStack_2f0 + 1;\n      uStack_2f8 = uStack_2f8 + 1;\n    } while (iStack_2f0 < (int)puStack_2a4);\n  }\n  if (iStack_1e4 == **(int **)(puStack_350 + -0x7668)) {\n    return **(int **)(puStack_350 + -0x7668);\n  }\n  pcVar37 = *(code **)(puStack_350 + -0x7834);\n  pcVar38 = FUN_000a5040;\n  (*pcVar37)();\n  pcStack_440 = pcVar37 + 0x35c870;\n  iStack_3bc = **(int **)(pcVar37 + 0x355208);\n  uVar8 = *(uint *)(pdVar29 + 3);\n  pdVar5 = pdVar29;\n  uStack_428 = uVar8;\n  iStack_3b8 = iVar28;\n  uStack_3b4 = uVar26;\n  pdStack_3b0 = pdVar16;\n  pdStack_3ac = unaff_s3;\n  piStack_3a8 = unaff_s4;\n  puStack_3a4 = param_1;\n  pdStack_3a0 = unaff_s6;\n  uStack_39c = unaff_s7;\n  iStack_398 = iVar3;\n  pcStack_394 = pcVar38;\n  dStack_390 = in_f20_21;\n  dStack_388 = in_f22_23;\n  dStack_380 = in_f24_25;\n  dStack_378 = in_f26_27;\n  dStack_370 = in_f28_29;\n  iVar3 = (**(code **)(pcVar37 + 0x3558e4))();\n  iVar10 = (**(code **)(pcStack_440 + -0x7390))();\n  iVar49 = (*(uint *)((int)pdVar29 + 0x1c) + 1) - uVar8;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar28 = iVar49 / iVar3;\n  iVar49 = iVar49 % iVar3;\n  uVar26 = (uint)(iVar10 < iVar49);\n  if (uVar26 != 0) {\n    iVar28 = iVar28 + 1;\n    iVar49 = 0;\n  }\n  iVar49 = iVar28 * iVar10 + iVar49;\n  iVar28 = iVar28 + iVar49;\n  iVar3 = *(int *)(pcStack_440 + -0x7fd0);\n  pcVar37 = pcStack_440;\n  if (iVar49 < iVar28) {\n    pdStack_42c = *(double **)(pdVar29 + 2);\n    uStack_430 = *(uint *)((int)pdVar29 + 0xc);\n    unaff_s6 = *(double **)(pdVar29 + 1);\n    uStack_424 = *(uint *)((int)pdVar29 + 4);\n    unaff_s7 = *(uint *)pdVar29;\n    iVar49 = uStack_428 + iVar49;\n    iVar28 = uStack_428 + iVar28;\n    in_f22_23 = *(double *)(iVar3 + 0x43d0);\n    in_f26_27 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8);\n    in_f28_29 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410);\n    do {\n      in_f20_21 = *(double *)(iVar3 + 0x43d0);\n      if (*(uint *)(pdVar29 + 4) != 0) {\n        pdVar16 = *(double **)((int)pdVar29 + 0x14);\n        dVar39 = (double)(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21);\n        uStack_434 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21);\n        uVar26 = uStack_434;\n        param_1 = (undefined4 *)(int)dVar39;\n        uStack_444 = uStack_430;\n        piStack_448 = (int *)0x1;\n        pdVar5 = pdStack_42c;\n        pdVar16 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434));\n        if (pdVar16 == (double *)0x0) {\n          *(uint *)(pdVar29 + 4) = 0;\n          pcVar37 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar26 <= (int)param_1;\n          uVar26 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }\n          pdVar5 = pdStack_42c;\n          iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar37 = pcStack_440;\n          if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }\n        }\n      }\n      iVar49 = iVar49 + 1;\n    } while (iVar49 < iVar28);\n  }\n  if (iStack_3bc == **(int **)(pcVar37 + -0x7668)) {\n    return **(int **)(pcVar37 + -0x7668);\n  }\n  pcVar37 = *(code **)(pcVar37 + -0x7834);\n  pcVar38 = FUN_000a549c;\n  (*pcVar37)();\n  pcStack_5a8 = pcVar37 + 0x35c414;\n  iStack_4b4 = **(int **)(pcVar37 + 0x354dac);\n  puVar32 = *(uint **)(pdVar5 + 4);\n  pdVar30 = (double *)puVar32[3];\n  pdVar14 = pdVar5;\n  uStack_4b0 = uVar26;\n  iStack_4ac = iVar49;\n  pdStack_4a8 = pdVar16;\n  pdStack_4a4 = pdVar29;\n  iStack_4a0 = iVar28;\n  puStack_49c = param_1;\n  pdStack_498 = unaff_s6;\n  uStack_494 = unaff_s7;\n  iStack_490 = iVar3;\n  pcStack_48c = pcVar38;\n  dStack_488 = in_f20_21;\n  dStack_480 = in_f22_23;\n  dStack_478 = in_f24_25;\n  dStack_470 = in_f26_27;\n  dStack_468 = in_f28_29;\n  dStack_460 = in_f30_31;\n  iVar3 = (**(code **)(pcVar37 + 0x355488))();\n  iVar10 = (**(code **)(pcStack_5a8 + -0x7390))();\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar49 = (int)(puVar32[1] - (int)pdVar30) / iVar3;\n  piVar48 = (int *)((int)(puVar32[1] - (int)pdVar30) % iVar3);\n  piVar2 = piVar48;\n  if (iVar10 < (int)piVar48) {\n    iVar49 = iVar49 + 1;\n    piVar2 = (int *)0x0;\n  }\n  piVar2 = (int *)(iVar49 * iVar10 + (int)piVar2);\n  puVar35 = (undefined1 *)((int)pdVar30 + (int)piVar2);\n  pcVar37 = pcStack_5a8;\n  if ((int)piVar2 < iVar49 + (int)piVar2) {\n    dStack_580 = *pdVar5;\n    pdStack_588 = *(double **)(pdVar5 + 3);\n    puVar32 = *(uint **)((int)pdVar5 + 0x14);\n    pdStack_568 = *(double **)(pdVar5 + 2);\n    uStack_564 = *(uint *)((int)pdVar5 + 0xc);\n    piVar48 = *(int **)(pdVar5 + 1);\n    puStack_56c = (undefined1 *)((int)pdVar30 + iVar49 + (int)piVar2);\n    dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n    if (dStack_580 < 0.0) {\n      dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n    }\n    iStack_570 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_598 = *(double *)(iStack_570 + 0x4a48);\n    iStack_584 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_560 = *(double *)(iStack_584 + 0x43d0);\n    unaff_s6 = *(double **)(pcStack_5a8 + -0x7fd0);\n    dStack_548 = unaff_s6[0x879];\n    do {\n      if (*(uint *)((int)pdVar5 + 0x24) != 0) {\n        uStack_5ac = uStack_564;\n        uStack_5b0 = 1;\n        pdVar14 = pdStack_568;\n        pdVar30 = (double *)(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6]);\n        if (pdVar30 == (double *)0x0) {\n          *(uint *)((int)pdVar5 + 0x24) = 0;\n          pcVar37 = pcStack_5a8;\n        }\n        else {\n          piVar17 = *(int **)((int)pdVar5 + 0x1c);\n          piVar2 = piVar17;\n          piVar19 = aiStack_510;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);\n          iVar10 = *piVar2;\n          iVar3 = piVar7[5];\n          *piVar19 = iVar10;\n          piVar11[5] = iVar3;\n          in_f20_21 = *(double *)(piVar17 + 10);\n          in_f22_23 = *(double *)(piVar17 + 0xc);\n          in_f24_25 = *(double *)(piVar17 + 0xe);\n          dStack_590 = *(double *)(piVar17 + 0x10);\n          dVar39 = *(double *)(piVar17 + 0x12);\n          if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];\n          pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }\n          pdVar14 = pdStack_568;\n          iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar37 = pcStack_5a8;\n          if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }\n        }\n      }\n      puVar35 = puVar35 + 1;\n    } while ((int)puVar35 < (int)puStack_56c);\n  }\n  if (iStack_4b4 == **(int **)(pcVar37 + -0x7668)) {\n    return **(int **)(pcVar37 + -0x7668);\n  }\n  pcVar37 = *(code **)(pcVar37 + -0x7834);\n  pcVar38 = DestroyDrawInfo;\n  (*pcVar37)();\n  pcStack_5d0 = pcVar37 + 0x35a8f0;\n  pdStack_5c8 = pdVar30;\n  pcStack_5c4 = pcVar38;\n  if (pdVar14 == (double *)0x0) {\n    (**(code **)(pcVar37 + 0x353660))\n              (*(int *)(pcVar37 + 0x352920) + 0x40e4,*(int *)(pcVar37 + 0x352924) + 0x69c0,0x39a,\n               *(int *)(pcVar37 + 0x352924) + 0x7914);\n    pdVar14 = pdVar30;\nLAB_000a7234:\n    iStack_5d8 = *(int *)(pcVar37 + 0x352924) + 0x10f4;\n    (**(code **)(pcVar37 + 0x353238))\n              (0x8000,*(int *)(pcVar37 + 0x352924) + 0x69c0,*(int *)(pcVar37 + 0x352924) + 0x7904,\n               0x39c);\n    uVar26 = *(uint *)(pdVar14 + 0x72);\n  }\n  else {\n    if (*(uint *)((int)pdVar14 + 0x38c) != 0) goto LAB_000a7234;\n    uVar26 = *(uint *)(pdVar14 + 0x72);\n  }\n  if (uVar26 == 0xabacadab) {\n    if (*(uint *)(pdVar14 + 0x77) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x77) = uVar26;\n    }\n    if (*(uint *)pdVar14 != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)pdVar14 = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x4c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4c) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 4) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x35) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)(pdVar14 + 0x35) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x1ac) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x1ac) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x264) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x264) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x4d) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4d) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x26c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x26c) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x50) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x50) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x52) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x52) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x29c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)((int)pdVar14 + 0x29c) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x54) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x54) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x3e) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x3e) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x2a4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x2a4) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x3ac) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3ac) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x3b4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3b4) = uVar26;\n    }\n    *(uint *)(pdVar14 + 0x72) = 0x54535254;\n    iVar3 = (**(code **)(pcStack_5d0 + -0x78d8))(pdVar14);\n    return iVar3;\n  }\n  pdVar5 = (double *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x7914);\n  pdVar16 = (double *)&DAT_0000039d;\n  puVar23 = (uint *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x69c0);\n  piVar2 = (int *)(*(int *)(pcStack_5d0 + -0x7fd0) + 0x4128);\n  pcVar37 = *(code **)(pcStack_5d0 + -0x7290);\n  pcVar38 = DrawAffineImage;\n  (*pcVar37)();\n  pcStack_758 = pcVar37 + 0x35a61c;\n  uStack_638._4_4_ = **(int **)(pcVar37 + 0x352fb4);\n  pdStack_62c = pdVar14;\n  piStack_628 = piVar48;\n  puStack_624 = puVar32;\n  pdStack_620 = pdVar29;\n  iStack_61c = iVar28;\n  puStack_618 = puVar35;\n  pdStack_614 = unaff_s6;\n  uStack_610 = unaff_s7;\n  pcStack_60c = pcVar38;\n  dStack_608 = in_f20_21;\n  dStack_600 = in_f22_23;\n  dStack_5f8 = in_f24_25;\n  dStack_5f0 = in_f26_27;\n  if (piVar2 == (int *)0x0) {\n    (**(code **)(pcVar37 + 0x35338c))\n              (*(int *)(pcVar37 + 0x35264c) + 0x3da0,*(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c0,\n               *(int *)(pcVar37 + 0x352650) + 0x78f4);\n    pdVar16 = pdVar14;\n    piVar2 = piVar48;\n    puVar23 = puVar32;\n    pdVar5 = pdVar29;\nLAB_000a7434:\n    piVar48 = (int *)(**(code **)(pcVar37 + 0x35338c))\n                               (*(int *)(pcVar37 + 0x352650) + -0x784,\n                                *(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar37 + 0x352650) + 0x78f4);\nLAB_000a745c:\n    iStack_760 = *(int *)(pcVar37 + 0x352654) + -0x2f6c;\n    piStack_75c = piVar48;\n    (**(code **)(pcVar37 + 0x352f64))\n              (0x8000,*(int *)(pcVar37 + 0x352650) + 0x69c0,*(int *)(pcVar37 + 0x352650) + 0x78e4,\n               0x4c3);\n  }\n  else {\n    if (piVar2[0xcdb] != -0x54535255) goto LAB_000a7434;\n    piVar48 = piVar2 + 0xd0;\n    if (piVar2[0xcd4] != 0) goto LAB_000a745c;\n  }\n  pcVar37 = pcStack_758;\n  if (puVar23 == (uint *)0x0) {\n    (**(code **)(pcStack_758 + -0x7290))\n              (*(int *)(pcStack_758 + -0x7fcc) + 0x6a20,*(int *)(pcStack_758 + -0x7fcc) + 0x69c0,\n               0x4c4,*(int *)(pcStack_758 + -0x7fcc) + 0x78f4);\nLAB_000a74c4:\n    (**(code **)(pcVar37 + -0x7290))\n              (*(int *)(pcVar37 + -0x7fcc) + 0x6a40,*(int *)(pcVar37 + -0x7fcc) + 0x69c0);\nLAB_000a74e8:\n    dStack_668 = (double)(**(code **)(pcVar37 + -0x7290))\n                                   (*(int *)(pcVar37 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar37 + -0x7fcc) + 0x69c0);\nLAB_000a750c:\n    dStack_668 = dStack_668 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);\n  }\n  else {\n    if (puVar23[0xcdb] != 0xabacadab) goto LAB_000a74c4;\n    if (pdVar16 == (double *)0x0) goto LAB_000a74e8;\n    uStack_678._4_4_ = 0;\n    uStack_678._0_4_ = 0;\n    uStack_66c = 0;\n    uStack_670 = 0;\n    dStack_668 = (double)(int)puVar23[6];\n    if ((int)puVar23[6] < 0) goto LAB_000a750c;\n  }\n  dStack_668 = dStack_668 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408);\n  uStack_65c = 0;\n  uStack_660 = 0;\n  dStack_658 = dStack_668;\n  dStack_650 = (double)(int)puVar23[7];\n  if ((int)puVar23[7] < 0) {\n    dStack_650 = dStack_650 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);\n  }\n  dStack_650 = dStack_650 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408);\n  uStack_644 = 0;\n  uStack_648 = 0;\n  dStack_640 = dStack_650;\n  dVar45 = *pdVar16;\n  dVar44 = pdVar16[2];\n  dVar47 = pdVar16[4];\n  dVar40 = pdVar16[1];\n  dVar41 = pdVar16[3];\n  dVar39 = pdVar16[5];\n  pdVar14 = (double *)&uStack_678;\n  pdVar29 = pdVar14;\n  do {\n    dVar42 = *pdVar29;\n    *pdVar29 = dVar45 * dVar42 + dVar44 * pdVar29[1] + dVar47;\n    pdVar29[1] = dVar40 * dVar42 + dVar41 * pdVar29[1] + dVar39;\n    pdVar29 = pdVar29 + 2;\n  } while (pdVar29 != (double *)&uStack_638);\n  dVar39 = (double)CONCAT44(uStack_670,uStack_66c);\n  dVar41 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_);\n  dVar40 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_);\n  dVar47 = (double)CONCAT44(uStack_670,uStack_66c);\n  do {\n    dVar45 = pdVar14[2];\n    dVar44 = dVar45;\n    if (dVar41 <= dVar45) {\n      dVar44 = dVar41;\n    }\n    dVar42 = pdVar14[3];\n    dVar46 = dVar42;\n    if (dVar47 <= dVar42) {\n      dVar46 = dVar47;\n    }\n    if (dVar45 <= dVar40) {\n      dVar45 = dVar40;\n    }\n    if (dVar42 <= dVar39) {\n      dVar42 = dVar39;\n    }\n    pdVar14 = pdVar14 + 2;\n    dVar39 = dVar42;\n    dVar41 = dVar44;\n    dVar40 = dVar45;\n    dVar47 = dVar46;\n  } while ((double *)&uStack_648 != pdVar14);\n  ppiVar24 = (int **)0x1;\n  pdVar29 = pdVar5;\n  iVar3 = (**(code **)(pcVar37 + -0x7074))(piVar2);\n  if (iVar3 != 0) {\n    dStack_750 = dVar44;\n    if (dVar44 <= 0.0) {\n      dStack_750 = 0.0;\n    }\n    dStack_748 = dVar46;\n    if (dVar46 <= 0.0) {\n      dStack_748 = 0.0;\n    }\n    dStack_740 = (double)piVar2[6];\n    if (piVar2[6] < 0) {\n      dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_740 = dStack_740 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar45 < dStack_740) {\n      dStack_740 = dVar45;\n    }\n    dStack_738 = (double)piVar2[7];\n    if (piVar2[7] < 0) {\n      dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_738 = dStack_738 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar42 < dStack_738) {\n      dStack_738 = dVar42;\n    }\n    dStack_6e8 = *pdVar16 * pdVar16[3] - pdVar16[1] * pdVar16[2];\n    if (0.0 <= dStack_6e8) {\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    }\n    else {\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);\n    }\n    if (dStack_6e8 * dVar39 < *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)) {\n      dStack_6e8 = dVar39 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8);\n    }\n    else {\n      dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;\n    }\n    dStack_700 = pdVar16[3] * dStack_6e8;\n    dStack_6f8 = -pdVar16[1] * dStack_6e8;\n    dStack_6f0 = -pdVar16[2] * dStack_6e8;\n    dStack_6e8 = *pdVar16 * dStack_6e8;\n    dStack_6e0 = dStack_700 * -pdVar16[4] - dStack_6f0 * pdVar16[5];\n    dStack_6d8 = dStack_6f8 * -pdVar16[4] - dStack_6e8 * pdVar16[5];\n    (**(code **)(pcStack_758 + -0x75e4))(piVar2,auStack_6d0);\n    dVar42 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0);\n    dVar39 = (double)(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar42);\n    dVar41 = (double)(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar42);\n    uVar4 = (**(code **)(pcStack_758 + -0x7144))(puVar23,pdVar5);\n    puVar35 = (undefined1 *)(**(code **)(pcStack_758 + -0x79c4))(piVar2,pdVar5);\n    iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23);\n    if (((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23), iVar3 == 3)) &&\n       ((iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 4 ||\n        (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3)))) {\n      (**(code **)(pcStack_758 + -0x775c))(7);\n      iVar10 = (int)dVar41 - (int)dVar39;\n      iVar3 = iVar10;\n      if (iVar10 < 0) {\n        iVar3 = iVar10 + 0x3f;\n      }\n      pdVar16 = (double *)(iVar3 >> 6);\n      if (extraout_v1 < (int)pdVar16) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        bVar1 = extraout_v1_01 < 2;\n      }\n      else {\n        bVar1 = iVar10 < 0x80;\n      }\n      pdVar29 = (double *)0x1;\n      if (((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16)\n         ) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_03;\n        pdVar16 = extraout_v1_03;\n      }\n    }\n    else {\n      uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar51 < 2) {\n          pdVar29 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }\n      else {\nLAB_000a77f8:\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n      }\n      uVar51 = (*pcVar37)(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_00;\n      }\n      else {\n        pdVar29 = (double *)0x2;\n      }\n    }\nLAB_000a7818:\n    pdStack_720 = &dStack_700;\n    puStack_714 = auStack_6d0;\n    pdStack_710 = &dStack_750;\n    iStack_704 = 1;\n    ppiVar24 = &piStack_72c;\n    piStack_72c = piVar2;\n    puStack_728 = puVar23;\n    pdStack_724 = pdVar5;\n    puStack_71c = puVar35;\n    uStack_718 = uVar4;\n    iStack_70c = (int)dVar39;\n    iStack_708 = (int)dVar41;\n    (**(code **)(pcStack_758 + -0x7700))\n              (*(int *)(pcStack_758 + -0x7ea0) + 0x34c4,ppiVar24,pdVar29,0);\n    iVar3 = iStack_704;\n    (**(code **)(pcStack_758 + -0x79a4))(uVar4);\n    (**(code **)(pcStack_758 + -0x79a4))(puVar35);\n  }\n  if (uStack_638._4_4_ == **(int **)(pcStack_758 + -0x7668)) {\n    return iVar3;\n  }\n  pcVar37 = *(code **)(pcStack_758 + -0x7834);\n  pcVar38 = DrawGradientImage;\n  iVar10 = uStack_638._4_4_;\n  (*pcVar37)();\n  pcStack_830 = pcVar37 + 0x359e18;\n  puStack_794 = (undefined8 *)**(undefined4 **)(pcVar37 + 0x3527b0);\n  pdStack_790 = pdVar16;\n  piStack_78c = piVar2;\n  puStack_788 = puVar23;\n  pdStack_784 = pdVar5;\n  iStack_780 = iVar3;\n  pcStack_77c = pcVar38;\n  dStack_778 = dVar42;\n  if (iVar10 == 0) {\n    iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e48) + 0x3da0,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80a,*(int *)(pcVar37 + 0x351e4c) + 0x7818);\n    return iVar3;\n  }\n  if (*(int *)(iVar10 + 0x336c) != -0x54535255) {\n    iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e4c) + -0x784,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80b,*(int *)(pcVar37 + 0x351e4c) + 0x7818);\n    return iVar3;\n  }\n  if (*(int *)(iVar10 + 0x3350) != 0) {\n    iStack_838 = *(int *)(pcVar37 + 0x351e50) + -0x2f6c;\n    iStack_834 = iVar10 + 0x340;\n    (**(code **)(pcVar37 + 0x352760))\n              (0x8000,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,*(int *)(pcVar37 + 0x351e4c) + 0x7804,\n               0x80d);\n  }\n  if (ppiVar24 == (int **)0x0) {\n    iVar3 = (**(code **)(pcStack_830 + -0x7290))\n                      (*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x69c0,0x80e,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x7818);\n    return iVar3;\n  }\n  ppiVar33 = ppiVar24 + 0x6e;\n  (**(code **)(pcStack_830 + -0x6fc4))\n            (ppiVar24[0x7c],ppiVar24[0x7d],0x60,*(int *)(pcStack_830 + -0x7ea0) + 0x224c);\n  ppiVar34 = ppiVar24 + 0x74;\n  dVar39 = (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) *\n           (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) +\n           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76)) *\n           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76));\n  dVar41 = SQRT(dVar39);\n  if (0.0 <= dVar39) {\n    piStack_828 = ppiVar24[0x6f];\n  }\n  else {\n    (**(code **)(pcStack_830 + -0x7418))();\n    piStack_828 = ppiVar24[0x6f];\n  }\n  piStack_824 = ppiVar24[0x70];\n  piStack_820 = ppiVar24[0x71];\n  piStack_81c = ppiVar24[0x72];\n  (**(code **)(pcStack_830 + -0x75e4))(iVar10,auStack_7f0);\n  uVar4 = (**(code **)(pcStack_830 + -0x79c4))(iVar10,pdVar29);\n  iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10);\n  if ((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 == 3)) {\n    iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10);\n    if ((iVar3 != 4) && (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 != 3))\n    goto LAB_000a7bf4;\n    (**(code **)(pcStack_830 + -0x775c))(7);\n    iVar49 = (int)piStack_824 - (int)piStack_81c;\n    iVar3 = iVar49;\n    if (iVar49 < 0) {\n      iVar3 = iVar49 + 0x3f;\n    }\n    if (extraout_v1_04 < iVar3 >> 6) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = iVar49 < 0x80;\n    }\n    iVar3 = 1;\n    dStack_818 = dVar41;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = (int)piStack_824 - (int)piStack_81c;\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      iVar3 = iVar3 >> 6;\n      dStack_818 = dVar41;\n      if (extraout_v1_07 < iVar3) {\n        (**(code **)(pcStack_830 + -0x775c))(7);\n        iVar3 = extraout_v1_08;\n        dStack_818 = dVar41;\n      }\n    }\n  }\n  else {\nLAB_000a7bf4:\n    uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n      if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a7c10;\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n      if ((uint)uVar51 < 2) {\n        iVar3 = 1;\n        dStack_818 = dVar41;\n        goto LAB_000a7c30;\n      }\n    }\n    else {\nLAB_000a7c10:\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n    }\n    uVar51 = (*pcVar37)(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = extraout_v1_05;\n      dStack_818 = dVar41;\n    }\n    else {\n      iVar3 = 2;\n      dStack_818 = dVar41;\n    }\n  }\nLAB_000a7c30:\n  puStack_7fc = auStack_7f0;\n  ppiStack_7f8 = &piStack_828;\n  iStack_7f4 = 1;\n  iStack_810 = iVar10;\n  pdStack_80c = pdVar29;\n  uStack_808 = uVar4;\n  ppiStack_804 = ppiVar33;\n  ppiStack_800 = ppiVar34;\n  (**(code **)(pcStack_830 + -0x7700))(*(int *)(pcStack_830 + -0x7ea0) + 0x549c,&dStack_818,iVar3,0)\n  ;\n  iVar3 = iStack_7f4;\n  (**(code **)(pcStack_830 + -0x79a4))(uVar4);\n  if (puStack_794 == (undefined8 *)**(int **)(pcStack_830 + -0x7668)) {\n    return iVar3;\n  }\n  pcVar37 = *(code **)(pcStack_830 + -0x7834);\n  pcVar38 = GetAffineMatrix;\n  puVar20 = puStack_794;\n  (*pcVar37)();\n  pcStack_858 = pcVar37 + 0x359994;\n  iStack_860 = *(int *)(pcVar37 + 0x3519c8) + 0x10f4;\n  uStack_850 = uVar4;\n  pcStack_84c = pcVar38;\n  (**(code **)(pcVar37 + 0x3522dc))\n            (0x8000,*(int *)(pcVar37 + 0x3519c8) + 0x69c0,*(int *)(pcVar37 + 0x3519c8) + 0x76b0,\n             0x16d2);\n  if (puVar20 != (undefined8 *)0x0) {\n    (**(code **)(pcStack_858 + -0x71c4))(puVar20 + 1,0,0x28);\n    iVar3 = *(int *)(pcStack_858 + -0x7fd0);\n    uVar51 = *(undefined8 *)(iVar3 + 0x4408);\n    *puVar20 = uVar51;\n    puVar20[3] = uVar51;\n    return iVar3;\n  }\n  iVar49 = *(int *)(pcStack_858 + -0x7fcc) + 0x69c0;\n  iVar10 = *(int *)(pcStack_858 + -0x7fcc) + 0x6368;\n  pcVar37 = *(code **)(pcStack_858 + -0x7290);\n  pcVar38 = GetDrawInfo;\n  (*pcVar37)(iVar10,iVar49,0x16d3,*(int *)(pcStack_858 + -0x7fcc) + 0x76a0);\n  iStack_888 = iVar3;\n  iStack_894 = **(int **)(pcVar37 + 0x352270);\n  puStack_88c = puVar20;\n  pdStack_884 = pdVar29;\n  ppiStack_880 = ppiVar33;\n  ppiStack_87c = ppiVar34;\n  puStack_878 = puVar35;\n  pcStack_874 = pcVar38;\n  (**(code **)(pcVar37 + 0x352220))\n            (0x8000,*(int *)(pcVar37 + 0x35190c) + 0x69c0,*(int *)(pcVar37 + 0x35190c) + 0x7694,\n             0x1702,*(int *)(pcVar37 + 0x35190c) + 0x10f4);\n  if (iVar49 == 0) {\n    (**(code **)(pcVar37 + 0x352648))\n              (*(int *)(pcVar37 + 0x351908) + 0x40e4,*(int *)(pcVar37 + 0x35190c) + 0x69c0,0x1703,\n               *(int *)(pcVar37 + 0x35190c) + 0x7688);\n  }\n  else {\n    (**(code **)(pcVar37 + 0x352714))(iVar49,0,0x3c0);\n    iVar10 = (**(code **)(pcVar37 + 0x3521dc))(iVar10);\n    (**(code **)(pcVar37 + 0x351e5c))(iVar49 + 0x18);\n    pdVar29 = (double *)(**(code **)(pcVar37 + 0x351f2c))();\n    ppiVar34 = (int **)(iVar49 + 0x48);\n    (**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar34,pdVar29);\n    ppiVar33 = (int **)(iVar49 + 0xa0);\n    (**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar33,pdVar29);\n    *(undefined4 *)(iVar49 + 0x238) = *(undefined4 *)(iVar10 + 0x14);\n    *(undefined8 *)(iVar49 + 0x1b0) = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4408);\n    *(undefined4 *)(iVar49 + 0x240) = 1;\n    *(undefined4 *)(iVar49 + 0x2cc) = *(undefined4 *)(*(int *)(pcVar37 + 0x351908) + 0x4aa8);\n    uVar51 = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4a48);\n    *(undefined8 *)(iVar49 + 0x398) = uVar51;\n    *(undefined8 *)(iVar49 + 0x3a0) = uVar51;\n    *(undefined4 *)(iVar49 + 0x244) = 1;\n    *(undefined4 *)(iVar49 + 0x248) = 1;\n    *(undefined4 *)(iVar49 + 0x24c) = 10;\n    *(undefined4 *)(iVar49 + 600) = 1;\n    *(undefined8 *)(iVar49 + 0x288) = *(undefined8 *)(*(int *)(pcVar37 + 0x35190c) + 0x7970);\n    *(undefined4 *)(iVar49 + 0x144) = 0;\n    *(undefined4 *)(iVar49 + 0x140) = 0;\n    *(undefined4 *)(iVar49 + 0x25c) = 0x36;\n    *(undefined4 *)(iVar49 + 0x2d0) = 1;\n    *(undefined4 *)(iVar49 + 0x3a8) = 0;\n    uVar4 = (**(code **)(pcVar37 + 0x3527e8))();\n    *(undefined4 *)(iVar49 + 0x38c) = uVar4;\n    if (*(int *)(iVar10 + 0x4c) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x264) = uVar4;\n    }\n    if (*(int *)(iVar10 + 0x54) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x290) = uVar4;\n    }\n    *(undefined4 *)(iVar49 + 0x23c) = *(undefined4 *)(iVar10 + 0x14);\n    uVar4 = *(undefined4 *)(iVar10 + 0x58);\n    if (*(double *)(*(int *)(pcVar37 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar10 + 0x58))) {\n      *(undefined4 *)(iVar49 + 0x28c) = *(undefined4 *)(iVar10 + 0x5c);\n      *(undefined4 *)(iVar49 + 0x288) = uVar4;\n    }\n    puVar13 = (undefined4 *)(iVar10 + 0x118);\n    puVar21 = (undefined4 *)(iVar49 + 0x150);\n    do {\n      puVar15 = puVar21;\n      puVar9 = puVar13;\n      uVar27 = puVar9[1];\n      uVar25 = puVar9[2];\n      uVar4 = puVar9[3];\n      *puVar15 = *puVar9;\n      puVar15[1] = uVar27;\n      puVar15[2] = uVar25;\n      puVar15[3] = uVar4;\n      puVar13 = puVar9 + 4;\n      puVar21 = puVar15 + 4;\n    } while (puVar13 != (undefined4 *)(iVar10 + 0x168));\n    uVar4 = puVar9[5];\n    puVar15[4] = *puVar13;\n    puVar15[5] = uVar4;\n    if (*(int *)(iVar10 + 0x48) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x29c) = uVar4;\n    }\n    iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ac4);\n    if (iVar3 != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x14,0,iVar3);\n      *(undefined4 *)(iVar49 + 0x388) = uVar4;\n      goto LAB_000a8298;\n    }\n  }\n  *(undefined4 *)(iVar49 + 0x388) = 0;\nLAB_000a8298:\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ad0);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x280,iVar3);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6adc);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x26c,iVar3);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ae4);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar34,pdVar29);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6aec);\n  if (iVar3 != 0) {\n    uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x21,0,iVar3);\n    *(undefined4 *)(iVar49 + 0x298) = uVar4;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6af4);\n  if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x380) = dVar39;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b08);\n  if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x378) = dVar39;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b1c);\n  if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x370) = dVar39;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b24);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar33,pdVar29);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b2c);\n  if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x1b0) = dVar39;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b38);\n  if (iVar3 != 0) {\n    uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x47,0,iVar3);\n    *(undefined4 *)(iVar49 + 0x274) = uVar4;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b40);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,iVar49 + 0xf8,pdVar29);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x351920) + -0x3000);\n  if (iVar3 != 0) {\n    iVar28 = (**(code **)(pcVar37 + 0x3526d4))(0x4c,0,iVar3);\n    if (iVar28 == -1) {\n      uVar4 = (**(code **)(pcVar37 + 0x352380))(iVar3,0,10);\n      *(undefined4 *)(iVar49 + 0x27c) = uVar4;\n    }\n    else {\n      *(int *)(iVar49 + 0x27c) = iVar28;\n    }\n  }\n  (**(code **)(pcVar37 + 0x351d90))(pdVar29);\n  *(undefined4 *)(iVar49 + 0x390) = 0xabacadab;\n  (**(code **)(pcVar37 + 0x352628))(iVar10);\n  if (iStack_894 == **(int **)(pcVar37 + 0x352270)) {\n    return **(int **)(pcVar37 + 0x352270);\n  }\n  pcVar37 = *(code **)(pcVar37 + 0x3520a4);\n  (*pcVar37)();\n  iVar3 = (**(code **)(pcVar37 + 0x351be4))(0x3c0);\n  (**(code **)(pcVar37 + 0x3518b4))(0,iVar3);\n  return iVar3;\n}\n\n" (function_definition "int FUN_000a34c4(undefined4 *param_1)\n\n{\n  bool bVar1;\n  int *piVar2;\n  int iVar3;\n  undefined4 uVar4;\n  double *pdVar5;\n  undefined *puVar6;\n  int *piVar7;\n  uint uVar8;\n  undefined4 *puVar9;\n  int iVar10;\n  int *piVar11;\n  int iVar12;\n  undefined4 *puVar13;\n  double *pdVar14;\n  int extraout_v1;\n  double *extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  double *extraout_v1_03;\n  int extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int extraout_v1_07;\n  int extraout_v1_08;\n  undefined4 *puVar15;\n  double *pdVar16;\n  int *piVar17;\n  uint uVar18;\n  int *piVar19;\n  undefined8 *puVar20;\n  undefined4 *puVar21;\n  uint uVar22;\n  uint *puVar23;\n  int **ppiVar24;\n  undefined4 uVar25;\n  uint uVar26;\n  undefined4 uVar27;\n  int iVar28;\n  double *pdVar29;\n  double *pdVar30;\n  int unaff_s2;\n  int iVar31;\n  uint *puVar32;\n  double *unaff_s3;\n  int **ppiVar33;\n  int *unaff_s4;\n  int **ppiVar34;\n  undefined1 *puVar35;\n  double *unaff_s6;\n  uint unaff_s7;\n  undefined *puVar36;\n  code *pcVar37;\n  code *pcVar38;\n  double dVar39;\n  double dVar40;\n  double dVar41;\n  float fVar43;\n  double dVar42;\n  double dVar44;\n  double dVar45;\n  double dVar46;\n  double in_f20_21;\n  double dVar47;\n  double in_f22_23;\n  double in_f24_25;\n  double in_f26_27;\n  double in_f28_29;\n  double in_f30_31;\n  int *piVar48;\n  int iVar49;\n  int iVar50;\n  undefined8 uVar51;\n  undefined1 auStack_898 [4];\n  int iStack_894;\n  undefined8 *puStack_88c;\n  int iStack_888;\n  double *pdStack_884;\n  int **ppiStack_880;\n  int **ppiStack_87c;\n  undefined1 *puStack_878;\n  code *pcStack_874;\n  int iStack_860;\n  code *pcStack_858;\n  undefined4 uStack_850;\n  code *pcStack_84c;\n  int iStack_838;\n  int iStack_834;\n  code *pcStack_830;\n  int *piStack_828;\n  int *piStack_824;\n  int *piStack_820;\n  int *piStack_81c;\n  double dStack_818;\n  int iStack_810;\n  double *pdStack_80c;\n  undefined4 uStack_808;\n  int **ppiStack_804;\n  int **ppiStack_800;\n  undefined1 *puStack_7fc;\n  int **ppiStack_7f8;\n  int iStack_7f4;\n  undefined1 auStack_7f0 [92];\n  undefined8 *puStack_794;\n  double *pdStack_790;\n  int *piStack_78c;\n  uint *puStack_788;\n  double *pdStack_784;\n  int iStack_780;\n  code *pcStack_77c;\n  double dStack_778;\n  int iStack_760;\n  int *piStack_75c;\n  code *pcStack_758;\n  double dStack_750;\n  double dStack_748;\n  double dStack_740;\n  double dStack_738;\n  int *piStack_72c;\n  uint *puStack_728;\n  double *pdStack_724;\n  double *pdStack_720;\n  undefined1 *puStack_71c;\n  undefined4 uStack_718;\n  undefined1 *puStack_714;\n  double *pdStack_710;\n  int iStack_70c;\n  int iStack_708;\n  int iStack_704;\n  double dStack_700;\n  double dStack_6f8;\n  double dStack_6f0;\n  double dStack_6e8;\n  double dStack_6e0;\n  double dStack_6d8;\n  undefined1 auStack_6d0 [88];\n  undefined8 uStack_678;\n  undefined4 uStack_670;\n  undefined4 uStack_66c;\n  double dStack_668;\n  undefined4 uStack_660;\n  undefined4 uStack_65c;\n  double dStack_658;\n  double dStack_650;\n  undefined4 uStack_648;\n  undefined4 uStack_644;\n  double dStack_640;\n  undefined8 uStack_638;\n  double *pdStack_62c;\n  int *piStack_628;\n  uint *puStack_624;\n  double *pdStack_620;\n  int iStack_61c;\n  undefined1 *puStack_618;\n  double *pdStack_614;\n  uint uStack_610;\n  code *pcStack_60c;\n  double dStack_608;\n  double dStack_600;\n  double dStack_5f8;\n  double dStack_5f0;\n  int iStack_5d8;\n  code *pcStack_5d0;\n  double *pdStack_5c8;\n  code *pcStack_5c4;\n  undefined4 uStack_5b0;\n  uint uStack_5ac;\n  code *pcStack_5a8;\n  undefined8 uStack_5a0;\n  double dStack_598;\n  double dStack_590;\n  double *pdStack_588;\n  int iStack_584;\n  double dStack_580;\n  double dStack_578;\n  int iStack_570;\n  undefined1 *puStack_56c;\n  double *pdStack_568;\n  uint uStack_564;\n  double dStack_560;\n  double dStack_558;\n  uint uStack_550;\n  undefined4 uStack_54c;\n  double dStack_548;\n  double dStack_540;\n  uint uStack_538;\n  undefined4 uStack_534;\n  double dStack_530;\n  uint uStack_528;\n  undefined4 uStack_524;\n  double dStack_520;\n  double dStack_518;\n  int aiStack_510 [4];\n  undefined8 uStack_500;\n  int iStack_4f8;\n  double dStack_4e8;\n  double dStack_4e0;\n  double dStack_4d8;\n  double dStack_4d0;\n  double dStack_4c8;\n  double dStack_4c0;\n  int iStack_4b4;\n  uint uStack_4b0;\n  int iStack_4ac;\n  double *pdStack_4a8;\n  double *pdStack_4a4;\n  int iStack_4a0;\n  undefined4 *puStack_49c;\n  double *pdStack_498;\n  uint uStack_494;\n  int iStack_490;\n  code *pcStack_48c;\n  double dStack_488;\n  double dStack_480;\n  double dStack_478;\n  double dStack_470;\n  double dStack_468;\n  double dStack_460;\n  int *piStack_448;\n  uint uStack_444;\n  code *pcStack_440;\n  uint uStack_434;\n  uint uStack_430;\n  double *pdStack_42c;\n  uint uStack_428;\n  uint uStack_424;\n  uint uStack_420;\n  undefined4 uStack_41c;\n  int aiStack_418 [10];\n  double dStack_3f0;\n  double dStack_3e8;\n  double dStack_3e0;\n  double dStack_3d8;\n  double dStack_3d0;\n  int iStack_3bc;\n  int iStack_3b8;\n  uint uStack_3b4;\n  double *pdStack_3b0;\n  double *pdStack_3ac;\n  int *piStack_3a8;\n  undefined4 *puStack_3a4;\n  double *pdStack_3a0;\n  uint uStack_39c;\n  int iStack_398;\n  code *pcStack_394;\n  double dStack_390;\n  double dStack_388;\n  double dStack_380;\n  double dStack_378;\n  double dStack_370;\n  undefined4 *puStack_358;\n  undefined4 uStack_354;\n  undefined *puStack_350;\n  undefined8 uStack_348;\n  double dStack_340;\n  double dStack_338;\n  double dStack_330;\n  uint uStack_328;\n  int iStack_324;\n  double dStack_320;\n  double dStack_318;\n  uint uStack_310;\n  undefined4 uStack_30c;\n  int iStack_308;\n  int *piStack_304;\n  double dStack_300;\n  uint uStack_2f8;\n  int iStack_2f4;\n  int iStack_2f0;\n  double *pdStack_2ec;\n  uint uStack_2e8;\n  undefined4 uStack_2e4;\n  uint uStack_2e0;\n  undefined4 uStack_2dc;\n  double *pdStack_2d8;\n  uint uStack_2d4;\n  undefined4 uStack_2d0;\n  double *pdStack_2cc;\n  uint uStack_2c8;\n  undefined4 uStack_2c4;\n  int iStack_2c0;\n  undefined4 *puStack_2bc;\n  double dStack_2b8;\n  uint uStack_2b0;\n  undefined4 uStack_2ac;\n  double *pdStack_2a8;\n  undefined1 *puStack_2a4;\n  double *pdStack_2a0;\n  int iStack_29c;\n  undefined4 auStack_298 [18];\n  double dStack_250;\n  undefined4 auStack_240 [18];\n  double dStack_1f8;\n  int iStack_1e4;\n  double *pdStack_1e0;\n  int *piStack_1dc;\n  int iStack_1d8;\n  double *pdStack_1d4;\n  int *piStack_1d0;\n  undefined4 *puStack_1cc;\n  double *pdStack_1c8;\n  uint uStack_1c4;\n  int iStack_1c0;\n  code *pcStack_1bc;\n  double dStack_1b8;\n  double dStack_1b0;\n  double dStack_1a8;\n  double dStack_1a0;\n  double dStack_198;\n  double dStack_190;\n  undefined8 local_178;\n  double local_170;\n  int *local_168;\n  int *local_164;\n  int local_110 [4];\n  undefined8 local_100;\n  int local_f8;\n  double local_e8;\n  double local_e0;\n  double local_d8;\n  double local_d0;\n  double local_c8;\n  double local_c0;\n  int local_b8 [10];\n  double local_90;\n  double local_88;\n  double local_80;\n  double local_78;\n  double local_70;\n  int local_5c;\n  \n  local_5c = *(int *)PTR___stack_chk_guard_003fa248;\n  pdVar29 = (double *)param_1[8];\n  piVar2 = (int *)(*(code *)PTR_omp_get_num_threads_003fa924)();\n  iVar3 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n  puVar36 = PTR_LAB_003f98e0;\n  iVar10 = (param_1[9] + 1) - (int)pdVar29;\n  if (piVar2 == (int *)0x0) {\n    trap(7);\n  }\n  iVar49 = iVar10 / (int)piVar2;\n  iVar10 = iVar10 % (int)piVar2;\n  if (iVar3 < iVar10) {\n    iVar49 = iVar49 + 1;\n    iVar10 = 0;\n  }\n  iVar10 = iVar49 * iVar3 + iVar10;\n  pdVar16 = (double *)(iVar49 + iVar10);\n  iVar3 = (int)pdVar29 + iVar10;\n  if (iVar10 < (int)pdVar16) {\n    uVar4 = param_1[5];\n    pdVar5 = (double *)param_1[4];\n    unaff_s4 = (int *)param_1[2];\n    unaff_s7 = param_1[1];\n    piVar2 = (int *)*param_1;\n    puVar6 = (undefined *)((int)pdVar29 + (int)pdVar16);\n    dVar39 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    in_f26_27 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    in_f30_31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n    do {\n      in_f24_25 = (double)iVar3;\n      pdVar29 = (double *)param_1[3];\n      in_f20_21 = *(double *)param_1[7];\n      in_f28_29 = ((double *)param_1[7])[2];\n      dVar40 = in_f24_25 * pdVar29[2] + pdVar29[4];\n      dVar47 = *pdVar29;\n      dVar41 = in_f28_29;\n      if (dVar39 <= dVar47) {\n        in_f22_23 = -dVar40 / dVar47;\n        if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }\n        dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n        if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }\n        dVar47 = (dVar44 - dVar40) / dVar47;\n        if (dVar47 < in_f28_29) {\n          dVar41 = dVar47;\n        }\nLAB_000a3890:\n        dVar40 = in_f24_25 * pdVar29[3] + pdVar29[5];\n        dVar47 = pdVar29[1];\n        if (*(double *)(puVar36 + 0x43c8) <= dVar47) {\n          dVar44 = -dVar40 / dVar47;\n          if (-dVar40 / dVar47 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = *(double **)(unaff_s7 + 0x1c);\n          dVar44 = (double)(int)pdVar16;\n          if ((int)pdVar16 < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar44 - dVar40) / dVar47;\n          if (dVar41 <= in_f20_21) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }\n        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;\n      }\n      else {\n        if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar44 - dVar40) / dVar47;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar40) {\n          dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n          if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar41;\n          if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar36 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar41 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar41;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar40 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar41 = (dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar41 < in_f20_21) {\n          uVar26 = (uint)dVar41;\n        }\n        else {\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar16 = pdVar5;\n        pdVar29 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26);\n        if (pdVar29 != (double *)0x0) {\n          piVar17 = (int *)param_1[6];\n          piVar48 = piVar17;\n          piVar19 = local_b8;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          piVar48 = piVar17;\n          piVar19 = local_110;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }\n          pdVar16 = pdVar5;\n          iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);\n          if (iVar10 == 0) {\n            param_1[10] = 0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n      unaff_s6 = (double *)puVar36;\n    } while (iVar3 < (int)puVar6);\n  }\n  if (local_5c == *(int *)PTR___stack_chk_guard_003fa248) {\n    return *(int *)PTR___stack_chk_guard_003fa248;\n  }\n  pcVar37 = FUN_000a3ef0;\n  puVar36 = PTR___stack_chk_fail_003fa07c;\n  (*(code *)PTR___stack_chk_fail_003fa07c)();\n  puStack_350 = puVar36 + 0x35d9c0;\n  iStack_1e4 = **(int **)(puVar36 + 0x356358);\n  iVar28 = *(int *)((int)pdVar16 + 0x24);\n  pdStack_2a8 = pdVar16;\n  pdStack_1e0 = pdVar29;\n  piStack_1dc = piVar2;\n  iStack_1d8 = unaff_s2;\n  pdStack_1d4 = unaff_s3;\n  piStack_1d0 = unaff_s4;\n  puStack_1cc = param_1;\n  pdStack_1c8 = unaff_s6;\n  uStack_1c4 = unaff_s7;\n  iStack_1c0 = iVar3;\n  pcStack_1bc = pcVar37;\n  dStack_1b8 = in_f20_21;\n  dStack_1b0 = in_f22_23;\n  dStack_1a8 = in_f24_25;\n  dStack_1a0 = in_f26_27;\n  dStack_198 = in_f28_29;\n  dStack_190 = in_f30_31;\n  iVar10 = (**(code **)(puVar36 + 0x356a34))();\n  iVar49 = (**(code **)(puStack_350 + -0x7390))();\n  iVar12 = (*(int *)(pdVar16 + 5) + 1) - iVar28;\n  if (iVar10 == 0) {\n    trap(7);\n  }\n  iVar50 = iVar12 / iVar10;\n  iVar12 = iVar12 % iVar10;\n  uVar26 = (uint)(iVar49 < iVar12);\n  if (uVar26 != 0) {\n    iVar50 = iVar50 + 1;\n    iVar12 = 0;\n  }\n  uVar8 = iVar50 * iVar49 + iVar12;\n  pdVar29 = (double *)(iVar50 + uVar8);\n  if ((int)uVar8 < (int)pdVar29) {\n    iStack_29c = *(int *)((int)pdStack_2a8 + 0x1c);\n    in_f28_29 = *pdStack_2a8;\n    iStack_2f4 = *(int *)(pdStack_2a8 + 3);\n    pdStack_2a0 = *(double **)((int)pdStack_2a8 + 0x14);\n    uStack_2d0 = *(undefined4 *)(pdStack_2a8 + 2);\n    iStack_324 = *(int *)((int)pdStack_2a8 + 0xc);\n    unaff_s6 = *(double **)(pdStack_2a8 + 1);\n    iStack_2f0 = iVar28 + uVar8;\n    puStack_2a4 = (undefined1 *)(iVar28 + (int)pdVar29);\n    unaff_s7 = *(uint *)(puStack_350 + -0x7fd0);\n    dStack_320 = *(double *)(unaff_s7 + 0x4408);\n    iVar3 = *(int *)(puStack_350 + -0x7fd0);\n    dStack_2b8 = *(double *)(iVar3 + 0x43c8);\n    uStack_2f8 = uVar8;\n    do {\n      iVar28 = (**(code **)(puStack_350 + -0x7390))();\n      if (*(int *)((int)pdStack_2a8 + 0x2c) != 0) {\n        pdVar29 = *(double **)(pdStack_2a8 + 4);\n        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21);\n        uStack_2d4 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21);\n        uVar26 = uStack_2d4;\n        pdVar16 = (double *)(int)dVar39;\n        uStack_354 = uStack_2d0;\n        puStack_358 = (undefined4 *)0x1;\n        pdVar29 = pdStack_2a0;\n        pdStack_2cc = pdVar16;\n        iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)));\n        if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar28 = iVar28 * 4;\n          puVar36 = puStack_350;\n          if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar29 = pdStack_2a0;\n          iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }\n      }\n      iStack_2f0 = iStack_2f0 + 1;\n      uStack_2f8 = uStack_2f8 + 1;\n    } while (iStack_2f0 < (int)puStack_2a4);\n  }\n  if (iStack_1e4 == **(int **)(puStack_350 + -0x7668)) {\n    return **(int **)(puStack_350 + -0x7668);\n  }\n  pcVar37 = *(code **)(puStack_350 + -0x7834);\n  pcVar38 = FUN_000a5040;\n  (*pcVar37)();\n  pcStack_440 = pcVar37 + 0x35c870;\n  iStack_3bc = **(int **)(pcVar37 + 0x355208);\n  uVar8 = *(uint *)(pdVar29 + 3);\n  pdVar5 = pdVar29;\n  uStack_428 = uVar8;\n  iStack_3b8 = iVar28;\n  uStack_3b4 = uVar26;\n  pdStack_3b0 = pdVar16;\n  pdStack_3ac = unaff_s3;\n  piStack_3a8 = unaff_s4;\n  puStack_3a4 = param_1;\n  pdStack_3a0 = unaff_s6;\n  uStack_39c = unaff_s7;\n  iStack_398 = iVar3;\n  pcStack_394 = pcVar38;\n  dStack_390 = in_f20_21;\n  dStack_388 = in_f22_23;\n  dStack_380 = in_f24_25;\n  dStack_378 = in_f26_27;\n  dStack_370 = in_f28_29;\n  iVar3 = (**(code **)(pcVar37 + 0x3558e4))();\n  iVar10 = (**(code **)(pcStack_440 + -0x7390))();\n  iVar49 = (*(uint *)((int)pdVar29 + 0x1c) + 1) - uVar8;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar28 = iVar49 / iVar3;\n  iVar49 = iVar49 % iVar3;\n  uVar26 = (uint)(iVar10 < iVar49);\n  if (uVar26 != 0) {\n    iVar28 = iVar28 + 1;\n    iVar49 = 0;\n  }\n  iVar49 = iVar28 * iVar10 + iVar49;\n  iVar28 = iVar28 + iVar49;\n  iVar3 = *(int *)(pcStack_440 + -0x7fd0);\n  pcVar37 = pcStack_440;\n  if (iVar49 < iVar28) {\n    pdStack_42c = *(double **)(pdVar29 + 2);\n    uStack_430 = *(uint *)((int)pdVar29 + 0xc);\n    unaff_s6 = *(double **)(pdVar29 + 1);\n    uStack_424 = *(uint *)((int)pdVar29 + 4);\n    unaff_s7 = *(uint *)pdVar29;\n    iVar49 = uStack_428 + iVar49;\n    iVar28 = uStack_428 + iVar28;\n    in_f22_23 = *(double *)(iVar3 + 0x43d0);\n    in_f26_27 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8);\n    in_f28_29 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410);\n    do {\n      in_f20_21 = *(double *)(iVar3 + 0x43d0);\n      if (*(uint *)(pdVar29 + 4) != 0) {\n        pdVar16 = *(double **)((int)pdVar29 + 0x14);\n        dVar39 = (double)(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21);\n        uStack_434 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21);\n        uVar26 = uStack_434;\n        param_1 = (undefined4 *)(int)dVar39;\n        uStack_444 = uStack_430;\n        piStack_448 = (int *)0x1;\n        pdVar5 = pdStack_42c;\n        pdVar16 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434));\n        if (pdVar16 == (double *)0x0) {\n          *(uint *)(pdVar29 + 4) = 0;\n          pcVar37 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar26 <= (int)param_1;\n          uVar26 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }\n          pdVar5 = pdStack_42c;\n          iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar37 = pcStack_440;\n          if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }\n        }\n      }\n      iVar49 = iVar49 + 1;\n    } while (iVar49 < iVar28);\n  }\n  if (iStack_3bc == **(int **)(pcVar37 + -0x7668)) {\n    return **(int **)(pcVar37 + -0x7668);\n  }\n  pcVar37 = *(code **)(pcVar37 + -0x7834);\n  pcVar38 = FUN_000a549c;\n  (*pcVar37)();\n  pcStack_5a8 = pcVar37 + 0x35c414;\n  iStack_4b4 = **(int **)(pcVar37 + 0x354dac);\n  puVar32 = *(uint **)(pdVar5 + 4);\n  pdVar30 = (double *)puVar32[3];\n  pdVar14 = pdVar5;\n  uStack_4b0 = uVar26;\n  iStack_4ac = iVar49;\n  pdStack_4a8 = pdVar16;\n  pdStack_4a4 = pdVar29;\n  iStack_4a0 = iVar28;\n  puStack_49c = param_1;\n  pdStack_498 = unaff_s6;\n  uStack_494 = unaff_s7;\n  iStack_490 = iVar3;\n  pcStack_48c = pcVar38;\n  dStack_488 = in_f20_21;\n  dStack_480 = in_f22_23;\n  dStack_478 = in_f24_25;\n  dStack_470 = in_f26_27;\n  dStack_468 = in_f28_29;\n  dStack_460 = in_f30_31;\n  iVar3 = (**(code **)(pcVar37 + 0x355488))();\n  iVar10 = (**(code **)(pcStack_5a8 + -0x7390))();\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar49 = (int)(puVar32[1] - (int)pdVar30) / iVar3;\n  piVar48 = (int *)((int)(puVar32[1] - (int)pdVar30) % iVar3);\n  piVar2 = piVar48;\n  if (iVar10 < (int)piVar48) {\n    iVar49 = iVar49 + 1;\n    piVar2 = (int *)0x0;\n  }\n  piVar2 = (int *)(iVar49 * iVar10 + (int)piVar2);\n  puVar35 = (undefined1 *)((int)pdVar30 + (int)piVar2);\n  pcVar37 = pcStack_5a8;\n  if ((int)piVar2 < iVar49 + (int)piVar2) {\n    dStack_580 = *pdVar5;\n    pdStack_588 = *(double **)(pdVar5 + 3);\n    puVar32 = *(uint **)((int)pdVar5 + 0x14);\n    pdStack_568 = *(double **)(pdVar5 + 2);\n    uStack_564 = *(uint *)((int)pdVar5 + 0xc);\n    piVar48 = *(int **)(pdVar5 + 1);\n    puStack_56c = (undefined1 *)((int)pdVar30 + iVar49 + (int)piVar2);\n    dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n    if (dStack_580 < 0.0) {\n      dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n    }\n    iStack_570 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_598 = *(double *)(iStack_570 + 0x4a48);\n    iStack_584 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_560 = *(double *)(iStack_584 + 0x43d0);\n    unaff_s6 = *(double **)(pcStack_5a8 + -0x7fd0);\n    dStack_548 = unaff_s6[0x879];\n    do {\n      if (*(uint *)((int)pdVar5 + 0x24) != 0) {\n        uStack_5ac = uStack_564;\n        uStack_5b0 = 1;\n        pdVar14 = pdStack_568;\n        pdVar30 = (double *)(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6]);\n        if (pdVar30 == (double *)0x0) {\n          *(uint *)((int)pdVar5 + 0x24) = 0;\n          pcVar37 = pcStack_5a8;\n        }\n        else {\n          piVar17 = *(int **)((int)pdVar5 + 0x1c);\n          piVar2 = piVar17;\n          piVar19 = aiStack_510;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);\n          iVar10 = *piVar2;\n          iVar3 = piVar7[5];\n          *piVar19 = iVar10;\n          piVar11[5] = iVar3;\n          in_f20_21 = *(double *)(piVar17 + 10);\n          in_f22_23 = *(double *)(piVar17 + 0xc);\n          in_f24_25 = *(double *)(piVar17 + 0xe);\n          dStack_590 = *(double *)(piVar17 + 0x10);\n          dVar39 = *(double *)(piVar17 + 0x12);\n          if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];\n          pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }\n          pdVar14 = pdStack_568;\n          iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar37 = pcStack_5a8;\n          if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }\n        }\n      }\n      puVar35 = puVar35 + 1;\n    } while ((int)puVar35 < (int)puStack_56c);\n  }\n  if (iStack_4b4 == **(int **)(pcVar37 + -0x7668)) {\n    return **(int **)(pcVar37 + -0x7668);\n  }\n  pcVar37 = *(code **)(pcVar37 + -0x7834);\n  pcVar38 = DestroyDrawInfo;\n  (*pcVar37)();\n  pcStack_5d0 = pcVar37 + 0x35a8f0;\n  pdStack_5c8 = pdVar30;\n  pcStack_5c4 = pcVar38;\n  if (pdVar14 == (double *)0x0) {\n    (**(code **)(pcVar37 + 0x353660))\n              (*(int *)(pcVar37 + 0x352920) + 0x40e4,*(int *)(pcVar37 + 0x352924) + 0x69c0,0x39a,\n               *(int *)(pcVar37 + 0x352924) + 0x7914);\n    pdVar14 = pdVar30;\nLAB_000a7234:\n    iStack_5d8 = *(int *)(pcVar37 + 0x352924) + 0x10f4;\n    (**(code **)(pcVar37 + 0x353238))\n              (0x8000,*(int *)(pcVar37 + 0x352924) + 0x69c0,*(int *)(pcVar37 + 0x352924) + 0x7904,\n               0x39c);\n    uVar26 = *(uint *)(pdVar14 + 0x72);\n  }\n  else {\n    if (*(uint *)((int)pdVar14 + 0x38c) != 0) goto LAB_000a7234;\n    uVar26 = *(uint *)(pdVar14 + 0x72);\n  }\n  if (uVar26 == 0xabacadab) {\n    if (*(uint *)(pdVar14 + 0x77) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x77) = uVar26;\n    }\n    if (*(uint *)pdVar14 != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)pdVar14 = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x4c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4c) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 4) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x35) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)(pdVar14 + 0x35) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x1ac) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x1ac) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x264) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x264) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x4d) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4d) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x26c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x26c) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x50) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x50) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x52) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x52) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x29c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)((int)pdVar14 + 0x29c) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x54) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x54) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x3e) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x3e) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x2a4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x2a4) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x3ac) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3ac) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x3b4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3b4) = uVar26;\n    }\n    *(uint *)(pdVar14 + 0x72) = 0x54535254;\n    iVar3 = (**(code **)(pcStack_5d0 + -0x78d8))(pdVar14);\n    return iVar3;\n  }\n  pdVar5 = (double *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x7914);\n  pdVar16 = (double *)&DAT_0000039d;\n  puVar23 = (uint *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x69c0);\n  piVar2 = (int *)(*(int *)(pcStack_5d0 + -0x7fd0) + 0x4128);\n  pcVar37 = *(code **)(pcStack_5d0 + -0x7290);\n  pcVar38 = DrawAffineImage;\n  (*pcVar37)();\n  pcStack_758 = pcVar37 + 0x35a61c;\n  uStack_638._4_4_ = **(int **)(pcVar37 + 0x352fb4);\n  pdStack_62c = pdVar14;\n  piStack_628 = piVar48;\n  puStack_624 = puVar32;\n  pdStack_620 = pdVar29;\n  iStack_61c = iVar28;\n  puStack_618 = puVar35;\n  pdStack_614 = unaff_s6;\n  uStack_610 = unaff_s7;\n  pcStack_60c = pcVar38;\n  dStack_608 = in_f20_21;\n  dStack_600 = in_f22_23;\n  dStack_5f8 = in_f24_25;\n  dStack_5f0 = in_f26_27;\n  if (piVar2 == (int *)0x0) {\n    (**(code **)(pcVar37 + 0x35338c))\n              (*(int *)(pcVar37 + 0x35264c) + 0x3da0,*(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c0,\n               *(int *)(pcVar37 + 0x352650) + 0x78f4);\n    pdVar16 = pdVar14;\n    piVar2 = piVar48;\n    puVar23 = puVar32;\n    pdVar5 = pdVar29;\nLAB_000a7434:\n    piVar48 = (int *)(**(code **)(pcVar37 + 0x35338c))\n                               (*(int *)(pcVar37 + 0x352650) + -0x784,\n                                *(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar37 + 0x352650) + 0x78f4);\nLAB_000a745c:\n    iStack_760 = *(int *)(pcVar37 + 0x352654) + -0x2f6c;\n    piStack_75c = piVar48;\n    (**(code **)(pcVar37 + 0x352f64))\n              (0x8000,*(int *)(pcVar37 + 0x352650) + 0x69c0,*(int *)(pcVar37 + 0x352650) + 0x78e4,\n               0x4c3);\n  }\n  else {\n    if (piVar2[0xcdb] != -0x54535255) goto LAB_000a7434;\n    piVar48 = piVar2 + 0xd0;\n    if (piVar2[0xcd4] != 0) goto LAB_000a745c;\n  }\n  pcVar37 = pcStack_758;\n  if (puVar23 == (uint *)0x0) {\n    (**(code **)(pcStack_758 + -0x7290))\n              (*(int *)(pcStack_758 + -0x7fcc) + 0x6a20,*(int *)(pcStack_758 + -0x7fcc) + 0x69c0,\n               0x4c4,*(int *)(pcStack_758 + -0x7fcc) + 0x78f4);\nLAB_000a74c4:\n    (**(code **)(pcVar37 + -0x7290))\n              (*(int *)(pcVar37 + -0x7fcc) + 0x6a40,*(int *)(pcVar37 + -0x7fcc) + 0x69c0);\nLAB_000a74e8:\n    dStack_668 = (double)(**(code **)(pcVar37 + -0x7290))\n                                   (*(int *)(pcVar37 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar37 + -0x7fcc) + 0x69c0);\nLAB_000a750c:\n    dStack_668 = dStack_668 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);\n  }\n  else {\n    if (puVar23[0xcdb] != 0xabacadab) goto LAB_000a74c4;\n    if (pdVar16 == (double *)0x0) goto LAB_000a74e8;\n    uStack_678._4_4_ = 0;\n    uStack_678._0_4_ = 0;\n    uStack_66c = 0;\n    uStack_670 = 0;\n    dStack_668 = (double)(int)puVar23[6];\n    if ((int)puVar23[6] < 0) goto LAB_000a750c;\n  }\n  dStack_668 = dStack_668 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408);\n  uStack_65c = 0;\n  uStack_660 = 0;\n  dStack_658 = dStack_668;\n  dStack_650 = (double)(int)puVar23[7];\n  if ((int)puVar23[7] < 0) {\n    dStack_650 = dStack_650 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);\n  }\n  dStack_650 = dStack_650 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408);\n  uStack_644 = 0;\n  uStack_648 = 0;\n  dStack_640 = dStack_650;\n  dVar45 = *pdVar16;\n  dVar44 = pdVar16[2];\n  dVar47 = pdVar16[4];\n  dVar40 = pdVar16[1];\n  dVar41 = pdVar16[3];\n  dVar39 = pdVar16[5];\n  pdVar14 = (double *)&uStack_678;\n  pdVar29 = pdVar14;\n  do {\n    dVar42 = *pdVar29;\n    *pdVar29 = dVar45 * dVar42 + dVar44 * pdVar29[1] + dVar47;\n    pdVar29[1] = dVar40 * dVar42 + dVar41 * pdVar29[1] + dVar39;\n    pdVar29 = pdVar29 + 2;\n  } while (pdVar29 != (double *)&uStack_638);\n  dVar39 = (double)CONCAT44(uStack_670,uStack_66c);\n  dVar41 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_);\n  dVar40 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_);\n  dVar47 = (double)CONCAT44(uStack_670,uStack_66c);\n  do {\n    dVar45 = pdVar14[2];\n    dVar44 = dVar45;\n    if (dVar41 <= dVar45) {\n      dVar44 = dVar41;\n    }\n    dVar42 = pdVar14[3];\n    dVar46 = dVar42;\n    if (dVar47 <= dVar42) {\n      dVar46 = dVar47;\n    }\n    if (dVar45 <= dVar40) {\n      dVar45 = dVar40;\n    }\n    if (dVar42 <= dVar39) {\n      dVar42 = dVar39;\n    }\n    pdVar14 = pdVar14 + 2;\n    dVar39 = dVar42;\n    dVar41 = dVar44;\n    dVar40 = dVar45;\n    dVar47 = dVar46;\n  } while ((double *)&uStack_648 != pdVar14);\n  ppiVar24 = (int **)0x1;\n  pdVar29 = pdVar5;\n  iVar3 = (**(code **)(pcVar37 + -0x7074))(piVar2);\n  if (iVar3 != 0) {\n    dStack_750 = dVar44;\n    if (dVar44 <= 0.0) {\n      dStack_750 = 0.0;\n    }\n    dStack_748 = dVar46;\n    if (dVar46 <= 0.0) {\n      dStack_748 = 0.0;\n    }\n    dStack_740 = (double)piVar2[6];\n    if (piVar2[6] < 0) {\n      dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_740 = dStack_740 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar45 < dStack_740) {\n      dStack_740 = dVar45;\n    }\n    dStack_738 = (double)piVar2[7];\n    if (piVar2[7] < 0) {\n      dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_738 = dStack_738 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar42 < dStack_738) {\n      dStack_738 = dVar42;\n    }\n    dStack_6e8 = *pdVar16 * pdVar16[3] - pdVar16[1] * pdVar16[2];\n    if (0.0 <= dStack_6e8) {\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    }\n    else {\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);\n    }\n    if (dStack_6e8 * dVar39 < *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)) {\n      dStack_6e8 = dVar39 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8);\n    }\n    else {\n      dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;\n    }\n    dStack_700 = pdVar16[3] * dStack_6e8;\n    dStack_6f8 = -pdVar16[1] * dStack_6e8;\n    dStack_6f0 = -pdVar16[2] * dStack_6e8;\n    dStack_6e8 = *pdVar16 * dStack_6e8;\n    dStack_6e0 = dStack_700 * -pdVar16[4] - dStack_6f0 * pdVar16[5];\n    dStack_6d8 = dStack_6f8 * -pdVar16[4] - dStack_6e8 * pdVar16[5];\n    (**(code **)(pcStack_758 + -0x75e4))(piVar2,auStack_6d0);\n    dVar42 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0);\n    dVar39 = (double)(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar42);\n    dVar41 = (double)(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar42);\n    uVar4 = (**(code **)(pcStack_758 + -0x7144))(puVar23,pdVar5);\n    puVar35 = (undefined1 *)(**(code **)(pcStack_758 + -0x79c4))(piVar2,pdVar5);\n    iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23);\n    if (((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23), iVar3 == 3)) &&\n       ((iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 4 ||\n        (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3)))) {\n      (**(code **)(pcStack_758 + -0x775c))(7);\n      iVar10 = (int)dVar41 - (int)dVar39;\n      iVar3 = iVar10;\n      if (iVar10 < 0) {\n        iVar3 = iVar10 + 0x3f;\n      }\n      pdVar16 = (double *)(iVar3 >> 6);\n      if (extraout_v1 < (int)pdVar16) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        bVar1 = extraout_v1_01 < 2;\n      }\n      else {\n        bVar1 = iVar10 < 0x80;\n      }\n      pdVar29 = (double *)0x1;\n      if (((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16)\n         ) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_03;\n        pdVar16 = extraout_v1_03;\n      }\n    }\n    else {\n      uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar51 < 2) {\n          pdVar29 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }\n      else {\nLAB_000a77f8:\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n      }\n      uVar51 = (*pcVar37)(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_00;\n      }\n      else {\n        pdVar29 = (double *)0x2;\n      }\n    }\nLAB_000a7818:\n    pdStack_720 = &dStack_700;\n    puStack_714 = auStack_6d0;\n    pdStack_710 = &dStack_750;\n    iStack_704 = 1;\n    ppiVar24 = &piStack_72c;\n    piStack_72c = piVar2;\n    puStack_728 = puVar23;\n    pdStack_724 = pdVar5;\n    puStack_71c = puVar35;\n    uStack_718 = uVar4;\n    iStack_70c = (int)dVar39;\n    iStack_708 = (int)dVar41;\n    (**(code **)(pcStack_758 + -0x7700))\n              (*(int *)(pcStack_758 + -0x7ea0) + 0x34c4,ppiVar24,pdVar29,0);\n    iVar3 = iStack_704;\n    (**(code **)(pcStack_758 + -0x79a4))(uVar4);\n    (**(code **)(pcStack_758 + -0x79a4))(puVar35);\n  }\n  if (uStack_638._4_4_ == **(int **)(pcStack_758 + -0x7668)) {\n    return iVar3;\n  }\n  pcVar37 = *(code **)(pcStack_758 + -0x7834);\n  pcVar38 = DrawGradientImage;\n  iVar10 = uStack_638._4_4_;\n  (*pcVar37)();\n  pcStack_830 = pcVar37 + 0x359e18;\n  puStack_794 = (undefined8 *)**(undefined4 **)(pcVar37 + 0x3527b0);\n  pdStack_790 = pdVar16;\n  piStack_78c = piVar2;\n  puStack_788 = puVar23;\n  pdStack_784 = pdVar5;\n  iStack_780 = iVar3;\n  pcStack_77c = pcVar38;\n  dStack_778 = dVar42;\n  if (iVar10 == 0) {\n    iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e48) + 0x3da0,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80a,*(int *)(pcVar37 + 0x351e4c) + 0x7818);\n    return iVar3;\n  }\n  if (*(int *)(iVar10 + 0x336c) != -0x54535255) {\n    iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e4c) + -0x784,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80b,*(int *)(pcVar37 + 0x351e4c) + 0x7818);\n    return iVar3;\n  }\n  if (*(int *)(iVar10 + 0x3350) != 0) {\n    iStack_838 = *(int *)(pcVar37 + 0x351e50) + -0x2f6c;\n    iStack_834 = iVar10 + 0x340;\n    (**(code **)(pcVar37 + 0x352760))\n              (0x8000,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,*(int *)(pcVar37 + 0x351e4c) + 0x7804,\n               0x80d);\n  }\n  if (ppiVar24 == (int **)0x0) {\n    iVar3 = (**(code **)(pcStack_830 + -0x7290))\n                      (*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x69c0,0x80e,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x7818);\n    return iVar3;\n  }\n  ppiVar33 = ppiVar24 + 0x6e;\n  (**(code **)(pcStack_830 + -0x6fc4))\n            (ppiVar24[0x7c],ppiVar24[0x7d],0x60,*(int *)(pcStack_830 + -0x7ea0) + 0x224c);\n  ppiVar34 = ppiVar24 + 0x74;\n  dVar39 = (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) *\n           (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) +\n           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76)) *\n           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76));\n  dVar41 = SQRT(dVar39);\n  if (0.0 <= dVar39) {\n    piStack_828 = ppiVar24[0x6f];\n  }\n  else {\n    (**(code **)(pcStack_830 + -0x7418))();\n    piStack_828 = ppiVar24[0x6f];\n  }\n  piStack_824 = ppiVar24[0x70];\n  piStack_820 = ppiVar24[0x71];\n  piStack_81c = ppiVar24[0x72];\n  (**(code **)(pcStack_830 + -0x75e4))(iVar10,auStack_7f0);\n  uVar4 = (**(code **)(pcStack_830 + -0x79c4))(iVar10,pdVar29);\n  iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10);\n  if ((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 == 3)) {\n    iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10);\n    if ((iVar3 != 4) && (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 != 3))\n    goto LAB_000a7bf4;\n    (**(code **)(pcStack_830 + -0x775c))(7);\n    iVar49 = (int)piStack_824 - (int)piStack_81c;\n    iVar3 = iVar49;\n    if (iVar49 < 0) {\n      iVar3 = iVar49 + 0x3f;\n    }\n    if (extraout_v1_04 < iVar3 >> 6) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = iVar49 < 0x80;\n    }\n    iVar3 = 1;\n    dStack_818 = dVar41;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = (int)piStack_824 - (int)piStack_81c;\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      iVar3 = iVar3 >> 6;\n      dStack_818 = dVar41;\n      if (extraout_v1_07 < iVar3) {\n        (**(code **)(pcStack_830 + -0x775c))(7);\n        iVar3 = extraout_v1_08;\n        dStack_818 = dVar41;\n      }\n    }\n  }\n  else {\nLAB_000a7bf4:\n    uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n      if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a7c10;\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n      if ((uint)uVar51 < 2) {\n        iVar3 = 1;\n        dStack_818 = dVar41;\n        goto LAB_000a7c30;\n      }\n    }\n    else {\nLAB_000a7c10:\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n    }\n    uVar51 = (*pcVar37)(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = extraout_v1_05;\n      dStack_818 = dVar41;\n    }\n    else {\n      iVar3 = 2;\n      dStack_818 = dVar41;\n    }\n  }\nLAB_000a7c30:\n  puStack_7fc = auStack_7f0;\n  ppiStack_7f8 = &piStack_828;\n  iStack_7f4 = 1;\n  iStack_810 = iVar10;\n  pdStack_80c = pdVar29;\n  uStack_808 = uVar4;\n  ppiStack_804 = ppiVar33;\n  ppiStack_800 = ppiVar34;\n  (**(code **)(pcStack_830 + -0x7700))(*(int *)(pcStack_830 + -0x7ea0) + 0x549c,&dStack_818,iVar3,0)\n  ;\n  iVar3 = iStack_7f4;\n  (**(code **)(pcStack_830 + -0x79a4))(uVar4);\n  if (puStack_794 == (undefined8 *)**(int **)(pcStack_830 + -0x7668)) {\n    return iVar3;\n  }\n  pcVar37 = *(code **)(pcStack_830 + -0x7834);\n  pcVar38 = GetAffineMatrix;\n  puVar20 = puStack_794;\n  (*pcVar37)();\n  pcStack_858 = pcVar37 + 0x359994;\n  iStack_860 = *(int *)(pcVar37 + 0x3519c8) + 0x10f4;\n  uStack_850 = uVar4;\n  pcStack_84c = pcVar38;\n  (**(code **)(pcVar37 + 0x3522dc))\n            (0x8000,*(int *)(pcVar37 + 0x3519c8) + 0x69c0,*(int *)(pcVar37 + 0x3519c8) + 0x76b0,\n             0x16d2);\n  if (puVar20 != (undefined8 *)0x0) {\n    (**(code **)(pcStack_858 + -0x71c4))(puVar20 + 1,0,0x28);\n    iVar3 = *(int *)(pcStack_858 + -0x7fd0);\n    uVar51 = *(undefined8 *)(iVar3 + 0x4408);\n    *puVar20 = uVar51;\n    puVar20[3] = uVar51;\n    return iVar3;\n  }\n  iVar49 = *(int *)(pcStack_858 + -0x7fcc) + 0x69c0;\n  iVar10 = *(int *)(pcStack_858 + -0x7fcc) + 0x6368;\n  pcVar37 = *(code **)(pcStack_858 + -0x7290);\n  pcVar38 = GetDrawInfo;\n  (*pcVar37)(iVar10,iVar49,0x16d3,*(int *)(pcStack_858 + -0x7fcc) + 0x76a0);\n  iStack_888 = iVar3;\n  iStack_894 = **(int **)(pcVar37 + 0x352270);\n  puStack_88c = puVar20;\n  pdStack_884 = pdVar29;\n  ppiStack_880 = ppiVar33;\n  ppiStack_87c = ppiVar34;\n  puStack_878 = puVar35;\n  pcStack_874 = pcVar38;\n  (**(code **)(pcVar37 + 0x352220))\n            (0x8000,*(int *)(pcVar37 + 0x35190c) + 0x69c0,*(int *)(pcVar37 + 0x35190c) + 0x7694,\n             0x1702,*(int *)(pcVar37 + 0x35190c) + 0x10f4);\n  if (iVar49 == 0) {\n    (**(code **)(pcVar37 + 0x352648))\n              (*(int *)(pcVar37 + 0x351908) + 0x40e4,*(int *)(pcVar37 + 0x35190c) + 0x69c0,0x1703,\n               *(int *)(pcVar37 + 0x35190c) + 0x7688);\n  }\n  else {\n    (**(code **)(pcVar37 + 0x352714))(iVar49,0,0x3c0);\n    iVar10 = (**(code **)(pcVar37 + 0x3521dc))(iVar10);\n    (**(code **)(pcVar37 + 0x351e5c))(iVar49 + 0x18);\n    pdVar29 = (double *)(**(code **)(pcVar37 + 0x351f2c))();\n    ppiVar34 = (int **)(iVar49 + 0x48);\n    (**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar34,pdVar29);\n    ppiVar33 = (int **)(iVar49 + 0xa0);\n    (**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar33,pdVar29);\n    *(undefined4 *)(iVar49 + 0x238) = *(undefined4 *)(iVar10 + 0x14);\n    *(undefined8 *)(iVar49 + 0x1b0) = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4408);\n    *(undefined4 *)(iVar49 + 0x240) = 1;\n    *(undefined4 *)(iVar49 + 0x2cc) = *(undefined4 *)(*(int *)(pcVar37 + 0x351908) + 0x4aa8);\n    uVar51 = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4a48);\n    *(undefined8 *)(iVar49 + 0x398) = uVar51;\n    *(undefined8 *)(iVar49 + 0x3a0) = uVar51;\n    *(undefined4 *)(iVar49 + 0x244) = 1;\n    *(undefined4 *)(iVar49 + 0x248) = 1;\n    *(undefined4 *)(iVar49 + 0x24c) = 10;\n    *(undefined4 *)(iVar49 + 600) = 1;\n    *(undefined8 *)(iVar49 + 0x288) = *(undefined8 *)(*(int *)(pcVar37 + 0x35190c) + 0x7970);\n    *(undefined4 *)(iVar49 + 0x144) = 0;\n    *(undefined4 *)(iVar49 + 0x140) = 0;\n    *(undefined4 *)(iVar49 + 0x25c) = 0x36;\n    *(undefined4 *)(iVar49 + 0x2d0) = 1;\n    *(undefined4 *)(iVar49 + 0x3a8) = 0;\n    uVar4 = (**(code **)(pcVar37 + 0x3527e8))();\n    *(undefined4 *)(iVar49 + 0x38c) = uVar4;\n    if (*(int *)(iVar10 + 0x4c) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x264) = uVar4;\n    }\n    if (*(int *)(iVar10 + 0x54) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x290) = uVar4;\n    }\n    *(undefined4 *)(iVar49 + 0x23c) = *(undefined4 *)(iVar10 + 0x14);\n    uVar4 = *(undefined4 *)(iVar10 + 0x58);\n    if (*(double *)(*(int *)(pcVar37 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar10 + 0x58))) {\n      *(undefined4 *)(iVar49 + 0x28c) = *(undefined4 *)(iVar10 + 0x5c);\n      *(undefined4 *)(iVar49 + 0x288) = uVar4;\n    }\n    puVar13 = (undefined4 *)(iVar10 + 0x118);\n    puVar21 = (undefined4 *)(iVar49 + 0x150);\n    do {\n      puVar15 = puVar21;\n      puVar9 = puVar13;\n      uVar27 = puVar9[1];\n      uVar25 = puVar9[2];\n      uVar4 = puVar9[3];\n      *puVar15 = *puVar9;\n      puVar15[1] = uVar27;\n      puVar15[2] = uVar25;\n      puVar15[3] = uVar4;\n      puVar13 = puVar9 + 4;\n      puVar21 = puVar15 + 4;\n    } while (puVar13 != (undefined4 *)(iVar10 + 0x168));\n    uVar4 = puVar9[5];\n    puVar15[4] = *puVar13;\n    puVar15[5] = uVar4;\n    if (*(int *)(iVar10 + 0x48) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x29c) = uVar4;\n    }\n    iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ac4);\n    if (iVar3 != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x14,0,iVar3);\n      *(undefined4 *)(iVar49 + 0x388) = uVar4;\n      goto LAB_000a8298;\n    }\n  }\n  *(undefined4 *)(iVar49 + 0x388) = 0;\nLAB_000a8298:\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ad0);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x280,iVar3);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6adc);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x26c,iVar3);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ae4);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar34,pdVar29);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6aec);\n  if (iVar3 != 0) {\n    uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x21,0,iVar3);\n    *(undefined4 *)(iVar49 + 0x298) = uVar4;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6af4);\n  if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x380) = dVar39;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b08);\n  if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x378) = dVar39;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b1c);\n  if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x370) = dVar39;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b24);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar33,pdVar29);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b2c);\n  if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x1b0) = dVar39;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b38);\n  if (iVar3 != 0) {\n    uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x47,0,iVar3);\n    *(undefined4 *)(iVar49 + 0x274) = uVar4;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b40);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,iVar49 + 0xf8,pdVar29);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x351920) + -0x3000);\n  if (iVar3 != 0) {\n    iVar28 = (**(code **)(pcVar37 + 0x3526d4))(0x4c,0,iVar3);\n    if (iVar28 == -1) {\n      uVar4 = (**(code **)(pcVar37 + 0x352380))(iVar3,0,10);\n      *(undefined4 *)(iVar49 + 0x27c) = uVar4;\n    }\n    else {\n      *(int *)(iVar49 + 0x27c) = iVar28;\n    }\n  }\n  (**(code **)(pcVar37 + 0x351d90))(pdVar29);\n  *(undefined4 *)(iVar49 + 0x390) = 0xabacadab;\n  (**(code **)(pcVar37 + 0x352628))(iVar10);\n  if (iStack_894 == **(int **)(pcVar37 + 0x352270)) {\n    return **(int **)(pcVar37 + 0x352270);\n  }\n  pcVar37 = *(code **)(pcVar37 + 0x3520a4);\n  (*pcVar37)();\n  iVar3 = (**(code **)(pcVar37 + 0x351be4))(0x3c0);\n  (**(code **)(pcVar37 + 0x3518b4))(0,iVar3);\n  return iVar3;\n}" primitive_type (function_declarator "FUN_000a34c4(undefined4 *param_1)" identifier (parameter_list "(undefined4 *param_1)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  int *piVar2;\n  int iVar3;\n  undefined4 uVar4;\n  double *pdVar5;\n  undefined *puVar6;\n  int *piVar7;\n  uint uVar8;\n  undefined4 *puVar9;\n  int iVar10;\n  int *piVar11;\n  int iVar12;\n  undefined4 *puVar13;\n  double *pdVar14;\n  int extraout_v1;\n  double *extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  double *extraout_v1_03;\n  int extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int extraout_v1_07;\n  int extraout_v1_08;\n  undefined4 *puVar15;\n  double *pdVar16;\n  int *piVar17;\n  uint uVar18;\n  int *piVar19;\n  undefined8 *puVar20;\n  undefined4 *puVar21;\n  uint uVar22;\n  uint *puVar23;\n  int **ppiVar24;\n  undefined4 uVar25;\n  uint uVar26;\n  undefined4 uVar27;\n  int iVar28;\n  double *pdVar29;\n  double *pdVar30;\n  int unaff_s2;\n  int iVar31;\n  uint *puVar32;\n  double *unaff_s3;\n  int **ppiVar33;\n  int *unaff_s4;\n  int **ppiVar34;\n  undefined1 *puVar35;\n  double *unaff_s6;\n  uint unaff_s7;\n  undefined *puVar36;\n  code *pcVar37;\n  code *pcVar38;\n  double dVar39;\n  double dVar40;\n  double dVar41;\n  float fVar43;\n  double dVar42;\n  double dVar44;\n  double dVar45;\n  double dVar46;\n  double in_f20_21;\n  double dVar47;\n  double in_f22_23;\n  double in_f24_25;\n  double in_f26_27;\n  double in_f28_29;\n  double in_f30_31;\n  int *piVar48;\n  int iVar49;\n  int iVar50;\n  undefined8 uVar51;\n  undefined1 auStack_898 [4];\n  int iStack_894;\n  undefined8 *puStack_88c;\n  int iStack_888;\n  double *pdStack_884;\n  int **ppiStack_880;\n  int **ppiStack_87c;\n  undefined1 *puStack_878;\n  code *pcStack_874;\n  int iStack_860;\n  code *pcStack_858;\n  undefined4 uStack_850;\n  code *pcStack_84c;\n  int iStack_838;\n  int iStack_834;\n  code *pcStack_830;\n  int *piStack_828;\n  int *piStack_824;\n  int *piStack_820;\n  int *piStack_81c;\n  double dStack_818;\n  int iStack_810;\n  double *pdStack_80c;\n  undefined4 uStack_808;\n  int **ppiStack_804;\n  int **ppiStack_800;\n  undefined1 *puStack_7fc;\n  int **ppiStack_7f8;\n  int iStack_7f4;\n  undefined1 auStack_7f0 [92];\n  undefined8 *puStack_794;\n  double *pdStack_790;\n  int *piStack_78c;\n  uint *puStack_788;\n  double *pdStack_784;\n  int iStack_780;\n  code *pcStack_77c;\n  double dStack_778;\n  int iStack_760;\n  int *piStack_75c;\n  code *pcStack_758;\n  double dStack_750;\n  double dStack_748;\n  double dStack_740;\n  double dStack_738;\n  int *piStack_72c;\n  uint *puStack_728;\n  double *pdStack_724;\n  double *pdStack_720;\n  undefined1 *puStack_71c;\n  undefined4 uStack_718;\n  undefined1 *puStack_714;\n  double *pdStack_710;\n  int iStack_70c;\n  int iStack_708;\n  int iStack_704;\n  double dStack_700;\n  double dStack_6f8;\n  double dStack_6f0;\n  double dStack_6e8;\n  double dStack_6e0;\n  double dStack_6d8;\n  undefined1 auStack_6d0 [88];\n  undefined8 uStack_678;\n  undefined4 uStack_670;\n  undefined4 uStack_66c;\n  double dStack_668;\n  undefined4 uStack_660;\n  undefined4 uStack_65c;\n  double dStack_658;\n  double dStack_650;\n  undefined4 uStack_648;\n  undefined4 uStack_644;\n  double dStack_640;\n  undefined8 uStack_638;\n  double *pdStack_62c;\n  int *piStack_628;\n  uint *puStack_624;\n  double *pdStack_620;\n  int iStack_61c;\n  undefined1 *puStack_618;\n  double *pdStack_614;\n  uint uStack_610;\n  code *pcStack_60c;\n  double dStack_608;\n  double dStack_600;\n  double dStack_5f8;\n  double dStack_5f0;\n  int iStack_5d8;\n  code *pcStack_5d0;\n  double *pdStack_5c8;\n  code *pcStack_5c4;\n  undefined4 uStack_5b0;\n  uint uStack_5ac;\n  code *pcStack_5a8;\n  undefined8 uStack_5a0;\n  double dStack_598;\n  double dStack_590;\n  double *pdStack_588;\n  int iStack_584;\n  double dStack_580;\n  double dStack_578;\n  int iStack_570;\n  undefined1 *puStack_56c;\n  double *pdStack_568;\n  uint uStack_564;\n  double dStack_560;\n  double dStack_558;\n  uint uStack_550;\n  undefined4 uStack_54c;\n  double dStack_548;\n  double dStack_540;\n  uint uStack_538;\n  undefined4 uStack_534;\n  double dStack_530;\n  uint uStack_528;\n  undefined4 uStack_524;\n  double dStack_520;\n  double dStack_518;\n  int aiStack_510 [4];\n  undefined8 uStack_500;\n  int iStack_4f8;\n  double dStack_4e8;\n  double dStack_4e0;\n  double dStack_4d8;\n  double dStack_4d0;\n  double dStack_4c8;\n  double dStack_4c0;\n  int iStack_4b4;\n  uint uStack_4b0;\n  int iStack_4ac;\n  double *pdStack_4a8;\n  double *pdStack_4a4;\n  int iStack_4a0;\n  undefined4 *puStack_49c;\n  double *pdStack_498;\n  uint uStack_494;\n  int iStack_490;\n  code *pcStack_48c;\n  double dStack_488;\n  double dStack_480;\n  double dStack_478;\n  double dStack_470;\n  double dStack_468;\n  double dStack_460;\n  int *piStack_448;\n  uint uStack_444;\n  code *pcStack_440;\n  uint uStack_434;\n  uint uStack_430;\n  double *pdStack_42c;\n  uint uStack_428;\n  uint uStack_424;\n  uint uStack_420;\n  undefined4 uStack_41c;\n  int aiStack_418 [10];\n  double dStack_3f0;\n  double dStack_3e8;\n  double dStack_3e0;\n  double dStack_3d8;\n  double dStack_3d0;\n  int iStack_3bc;\n  int iStack_3b8;\n  uint uStack_3b4;\n  double *pdStack_3b0;\n  double *pdStack_3ac;\n  int *piStack_3a8;\n  undefined4 *puStack_3a4;\n  double *pdStack_3a0;\n  uint uStack_39c;\n  int iStack_398;\n  code *pcStack_394;\n  double dStack_390;\n  double dStack_388;\n  double dStack_380;\n  double dStack_378;\n  double dStack_370;\n  undefined4 *puStack_358;\n  undefined4 uStack_354;\n  undefined *puStack_350;\n  undefined8 uStack_348;\n  double dStack_340;\n  double dStack_338;\n  double dStack_330;\n  uint uStack_328;\n  int iStack_324;\n  double dStack_320;\n  double dStack_318;\n  uint uStack_310;\n  undefined4 uStack_30c;\n  int iStack_308;\n  int *piStack_304;\n  double dStack_300;\n  uint uStack_2f8;\n  int iStack_2f4;\n  int iStack_2f0;\n  double *pdStack_2ec;\n  uint uStack_2e8;\n  undefined4 uStack_2e4;\n  uint uStack_2e0;\n  undefined4 uStack_2dc;\n  double *pdStack_2d8;\n  uint uStack_2d4;\n  undefined4 uStack_2d0;\n  double *pdStack_2cc;\n  uint uStack_2c8;\n  undefined4 uStack_2c4;\n  int iStack_2c0;\n  undefined4 *puStack_2bc;\n  double dStack_2b8;\n  uint uStack_2b0;\n  undefined4 uStack_2ac;\n  double *pdStack_2a8;\n  undefined1 *puStack_2a4;\n  double *pdStack_2a0;\n  int iStack_29c;\n  undefined4 auStack_298 [18];\n  double dStack_250;\n  undefined4 auStack_240 [18];\n  double dStack_1f8;\n  int iStack_1e4;\n  double *pdStack_1e0;\n  int *piStack_1dc;\n  int iStack_1d8;\n  double *pdStack_1d4;\n  int *piStack_1d0;\n  undefined4 *puStack_1cc;\n  double *pdStack_1c8;\n  uint uStack_1c4;\n  int iStack_1c0;\n  code *pcStack_1bc;\n  double dStack_1b8;\n  double dStack_1b0;\n  double dStack_1a8;\n  double dStack_1a0;\n  double dStack_198;\n  double dStack_190;\n  undefined8 local_178;\n  double local_170;\n  int *local_168;\n  int *local_164;\n  int local_110 [4];\n  undefined8 local_100;\n  int local_f8;\n  double local_e8;\n  double local_e0;\n  double local_d8;\n  double local_d0;\n  double local_c8;\n  double local_c0;\n  int local_b8 [10];\n  double local_90;\n  double local_88;\n  double local_80;\n  double local_78;\n  double local_70;\n  int local_5c;\n  \n  local_5c = *(int *)PTR___stack_chk_guard_003fa248;\n  pdVar29 = (double *)param_1[8];\n  piVar2 = (int *)(*(code *)PTR_omp_get_num_threads_003fa924)();\n  iVar3 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n  puVar36 = PTR_LAB_003f98e0;\n  iVar10 = (param_1[9] + 1) - (int)pdVar29;\n  if (piVar2 == (int *)0x0) {\n    trap(7);\n  }\n  iVar49 = iVar10 / (int)piVar2;\n  iVar10 = iVar10 % (int)piVar2;\n  if (iVar3 < iVar10) {\n    iVar49 = iVar49 + 1;\n    iVar10 = 0;\n  }\n  iVar10 = iVar49 * iVar3 + iVar10;\n  pdVar16 = (double *)(iVar49 + iVar10);\n  iVar3 = (int)pdVar29 + iVar10;\n  if (iVar10 < (int)pdVar16) {\n    uVar4 = param_1[5];\n    pdVar5 = (double *)param_1[4];\n    unaff_s4 = (int *)param_1[2];\n    unaff_s7 = param_1[1];\n    piVar2 = (int *)*param_1;\n    puVar6 = (undefined *)((int)pdVar29 + (int)pdVar16);\n    dVar39 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    in_f26_27 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    in_f30_31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n    do {\n      in_f24_25 = (double)iVar3;\n      pdVar29 = (double *)param_1[3];\n      in_f20_21 = *(double *)param_1[7];\n      in_f28_29 = ((double *)param_1[7])[2];\n      dVar40 = in_f24_25 * pdVar29[2] + pdVar29[4];\n      dVar47 = *pdVar29;\n      dVar41 = in_f28_29;\n      if (dVar39 <= dVar47) {\n        in_f22_23 = -dVar40 / dVar47;\n        if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }\n        dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n        if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }\n        dVar47 = (dVar44 - dVar40) / dVar47;\n        if (dVar47 < in_f28_29) {\n          dVar41 = dVar47;\n        }\nLAB_000a3890:\n        dVar40 = in_f24_25 * pdVar29[3] + pdVar29[5];\n        dVar47 = pdVar29[1];\n        if (*(double *)(puVar36 + 0x43c8) <= dVar47) {\n          dVar44 = -dVar40 / dVar47;\n          if (-dVar40 / dVar47 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = *(double **)(unaff_s7 + 0x1c);\n          dVar44 = (double)(int)pdVar16;\n          if ((int)pdVar16 < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar44 - dVar40) / dVar47;\n          if (dVar41 <= in_f20_21) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }\n        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;\n      }\n      else {\n        if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar44 - dVar40) / dVar47;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar40) {\n          dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n          if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar41;\n          if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar36 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar41 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar41;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar40 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar41 = (dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar41 < in_f20_21) {\n          uVar26 = (uint)dVar41;\n        }\n        else {\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar16 = pdVar5;\n        pdVar29 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26);\n        if (pdVar29 != (double *)0x0) {\n          piVar17 = (int *)param_1[6];\n          piVar48 = piVar17;\n          piVar19 = local_b8;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          piVar48 = piVar17;\n          piVar19 = local_110;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }\n          pdVar16 = pdVar5;\n          iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);\n          if (iVar10 == 0) {\n            param_1[10] = 0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n      unaff_s6 = (double *)puVar36;\n    } while (iVar3 < (int)puVar6);\n  }\n  if (local_5c == *(int *)PTR___stack_chk_guard_003fa248) {\n    return *(int *)PTR___stack_chk_guard_003fa248;\n  }\n  pcVar37 = FUN_000a3ef0;\n  puVar36 = PTR___stack_chk_fail_003fa07c;\n  (*(code *)PTR___stack_chk_fail_003fa07c)();\n  puStack_350 = puVar36 + 0x35d9c0;\n  iStack_1e4 = **(int **)(puVar36 + 0x356358);\n  iVar28 = *(int *)((int)pdVar16 + 0x24);\n  pdStack_2a8 = pdVar16;\n  pdStack_1e0 = pdVar29;\n  piStack_1dc = piVar2;\n  iStack_1d8 = unaff_s2;\n  pdStack_1d4 = unaff_s3;\n  piStack_1d0 = unaff_s4;\n  puStack_1cc = param_1;\n  pdStack_1c8 = unaff_s6;\n  uStack_1c4 = unaff_s7;\n  iStack_1c0 = iVar3;\n  pcStack_1bc = pcVar37;\n  dStack_1b8 = in_f20_21;\n  dStack_1b0 = in_f22_23;\n  dStack_1a8 = in_f24_25;\n  dStack_1a0 = in_f26_27;\n  dStack_198 = in_f28_29;\n  dStack_190 = in_f30_31;\n  iVar10 = (**(code **)(puVar36 + 0x356a34))();\n  iVar49 = (**(code **)(puStack_350 + -0x7390))();\n  iVar12 = (*(int *)(pdVar16 + 5) + 1) - iVar28;\n  if (iVar10 == 0) {\n    trap(7);\n  }\n  iVar50 = iVar12 / iVar10;\n  iVar12 = iVar12 % iVar10;\n  uVar26 = (uint)(iVar49 < iVar12);\n  if (uVar26 != 0) {\n    iVar50 = iVar50 + 1;\n    iVar12 = 0;\n  }\n  uVar8 = iVar50 * iVar49 + iVar12;\n  pdVar29 = (double *)(iVar50 + uVar8);\n  if ((int)uVar8 < (int)pdVar29) {\n    iStack_29c = *(int *)((int)pdStack_2a8 + 0x1c);\n    in_f28_29 = *pdStack_2a8;\n    iStack_2f4 = *(int *)(pdStack_2a8 + 3);\n    pdStack_2a0 = *(double **)((int)pdStack_2a8 + 0x14);\n    uStack_2d0 = *(undefined4 *)(pdStack_2a8 + 2);\n    iStack_324 = *(int *)((int)pdStack_2a8 + 0xc);\n    unaff_s6 = *(double **)(pdStack_2a8 + 1);\n    iStack_2f0 = iVar28 + uVar8;\n    puStack_2a4 = (undefined1 *)(iVar28 + (int)pdVar29);\n    unaff_s7 = *(uint *)(puStack_350 + -0x7fd0);\n    dStack_320 = *(double *)(unaff_s7 + 0x4408);\n    iVar3 = *(int *)(puStack_350 + -0x7fd0);\n    dStack_2b8 = *(double *)(iVar3 + 0x43c8);\n    uStack_2f8 = uVar8;\n    do {\n      iVar28 = (**(code **)(puStack_350 + -0x7390))();\n      if (*(int *)((int)pdStack_2a8 + 0x2c) != 0) {\n        pdVar29 = *(double **)(pdStack_2a8 + 4);\n        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21);\n        uStack_2d4 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21);\n        uVar26 = uStack_2d4;\n        pdVar16 = (double *)(int)dVar39;\n        uStack_354 = uStack_2d0;\n        puStack_358 = (undefined4 *)0x1;\n        pdVar29 = pdStack_2a0;\n        pdStack_2cc = pdVar16;\n        iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)));\n        if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar28 = iVar28 * 4;\n          puVar36 = puStack_350;\n          if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar29 = pdStack_2a0;\n          iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }\n      }\n      iStack_2f0 = iStack_2f0 + 1;\n      uStack_2f8 = uStack_2f8 + 1;\n    } while (iStack_2f0 < (int)puStack_2a4);\n  }\n  if (iStack_1e4 == **(int **)(puStack_350 + -0x7668)) {\n    return **(int **)(puStack_350 + -0x7668);\n  }\n  pcVar37 = *(code **)(puStack_350 + -0x7834);\n  pcVar38 = FUN_000a5040;\n  (*pcVar37)();\n  pcStack_440 = pcVar37 + 0x35c870;\n  iStack_3bc = **(int **)(pcVar37 + 0x355208);\n  uVar8 = *(uint *)(pdVar29 + 3);\n  pdVar5 = pdVar29;\n  uStack_428 = uVar8;\n  iStack_3b8 = iVar28;\n  uStack_3b4 = uVar26;\n  pdStack_3b0 = pdVar16;\n  pdStack_3ac = unaff_s3;\n  piStack_3a8 = unaff_s4;\n  puStack_3a4 = param_1;\n  pdStack_3a0 = unaff_s6;\n  uStack_39c = unaff_s7;\n  iStack_398 = iVar3;\n  pcStack_394 = pcVar38;\n  dStack_390 = in_f20_21;\n  dStack_388 = in_f22_23;\n  dStack_380 = in_f24_25;\n  dStack_378 = in_f26_27;\n  dStack_370 = in_f28_29;\n  iVar3 = (**(code **)(pcVar37 + 0x3558e4))();\n  iVar10 = (**(code **)(pcStack_440 + -0x7390))();\n  iVar49 = (*(uint *)((int)pdVar29 + 0x1c) + 1) - uVar8;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar28 = iVar49 / iVar3;\n  iVar49 = iVar49 % iVar3;\n  uVar26 = (uint)(iVar10 < iVar49);\n  if (uVar26 != 0) {\n    iVar28 = iVar28 + 1;\n    iVar49 = 0;\n  }\n  iVar49 = iVar28 * iVar10 + iVar49;\n  iVar28 = iVar28 + iVar49;\n  iVar3 = *(int *)(pcStack_440 + -0x7fd0);\n  pcVar37 = pcStack_440;\n  if (iVar49 < iVar28) {\n    pdStack_42c = *(double **)(pdVar29 + 2);\n    uStack_430 = *(uint *)((int)pdVar29 + 0xc);\n    unaff_s6 = *(double **)(pdVar29 + 1);\n    uStack_424 = *(uint *)((int)pdVar29 + 4);\n    unaff_s7 = *(uint *)pdVar29;\n    iVar49 = uStack_428 + iVar49;\n    iVar28 = uStack_428 + iVar28;\n    in_f22_23 = *(double *)(iVar3 + 0x43d0);\n    in_f26_27 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8);\n    in_f28_29 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410);\n    do {\n      in_f20_21 = *(double *)(iVar3 + 0x43d0);\n      if (*(uint *)(pdVar29 + 4) != 0) {\n        pdVar16 = *(double **)((int)pdVar29 + 0x14);\n        dVar39 = (double)(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21);\n        uStack_434 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21);\n        uVar26 = uStack_434;\n        param_1 = (undefined4 *)(int)dVar39;\n        uStack_444 = uStack_430;\n        piStack_448 = (int *)0x1;\n        pdVar5 = pdStack_42c;\n        pdVar16 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434));\n        if (pdVar16 == (double *)0x0) {\n          *(uint *)(pdVar29 + 4) = 0;\n          pcVar37 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar26 <= (int)param_1;\n          uVar26 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }\n          pdVar5 = pdStack_42c;\n          iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar37 = pcStack_440;\n          if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }\n        }\n      }\n      iVar49 = iVar49 + 1;\n    } while (iVar49 < iVar28);\n  }\n  if (iStack_3bc == **(int **)(pcVar37 + -0x7668)) {\n    return **(int **)(pcVar37 + -0x7668);\n  }\n  pcVar37 = *(code **)(pcVar37 + -0x7834);\n  pcVar38 = FUN_000a549c;\n  (*pcVar37)();\n  pcStack_5a8 = pcVar37 + 0x35c414;\n  iStack_4b4 = **(int **)(pcVar37 + 0x354dac);\n  puVar32 = *(uint **)(pdVar5 + 4);\n  pdVar30 = (double *)puVar32[3];\n  pdVar14 = pdVar5;\n  uStack_4b0 = uVar26;\n  iStack_4ac = iVar49;\n  pdStack_4a8 = pdVar16;\n  pdStack_4a4 = pdVar29;\n  iStack_4a0 = iVar28;\n  puStack_49c = param_1;\n  pdStack_498 = unaff_s6;\n  uStack_494 = unaff_s7;\n  iStack_490 = iVar3;\n  pcStack_48c = pcVar38;\n  dStack_488 = in_f20_21;\n  dStack_480 = in_f22_23;\n  dStack_478 = in_f24_25;\n  dStack_470 = in_f26_27;\n  dStack_468 = in_f28_29;\n  dStack_460 = in_f30_31;\n  iVar3 = (**(code **)(pcVar37 + 0x355488))();\n  iVar10 = (**(code **)(pcStack_5a8 + -0x7390))();\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar49 = (int)(puVar32[1] - (int)pdVar30) / iVar3;\n  piVar48 = (int *)((int)(puVar32[1] - (int)pdVar30) % iVar3);\n  piVar2 = piVar48;\n  if (iVar10 < (int)piVar48) {\n    iVar49 = iVar49 + 1;\n    piVar2 = (int *)0x0;\n  }\n  piVar2 = (int *)(iVar49 * iVar10 + (int)piVar2);\n  puVar35 = (undefined1 *)((int)pdVar30 + (int)piVar2);\n  pcVar37 = pcStack_5a8;\n  if ((int)piVar2 < iVar49 + (int)piVar2) {\n    dStack_580 = *pdVar5;\n    pdStack_588 = *(double **)(pdVar5 + 3);\n    puVar32 = *(uint **)((int)pdVar5 + 0x14);\n    pdStack_568 = *(double **)(pdVar5 + 2);\n    uStack_564 = *(uint *)((int)pdVar5 + 0xc);\n    piVar48 = *(int **)(pdVar5 + 1);\n    puStack_56c = (undefined1 *)((int)pdVar30 + iVar49 + (int)piVar2);\n    dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n    if (dStack_580 < 0.0) {\n      dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n    }\n    iStack_570 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_598 = *(double *)(iStack_570 + 0x4a48);\n    iStack_584 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_560 = *(double *)(iStack_584 + 0x43d0);\n    unaff_s6 = *(double **)(pcStack_5a8 + -0x7fd0);\n    dStack_548 = unaff_s6[0x879];\n    do {\n      if (*(uint *)((int)pdVar5 + 0x24) != 0) {\n        uStack_5ac = uStack_564;\n        uStack_5b0 = 1;\n        pdVar14 = pdStack_568;\n        pdVar30 = (double *)(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6]);\n        if (pdVar30 == (double *)0x0) {\n          *(uint *)((int)pdVar5 + 0x24) = 0;\n          pcVar37 = pcStack_5a8;\n        }\n        else {\n          piVar17 = *(int **)((int)pdVar5 + 0x1c);\n          piVar2 = piVar17;\n          piVar19 = aiStack_510;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);\n          iVar10 = *piVar2;\n          iVar3 = piVar7[5];\n          *piVar19 = iVar10;\n          piVar11[5] = iVar3;\n          in_f20_21 = *(double *)(piVar17 + 10);\n          in_f22_23 = *(double *)(piVar17 + 0xc);\n          in_f24_25 = *(double *)(piVar17 + 0xe);\n          dStack_590 = *(double *)(piVar17 + 0x10);\n          dVar39 = *(double *)(piVar17 + 0x12);\n          if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];\n          pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }\n          pdVar14 = pdStack_568;\n          iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar37 = pcStack_5a8;\n          if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }\n        }\n      }\n      puVar35 = puVar35 + 1;\n    } while ((int)puVar35 < (int)puStack_56c);\n  }\n  if (iStack_4b4 == **(int **)(pcVar37 + -0x7668)) {\n    return **(int **)(pcVar37 + -0x7668);\n  }\n  pcVar37 = *(code **)(pcVar37 + -0x7834);\n  pcVar38 = DestroyDrawInfo;\n  (*pcVar37)();\n  pcStack_5d0 = pcVar37 + 0x35a8f0;\n  pdStack_5c8 = pdVar30;\n  pcStack_5c4 = pcVar38;\n  if (pdVar14 == (double *)0x0) {\n    (**(code **)(pcVar37 + 0x353660))\n              (*(int *)(pcVar37 + 0x352920) + 0x40e4,*(int *)(pcVar37 + 0x352924) + 0x69c0,0x39a,\n               *(int *)(pcVar37 + 0x352924) + 0x7914);\n    pdVar14 = pdVar30;\nLAB_000a7234:\n    iStack_5d8 = *(int *)(pcVar37 + 0x352924) + 0x10f4;\n    (**(code **)(pcVar37 + 0x353238))\n              (0x8000,*(int *)(pcVar37 + 0x352924) + 0x69c0,*(int *)(pcVar37 + 0x352924) + 0x7904,\n               0x39c);\n    uVar26 = *(uint *)(pdVar14 + 0x72);\n  }\n  else {\n    if (*(uint *)((int)pdVar14 + 0x38c) != 0) goto LAB_000a7234;\n    uVar26 = *(uint *)(pdVar14 + 0x72);\n  }\n  if (uVar26 == 0xabacadab) {\n    if (*(uint *)(pdVar14 + 0x77) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x77) = uVar26;\n    }\n    if (*(uint *)pdVar14 != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)pdVar14 = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x4c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4c) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 4) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x35) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)(pdVar14 + 0x35) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x1ac) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x1ac) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x264) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x264) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x4d) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4d) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x26c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x26c) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x50) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x50) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x52) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x52) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x29c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)((int)pdVar14 + 0x29c) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x54) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x54) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x3e) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x3e) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x2a4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x2a4) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x3ac) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3ac) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x3b4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3b4) = uVar26;\n    }\n    *(uint *)(pdVar14 + 0x72) = 0x54535254;\n    iVar3 = (**(code **)(pcStack_5d0 + -0x78d8))(pdVar14);\n    return iVar3;\n  }\n  pdVar5 = (double *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x7914);\n  pdVar16 = (double *)&DAT_0000039d;\n  puVar23 = (uint *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x69c0);\n  piVar2 = (int *)(*(int *)(pcStack_5d0 + -0x7fd0) + 0x4128);\n  pcVar37 = *(code **)(pcStack_5d0 + -0x7290);\n  pcVar38 = DrawAffineImage;\n  (*pcVar37)();\n  pcStack_758 = pcVar37 + 0x35a61c;\n  uStack_638._4_4_ = **(int **)(pcVar37 + 0x352fb4);\n  pdStack_62c = pdVar14;\n  piStack_628 = piVar48;\n  puStack_624 = puVar32;\n  pdStack_620 = pdVar29;\n  iStack_61c = iVar28;\n  puStack_618 = puVar35;\n  pdStack_614 = unaff_s6;\n  uStack_610 = unaff_s7;\n  pcStack_60c = pcVar38;\n  dStack_608 = in_f20_21;\n  dStack_600 = in_f22_23;\n  dStack_5f8 = in_f24_25;\n  dStack_5f0 = in_f26_27;\n  if (piVar2 == (int *)0x0) {\n    (**(code **)(pcVar37 + 0x35338c))\n              (*(int *)(pcVar37 + 0x35264c) + 0x3da0,*(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c0,\n               *(int *)(pcVar37 + 0x352650) + 0x78f4);\n    pdVar16 = pdVar14;\n    piVar2 = piVar48;\n    puVar23 = puVar32;\n    pdVar5 = pdVar29;\nLAB_000a7434:\n    piVar48 = (int *)(**(code **)(pcVar37 + 0x35338c))\n                               (*(int *)(pcVar37 + 0x352650) + -0x784,\n                                *(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar37 + 0x352650) + 0x78f4);\nLAB_000a745c:\n    iStack_760 = *(int *)(pcVar37 + 0x352654) + -0x2f6c;\n    piStack_75c = piVar48;\n    (**(code **)(pcVar37 + 0x352f64))\n              (0x8000,*(int *)(pcVar37 + 0x352650) + 0x69c0,*(int *)(pcVar37 + 0x352650) + 0x78e4,\n               0x4c3);\n  }\n  else {\n    if (piVar2[0xcdb] != -0x54535255) goto LAB_000a7434;\n    piVar48 = piVar2 + 0xd0;\n    if (piVar2[0xcd4] != 0) goto LAB_000a745c;\n  }\n  pcVar37 = pcStack_758;\n  if (puVar23 == (uint *)0x0) {\n    (**(code **)(pcStack_758 + -0x7290))\n              (*(int *)(pcStack_758 + -0x7fcc) + 0x6a20,*(int *)(pcStack_758 + -0x7fcc) + 0x69c0,\n               0x4c4,*(int *)(pcStack_758 + -0x7fcc) + 0x78f4);\nLAB_000a74c4:\n    (**(code **)(pcVar37 + -0x7290))\n              (*(int *)(pcVar37 + -0x7fcc) + 0x6a40,*(int *)(pcVar37 + -0x7fcc) + 0x69c0);\nLAB_000a74e8:\n    dStack_668 = (double)(**(code **)(pcVar37 + -0x7290))\n                                   (*(int *)(pcVar37 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar37 + -0x7fcc) + 0x69c0);\nLAB_000a750c:\n    dStack_668 = dStack_668 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);\n  }\n  else {\n    if (puVar23[0xcdb] != 0xabacadab) goto LAB_000a74c4;\n    if (pdVar16 == (double *)0x0) goto LAB_000a74e8;\n    uStack_678._4_4_ = 0;\n    uStack_678._0_4_ = 0;\n    uStack_66c = 0;\n    uStack_670 = 0;\n    dStack_668 = (double)(int)puVar23[6];\n    if ((int)puVar23[6] < 0) goto LAB_000a750c;\n  }\n  dStack_668 = dStack_668 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408);\n  uStack_65c = 0;\n  uStack_660 = 0;\n  dStack_658 = dStack_668;\n  dStack_650 = (double)(int)puVar23[7];\n  if ((int)puVar23[7] < 0) {\n    dStack_650 = dStack_650 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);\n  }\n  dStack_650 = dStack_650 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408);\n  uStack_644 = 0;\n  uStack_648 = 0;\n  dStack_640 = dStack_650;\n  dVar45 = *pdVar16;\n  dVar44 = pdVar16[2];\n  dVar47 = pdVar16[4];\n  dVar40 = pdVar16[1];\n  dVar41 = pdVar16[3];\n  dVar39 = pdVar16[5];\n  pdVar14 = (double *)&uStack_678;\n  pdVar29 = pdVar14;\n  do {\n    dVar42 = *pdVar29;\n    *pdVar29 = dVar45 * dVar42 + dVar44 * pdVar29[1] + dVar47;\n    pdVar29[1] = dVar40 * dVar42 + dVar41 * pdVar29[1] + dVar39;\n    pdVar29 = pdVar29 + 2;\n  } while (pdVar29 != (double *)&uStack_638);\n  dVar39 = (double)CONCAT44(uStack_670,uStack_66c);\n  dVar41 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_);\n  dVar40 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_);\n  dVar47 = (double)CONCAT44(uStack_670,uStack_66c);\n  do {\n    dVar45 = pdVar14[2];\n    dVar44 = dVar45;\n    if (dVar41 <= dVar45) {\n      dVar44 = dVar41;\n    }\n    dVar42 = pdVar14[3];\n    dVar46 = dVar42;\n    if (dVar47 <= dVar42) {\n      dVar46 = dVar47;\n    }\n    if (dVar45 <= dVar40) {\n      dVar45 = dVar40;\n    }\n    if (dVar42 <= dVar39) {\n      dVar42 = dVar39;\n    }\n    pdVar14 = pdVar14 + 2;\n    dVar39 = dVar42;\n    dVar41 = dVar44;\n    dVar40 = dVar45;\n    dVar47 = dVar46;\n  } while ((double *)&uStack_648 != pdVar14);\n  ppiVar24 = (int **)0x1;\n  pdVar29 = pdVar5;\n  iVar3 = (**(code **)(pcVar37 + -0x7074))(piVar2);\n  if (iVar3 != 0) {\n    dStack_750 = dVar44;\n    if (dVar44 <= 0.0) {\n      dStack_750 = 0.0;\n    }\n    dStack_748 = dVar46;\n    if (dVar46 <= 0.0) {\n      dStack_748 = 0.0;\n    }\n    dStack_740 = (double)piVar2[6];\n    if (piVar2[6] < 0) {\n      dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_740 = dStack_740 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar45 < dStack_740) {\n      dStack_740 = dVar45;\n    }\n    dStack_738 = (double)piVar2[7];\n    if (piVar2[7] < 0) {\n      dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_738 = dStack_738 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar42 < dStack_738) {\n      dStack_738 = dVar42;\n    }\n    dStack_6e8 = *pdVar16 * pdVar16[3] - pdVar16[1] * pdVar16[2];\n    if (0.0 <= dStack_6e8) {\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    }\n    else {\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);\n    }\n    if (dStack_6e8 * dVar39 < *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)) {\n      dStack_6e8 = dVar39 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8);\n    }\n    else {\n      dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;\n    }\n    dStack_700 = pdVar16[3] * dStack_6e8;\n    dStack_6f8 = -pdVar16[1] * dStack_6e8;\n    dStack_6f0 = -pdVar16[2] * dStack_6e8;\n    dStack_6e8 = *pdVar16 * dStack_6e8;\n    dStack_6e0 = dStack_700 * -pdVar16[4] - dStack_6f0 * pdVar16[5];\n    dStack_6d8 = dStack_6f8 * -pdVar16[4] - dStack_6e8 * pdVar16[5];\n    (**(code **)(pcStack_758 + -0x75e4))(piVar2,auStack_6d0);\n    dVar42 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0);\n    dVar39 = (double)(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar42);\n    dVar41 = (double)(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar42);\n    uVar4 = (**(code **)(pcStack_758 + -0x7144))(puVar23,pdVar5);\n    puVar35 = (undefined1 *)(**(code **)(pcStack_758 + -0x79c4))(piVar2,pdVar5);\n    iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23);\n    if (((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23), iVar3 == 3)) &&\n       ((iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 4 ||\n        (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3)))) {\n      (**(code **)(pcStack_758 + -0x775c))(7);\n      iVar10 = (int)dVar41 - (int)dVar39;\n      iVar3 = iVar10;\n      if (iVar10 < 0) {\n        iVar3 = iVar10 + 0x3f;\n      }\n      pdVar16 = (double *)(iVar3 >> 6);\n      if (extraout_v1 < (int)pdVar16) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        bVar1 = extraout_v1_01 < 2;\n      }\n      else {\n        bVar1 = iVar10 < 0x80;\n      }\n      pdVar29 = (double *)0x1;\n      if (((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16)\n         ) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_03;\n        pdVar16 = extraout_v1_03;\n      }\n    }\n    else {\n      uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar51 < 2) {\n          pdVar29 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }\n      else {\nLAB_000a77f8:\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n      }\n      uVar51 = (*pcVar37)(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_00;\n      }\n      else {\n        pdVar29 = (double *)0x2;\n      }\n    }\nLAB_000a7818:\n    pdStack_720 = &dStack_700;\n    puStack_714 = auStack_6d0;\n    pdStack_710 = &dStack_750;\n    iStack_704 = 1;\n    ppiVar24 = &piStack_72c;\n    piStack_72c = piVar2;\n    puStack_728 = puVar23;\n    pdStack_724 = pdVar5;\n    puStack_71c = puVar35;\n    uStack_718 = uVar4;\n    iStack_70c = (int)dVar39;\n    iStack_708 = (int)dVar41;\n    (**(code **)(pcStack_758 + -0x7700))\n              (*(int *)(pcStack_758 + -0x7ea0) + 0x34c4,ppiVar24,pdVar29,0);\n    iVar3 = iStack_704;\n    (**(code **)(pcStack_758 + -0x79a4))(uVar4);\n    (**(code **)(pcStack_758 + -0x79a4))(puVar35);\n  }\n  if (uStack_638._4_4_ == **(int **)(pcStack_758 + -0x7668)) {\n    return iVar3;\n  }\n  pcVar37 = *(code **)(pcStack_758 + -0x7834);\n  pcVar38 = DrawGradientImage;\n  iVar10 = uStack_638._4_4_;\n  (*pcVar37)();\n  pcStack_830 = pcVar37 + 0x359e18;\n  puStack_794 = (undefined8 *)**(undefined4 **)(pcVar37 + 0x3527b0);\n  pdStack_790 = pdVar16;\n  piStack_78c = piVar2;\n  puStack_788 = puVar23;\n  pdStack_784 = pdVar5;\n  iStack_780 = iVar3;\n  pcStack_77c = pcVar38;\n  dStack_778 = dVar42;\n  if (iVar10 == 0) {\n    iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e48) + 0x3da0,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80a,*(int *)(pcVar37 + 0x351e4c) + 0x7818);\n    return iVar3;\n  }\n  if (*(int *)(iVar10 + 0x336c) != -0x54535255) {\n    iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e4c) + -0x784,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80b,*(int *)(pcVar37 + 0x351e4c) + 0x7818);\n    return iVar3;\n  }\n  if (*(int *)(iVar10 + 0x3350) != 0) {\n    iStack_838 = *(int *)(pcVar37 + 0x351e50) + -0x2f6c;\n    iStack_834 = iVar10 + 0x340;\n    (**(code **)(pcVar37 + 0x352760))\n              (0x8000,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,*(int *)(pcVar37 + 0x351e4c) + 0x7804,\n               0x80d);\n  }\n  if (ppiVar24 == (int **)0x0) {\n    iVar3 = (**(code **)(pcStack_830 + -0x7290))\n                      (*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x69c0,0x80e,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x7818);\n    return iVar3;\n  }\n  ppiVar33 = ppiVar24 + 0x6e;\n  (**(code **)(pcStack_830 + -0x6fc4))\n            (ppiVar24[0x7c],ppiVar24[0x7d],0x60,*(int *)(pcStack_830 + -0x7ea0) + 0x224c);\n  ppiVar34 = ppiVar24 + 0x74;\n  dVar39 = (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) *\n           (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) +\n           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76)) *\n           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76));\n  dVar41 = SQRT(dVar39);\n  if (0.0 <= dVar39) {\n    piStack_828 = ppiVar24[0x6f];\n  }\n  else {\n    (**(code **)(pcStack_830 + -0x7418))();\n    piStack_828 = ppiVar24[0x6f];\n  }\n  piStack_824 = ppiVar24[0x70];\n  piStack_820 = ppiVar24[0x71];\n  piStack_81c = ppiVar24[0x72];\n  (**(code **)(pcStack_830 + -0x75e4))(iVar10,auStack_7f0);\n  uVar4 = (**(code **)(pcStack_830 + -0x79c4))(iVar10,pdVar29);\n  iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10);\n  if ((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 == 3)) {\n    iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10);\n    if ((iVar3 != 4) && (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 != 3))\n    goto LAB_000a7bf4;\n    (**(code **)(pcStack_830 + -0x775c))(7);\n    iVar49 = (int)piStack_824 - (int)piStack_81c;\n    iVar3 = iVar49;\n    if (iVar49 < 0) {\n      iVar3 = iVar49 + 0x3f;\n    }\n    if (extraout_v1_04 < iVar3 >> 6) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = iVar49 < 0x80;\n    }\n    iVar3 = 1;\n    dStack_818 = dVar41;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = (int)piStack_824 - (int)piStack_81c;\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      iVar3 = iVar3 >> 6;\n      dStack_818 = dVar41;\n      if (extraout_v1_07 < iVar3) {\n        (**(code **)(pcStack_830 + -0x775c))(7);\n        iVar3 = extraout_v1_08;\n        dStack_818 = dVar41;\n      }\n    }\n  }\n  else {\nLAB_000a7bf4:\n    uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n      if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a7c10;\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n      if ((uint)uVar51 < 2) {\n        iVar3 = 1;\n        dStack_818 = dVar41;\n        goto LAB_000a7c30;\n      }\n    }\n    else {\nLAB_000a7c10:\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n    }\n    uVar51 = (*pcVar37)(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = extraout_v1_05;\n      dStack_818 = dVar41;\n    }\n    else {\n      iVar3 = 2;\n      dStack_818 = dVar41;\n    }\n  }\nLAB_000a7c30:\n  puStack_7fc = auStack_7f0;\n  ppiStack_7f8 = &piStack_828;\n  iStack_7f4 = 1;\n  iStack_810 = iVar10;\n  pdStack_80c = pdVar29;\n  uStack_808 = uVar4;\n  ppiStack_804 = ppiVar33;\n  ppiStack_800 = ppiVar34;\n  (**(code **)(pcStack_830 + -0x7700))(*(int *)(pcStack_830 + -0x7ea0) + 0x549c,&dStack_818,iVar3,0)\n  ;\n  iVar3 = iStack_7f4;\n  (**(code **)(pcStack_830 + -0x79a4))(uVar4);\n  if (puStack_794 == (undefined8 *)**(int **)(pcStack_830 + -0x7668)) {\n    return iVar3;\n  }\n  pcVar37 = *(code **)(pcStack_830 + -0x7834);\n  pcVar38 = GetAffineMatrix;\n  puVar20 = puStack_794;\n  (*pcVar37)();\n  pcStack_858 = pcVar37 + 0x359994;\n  iStack_860 = *(int *)(pcVar37 + 0x3519c8) + 0x10f4;\n  uStack_850 = uVar4;\n  pcStack_84c = pcVar38;\n  (**(code **)(pcVar37 + 0x3522dc))\n            (0x8000,*(int *)(pcVar37 + 0x3519c8) + 0x69c0,*(int *)(pcVar37 + 0x3519c8) + 0x76b0,\n             0x16d2);\n  if (puVar20 != (undefined8 *)0x0) {\n    (**(code **)(pcStack_858 + -0x71c4))(puVar20 + 1,0,0x28);\n    iVar3 = *(int *)(pcStack_858 + -0x7fd0);\n    uVar51 = *(undefined8 *)(iVar3 + 0x4408);\n    *puVar20 = uVar51;\n    puVar20[3] = uVar51;\n    return iVar3;\n  }\n  iVar49 = *(int *)(pcStack_858 + -0x7fcc) + 0x69c0;\n  iVar10 = *(int *)(pcStack_858 + -0x7fcc) + 0x6368;\n  pcVar37 = *(code **)(pcStack_858 + -0x7290);\n  pcVar38 = GetDrawInfo;\n  (*pcVar37)(iVar10,iVar49,0x16d3,*(int *)(pcStack_858 + -0x7fcc) + 0x76a0);\n  iStack_888 = iVar3;\n  iStack_894 = **(int **)(pcVar37 + 0x352270);\n  puStack_88c = puVar20;\n  pdStack_884 = pdVar29;\n  ppiStack_880 = ppiVar33;\n  ppiStack_87c = ppiVar34;\n  puStack_878 = puVar35;\n  pcStack_874 = pcVar38;\n  (**(code **)(pcVar37 + 0x352220))\n            (0x8000,*(int *)(pcVar37 + 0x35190c) + 0x69c0,*(int *)(pcVar37 + 0x35190c) + 0x7694,\n             0x1702,*(int *)(pcVar37 + 0x35190c) + 0x10f4);\n  if (iVar49 == 0) {\n    (**(code **)(pcVar37 + 0x352648))\n              (*(int *)(pcVar37 + 0x351908) + 0x40e4,*(int *)(pcVar37 + 0x35190c) + 0x69c0,0x1703,\n               *(int *)(pcVar37 + 0x35190c) + 0x7688);\n  }\n  else {\n    (**(code **)(pcVar37 + 0x352714))(iVar49,0,0x3c0);\n    iVar10 = (**(code **)(pcVar37 + 0x3521dc))(iVar10);\n    (**(code **)(pcVar37 + 0x351e5c))(iVar49 + 0x18);\n    pdVar29 = (double *)(**(code **)(pcVar37 + 0x351f2c))();\n    ppiVar34 = (int **)(iVar49 + 0x48);\n    (**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar34,pdVar29);\n    ppiVar33 = (int **)(iVar49 + 0xa0);\n    (**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar33,pdVar29);\n    *(undefined4 *)(iVar49 + 0x238) = *(undefined4 *)(iVar10 + 0x14);\n    *(undefined8 *)(iVar49 + 0x1b0) = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4408);\n    *(undefined4 *)(iVar49 + 0x240) = 1;\n    *(undefined4 *)(iVar49 + 0x2cc) = *(undefined4 *)(*(int *)(pcVar37 + 0x351908) + 0x4aa8);\n    uVar51 = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4a48);\n    *(undefined8 *)(iVar49 + 0x398) = uVar51;\n    *(undefined8 *)(iVar49 + 0x3a0) = uVar51;\n    *(undefined4 *)(iVar49 + 0x244) = 1;\n    *(undefined4 *)(iVar49 + 0x248) = 1;\n    *(undefined4 *)(iVar49 + 0x24c) = 10;\n    *(undefined4 *)(iVar49 + 600) = 1;\n    *(undefined8 *)(iVar49 + 0x288) = *(undefined8 *)(*(int *)(pcVar37 + 0x35190c) + 0x7970);\n    *(undefined4 *)(iVar49 + 0x144) = 0;\n    *(undefined4 *)(iVar49 + 0x140) = 0;\n    *(undefined4 *)(iVar49 + 0x25c) = 0x36;\n    *(undefined4 *)(iVar49 + 0x2d0) = 1;\n    *(undefined4 *)(iVar49 + 0x3a8) = 0;\n    uVar4 = (**(code **)(pcVar37 + 0x3527e8))();\n    *(undefined4 *)(iVar49 + 0x38c) = uVar4;\n    if (*(int *)(iVar10 + 0x4c) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x264) = uVar4;\n    }\n    if (*(int *)(iVar10 + 0x54) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x290) = uVar4;\n    }\n    *(undefined4 *)(iVar49 + 0x23c) = *(undefined4 *)(iVar10 + 0x14);\n    uVar4 = *(undefined4 *)(iVar10 + 0x58);\n    if (*(double *)(*(int *)(pcVar37 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar10 + 0x58))) {\n      *(undefined4 *)(iVar49 + 0x28c) = *(undefined4 *)(iVar10 + 0x5c);\n      *(undefined4 *)(iVar49 + 0x288) = uVar4;\n    }\n    puVar13 = (undefined4 *)(iVar10 + 0x118);\n    puVar21 = (undefined4 *)(iVar49 + 0x150);\n    do {\n      puVar15 = puVar21;\n      puVar9 = puVar13;\n      uVar27 = puVar9[1];\n      uVar25 = puVar9[2];\n      uVar4 = puVar9[3];\n      *puVar15 = *puVar9;\n      puVar15[1] = uVar27;\n      puVar15[2] = uVar25;\n      puVar15[3] = uVar4;\n      puVar13 = puVar9 + 4;\n      puVar21 = puVar15 + 4;\n    } while (puVar13 != (undefined4 *)(iVar10 + 0x168));\n    uVar4 = puVar9[5];\n    puVar15[4] = *puVar13;\n    puVar15[5] = uVar4;\n    if (*(int *)(iVar10 + 0x48) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x29c) = uVar4;\n    }\n    iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ac4);\n    if (iVar3 != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x14,0,iVar3);\n      *(undefined4 *)(iVar49 + 0x388) = uVar4;\n      goto LAB_000a8298;\n    }\n  }\n  *(undefined4 *)(iVar49 + 0x388) = 0;\nLAB_000a8298:\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ad0);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x280,iVar3);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6adc);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x26c,iVar3);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ae4);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar34,pdVar29);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6aec);\n  if (iVar3 != 0) {\n    uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x21,0,iVar3);\n    *(undefined4 *)(iVar49 + 0x298) = uVar4;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6af4);\n  if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x380) = dVar39;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b08);\n  if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x378) = dVar39;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b1c);\n  if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x370) = dVar39;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b24);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar33,pdVar29);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b2c);\n  if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x1b0) = dVar39;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b38);\n  if (iVar3 != 0) {\n    uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x47,0,iVar3);\n    *(undefined4 *)(iVar49 + 0x274) = uVar4;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b40);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,iVar49 + 0xf8,pdVar29);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x351920) + -0x3000);\n  if (iVar3 != 0) {\n    iVar28 = (**(code **)(pcVar37 + 0x3526d4))(0x4c,0,iVar3);\n    if (iVar28 == -1) {\n      uVar4 = (**(code **)(pcVar37 + 0x352380))(iVar3,0,10);\n      *(undefined4 *)(iVar49 + 0x27c) = uVar4;\n    }\n    else {\n      *(int *)(iVar49 + 0x27c) = iVar28;\n    }\n  }\n  (**(code **)(pcVar37 + 0x351d90))(pdVar29);\n  *(undefined4 *)(iVar49 + 0x390) = 0xabacadab;\n  (**(code **)(pcVar37 + 0x352628))(iVar10);\n  if (iStack_894 == **(int **)(pcVar37 + 0x352270)) {\n    return **(int **)(pcVar37 + 0x352270);\n  }\n  pcVar37 = *(code **)(pcVar37 + 0x3520a4);\n  (*pcVar37)();\n  iVar3 = (**(code **)(pcVar37 + 0x351be4))(0x3c0);\n  (**(code **)(pcVar37 + 0x3518b4))(0,iVar3);\n  return iVar3;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "double *pdVar5;" primitive_type (pointer_declarator "*pdVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "double *pdVar14;" primitive_type (pointer_declarator "*pdVar14" * identifier) ;) (declaration "int extraout_v1;" primitive_type identifier ;) (declaration "double *extraout_v1_00;" primitive_type (pointer_declarator "*extraout_v1_00" * identifier) ;) (declaration "int extraout_v1_01;" primitive_type identifier ;) (declaration "int extraout_v1_02;" primitive_type identifier ;) (declaration "double *extraout_v1_03;" primitive_type (pointer_declarator "*extraout_v1_03" * identifier) ;) (declaration "int extraout_v1_04;" primitive_type identifier ;) (declaration "int extraout_v1_05;" primitive_type identifier ;) (declaration "int extraout_v1_06;" primitive_type identifier ;) (declaration "int extraout_v1_07;" primitive_type identifier ;) (declaration "int extraout_v1_08;" primitive_type identifier ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "double *pdVar16;" primitive_type (pointer_declarator "*pdVar16" * identifier) ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "undefined8 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "undefined4 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "uint *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "int **ppiVar24;" primitive_type (pointer_declarator "**ppiVar24" * (pointer_declarator "*ppiVar24" * identifier)) ;) (declaration "undefined4 uVar25;" type_identifier identifier ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "undefined4 uVar27;" type_identifier identifier ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "double *pdVar29;" primitive_type (pointer_declarator "*pdVar29" * identifier) ;) (declaration "double *pdVar30;" primitive_type (pointer_declarator "*pdVar30" * identifier) ;) (declaration "int unaff_s2;" primitive_type identifier ;) (declaration "int iVar31;" primitive_type identifier ;) (declaration "uint *puVar32;" type_identifier (pointer_declarator "*puVar32" * identifier) ;) (declaration "double *unaff_s3;" primitive_type (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "int **ppiVar33;" primitive_type (pointer_declarator "**ppiVar33" * (pointer_declarator "*ppiVar33" * identifier)) ;) (declaration "int *unaff_s4;" primitive_type (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "int **ppiVar34;" primitive_type (pointer_declarator "**ppiVar34" * (pointer_declarator "*ppiVar34" * identifier)) ;) (declaration "undefined1 *puVar35;" type_identifier (pointer_declarator "*puVar35" * identifier) ;) (declaration "double *unaff_s6;" primitive_type (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "uint unaff_s7;" type_identifier identifier ;) (declaration "undefined *puVar36;" type_identifier (pointer_declarator "*puVar36" * identifier) ;) (declaration "code *pcVar37;" type_identifier (pointer_declarator "*pcVar37" * identifier) ;) (declaration "code *pcVar38;" type_identifier (pointer_declarator "*pcVar38" * identifier) ;) (declaration "double dVar39;" primitive_type identifier ;) (declaration "double dVar40;" primitive_type identifier ;) (declaration "double dVar41;" primitive_type identifier ;) (declaration "float fVar43;" primitive_type identifier ;) (declaration "double dVar42;" primitive_type identifier ;) (declaration "double dVar44;" primitive_type identifier ;) (declaration "double dVar45;" primitive_type identifier ;) (declaration "double dVar46;" primitive_type identifier ;) (declaration "double in_f20_21;" primitive_type identifier ;) (declaration "double dVar47;" primitive_type identifier ;) (declaration "double in_f22_23;" primitive_type identifier ;) (declaration "double in_f24_25;" primitive_type identifier ;) (declaration "double in_f26_27;" primitive_type identifier ;) (declaration "double in_f28_29;" primitive_type identifier ;) (declaration "double in_f30_31;" primitive_type identifier ;) (declaration "int *piVar48;" primitive_type (pointer_declarator "*piVar48" * identifier) ;) (declaration "int iVar49;" primitive_type identifier ;) (declaration "int iVar50;" primitive_type identifier ;) (declaration "undefined8 uVar51;" type_identifier identifier ;) (declaration "undefined1 auStack_898 [4];" type_identifier (array_declarator "auStack_898 [4]" identifier [ number_literal ]) ;) (declaration "int iStack_894;" primitive_type identifier ;) (declaration "undefined8 *puStack_88c;" type_identifier (pointer_declarator "*puStack_88c" * identifier) ;) (declaration "int iStack_888;" primitive_type identifier ;) (declaration "double *pdStack_884;" primitive_type (pointer_declarator "*pdStack_884" * identifier) ;) (declaration "int **ppiStack_880;" primitive_type (pointer_declarator "**ppiStack_880" * (pointer_declarator "*ppiStack_880" * identifier)) ;) (declaration "int **ppiStack_87c;" primitive_type (pointer_declarator "**ppiStack_87c" * (pointer_declarator "*ppiStack_87c" * identifier)) ;) (declaration "undefined1 *puStack_878;" type_identifier (pointer_declarator "*puStack_878" * identifier) ;) (declaration "code *pcStack_874;" type_identifier (pointer_declarator "*pcStack_874" * identifier) ;) (declaration "int iStack_860;" primitive_type identifier ;) (declaration "code *pcStack_858;" type_identifier (pointer_declarator "*pcStack_858" * identifier) ;) (declaration "undefined4 uStack_850;" type_identifier identifier ;) (declaration "code *pcStack_84c;" type_identifier (pointer_declarator "*pcStack_84c" * identifier) ;) (declaration "int iStack_838;" primitive_type identifier ;) (declaration "int iStack_834;" primitive_type identifier ;) (declaration "code *pcStack_830;" type_identifier (pointer_declarator "*pcStack_830" * identifier) ;) (declaration "int *piStack_828;" primitive_type (pointer_declarator "*piStack_828" * identifier) ;) (declaration "int *piStack_824;" primitive_type (pointer_declarator "*piStack_824" * identifier) ;) (declaration "int *piStack_820;" primitive_type (pointer_declarator "*piStack_820" * identifier) ;) (declaration "int *piStack_81c;" primitive_type (pointer_declarator "*piStack_81c" * identifier) ;) (declaration "double dStack_818;" primitive_type identifier ;) (declaration "int iStack_810;" primitive_type identifier ;) (declaration "double *pdStack_80c;" primitive_type (pointer_declarator "*pdStack_80c" * identifier) ;) (declaration "undefined4 uStack_808;" type_identifier identifier ;) (declaration "int **ppiStack_804;" primitive_type (pointer_declarator "**ppiStack_804" * (pointer_declarator "*ppiStack_804" * identifier)) ;) (declaration "int **ppiStack_800;" primitive_type (pointer_declarator "**ppiStack_800" * (pointer_declarator "*ppiStack_800" * identifier)) ;) (declaration "undefined1 *puStack_7fc;" type_identifier (pointer_declarator "*puStack_7fc" * identifier) ;) (declaration "int **ppiStack_7f8;" primitive_type (pointer_declarator "**ppiStack_7f8" * (pointer_declarator "*ppiStack_7f8" * identifier)) ;) (declaration "int iStack_7f4;" primitive_type identifier ;) (declaration "undefined1 auStack_7f0 [92];" type_identifier (array_declarator "auStack_7f0 [92]" identifier [ number_literal ]) ;) (declaration "undefined8 *puStack_794;" type_identifier (pointer_declarator "*puStack_794" * identifier) ;) (declaration "double *pdStack_790;" primitive_type (pointer_declarator "*pdStack_790" * identifier) ;) (declaration "int *piStack_78c;" primitive_type (pointer_declarator "*piStack_78c" * identifier) ;) (declaration "uint *puStack_788;" type_identifier (pointer_declarator "*puStack_788" * identifier) ;) (declaration "double *pdStack_784;" primitive_type (pointer_declarator "*pdStack_784" * identifier) ;) (declaration "int iStack_780;" primitive_type identifier ;) (declaration "code *pcStack_77c;" type_identifier (pointer_declarator "*pcStack_77c" * identifier) ;) (declaration "double dStack_778;" primitive_type identifier ;) (declaration "int iStack_760;" primitive_type identifier ;) (declaration "int *piStack_75c;" primitive_type (pointer_declarator "*piStack_75c" * identifier) ;) (declaration "code *pcStack_758;" type_identifier (pointer_declarator "*pcStack_758" * identifier) ;) (declaration "double dStack_750;" primitive_type identifier ;) (declaration "double dStack_748;" primitive_type identifier ;) (declaration "double dStack_740;" primitive_type identifier ;) (declaration "double dStack_738;" primitive_type identifier ;) (declaration "int *piStack_72c;" primitive_type (pointer_declarator "*piStack_72c" * identifier) ;) (declaration "uint *puStack_728;" type_identifier (pointer_declarator "*puStack_728" * identifier) ;) (declaration "double *pdStack_724;" primitive_type (pointer_declarator "*pdStack_724" * identifier) ;) (declaration "double *pdStack_720;" primitive_type (pointer_declarator "*pdStack_720" * identifier) ;) (declaration "undefined1 *puStack_71c;" type_identifier (pointer_declarator "*puStack_71c" * identifier) ;) (declaration "undefined4 uStack_718;" type_identifier identifier ;) (declaration "undefined1 *puStack_714;" type_identifier (pointer_declarator "*puStack_714" * identifier) ;) (declaration "double *pdStack_710;" primitive_type (pointer_declarator "*pdStack_710" * identifier) ;) (declaration "int iStack_70c;" primitive_type identifier ;) (declaration "int iStack_708;" primitive_type identifier ;) (declaration "int iStack_704;" primitive_type identifier ;) (declaration "double dStack_700;" primitive_type identifier ;) (declaration "double dStack_6f8;" primitive_type identifier ;) (declaration "double dStack_6f0;" primitive_type identifier ;) (declaration "double dStack_6e8;" primitive_type identifier ;) (declaration "double dStack_6e0;" primitive_type identifier ;) (declaration "double dStack_6d8;" primitive_type identifier ;) (declaration "undefined1 auStack_6d0 [88];" type_identifier (array_declarator "auStack_6d0 [88]" identifier [ number_literal ]) ;) (declaration "undefined8 uStack_678;" type_identifier identifier ;) (declaration "undefined4 uStack_670;" type_identifier identifier ;) (declaration "undefined4 uStack_66c;" type_identifier identifier ;) (declaration "double dStack_668;" primitive_type identifier ;) (declaration "undefined4 uStack_660;" type_identifier identifier ;) (declaration "undefined4 uStack_65c;" type_identifier identifier ;) (declaration "double dStack_658;" primitive_type identifier ;) (declaration "double dStack_650;" primitive_type identifier ;) (declaration "undefined4 uStack_648;" type_identifier identifier ;) (declaration "undefined4 uStack_644;" type_identifier identifier ;) (declaration "double dStack_640;" primitive_type identifier ;) (declaration "undefined8 uStack_638;" type_identifier identifier ;) (declaration "double *pdStack_62c;" primitive_type (pointer_declarator "*pdStack_62c" * identifier) ;) (declaration "int *piStack_628;" primitive_type (pointer_declarator "*piStack_628" * identifier) ;) (declaration "uint *puStack_624;" type_identifier (pointer_declarator "*puStack_624" * identifier) ;) (declaration "double *pdStack_620;" primitive_type (pointer_declarator "*pdStack_620" * identifier) ;) (declaration "int iStack_61c;" primitive_type identifier ;) (declaration "undefined1 *puStack_618;" type_identifier (pointer_declarator "*puStack_618" * identifier) ;) (declaration "double *pdStack_614;" primitive_type (pointer_declarator "*pdStack_614" * identifier) ;) (declaration "uint uStack_610;" type_identifier identifier ;) (declaration "code *pcStack_60c;" type_identifier (pointer_declarator "*pcStack_60c" * identifier) ;) (declaration "double dStack_608;" primitive_type identifier ;) (declaration "double dStack_600;" primitive_type identifier ;) (declaration "double dStack_5f8;" primitive_type identifier ;) (declaration "double dStack_5f0;" primitive_type identifier ;) (declaration "int iStack_5d8;" primitive_type identifier ;) (declaration "code *pcStack_5d0;" type_identifier (pointer_declarator "*pcStack_5d0" * identifier) ;) (declaration "double *pdStack_5c8;" primitive_type (pointer_declarator "*pdStack_5c8" * identifier) ;) (declaration "code *pcStack_5c4;" type_identifier (pointer_declarator "*pcStack_5c4" * identifier) ;) (declaration "undefined4 uStack_5b0;" type_identifier identifier ;) (declaration "uint uStack_5ac;" type_identifier identifier ;) (declaration "code *pcStack_5a8;" type_identifier (pointer_declarator "*pcStack_5a8" * identifier) ;) (declaration "undefined8 uStack_5a0;" type_identifier identifier ;) (declaration "double dStack_598;" primitive_type identifier ;) (declaration "double dStack_590;" primitive_type identifier ;) (declaration "double *pdStack_588;" primitive_type (pointer_declarator "*pdStack_588" * identifier) ;) (declaration "int iStack_584;" primitive_type identifier ;) (declaration "double dStack_580;" primitive_type identifier ;) (declaration "double dStack_578;" primitive_type identifier ;) (declaration "int iStack_570;" primitive_type identifier ;) (declaration "undefined1 *puStack_56c;" type_identifier (pointer_declarator "*puStack_56c" * identifier) ;) (declaration "double *pdStack_568;" primitive_type (pointer_declarator "*pdStack_568" * identifier) ;) (declaration "uint uStack_564;" type_identifier identifier ;) (declaration "double dStack_560;" primitive_type identifier ;) (declaration "double dStack_558;" primitive_type identifier ;) (declaration "uint uStack_550;" type_identifier identifier ;) (declaration "undefined4 uStack_54c;" type_identifier identifier ;) (declaration "double dStack_548;" primitive_type identifier ;) (declaration "double dStack_540;" primitive_type identifier ;) (declaration "uint uStack_538;" type_identifier identifier ;) (declaration "undefined4 uStack_534;" type_identifier identifier ;) (declaration "double dStack_530;" primitive_type identifier ;) (declaration "uint uStack_528;" type_identifier identifier ;) (declaration "undefined4 uStack_524;" type_identifier identifier ;) (declaration "double dStack_520;" primitive_type identifier ;) (declaration "double dStack_518;" primitive_type identifier ;) (declaration "int aiStack_510 [4];" primitive_type (array_declarator "aiStack_510 [4]" identifier [ number_literal ]) ;) (declaration "undefined8 uStack_500;" type_identifier identifier ;) (declaration "int iStack_4f8;" primitive_type identifier ;) (declaration "double dStack_4e8;" primitive_type identifier ;) (declaration "double dStack_4e0;" primitive_type identifier ;) (declaration "double dStack_4d8;" primitive_type identifier ;) (declaration "double dStack_4d0;" primitive_type identifier ;) (declaration "double dStack_4c8;" primitive_type identifier ;) (declaration "double dStack_4c0;" primitive_type identifier ;) (declaration "int iStack_4b4;" primitive_type identifier ;) (declaration "uint uStack_4b0;" type_identifier identifier ;) (declaration "int iStack_4ac;" primitive_type identifier ;) (declaration "double *pdStack_4a8;" primitive_type (pointer_declarator "*pdStack_4a8" * identifier) ;) (declaration "double *pdStack_4a4;" primitive_type (pointer_declarator "*pdStack_4a4" * identifier) ;) (declaration "int iStack_4a0;" primitive_type identifier ;) (declaration "undefined4 *puStack_49c;" type_identifier (pointer_declarator "*puStack_49c" * identifier) ;) (declaration "double *pdStack_498;" primitive_type (pointer_declarator "*pdStack_498" * identifier) ;) (declaration "uint uStack_494;" type_identifier identifier ;) (declaration "int iStack_490;" primitive_type identifier ;) (declaration "code *pcStack_48c;" type_identifier (pointer_declarator "*pcStack_48c" * identifier) ;) (declaration "double dStack_488;" primitive_type identifier ;) (declaration "double dStack_480;" primitive_type identifier ;) (declaration "double dStack_478;" primitive_type identifier ;) (declaration "double dStack_470;" primitive_type identifier ;) (declaration "double dStack_468;" primitive_type identifier ;) (declaration "double dStack_460;" primitive_type identifier ;) (declaration "int *piStack_448;" primitive_type (pointer_declarator "*piStack_448" * identifier) ;) (declaration "uint uStack_444;" type_identifier identifier ;) (declaration "code *pcStack_440;" type_identifier (pointer_declarator "*pcStack_440" * identifier) ;) (declaration "uint uStack_434;" type_identifier identifier ;) (declaration "uint uStack_430;" type_identifier identifier ;) (declaration "double *pdStack_42c;" primitive_type (pointer_declarator "*pdStack_42c" * identifier) ;) (declaration "uint uStack_428;" type_identifier identifier ;) (declaration "uint uStack_424;" type_identifier identifier ;) (declaration "uint uStack_420;" type_identifier identifier ;) (declaration "undefined4 uStack_41c;" type_identifier identifier ;) (declaration "int aiStack_418 [10];" primitive_type (array_declarator "aiStack_418 [10]" identifier [ number_literal ]) ;) (declaration "double dStack_3f0;" primitive_type identifier ;) (declaration "double dStack_3e8;" primitive_type identifier ;) (declaration "double dStack_3e0;" primitive_type identifier ;) (declaration "double dStack_3d8;" primitive_type identifier ;) (declaration "double dStack_3d0;" primitive_type identifier ;) (declaration "int iStack_3bc;" primitive_type identifier ;) (declaration "int iStack_3b8;" primitive_type identifier ;) (declaration "uint uStack_3b4;" type_identifier identifier ;) (declaration "double *pdStack_3b0;" primitive_type (pointer_declarator "*pdStack_3b0" * identifier) ;) (declaration "double *pdStack_3ac;" primitive_type (pointer_declarator "*pdStack_3ac" * identifier) ;) (declaration "int *piStack_3a8;" primitive_type (pointer_declarator "*piStack_3a8" * identifier) ;) (declaration "undefined4 *puStack_3a4;" type_identifier (pointer_declarator "*puStack_3a4" * identifier) ;) (declaration "double *pdStack_3a0;" primitive_type (pointer_declarator "*pdStack_3a0" * identifier) ;) (declaration "uint uStack_39c;" type_identifier identifier ;) (declaration "int iStack_398;" primitive_type identifier ;) (declaration "code *pcStack_394;" type_identifier (pointer_declarator "*pcStack_394" * identifier) ;) (declaration "double dStack_390;" primitive_type identifier ;) (declaration "double dStack_388;" primitive_type identifier ;) (declaration "double dStack_380;" primitive_type identifier ;) (declaration "double dStack_378;" primitive_type identifier ;) (declaration "double dStack_370;" primitive_type identifier ;) (declaration "undefined4 *puStack_358;" type_identifier (pointer_declarator "*puStack_358" * identifier) ;) (declaration "undefined4 uStack_354;" type_identifier identifier ;) (declaration "undefined *puStack_350;" type_identifier (pointer_declarator "*puStack_350" * identifier) ;) (declaration "undefined8 uStack_348;" type_identifier identifier ;) (declaration "double dStack_340;" primitive_type identifier ;) (declaration "double dStack_338;" primitive_type identifier ;) (declaration "double dStack_330;" primitive_type identifier ;) (declaration "uint uStack_328;" type_identifier identifier ;) (declaration "int iStack_324;" primitive_type identifier ;) (declaration "double dStack_320;" primitive_type identifier ;) (declaration "double dStack_318;" primitive_type identifier ;) (declaration "uint uStack_310;" type_identifier identifier ;) (declaration "undefined4 uStack_30c;" type_identifier identifier ;) (declaration "int iStack_308;" primitive_type identifier ;) (declaration "int *piStack_304;" primitive_type (pointer_declarator "*piStack_304" * identifier) ;) (declaration "double dStack_300;" primitive_type identifier ;) (declaration "uint uStack_2f8;" type_identifier identifier ;) (declaration "int iStack_2f4;" primitive_type identifier ;) (declaration "int iStack_2f0;" primitive_type identifier ;) (declaration "double *pdStack_2ec;" primitive_type (pointer_declarator "*pdStack_2ec" * identifier) ;) (declaration "uint uStack_2e8;" type_identifier identifier ;) (declaration "undefined4 uStack_2e4;" type_identifier identifier ;) (declaration "uint uStack_2e0;" type_identifier identifier ;) (declaration "undefined4 uStack_2dc;" type_identifier identifier ;) (declaration "double *pdStack_2d8;" primitive_type (pointer_declarator "*pdStack_2d8" * identifier) ;) (declaration "uint uStack_2d4;" type_identifier identifier ;) (declaration "undefined4 uStack_2d0;" type_identifier identifier ;) (declaration "double *pdStack_2cc;" primitive_type (pointer_declarator "*pdStack_2cc" * identifier) ;) (declaration "uint uStack_2c8;" type_identifier identifier ;) (declaration "undefined4 uStack_2c4;" type_identifier identifier ;) (declaration "int iStack_2c0;" primitive_type identifier ;) (declaration "undefined4 *puStack_2bc;" type_identifier (pointer_declarator "*puStack_2bc" * identifier) ;) (declaration "double dStack_2b8;" primitive_type identifier ;) (declaration "uint uStack_2b0;" type_identifier identifier ;) (declaration "undefined4 uStack_2ac;" type_identifier identifier ;) (declaration "double *pdStack_2a8;" primitive_type (pointer_declarator "*pdStack_2a8" * identifier) ;) (declaration "undefined1 *puStack_2a4;" type_identifier (pointer_declarator "*puStack_2a4" * identifier) ;) (declaration "double *pdStack_2a0;" primitive_type (pointer_declarator "*pdStack_2a0" * identifier) ;) (declaration "int iStack_29c;" primitive_type identifier ;) (declaration "undefined4 auStack_298 [18];" type_identifier (array_declarator "auStack_298 [18]" identifier [ number_literal ]) ;) (declaration "double dStack_250;" primitive_type identifier ;) (declaration "undefined4 auStack_240 [18];" type_identifier (array_declarator "auStack_240 [18]" identifier [ number_literal ]) ;) (declaration "double dStack_1f8;" primitive_type identifier ;) (declaration "int iStack_1e4;" primitive_type identifier ;) (declaration "double *pdStack_1e0;" primitive_type (pointer_declarator "*pdStack_1e0" * identifier) ;) (declaration "int *piStack_1dc;" primitive_type (pointer_declarator "*piStack_1dc" * identifier) ;) (declaration "int iStack_1d8;" primitive_type identifier ;) (declaration "double *pdStack_1d4;" primitive_type (pointer_declarator "*pdStack_1d4" * identifier) ;) (declaration "int *piStack_1d0;" primitive_type (pointer_declarator "*piStack_1d0" * identifier) ;) (declaration "undefined4 *puStack_1cc;" type_identifier (pointer_declarator "*puStack_1cc" * identifier) ;) (declaration "double *pdStack_1c8;" primitive_type (pointer_declarator "*pdStack_1c8" * identifier) ;) (declaration "uint uStack_1c4;" type_identifier identifier ;) (declaration "int iStack_1c0;" primitive_type identifier ;) (declaration "code *pcStack_1bc;" type_identifier (pointer_declarator "*pcStack_1bc" * identifier) ;) (declaration "double dStack_1b8;" primitive_type identifier ;) (declaration "double dStack_1b0;" primitive_type identifier ;) (declaration "double dStack_1a8;" primitive_type identifier ;) (declaration "double dStack_1a0;" primitive_type identifier ;) (declaration "double dStack_198;" primitive_type identifier ;) (declaration "double dStack_190;" primitive_type identifier ;) (declaration "undefined8 local_178;" type_identifier identifier ;) (declaration "double local_170;" primitive_type identifier ;) (declaration "int *local_168;" primitive_type (pointer_declarator "*local_168" * identifier) ;) (declaration "int *local_164;" primitive_type (pointer_declarator "*local_164" * identifier) ;) (declaration "int local_110 [4];" primitive_type (array_declarator "local_110 [4]" identifier [ number_literal ]) ;) (declaration "undefined8 local_100;" type_identifier identifier ;) (declaration "int local_f8;" primitive_type identifier ;) (declaration "double local_e8;" primitive_type identifier ;) (declaration "double local_e0;" primitive_type identifier ;) (declaration "double local_d8;" primitive_type identifier ;) (declaration "double local_d0;" primitive_type identifier ;) (declaration "double local_c8;" primitive_type identifier ;) (declaration "double local_c0;" primitive_type identifier ;) (declaration "int local_b8 [10];" primitive_type (array_declarator "local_b8 [10]" identifier [ number_literal ]) ;) (declaration "double local_90;" primitive_type identifier ;) (declaration "double local_88;" primitive_type identifier ;) (declaration "double local_80;" primitive_type identifier ;) (declaration "double local_78;" primitive_type identifier ;) (declaration "double local_70;" primitive_type identifier ;) (declaration "int local_5c;" primitive_type identifier ;) (expression_statement "local_5c = *(int *)PTR___stack_chk_guard_003fa248;" (assignment_expression "local_5c = *(int *)PTR___stack_chk_guard_003fa248" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_003fa248" * (cast_expression "(int *)PTR___stack_chk_guard_003fa248" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pdVar29 = (double *)param_1[8];" (assignment_expression "pdVar29 = (double *)param_1[8]" identifier = (cast_expression "(double *)param_1[8]" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[8]" identifier [ number_literal ]))) ;) (expression_statement "piVar2 = (int *)(*(code *)PTR_omp_get_num_threads_003fa924)();" (assignment_expression "piVar2 = (int *)(*(code *)PTR_omp_get_num_threads_003fa924)()" identifier = (cast_expression "(int *)(*(code *)PTR_omp_get_num_threads_003fa924)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_omp_get_num_threads_003fa924)()" (parenthesized_expression "(*(code *)PTR_omp_get_num_threads_003fa924)" ( (pointer_expression "*(code *)PTR_omp_get_num_threads_003fa924" * (cast_expression "(code *)PTR_omp_get_num_threads_003fa924" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar3 = (*(code *)PTR_omp_get_thread_num_003fa520)();" (assignment_expression "iVar3 = (*(code *)PTR_omp_get_thread_num_003fa520)()" identifier = (call_expression "(*(code *)PTR_omp_get_thread_num_003fa520)()" (parenthesized_expression "(*(code *)PTR_omp_get_thread_num_003fa520)" ( (pointer_expression "*(code *)PTR_omp_get_thread_num_003fa520" * (cast_expression "(code *)PTR_omp_get_thread_num_003fa520" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "puVar36 = PTR_LAB_003f98e0;" (assignment_expression "puVar36 = PTR_LAB_003f98e0" identifier = identifier) ;) (expression_statement "iVar10 = (param_1[9] + 1) - (int)pdVar29;" (assignment_expression "iVar10 = (param_1[9] + 1) - (int)pdVar29" identifier = (binary_expression "(param_1[9] + 1) - (int)pdVar29" (parenthesized_expression "(param_1[9] + 1)" ( (binary_expression "param_1[9] + 1" (subscript_expression "param_1[9]" identifier [ number_literal ]) + number_literal) )) - (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (piVar2 == (int *)0x0) {\n    trap(7);\n  }" if (parenthesized_expression "(piVar2 == (int *)0x0)" ( (binary_expression "piVar2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "iVar49 = iVar10 / (int)piVar2;" (assignment_expression "iVar49 = iVar10 / (int)piVar2" identifier = (binary_expression "iVar10 / (int)piVar2" identifier / (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar10 = iVar10 % (int)piVar2;" (assignment_expression "iVar10 = iVar10 % (int)piVar2" identifier = (binary_expression "iVar10 % (int)piVar2" identifier % (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (iVar3 < iVar10) {\n    iVar49 = iVar49 + 1;\n    iVar10 = 0;\n  }" if (parenthesized_expression "(iVar3 < iVar10)" ( (binary_expression "iVar3 < iVar10" identifier < identifier) )) (compound_statement "{\n    iVar49 = iVar49 + 1;\n    iVar10 = 0;\n  }" { (expression_statement "iVar49 = iVar49 + 1;" (assignment_expression "iVar49 = iVar49 + 1" identifier = (binary_expression "iVar49 + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) })) (expression_statement "iVar10 = iVar49 * iVar3 + iVar10;" (assignment_expression "iVar10 = iVar49 * iVar3 + iVar10" identifier = (binary_expression "iVar49 * iVar3 + iVar10" (binary_expression "iVar49 * iVar3" identifier * identifier) + identifier)) ;) (expression_statement "pdVar16 = (double *)(iVar49 + iVar10);" (assignment_expression "pdVar16 = (double *)(iVar49 + iVar10)" identifier = (cast_expression "(double *)(iVar49 + iVar10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + iVar10)" ( (binary_expression "iVar49 + iVar10" identifier + identifier) )))) ;) (expression_statement "iVar3 = (int)pdVar29 + iVar10;" (assignment_expression "iVar3 = (int)pdVar29 + iVar10" identifier = (binary_expression "(int)pdVar29 + iVar10" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (if_statement "if (iVar10 < (int)pdVar16) {\n    uVar4 = param_1[5];\n    pdVar5 = (double *)param_1[4];\n    unaff_s4 = (int *)param_1[2];\n    unaff_s7 = param_1[1];\n    piVar2 = (int *)*param_1;\n    puVar6 = (undefined *)((int)pdVar29 + (int)pdVar16);\n    dVar39 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    in_f26_27 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    in_f30_31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n    do {\n      in_f24_25 = (double)iVar3;\n      pdVar29 = (double *)param_1[3];\n      in_f20_21 = *(double *)param_1[7];\n      in_f28_29 = ((double *)param_1[7])[2];\n      dVar40 = in_f24_25 * pdVar29[2] + pdVar29[4];\n      dVar47 = *pdVar29;\n      dVar41 = in_f28_29;\n      if (dVar39 <= dVar47) {\n        in_f22_23 = -dVar40 / dVar47;\n        if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }\n        dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n        if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }\n        dVar47 = (dVar44 - dVar40) / dVar47;\n        if (dVar47 < in_f28_29) {\n          dVar41 = dVar47;\n        }\nLAB_000a3890:\n        dVar40 = in_f24_25 * pdVar29[3] + pdVar29[5];\n        dVar47 = pdVar29[1];\n        if (*(double *)(puVar36 + 0x43c8) <= dVar47) {\n          dVar44 = -dVar40 / dVar47;\n          if (-dVar40 / dVar47 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = *(double **)(unaff_s7 + 0x1c);\n          dVar44 = (double)(int)pdVar16;\n          if ((int)pdVar16 < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar44 - dVar40) / dVar47;\n          if (dVar41 <= in_f20_21) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }\n        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;\n      }\n      else {\n        if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar44 - dVar40) / dVar47;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar40) {\n          dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n          if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar41;\n          if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar36 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar41 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar41;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar40 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar41 = (dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar41 < in_f20_21) {\n          uVar26 = (uint)dVar41;\n        }\n        else {\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar16 = pdVar5;\n        pdVar29 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26);\n        if (pdVar29 != (double *)0x0) {\n          piVar17 = (int *)param_1[6];\n          piVar48 = piVar17;\n          piVar19 = local_b8;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          piVar48 = piVar17;\n          piVar19 = local_110;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }\n          pdVar16 = pdVar5;\n          iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);\n          if (iVar10 == 0) {\n            param_1[10] = 0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n      unaff_s6 = (double *)puVar36;\n    } while (iVar3 < (int)puVar6);\n  }" if (parenthesized_expression "(iVar10 < (int)pdVar16)" ( (binary_expression "iVar10 < (int)pdVar16" identifier < (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    uVar4 = param_1[5];\n    pdVar5 = (double *)param_1[4];\n    unaff_s4 = (int *)param_1[2];\n    unaff_s7 = param_1[1];\n    piVar2 = (int *)*param_1;\n    puVar6 = (undefined *)((int)pdVar29 + (int)pdVar16);\n    dVar39 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    in_f26_27 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    in_f30_31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n    do {\n      in_f24_25 = (double)iVar3;\n      pdVar29 = (double *)param_1[3];\n      in_f20_21 = *(double *)param_1[7];\n      in_f28_29 = ((double *)param_1[7])[2];\n      dVar40 = in_f24_25 * pdVar29[2] + pdVar29[4];\n      dVar47 = *pdVar29;\n      dVar41 = in_f28_29;\n      if (dVar39 <= dVar47) {\n        in_f22_23 = -dVar40 / dVar47;\n        if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }\n        dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n        if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }\n        dVar47 = (dVar44 - dVar40) / dVar47;\n        if (dVar47 < in_f28_29) {\n          dVar41 = dVar47;\n        }\nLAB_000a3890:\n        dVar40 = in_f24_25 * pdVar29[3] + pdVar29[5];\n        dVar47 = pdVar29[1];\n        if (*(double *)(puVar36 + 0x43c8) <= dVar47) {\n          dVar44 = -dVar40 / dVar47;\n          if (-dVar40 / dVar47 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = *(double **)(unaff_s7 + 0x1c);\n          dVar44 = (double)(int)pdVar16;\n          if ((int)pdVar16 < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar44 - dVar40) / dVar47;\n          if (dVar41 <= in_f20_21) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }\n        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;\n      }\n      else {\n        if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar44 - dVar40) / dVar47;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar40) {\n          dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n          if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar41;\n          if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar36 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar41 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar41;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar40 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar41 = (dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar41 < in_f20_21) {\n          uVar26 = (uint)dVar41;\n        }\n        else {\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar16 = pdVar5;\n        pdVar29 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26);\n        if (pdVar29 != (double *)0x0) {\n          piVar17 = (int *)param_1[6];\n          piVar48 = piVar17;\n          piVar19 = local_b8;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          piVar48 = piVar17;\n          piVar19 = local_110;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }\n          pdVar16 = pdVar5;\n          iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);\n          if (iVar10 == 0) {\n            param_1[10] = 0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n      unaff_s6 = (double *)puVar36;\n    } while (iVar3 < (int)puVar6);\n  }" { (expression_statement "uVar4 = param_1[5];" (assignment_expression "uVar4 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "pdVar5 = (double *)param_1[4];" (assignment_expression "pdVar5 = (double *)param_1[4]" identifier = (cast_expression "(double *)param_1[4]" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[4]" identifier [ number_literal ]))) ;) (expression_statement "unaff_s4 = (int *)param_1[2];" (assignment_expression "unaff_s4 = (int *)param_1[2]" identifier = (cast_expression "(int *)param_1[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "unaff_s7 = param_1[1];" (assignment_expression "unaff_s7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "piVar2 = (int *)*param_1;" (assignment_expression "piVar2 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "puVar6 = (undefined *)((int)pdVar29 + (int)pdVar16);" (assignment_expression "puVar6 = (undefined *)((int)pdVar29 + (int)pdVar16)" identifier = (cast_expression "(undefined *)((int)pdVar29 + (int)pdVar16)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + (int)pdVar16)" ( (binary_expression "(int)pdVar29 + (int)pdVar16" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "dVar39 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);" (assignment_expression "dVar39 = *(double *)(PTR_LAB_003f98e0 + 0x43c8)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43c8)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43c8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43c8" identifier + number_literal) ))))) ;) (expression_statement "in_f26_27 = *(double *)(PTR_LAB_003f98e0 + 0x4410);" (assignment_expression "in_f26_27 = *(double *)(PTR_LAB_003f98e0 + 0x4410)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4410)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4410)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4410" identifier + number_literal) ))))) ;) (expression_statement "in_f30_31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);" (assignment_expression "in_f30_31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4a48)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4a48)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4a48" identifier + number_literal) ))))) ;) (do_statement "do {\n      in_f24_25 = (double)iVar3;\n      pdVar29 = (double *)param_1[3];\n      in_f20_21 = *(double *)param_1[7];\n      in_f28_29 = ((double *)param_1[7])[2];\n      dVar40 = in_f24_25 * pdVar29[2] + pdVar29[4];\n      dVar47 = *pdVar29;\n      dVar41 = in_f28_29;\n      if (dVar39 <= dVar47) {\n        in_f22_23 = -dVar40 / dVar47;\n        if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }\n        dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n        if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }\n        dVar47 = (dVar44 - dVar40) / dVar47;\n        if (dVar47 < in_f28_29) {\n          dVar41 = dVar47;\n        }\nLAB_000a3890:\n        dVar40 = in_f24_25 * pdVar29[3] + pdVar29[5];\n        dVar47 = pdVar29[1];\n        if (*(double *)(puVar36 + 0x43c8) <= dVar47) {\n          dVar44 = -dVar40 / dVar47;\n          if (-dVar40 / dVar47 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = *(double **)(unaff_s7 + 0x1c);\n          dVar44 = (double)(int)pdVar16;\n          if ((int)pdVar16 < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar44 - dVar40) / dVar47;\n          if (dVar41 <= in_f20_21) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }\n        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;\n      }\n      else {\n        if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar44 - dVar40) / dVar47;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar40) {\n          dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n          if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar41;\n          if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar36 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar41 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar41;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar40 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar41 = (dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar41 < in_f20_21) {\n          uVar26 = (uint)dVar41;\n        }\n        else {\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar16 = pdVar5;\n        pdVar29 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26);\n        if (pdVar29 != (double *)0x0) {\n          piVar17 = (int *)param_1[6];\n          piVar48 = piVar17;\n          piVar19 = local_b8;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          piVar48 = piVar17;\n          piVar19 = local_110;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }\n          pdVar16 = pdVar5;\n          iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);\n          if (iVar10 == 0) {\n            param_1[10] = 0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n      unaff_s6 = (double *)puVar36;\n    } while (iVar3 < (int)puVar6);" do (compound_statement "{\n      in_f24_25 = (double)iVar3;\n      pdVar29 = (double *)param_1[3];\n      in_f20_21 = *(double *)param_1[7];\n      in_f28_29 = ((double *)param_1[7])[2];\n      dVar40 = in_f24_25 * pdVar29[2] + pdVar29[4];\n      dVar47 = *pdVar29;\n      dVar41 = in_f28_29;\n      if (dVar39 <= dVar47) {\n        in_f22_23 = -dVar40 / dVar47;\n        if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }\n        dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n        if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }\n        dVar47 = (dVar44 - dVar40) / dVar47;\n        if (dVar47 < in_f28_29) {\n          dVar41 = dVar47;\n        }\nLAB_000a3890:\n        dVar40 = in_f24_25 * pdVar29[3] + pdVar29[5];\n        dVar47 = pdVar29[1];\n        if (*(double *)(puVar36 + 0x43c8) <= dVar47) {\n          dVar44 = -dVar40 / dVar47;\n          if (-dVar40 / dVar47 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = *(double **)(unaff_s7 + 0x1c);\n          dVar44 = (double)(int)pdVar16;\n          if ((int)pdVar16 < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar44 - dVar40) / dVar47;\n          if (dVar41 <= in_f20_21) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }\n        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;\n      }\n      else {\n        if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar44 - dVar40) / dVar47;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar40) {\n          dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n          if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar41;\n          if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar36 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar41 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar41;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar40 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar41 = (dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar41 < in_f20_21) {\n          uVar26 = (uint)dVar41;\n        }\n        else {\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar16 = pdVar5;\n        pdVar29 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26);\n        if (pdVar29 != (double *)0x0) {\n          piVar17 = (int *)param_1[6];\n          piVar48 = piVar17;\n          piVar19 = local_b8;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          piVar48 = piVar17;\n          piVar19 = local_110;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }\n          pdVar16 = pdVar5;\n          iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);\n          if (iVar10 == 0) {\n            param_1[10] = 0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n      unaff_s6 = (double *)puVar36;\n    }" { (expression_statement "in_f24_25 = (double)iVar3;" (assignment_expression "in_f24_25 = (double)iVar3" identifier = (cast_expression "(double)iVar3" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "pdVar29 = (double *)param_1[3];" (assignment_expression "pdVar29 = (double *)param_1[3]" identifier = (cast_expression "(double *)param_1[3]" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[3]" identifier [ number_literal ]))) ;) (expression_statement "in_f20_21 = *(double *)param_1[7];" (assignment_expression "in_f20_21 = *(double *)param_1[7]" identifier = (pointer_expression "*(double *)param_1[7]" * (cast_expression "(double *)param_1[7]" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[7]" identifier [ number_literal ])))) ;) (expression_statement "in_f28_29 = ((double *)param_1[7])[2];" (assignment_expression "in_f28_29 = ((double *)param_1[7])[2]" identifier = (subscript_expression "((double *)param_1[7])[2]" (parenthesized_expression "((double *)param_1[7])" ( (cast_expression "(double *)param_1[7]" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[7]" identifier [ number_literal ])) )) [ number_literal ])) ;) (expression_statement "dVar40 = in_f24_25 * pdVar29[2] + pdVar29[4];" (assignment_expression "dVar40 = in_f24_25 * pdVar29[2] + pdVar29[4]" identifier = (binary_expression "in_f24_25 * pdVar29[2] + pdVar29[4]" (binary_expression "in_f24_25 * pdVar29[2]" identifier * (subscript_expression "pdVar29[2]" identifier [ number_literal ])) + (subscript_expression "pdVar29[4]" identifier [ number_literal ]))) ;) (expression_statement "dVar47 = *pdVar29;" (assignment_expression "dVar47 = *pdVar29" identifier = (pointer_expression "*pdVar29" * identifier)) ;) (expression_statement "dVar41 = in_f28_29;" (assignment_expression "dVar41 = in_f28_29" identifier = identifier) ;) (if_statement "if (dVar39 <= dVar47) {\n        in_f22_23 = -dVar40 / dVar47;\n        if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }\n        dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n        if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }\n        dVar47 = (dVar44 - dVar40) / dVar47;\n        if (dVar47 < in_f28_29) {\n          dVar41 = dVar47;\n        }\nLAB_000a3890:\n        dVar40 = in_f24_25 * pdVar29[3] + pdVar29[5];\n        dVar47 = pdVar29[1];\n        if (*(double *)(puVar36 + 0x43c8) <= dVar47) {\n          dVar44 = -dVar40 / dVar47;\n          if (-dVar40 / dVar47 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = *(double **)(unaff_s7 + 0x1c);\n          dVar44 = (double)(int)pdVar16;\n          if ((int)pdVar16 < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar44 - dVar40) / dVar47;\n          if (dVar41 <= in_f20_21) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }\n        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;\n      }\n      else {\n        if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar44 - dVar40) / dVar47;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar40) {\n          dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n          if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar41;\n          if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar36 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar41 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar41;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar40 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar41 = (dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar41 < in_f20_21) {\n          uVar26 = (uint)dVar41;\n        }\n        else {\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar16 = pdVar5;\n        pdVar29 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26);\n        if (pdVar29 != (double *)0x0) {\n          piVar17 = (int *)param_1[6];\n          piVar48 = piVar17;\n          piVar19 = local_b8;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          piVar48 = piVar17;\n          piVar19 = local_110;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }\n          pdVar16 = pdVar5;\n          iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);\n          if (iVar10 == 0) {\n            param_1[10] = 0;\n          }\n        }\n      }" if (parenthesized_expression "(dVar39 <= dVar47)" ( (binary_expression "dVar39 <= dVar47" identifier <= identifier) )) (compound_statement "{\n        in_f22_23 = -dVar40 / dVar47;\n        if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }\n        dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n        if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }\n        dVar47 = (dVar44 - dVar40) / dVar47;\n        if (dVar47 < in_f28_29) {\n          dVar41 = dVar47;\n        }\nLAB_000a3890:\n        dVar40 = in_f24_25 * pdVar29[3] + pdVar29[5];\n        dVar47 = pdVar29[1];\n        if (*(double *)(puVar36 + 0x43c8) <= dVar47) {\n          dVar44 = -dVar40 / dVar47;\n          if (-dVar40 / dVar47 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = *(double **)(unaff_s7 + 0x1c);\n          dVar44 = (double)(int)pdVar16;\n          if ((int)pdVar16 < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar44 - dVar40) / dVar47;\n          if (dVar41 <= in_f20_21) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }\n        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;\n      }" { (expression_statement "in_f22_23 = -dVar40 / dVar47;" (assignment_expression "in_f22_23 = -dVar40 / dVar47" identifier = (binary_expression "-dVar40 / dVar47" (unary_expression "-dVar40" - identifier) / identifier)) ;) (if_statement "if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }" if (parenthesized_expression "(in_f22_23 <= in_f20_21)" ( (binary_expression "in_f22_23 <= in_f20_21" identifier <= identifier) )) (compound_statement "{\n          in_f22_23 = in_f20_21;\n        }" { (expression_statement "in_f22_23 = in_f20_21;" (assignment_expression "in_f22_23 = in_f20_21" identifier = identifier) ;) })) (expression_statement "dVar44 = (double)*(int *)(unaff_s7 + 0x18);" (assignment_expression "dVar44 = (double)*(int *)(unaff_s7 + 0x18)" identifier = (cast_expression "(double)*(int *)(unaff_s7 + 0x18)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(unaff_s7 + 0x18)" * (cast_expression "(int *)(unaff_s7 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x18)" ( (binary_expression "unaff_s7 + 0x18" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }" if (parenthesized_expression "(*(int *)(unaff_s7 + 0x18) < 0)" ( (binary_expression "*(int *)(unaff_s7 + 0x18) < 0" (pointer_expression "*(int *)(unaff_s7 + 0x18)" * (cast_expression "(int *)(unaff_s7 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x18)" ( (binary_expression "unaff_s7 + 0x18" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n          dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }" { (expression_statement "dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);" (assignment_expression "dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" identifier = (binary_expression "dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" identifier + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e8)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e8" identifier + number_literal) )))))) ;) })) (expression_statement "dVar47 = (dVar44 - dVar40) / dVar47;" (assignment_expression "dVar47 = (dVar44 - dVar40) / dVar47" identifier = (binary_expression "(dVar44 - dVar40) / dVar47" (parenthesized_expression "(dVar44 - dVar40)" ( (binary_expression "dVar44 - dVar40" identifier - identifier) )) / identifier)) ;) (if_statement "if (dVar47 < in_f28_29) {\n          dVar41 = dVar47;\n        }" if (parenthesized_expression "(dVar47 < in_f28_29)" ( (binary_expression "dVar47 < in_f28_29" identifier < identifier) )) (compound_statement "{\n          dVar41 = dVar47;\n        }" { (expression_statement "dVar41 = dVar47;" (assignment_expression "dVar41 = dVar47" identifier = identifier) ;) })) (labeled_statement "LAB_000a3890:\n        dVar40 = in_f24_25 * pdVar29[3] + pdVar29[5];" statement_identifier : (expression_statement "dVar40 = in_f24_25 * pdVar29[3] + pdVar29[5];" (assignment_expression "dVar40 = in_f24_25 * pdVar29[3] + pdVar29[5]" identifier = (binary_expression "in_f24_25 * pdVar29[3] + pdVar29[5]" (binary_expression "in_f24_25 * pdVar29[3]" identifier * (subscript_expression "pdVar29[3]" identifier [ number_literal ])) + (subscript_expression "pdVar29[5]" identifier [ number_literal ]))) ;)) (expression_statement "dVar47 = pdVar29[1];" (assignment_expression "dVar47 = pdVar29[1]" identifier = (subscript_expression "pdVar29[1]" identifier [ number_literal ])) ;) (if_statement "if (*(double *)(puVar36 + 0x43c8) <= dVar47) {\n          dVar44 = -dVar40 / dVar47;\n          if (-dVar40 / dVar47 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = *(double **)(unaff_s7 + 0x1c);\n          dVar44 = (double)(int)pdVar16;\n          if ((int)pdVar16 < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar44 - dVar40) / dVar47;\n          if (dVar41 <= in_f20_21) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }" if (parenthesized_expression "(*(double *)(puVar36 + 0x43c8) <= dVar47)" ( (binary_expression "*(double *)(puVar36 + 0x43c8) <= dVar47" (pointer_expression "*(double *)(puVar36 + 0x43c8)" * (cast_expression "(double *)(puVar36 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x43c8)" ( (binary_expression "puVar36 + 0x43c8" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n          dVar44 = -dVar40 / dVar47;\n          if (-dVar40 / dVar47 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = *(double **)(unaff_s7 + 0x1c);\n          dVar44 = (double)(int)pdVar16;\n          if ((int)pdVar16 < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar44 - dVar40) / dVar47;\n          if (dVar41 <= in_f20_21) {\n            in_f20_21 = dVar41;\n          }\n        }" { (expression_statement "dVar44 = -dVar40 / dVar47;" (assignment_expression "dVar44 = -dVar40 / dVar47" identifier = (binary_expression "-dVar40 / dVar47" (unary_expression "-dVar40" - identifier) / identifier)) ;) (if_statement "if (-dVar40 / dVar47 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }" if (parenthesized_expression "(-dVar40 / dVar47 <= in_f22_23)" ( (binary_expression "-dVar40 / dVar47 <= in_f22_23" (binary_expression "-dVar40 / dVar47" (unary_expression "-dVar40" - identifier) / identifier) <= identifier) )) (compound_statement "{\n            dVar44 = in_f22_23;\n          }" { (expression_statement "dVar44 = in_f22_23;" (assignment_expression "dVar44 = in_f22_23" identifier = identifier) ;) })) (expression_statement "in_f22_23 = dVar44;" (assignment_expression "in_f22_23 = dVar44" identifier = identifier) ;) (expression_statement "pdVar16 = *(double **)(unaff_s7 + 0x1c);" (assignment_expression "pdVar16 = *(double **)(unaff_s7 + 0x1c)" identifier = (pointer_expression "*(double **)(unaff_s7 + 0x1c)" * (cast_expression "(double **)(unaff_s7 + 0x1c)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s7 + 0x1c)" ( (binary_expression "unaff_s7 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "dVar44 = (double)(int)pdVar16;" (assignment_expression "dVar44 = (double)(int)pdVar16" identifier = (cast_expression "(double)(int)pdVar16" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)pdVar16 < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }" if (parenthesized_expression "((int)pdVar16 < 0)" ( (binary_expression "(int)pdVar16 < 0" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }" { (expression_statement "dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);" (assignment_expression "dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" identifier = (binary_expression "dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" identifier + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e8)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e8" identifier + number_literal) )))))) ;) (expression_statement "pdVar16 = (double *)PTR_LAB_003f98e0;" (assignment_expression "pdVar16 = (double *)PTR_LAB_003f98e0" identifier = (cast_expression "(double *)PTR_LAB_003f98e0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "in_f20_21 = (dVar44 - dVar40) / dVar47;" (assignment_expression "in_f20_21 = (dVar44 - dVar40) / dVar47" identifier = (binary_expression "(dVar44 - dVar40) / dVar47" (parenthesized_expression "(dVar44 - dVar40)" ( (binary_expression "dVar44 - dVar40" identifier - identifier) )) / identifier)) ;) (if_statement "if (dVar41 <= in_f20_21) {\n            in_f20_21 = dVar41;\n          }" if (parenthesized_expression "(dVar41 <= in_f20_21)" ( (binary_expression "dVar41 <= in_f20_21" identifier <= identifier) )) (compound_statement "{\n            in_f20_21 = dVar41;\n          }" { (expression_statement "in_f20_21 = dVar41;" (assignment_expression "in_f20_21 = dVar41" identifier = identifier) ;) })) }) (else_clause "else if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }" else (if_statement "if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }" if (parenthesized_expression "(dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8))" ( (binary_expression "dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)" identifier < (pointer_expression "*(double *)(PTR_UINT_003f98e4 + 0x65b8)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + 0x65b8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + 0x65b8)" ( (binary_expression "PTR_UINT_003f98e4 + 0x65b8" identifier + number_literal) ))))) )) (compound_statement "{\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }" { (expression_statement "dVar44 = (double)*(int *)(unaff_s7 + 0x1c);" (assignment_expression "dVar44 = (double)*(int *)(unaff_s7 + 0x1c)" identifier = (cast_expression "(double)*(int *)(unaff_s7 + 0x1c)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(unaff_s7 + 0x1c)" * (cast_expression "(int *)(unaff_s7 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x1c)" ( (binary_expression "unaff_s7 + 0x1c" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }" if (parenthesized_expression "(*(int *)(unaff_s7 + 0x1c) < 0)" ( (binary_expression "*(int *)(unaff_s7 + 0x1c) < 0" (pointer_expression "*(int *)(unaff_s7 + 0x1c)" * (cast_expression "(int *)(unaff_s7 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x1c)" ( (binary_expression "unaff_s7 + 0x1c" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }" { (expression_statement "dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);" (assignment_expression "dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" identifier = (binary_expression "dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" identifier + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e8)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e8" identifier + number_literal) )))))) ;) })) (expression_statement "dVar44 = (dVar44 - dVar40) / dVar47;" (assignment_expression "dVar44 = (dVar44 - dVar40) / dVar47" identifier = (binary_expression "(dVar44 - dVar40) / dVar47" (parenthesized_expression "(dVar44 - dVar40)" ( (binary_expression "dVar44 - dVar40" identifier - identifier) )) / identifier)) ;) (if_statement "if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }" if (parenthesized_expression "(dVar44 <= in_f22_23)" ( (binary_expression "dVar44 <= in_f22_23" identifier <= identifier) )) (compound_statement "{\n            dVar44 = in_f22_23;\n          }" { (expression_statement "dVar44 = in_f22_23;" (assignment_expression "dVar44 = in_f22_23" identifier = identifier) ;) })) (expression_statement "in_f22_23 = dVar44;" (assignment_expression "in_f22_23 = dVar44" identifier = identifier) ;) (expression_statement "pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);" (assignment_expression "pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000)" identifier = (cast_expression "(double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000)" ( (binary_expression "(uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000" (call_expression "(uint)((ulonglong)dVar40 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)dVar40 >> 0x20)" ( (binary_expression "(ulonglong)dVar40 >> 0x20" (cast_expression "(ulonglong)dVar40" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) ^ number_literal) )))) ;) (expression_statement "in_f20_21 = -dVar40 / dVar47;" (assignment_expression "in_f20_21 = -dVar40 / dVar47" identifier = (binary_expression "-dVar40 / dVar47" (unary_expression "-dVar40" - identifier) / identifier)) ;) (if_statement "if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }" if (parenthesized_expression "(dVar41 <= -dVar40 / dVar47)" ( (binary_expression "dVar41 <= -dVar40 / dVar47" identifier <= (binary_expression "-dVar40 / dVar47" (unary_expression "-dVar40" - identifier) / identifier)) )) (compound_statement "{\n            in_f20_21 = dVar41;\n          }" { (expression_statement "in_f20_21 = dVar41;" (assignment_expression "in_f20_21 = dVar41" identifier = identifier) ;) })) }) (else_clause "else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }" else (compound_statement "{\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }" { (expression_statement "pdVar16 = (double *)puVar36;" (assignment_expression "pdVar16 = (double *)puVar36" identifier = (cast_expression "(double *)puVar36" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "in_f20_21 = in_f28_29;" (assignment_expression "in_f20_21 = in_f28_29" identifier = identifier) ;) (if_statement "if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }" if (parenthesized_expression "(0.0 <= dVar40)" ( (binary_expression "0.0 <= dVar40" number_literal <= identifier) )) (compound_statement "{\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }" { (expression_statement "dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));" (assignment_expression "dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0))" identifier = (cast_expression "(double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0))" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0))" (parenthesized_expression "(*(code *)PTR_floor_003fa688)" ( (pointer_expression "*(code *)PTR_floor_003fa688" * (cast_expression "(code *)PTR_floor_003fa688" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar40 + *(double *)(puVar36 + 0x43d0))" ( (binary_expression "dVar40 + *(double *)(puVar36 + 0x43d0)" identifier + (pointer_expression "*(double *)(puVar36 + 0x43d0)" * (cast_expression "(double *)(puVar36 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x43d0)" ( (binary_expression "puVar36 + 0x43d0" identifier + number_literal) ))))) ))))) ;) (if_statement "if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }" if (parenthesized_expression "(dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0))" ( (binary_expression "dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier < (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) ))))) )) (compound_statement "{\n              uVar26 = (uint)dVar40;\n            }" { (expression_statement "uVar26 = (uint)dVar40;" (assignment_expression "uVar26 = (uint)dVar40" identifier = (cast_expression "(uint)dVar40" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }" else (compound_statement "{\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }" { (expression_statement "uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;" (assignment_expression "uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000" identifier = (binary_expression "(int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000" (cast_expression "(int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0))" ( (binary_expression "dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier - (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "in_f20_21 = dVar41;" (assignment_expression "in_f20_21 = dVar41" identifier = identifier) ;) (if_statement "if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }" if (parenthesized_expression "(*(uint *)(unaff_s7 + 0x1c) <= uVar26)" ( (binary_expression "*(uint *)(unaff_s7 + 0x1c) <= uVar26" (pointer_expression "*(uint *)(unaff_s7 + 0x1c)" * (cast_expression "(uint *)(unaff_s7 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x1c)" ( (binary_expression "unaff_s7 + 0x1c" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n              in_f20_21 = in_f28_29;\n            }" { (expression_statement "in_f20_21 = in_f28_29;" (assignment_expression "in_f20_21 = in_f28_29" identifier = identifier) ;) })) })) }))))) (if_statement "if (in_f22_23 <= in_f20_21) goto LAB_000a3938;" if (parenthesized_expression "(in_f22_23 <= in_f20_21)" ( (binary_expression "in_f22_23 <= in_f20_21" identifier <= identifier) )) (goto_statement "goto LAB_000a3938;" goto statement_identifier ;)) }) (else_clause "else {\n        if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar44 - dVar40) / dVar47;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar40) {\n          dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n          if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar41;\n          if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar36 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar41 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar41;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar40 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar41 = (dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar41 < in_f20_21) {\n          uVar26 = (uint)dVar41;\n        }\n        else {\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar16 = pdVar5;\n        pdVar29 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26);\n        if (pdVar29 != (double *)0x0) {\n          piVar17 = (int *)param_1[6];\n          piVar48 = piVar17;\n          piVar19 = local_b8;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          piVar48 = piVar17;\n          piVar19 = local_110;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }\n          pdVar16 = pdVar5;\n          iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);\n          if (iVar10 == 0) {\n            param_1[10] = 0;\n          }\n        }\n      }" else (compound_statement "{\n        if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar44 - dVar40) / dVar47;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar40) {\n          dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n          if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar41;\n          if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar36 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar41 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar41;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar40 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar41 = (dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar41 < in_f20_21) {\n          uVar26 = (uint)dVar41;\n        }\n        else {\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar16 = pdVar5;\n        pdVar29 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26);\n        if (pdVar29 != (double *)0x0) {\n          piVar17 = (int *)param_1[6];\n          piVar48 = piVar17;\n          piVar19 = local_b8;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          piVar48 = piVar17;\n          piVar19 = local_110;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }\n          pdVar16 = pdVar5;\n          iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);\n          if (iVar10 == 0) {\n            param_1[10] = 0;\n          }\n        }\n      }" { (if_statement "if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar44 - dVar40) / dVar47;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }\n          goto LAB_000a3890;\n        }" if (parenthesized_expression "(dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8))" ( (binary_expression "dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)" identifier < (pointer_expression "*(double *)(PTR_UINT_003f98e4 + 0x65b8)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + 0x65b8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + 0x65b8)" ( (binary_expression "PTR_UINT_003f98e4 + 0x65b8" identifier + number_literal) ))))) )) (compound_statement "{\n          dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar44 - dVar40) / dVar47;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }\n          goto LAB_000a3890;\n        }" { (expression_statement "dVar44 = (double)*(int *)(unaff_s7 + 0x18);" (assignment_expression "dVar44 = (double)*(int *)(unaff_s7 + 0x18)" identifier = (cast_expression "(double)*(int *)(unaff_s7 + 0x18)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(unaff_s7 + 0x18)" * (cast_expression "(int *)(unaff_s7 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x18)" ( (binary_expression "unaff_s7 + 0x18" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }" if (parenthesized_expression "(*(int *)(unaff_s7 + 0x18) < 0)" ( (binary_expression "*(int *)(unaff_s7 + 0x18) < 0" (pointer_expression "*(int *)(unaff_s7 + 0x18)" * (cast_expression "(int *)(unaff_s7 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x18)" ( (binary_expression "unaff_s7 + 0x18" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }" { (expression_statement "dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);" (assignment_expression "dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" identifier = (binary_expression "dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" identifier + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e8)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e8" identifier + number_literal) )))))) ;) })) (expression_statement "in_f22_23 = (dVar44 - dVar40) / dVar47;" (assignment_expression "in_f22_23 = (dVar44 - dVar40) / dVar47" identifier = (binary_expression "(dVar44 - dVar40) / dVar47" (parenthesized_expression "(dVar44 - dVar40)" ( (binary_expression "dVar44 - dVar40" identifier - identifier) )) / identifier)) ;) (if_statement "if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }" if (parenthesized_expression "(in_f22_23 <= in_f20_21)" ( (binary_expression "in_f22_23 <= in_f20_21" identifier <= identifier) )) (compound_statement "{\n            in_f22_23 = in_f20_21;\n          }" { (expression_statement "in_f22_23 = in_f20_21;" (assignment_expression "in_f22_23 = in_f20_21" identifier = identifier) ;) })) (if_statement "if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }" if (parenthesized_expression "(-dVar40 / dVar47 < in_f28_29)" ( (binary_expression "-dVar40 / dVar47 < in_f28_29" (binary_expression "-dVar40 / dVar47" (unary_expression "-dVar40" - identifier) / identifier) < identifier) )) (compound_statement "{\n            dVar41 = -dVar40 / dVar47;\n          }" { (expression_statement "dVar41 = -dVar40 / dVar47;" (assignment_expression "dVar41 = -dVar40 / dVar47" identifier = (binary_expression "-dVar40 / dVar47" (unary_expression "-dVar40" - identifier) / identifier)) ;) })) (goto_statement "goto LAB_000a3890;" goto statement_identifier ;) })) (expression_statement "in_f22_23 = in_f20_21;" (assignment_expression "in_f22_23 = in_f20_21" identifier = identifier) ;) (if_statement "if (0.0 <= dVar40) {\n          dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n          if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar41;\n          if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }" if (parenthesized_expression "(0.0 <= dVar40)" ( (binary_expression "0.0 <= dVar40" number_literal <= identifier) )) (compound_statement "{\n          dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n          if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar41;\n          if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }" { (expression_statement "dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));" (assignment_expression "dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0))" identifier = (cast_expression "(double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0))" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0))" (parenthesized_expression "(*(code *)PTR_floor_003fa688)" ( (pointer_expression "*(code *)PTR_floor_003fa688" * (cast_expression "(code *)PTR_floor_003fa688" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar40 + *(double *)(puVar36 + 0x43d0))" ( (binary_expression "dVar40 + *(double *)(puVar36 + 0x43d0)" identifier + (pointer_expression "*(double *)(puVar36 + 0x43d0)" * (cast_expression "(double *)(puVar36 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x43d0)" ( (binary_expression "puVar36 + 0x43d0" identifier + number_literal) ))))) ))))) ;) (if_statement "if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }" if (parenthesized_expression "(dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0))" ( (binary_expression "dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier < (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) ))))) )) (compound_statement "{\n            uVar26 = (uint)dVar40;\n          }" { (expression_statement "uVar26 = (uint)dVar40;" (assignment_expression "uVar26 = (uint)dVar40" identifier = (cast_expression "(uint)dVar40" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }" else (compound_statement "{\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }" { (expression_statement "uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;" (assignment_expression "uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000" identifier = (binary_expression "(int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000" (cast_expression "(int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0))" ( (binary_expression "dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier - (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "in_f22_23 = in_f20_21;" (assignment_expression "in_f22_23 = in_f20_21" identifier = identifier) ;) (expression_statement "in_f28_29 = dVar41;" (assignment_expression "in_f28_29 = dVar41" identifier = identifier) ;) (if_statement "if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;" if (parenthesized_expression "(uVar26 < *(uint *)(unaff_s7 + 0x18))" ( (binary_expression "uVar26 < *(uint *)(unaff_s7 + 0x18)" identifier < (pointer_expression "*(uint *)(unaff_s7 + 0x18)" * (cast_expression "(uint *)(unaff_s7 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x18)" ( (binary_expression "unaff_s7 + 0x18" identifier + number_literal) ))))) )) (goto_statement "goto LAB_000a3890;" goto statement_identifier ;)) })) (labeled_statement "LAB_000a3938:\n        in_f28_29 = *(double *)(puVar36 + 0x43d0);" statement_identifier : (expression_statement "in_f28_29 = *(double *)(puVar36 + 0x43d0);" (assignment_expression "in_f28_29 = *(double *)(puVar36 + 0x43d0)" identifier = (pointer_expression "*(double *)(puVar36 + 0x43d0)" * (cast_expression "(double *)(puVar36 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x43d0)" ( (binary_expression "puVar36 + 0x43d0" identifier + number_literal) ))))) ;)) (expression_statement "in_f22_23 = in_f22_23 - in_f28_29;" (assignment_expression "in_f22_23 = in_f22_23 - in_f28_29" identifier = (binary_expression "in_f22_23 - in_f28_29" identifier - identifier)) ;) (expression_statement "dVar41 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);" (assignment_expression "dVar41 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23)" identifier = (cast_expression "(double)(*(code *)PTR_ceil_003f9c38)(in_f22_23)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_ceil_003f9c38)(in_f22_23)" (parenthesized_expression "(*(code *)PTR_ceil_003f9c38)" ( (pointer_expression "*(code *)PTR_ceil_003f9c38" * (cast_expression "(code *)PTR_ceil_003f9c38" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(in_f22_23)" ( identifier ))))) ;) (expression_statement "unaff_s2 = (int)dVar41;" (assignment_expression "unaff_s2 = (int)dVar41" identifier = (cast_expression "(int)dVar41" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "in_f28_29 = in_f20_21 + in_f28_29;" (assignment_expression "in_f28_29 = in_f20_21 + in_f28_29" identifier = (binary_expression "in_f20_21 + in_f28_29" identifier + identifier)) ;) (expression_statement "dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);" (assignment_expression "dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29)" identifier = (cast_expression "(double)(*(code *)PTR_floor_003fa688)(in_f28_29)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_floor_003fa688)(in_f28_29)" (parenthesized_expression "(*(code *)PTR_floor_003fa688)" ( (pointer_expression "*(code *)PTR_floor_003fa688" * (cast_expression "(code *)PTR_floor_003fa688" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(in_f28_29)" ( identifier ))))) ;) (expression_statement "dVar40 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);" (assignment_expression "dVar40 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23)" identifier = (cast_expression "(double)(*(code *)PTR_ceil_003f9c38)(in_f22_23)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_ceil_003f9c38)(in_f22_23)" (parenthesized_expression "(*(code *)PTR_ceil_003f9c38)" ( (pointer_expression "*(code *)PTR_ceil_003f9c38" * (cast_expression "(code *)PTR_ceil_003f9c38" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(in_f22_23)" ( identifier ))))) ;) (expression_statement "dVar41 = (dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408);" (assignment_expression "dVar41 = (dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408)" identifier = (binary_expression "(dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408)" (parenthesized_expression "(dVar41 - dVar40)" ( (binary_expression "dVar41 - dVar40" identifier - identifier) )) + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4408)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4408)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4408" identifier + number_literal) )))))) ;) (expression_statement "in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);" (assignment_expression "in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) ))))) ;) (if_statement "if (dVar41 < in_f20_21) {\n          uVar26 = (uint)dVar41;\n        }\n        else {\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }" if (parenthesized_expression "(dVar41 < in_f20_21)" ( (binary_expression "dVar41 < in_f20_21" identifier < identifier) )) (compound_statement "{\n          uVar26 = (uint)dVar41;\n        }" { (expression_statement "uVar26 = (uint)dVar41;" (assignment_expression "uVar26 = (uint)dVar41" identifier = (cast_expression "(uint)dVar41" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }" else (compound_statement "{\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }" { (expression_statement "uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;" (assignment_expression "uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000" identifier = (binary_expression "(int)(dVar41 - in_f20_21) | 0x80000000" (cast_expression "(int)(dVar41 - in_f20_21)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar41 - in_f20_21)" ( (binary_expression "dVar41 - in_f20_21" identifier - identifier) ))) | number_literal)) ;) }))) (expression_statement "local_178 = (double)CONCAT44(1,unaff_s4);" (assignment_expression "local_178 = (double)CONCAT44(1,unaff_s4)" identifier = (cast_expression "(double)CONCAT44(1,unaff_s4)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(1,unaff_s4)" identifier (argument_list "(1,unaff_s4)" ( number_literal , identifier ))))) ;) (expression_statement "pdVar16 = pdVar5;" (assignment_expression "pdVar16 = pdVar5" identifier = identifier) ;) (expression_statement "pdVar29 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26);" (assignment_expression "pdVar29 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26)" identifier = (cast_expression "(double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26)" (parenthesized_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)" ( (pointer_expression "*(code *)PTR_GetCacheViewAuthenticPixels_003fa664" * (cast_expression "(code *)PTR_GetCacheViewAuthenticPixels_003fa664" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pdVar5,unaff_s2,iVar3,uVar26)" ( identifier , identifier , identifier , identifier ))))) ;) (if_statement "if (pdVar29 != (double *)0x0) {\n          piVar17 = (int *)param_1[6];\n          piVar48 = piVar17;\n          piVar19 = local_b8;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          piVar48 = piVar17;\n          piVar19 = local_110;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }\n          pdVar16 = pdVar5;\n          iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);\n          if (iVar10 == 0) {\n            param_1[10] = 0;\n          }\n        }" if (parenthesized_expression "(pdVar29 != (double *)0x0)" ( (binary_expression "pdVar29 != (double *)0x0" identifier != (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          piVar17 = (int *)param_1[6];\n          piVar48 = piVar17;\n          piVar19 = local_b8;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          piVar48 = piVar17;\n          piVar19 = local_110;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }\n          pdVar16 = pdVar5;\n          iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);\n          if (iVar10 == 0) {\n            param_1[10] = 0;\n          }\n        }" { (expression_statement "piVar17 = (int *)param_1[6];" (assignment_expression "piVar17 = (int *)param_1[6]" identifier = (cast_expression "(int *)param_1[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[6]" identifier [ number_literal ]))) ;) (expression_statement "piVar48 = piVar17;" (assignment_expression "piVar48 = piVar17" identifier = identifier) ;) (expression_statement "piVar19 = local_b8;" (assignment_expression "piVar19 = local_b8" identifier = identifier) ;) (do_statement "do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);" do (compound_statement "{\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          }" { (expression_statement "piVar11 = piVar19;" (assignment_expression "piVar11 = piVar19" identifier = identifier) ;) (expression_statement "piVar7 = piVar48;" (assignment_expression "piVar7 = piVar48" identifier = identifier) ;) (expression_statement "iVar28 = piVar7[1];" (assignment_expression "iVar28 = piVar7[1]" identifier = (subscript_expression "piVar7[1]" identifier [ number_literal ])) ;) (expression_statement "iVar49 = piVar7[2];" (assignment_expression "iVar49 = piVar7[2]" identifier = (subscript_expression "piVar7[2]" identifier [ number_literal ])) ;) (expression_statement "iVar10 = piVar7[3];" (assignment_expression "iVar10 = piVar7[3]" identifier = (subscript_expression "piVar7[3]" identifier [ number_literal ])) ;) (expression_statement "*piVar11 = *piVar7;" (assignment_expression "*piVar11 = *piVar7" (pointer_expression "*piVar11" * identifier) = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "piVar11[1] = iVar28;" (assignment_expression "piVar11[1] = iVar28" (subscript_expression "piVar11[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar11[2] = iVar49;" (assignment_expression "piVar11[2] = iVar49" (subscript_expression "piVar11[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar11[3] = iVar10;" (assignment_expression "piVar11[3] = iVar10" (subscript_expression "piVar11[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar48 = piVar7 + 4;" (assignment_expression "piVar48 = piVar7 + 4" identifier = (binary_expression "piVar7 + 4" identifier + number_literal)) ;) (expression_statement "piVar19 = piVar11 + 4;" (assignment_expression "piVar19 = piVar11 + 4" identifier = (binary_expression "piVar11 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar48 != piVar17 + 0x14)" ( (binary_expression "piVar48 != piVar17 + 0x14" identifier != (binary_expression "piVar17 + 0x14" identifier + number_literal)) )) ;) (expression_statement "iVar10 = piVar7[5];" (assignment_expression "iVar10 = piVar7[5]" identifier = (subscript_expression "piVar7[5]" identifier [ number_literal ])) ;) (expression_statement "piVar11[4] = *piVar48;" (assignment_expression "piVar11[4] = *piVar48" (subscript_expression "piVar11[4]" identifier [ number_literal ]) = (pointer_expression "*piVar48" * identifier)) ;) (expression_statement "piVar11[5] = iVar10;" (assignment_expression "piVar11[5] = iVar10" (subscript_expression "piVar11[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar48 = piVar17;" (assignment_expression "piVar48 = piVar17" identifier = identifier) ;) (expression_statement "piVar19 = local_110;" (assignment_expression "piVar19 = local_110" identifier = identifier) ;) (do_statement "do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);" do (compound_statement "{\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          }" { (expression_statement "piVar11 = piVar19;" (assignment_expression "piVar11 = piVar19" identifier = identifier) ;) (expression_statement "piVar7 = piVar48;" (assignment_expression "piVar7 = piVar48" identifier = identifier) ;) (expression_statement "iVar28 = piVar7[1];" (assignment_expression "iVar28 = piVar7[1]" identifier = (subscript_expression "piVar7[1]" identifier [ number_literal ])) ;) (expression_statement "iVar49 = piVar7[2];" (assignment_expression "iVar49 = piVar7[2]" identifier = (subscript_expression "piVar7[2]" identifier [ number_literal ])) ;) (expression_statement "iVar10 = piVar7[3];" (assignment_expression "iVar10 = piVar7[3]" identifier = (subscript_expression "piVar7[3]" identifier [ number_literal ])) ;) (expression_statement "*piVar11 = *piVar7;" (assignment_expression "*piVar11 = *piVar7" (pointer_expression "*piVar11" * identifier) = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "piVar11[1] = iVar28;" (assignment_expression "piVar11[1] = iVar28" (subscript_expression "piVar11[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar11[2] = iVar49;" (assignment_expression "piVar11[2] = iVar49" (subscript_expression "piVar11[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar11[3] = iVar10;" (assignment_expression "piVar11[3] = iVar10" (subscript_expression "piVar11[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar48 = piVar7 + 4;" (assignment_expression "piVar48 = piVar7 + 4" identifier = (binary_expression "piVar7 + 4" identifier + number_literal)) ;) (expression_statement "piVar19 = piVar11 + 4;" (assignment_expression "piVar19 = piVar11 + 4" identifier = (binary_expression "piVar11 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar48 != piVar17 + 0x14)" ( (binary_expression "piVar48 != piVar17 + 0x14" identifier != (binary_expression "piVar17 + 0x14" identifier + number_literal)) )) ;) (expression_statement "iVar10 = piVar7[5];" (assignment_expression "iVar10 = piVar7[5]" identifier = (subscript_expression "piVar7[5]" identifier [ number_literal ])) ;) (expression_statement "piVar11[4] = *piVar48;" (assignment_expression "piVar11[4] = *piVar48" (subscript_expression "piVar11[4]" identifier [ number_literal ]) = (pointer_expression "*piVar48" * identifier)) ;) (expression_statement "piVar11[5] = iVar10;" (assignment_expression "piVar11[5] = iVar10" (subscript_expression "piVar11[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);" (assignment_expression "dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29)" identifier = (cast_expression "(double)(*(code *)PTR_floor_003fa688)(in_f28_29)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_floor_003fa688)(in_f28_29)" (parenthesized_expression "(*(code *)PTR_floor_003fa688)" ( (pointer_expression "*(code *)PTR_floor_003fa688" * (cast_expression "(code *)PTR_floor_003fa688" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(in_f28_29)" ( identifier ))))) ;) (expression_statement "unaff_s3 = (double *)PTR_LAB_003f98e0;" (assignment_expression "unaff_s3 = (double *)PTR_LAB_003f98e0" identifier = (cast_expression "(double *)PTR_LAB_003f98e0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);" (assignment_expression "in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4418)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4418)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4418" identifier + number_literal) ))))) ;) (expression_statement "in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);" (assignment_expression "in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4408)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4408)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4408" identifier + number_literal) ))))) ;) (for_statement "for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }" for ( ; (binary_expression "unaff_s2 <= (int)dVar41" identifier <= (cast_expression "(int)dVar41" ( (type_descriptor "int" primitive_type) ) identifier)) ; (assignment_expression "unaff_s2 = unaff_s2 + 1" identifier = (binary_expression "unaff_s2 + 1" identifier + number_literal)) ) (compound_statement "{\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }" { (expression_statement "pdVar16 = (double *)param_1[3];" (assignment_expression "pdVar16 = (double *)param_1[3]" identifier = (cast_expression "(double *)param_1[3]" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[3]" identifier [ number_literal ]))) ;) (expression_statement "local_168 = local_b8;" (assignment_expression "local_168 = local_b8" identifier = identifier) ;) (expression_statement "local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];" (assignment_expression "local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5]" identifier = (binary_expression "(double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5]" (binary_expression "(double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3]" (binary_expression "(double)unaff_s2 * pdVar16[1]" (cast_expression "(double)unaff_s2" ( (type_descriptor "double" primitive_type) ) identifier) * (subscript_expression "pdVar16[1]" identifier [ number_literal ])) + (binary_expression "in_f24_25 * pdVar16[3]" identifier * (subscript_expression "pdVar16[3]" identifier [ number_literal ]))) + (subscript_expression "pdVar16[5]" identifier [ number_literal ]))) ;) (expression_statement "local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];" (assignment_expression "local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4]" identifier = (binary_expression "(double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4]" (binary_expression "(double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2]" (binary_expression "(double)unaff_s2 * *pdVar16" (cast_expression "(double)unaff_s2" ( (type_descriptor "double" primitive_type) ) identifier) * (pointer_expression "*pdVar16" * identifier)) + (binary_expression "in_f24_25 * pdVar16[2]" identifier * (subscript_expression "pdVar16[2]" identifier [ number_literal ]))) + (subscript_expression "pdVar16[4]" identifier [ number_literal ]))) ;) (expression_statement "local_164 = unaff_s4;" (assignment_expression "local_164 = unaff_s4" identifier = identifier) ;) (expression_statement "iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);" (assignment_expression "iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0)" identifier = (call_expression "(*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0)" (parenthesized_expression "(*(code *)PTR_InterpolatePixelInfo_003fa0a4)" ( (pointer_expression "*(code *)PTR_InterpolatePixelInfo_003fa0a4" * (cast_expression "(code *)PTR_InterpolatePixelInfo_003fa0a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s7,uVar4,0)" ( identifier , identifier , number_literal )))) ;) (expression_statement "param_1[10] = iVar10;" (assignment_expression "param_1[10] = iVar10" (subscript_expression "param_1[10]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "(*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);" (call_expression "(*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58)" (parenthesized_expression "(*(code *)PTR_ResetMagickMemory_003fa00c)" ( (pointer_expression "*(code *)PTR_ResetMagickMemory_003fa00c" * (cast_expression "(code *)PTR_ResetMagickMemory_003fa00c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_110,0,0x58)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "local_110[0] = 1;" (assignment_expression "local_110[0] = 1" (subscript_expression "local_110[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_110[1] = 0x17;" (assignment_expression "local_110[1] = 0x17" (subscript_expression "local_110[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_f8 = 0x10;" (assignment_expression "local_f8 = 0x10" identifier = number_literal) ;) (expression_statement "local_110[2] = 0;" (assignment_expression "local_110[2] = 0" (subscript_expression "local_110[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_c8 = in_f30_31;" (assignment_expression "local_c8 = in_f30_31" identifier = identifier) ;) (if_statement "if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }" if (parenthesized_expression "(piVar2 != (int *)0x0)" ( (binary_expression "piVar2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }" { (expression_statement "local_110[0] = *piVar2;" (assignment_expression "local_110[0] = *piVar2" (subscript_expression "local_110[0]" identifier [ number_literal ]) = (pointer_expression "*piVar2" * identifier)) ;) (expression_statement "local_110[1] = piVar2[1];" (assignment_expression "local_110[1] = piVar2[1]" (subscript_expression "local_110[1]" identifier [ number_literal ]) = (subscript_expression "piVar2[1]" identifier [ number_literal ])) ;) (expression_statement "local_100 = *(undefined8 *)(piVar2 + 0x92);" (assignment_expression "local_100 = *(undefined8 *)(piVar2 + 0x92)" identifier = (pointer_expression "*(undefined8 *)(piVar2 + 0x92)" * (cast_expression "(undefined8 *)(piVar2 + 0x92)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar2 + 0x92)" ( (binary_expression "piVar2 + 0x92" identifier + number_literal) ))))) ;) (expression_statement "local_f8 = piVar2[8];" (assignment_expression "local_f8 = piVar2[8]" identifier = (subscript_expression "piVar2[8]" identifier [ number_literal ])) ;) (expression_statement "local_110[2] = piVar2[0xaf];" (assignment_expression "local_110[2] = piVar2[0xaf]" (subscript_expression "local_110[2]" identifier [ number_literal ]) = (subscript_expression "piVar2[0xaf]" identifier [ number_literal ])) ;) (if_statement "if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }" if (parenthesized_expression "(pdVar29 != (double *)0x0)" ( (binary_expression "pdVar29 != (double *)0x0" identifier != (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }" { (expression_statement "iVar10 = piVar2[0xb4];" (assignment_expression "iVar10 = piVar2[0xb4]" identifier = (subscript_expression "piVar2[0xb4]" identifier [ number_literal ])) ;) (expression_statement "local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);" (assignment_expression "local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4)" identifier = (cast_expression "(double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4)" * (cast_expression "(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + *(int *)(iVar10 + 8) * 4)" ( (binary_expression "(int)pdVar29 + *(int *)(iVar10 + 8) * 4" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar10 + 8) * 4" (pointer_expression "*(int *)(iVar10 + 8)" * (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);" (assignment_expression "local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4)" identifier = (cast_expression "(double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4)" * (cast_expression "(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4)" ( (binary_expression "(int)pdVar29 + *(int *)(iVar10 + 0x14) * 4" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar10 + 0x14) * 4" (pointer_expression "*(int *)(iVar10 + 0x14)" * (cast_expression "(int *)(iVar10 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);" (assignment_expression "local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4)" identifier = (cast_expression "(double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4)" * (cast_expression "(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4)" ( (binary_expression "(int)pdVar29 + *(int *)(iVar10 + 0x20) * 4" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar10 + 0x20) * 4" (pointer_expression "*(int *)(iVar10 + 0x20)" * (cast_expression "(int *)(iVar10 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x20)" ( (binary_expression "iVar10 + 0x20" identifier + number_literal) )))) * number_literal)) )))))) ;) (if_statement "if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }" if (parenthesized_expression "(*(int *)(iVar10 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x28) != 0" (pointer_expression "*(int *)(iVar10 + 0x28)" * (cast_expression "(int *)(iVar10 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x28)" ( (binary_expression "iVar10 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }" { (expression_statement "local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);" (assignment_expression "local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4)" identifier = (cast_expression "(double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4)" * (cast_expression "(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4)" ( (binary_expression "(int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar10 + 0x2c) * 4" (pointer_expression "*(int *)(iVar10 + 0x2c)" * (cast_expression "(int *)(iVar10 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x2c)" ( (binary_expression "iVar10 + 0x2c" identifier + number_literal) )))) * number_literal)) )))))) ;) })) (if_statement "if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }" if (parenthesized_expression "(*(int *)(iVar10 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x34) != 0" (pointer_expression "*(int *)(iVar10 + 0x34)" * (cast_expression "(int *)(iVar10 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x34)" ( (binary_expression "iVar10 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }" { (expression_statement "local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);" (assignment_expression "local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4)" identifier = (cast_expression "(double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4)" * (cast_expression "(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4)" ( (binary_expression "(int)pdVar29 + *(int *)(iVar10 + 0x38) * 4" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar10 + 0x38) * 4" (pointer_expression "*(int *)(iVar10 + 0x38)" * (cast_expression "(int *)(iVar10 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x38)" ( (binary_expression "iVar10 + 0x38" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "local_110[2] = 4;" (assignment_expression "local_110[2] = 4" (subscript_expression "local_110[2]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }" if (parenthesized_expression "(*(int *)(iVar10 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x40) != 0" (pointer_expression "*(int *)(iVar10 + 0x40)" * (cast_expression "(int *)(iVar10 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x40)" ( (binary_expression "iVar10 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }" { (expression_statement "local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);" (assignment_expression "local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4)" identifier = (cast_expression "(double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4)" * (cast_expression "(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4)" ( (binary_expression "(int)pdVar29 + *(int *)(iVar10 + 0x44) * 4" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar10 + 0x44) * 4" (pointer_expression "*(int *)(iVar10 + 0x44)" * (cast_expression "(int *)(iVar10 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x44)" ( (binary_expression "iVar10 + 0x44" identifier + number_literal) )))) * number_literal)) )))))) ;) })) })) })) (expression_statement "dVar40 = local_70 * in_f26_27;" (assignment_expression "dVar40 = local_70 * in_f26_27" identifier = (binary_expression "local_70 * in_f26_27" identifier * identifier)) ;) (expression_statement "dVar47 = local_c8 * in_f26_27;" (assignment_expression "dVar47 = local_c8 * in_f26_27" identifier = (binary_expression "local_c8 * in_f26_27" identifier * identifier)) ;) (expression_statement "dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;" (assignment_expression "dVar44 = (dVar40 + dVar47) - dVar40 * dVar47" identifier = (binary_expression "(dVar40 + dVar47) - dVar40 * dVar47" (parenthesized_expression "(dVar40 + dVar47)" ( (binary_expression "dVar40 + dVar47" identifier + identifier) )) - (binary_expression "dVar40 * dVar47" identifier * identifier))) ;) (if_statement "if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }" if (parenthesized_expression "(0.0 <= dVar44)" ( (binary_expression "0.0 <= dVar44" number_literal <= identifier) )) (compound_statement "{\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }" { (expression_statement "local_c8 = dVar44;" (assignment_expression "local_c8 = dVar44" identifier = identifier) ;) (if_statement "if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }" if (parenthesized_expression "(in_f20_21 < dVar44)" ( (binary_expression "in_f20_21 < dVar44" identifier < identifier) )) (compound_statement "{\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }" { (expression_statement "local_c8 = *(double *)((int)unaff_s3 + 0x4408);" (assignment_expression "local_c8 = *(double *)((int)unaff_s3 + 0x4408)" identifier = (pointer_expression "*(double *)((int)unaff_s3 + 0x4408)" * (cast_expression "(double *)((int)unaff_s3 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s3 + 0x4408)" ( (binary_expression "(int)unaff_s3 + 0x4408" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) })) (expression_statement "local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);" (assignment_expression "local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48)" identifier = (binary_expression "local_c8 * *(double *)(puVar36 + 0x4a48)" identifier * (pointer_expression "*(double *)(puVar36 + 0x4a48)" * (cast_expression "(double *)(puVar36 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x4a48)" ( (binary_expression "puVar36 + 0x4a48" identifier + number_literal) )))))) ;) (if_statement "if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }" if (parenthesized_expression "(0.0 <= dVar44)" ( (binary_expression "0.0 <= dVar44" number_literal <= identifier) )) (compound_statement "{\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }" { (expression_statement "dVar45 = *(double *)((int)unaff_s3 + 0x4408);" (assignment_expression "dVar45 = *(double *)((int)unaff_s3 + 0x4408)" identifier = (pointer_expression "*(double *)((int)unaff_s3 + 0x4408)" * (cast_expression "(double *)((int)unaff_s3 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s3 + 0x4408)" ( (binary_expression "(int)unaff_s3 + 0x4408" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }) (else_clause "else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }" else (compound_statement "{\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }" { (expression_statement "dVar45 = *(double *)((int)unaff_s3 + 0x4418);" (assignment_expression "dVar45 = *(double *)((int)unaff_s3 + 0x4418)" identifier = (pointer_expression "*(double *)((int)unaff_s3 + 0x4418)" * (cast_expression "(double *)((int)unaff_s3 + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s3 + 0x4418)" ( (binary_expression "(int)unaff_s3 + 0x4418" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }))) }) (else_clause "else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }" else (compound_statement "{\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }" { (expression_statement "local_c8 = 0.0;" (assignment_expression "local_c8 = 0.0" identifier = number_literal) ;) (expression_statement "dVar45 = in_f22_23;" (assignment_expression "dVar45 = in_f22_23" identifier = identifier) ;) }))) (if_statement "if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }" if (parenthesized_expression "(*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45)" ( (binary_expression "*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45" (pointer_expression "*(double *)(puVar36 + 0x43c8)" * (cast_expression "(double *)(puVar36 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x43c8)" ( (binary_expression "puVar36 + 0x43c8" identifier + number_literal) )))) <= (binary_expression "dVar44 * dVar45" identifier * identifier)) )) (compound_statement "{\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }" { (expression_statement "dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;" (assignment_expression "dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44" identifier = (binary_expression "*(double *)((int)unaff_s3 + 0x4408) / dVar44" (pointer_expression "*(double *)((int)unaff_s3 + 0x4408)" * (cast_expression "(double *)((int)unaff_s3 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s3 + 0x4408)" ( (binary_expression "(int)unaff_s3 + 0x4408" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) / identifier)) ;) }) (else_clause "else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }" else (compound_statement "{\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }" { (expression_statement "dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);" (assignment_expression "dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8)" identifier = (binary_expression "dVar45 / *(double *)(puVar36 + 0x43c8)" identifier / (pointer_expression "*(double *)(puVar36 + 0x43c8)" * (cast_expression "(double *)(puVar36 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x43c8)" ( (binary_expression "puVar36 + 0x43c8" identifier + number_literal) )))))) ;) }))) (expression_statement "dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;" (assignment_expression "dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40" identifier = (binary_expression "*(double *)((int)unaff_s3 + 0x4408) - dVar40" (pointer_expression "*(double *)((int)unaff_s3 + 0x4408)" * (cast_expression "(double *)((int)unaff_s3 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s3 + 0x4408)" ( (binary_expression "(int)unaff_s3 + 0x4408" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) - identifier)) ;) (expression_statement "local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;" (assignment_expression "local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45" identifier = (binary_expression "(dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45" (parenthesized_expression "(dVar47 * local_e8 * dVar44 + dVar40 * local_90)" ( (binary_expression "dVar47 * local_e8 * dVar44 + dVar40 * local_90" (binary_expression "dVar47 * local_e8 * dVar44" (binary_expression "dVar47 * local_e8" identifier * identifier) * identifier) + (binary_expression "dVar40 * local_90" identifier * identifier)) )) * identifier)) ;) (expression_statement "local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;" (assignment_expression "local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45" identifier = (binary_expression "(dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45" (parenthesized_expression "(dVar47 * local_e0 * dVar44 + dVar40 * local_88)" ( (binary_expression "dVar47 * local_e0 * dVar44 + dVar40 * local_88" (binary_expression "dVar47 * local_e0 * dVar44" (binary_expression "dVar47 * local_e0" identifier * identifier) * identifier) + (binary_expression "dVar40 * local_88" identifier * identifier)) )) * identifier)) ;) (expression_statement "local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;" (assignment_expression "local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45" identifier = (binary_expression "(dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45" (parenthesized_expression "(dVar47 * local_d8 * dVar44 + dVar40 * local_80)" ( (binary_expression "dVar47 * local_d8 * dVar44 + dVar40 * local_80" (binary_expression "dVar47 * local_d8 * dVar44" (binary_expression "dVar47 * local_d8" identifier * identifier) * identifier) + (binary_expression "dVar40 * local_80" identifier * identifier)) )) * identifier)) ;) (if_statement "if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }" if (parenthesized_expression "(local_110[1] == 2)" ( (binary_expression "local_110[1] == 2" (subscript_expression "local_110[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }" { (expression_statement "local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;" (assignment_expression "local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45" identifier = (binary_expression "(dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45" (parenthesized_expression "(dVar47 * local_d0 * dVar44 + dVar40 * local_78)" ( (binary_expression "dVar47 * local_d0 * dVar44 + dVar40 * local_78" (binary_expression "dVar47 * local_d0 * dVar44" (binary_expression "dVar47 * local_d0" identifier * identifier) * identifier) + (binary_expression "dVar40 * local_78" identifier * identifier)) )) * identifier)) ;) })) (expression_statement "iVar10 = piVar2[0xb4];" (assignment_expression "iVar10 = piVar2[0xb4]" identifier = (subscript_expression "piVar2[0xb4]" identifier [ number_literal ])) ;) (expression_statement "*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;" (assignment_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8" (pointer_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4)" * (cast_expression "(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + *(int *)(iVar10 + 8) * 4)" ( (binary_expression "(int)pdVar29 + *(int *)(iVar10 + 8) * 4" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar10 + 8) * 4" (pointer_expression "*(int *)(iVar10 + 8)" * (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)local_e8" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;" (assignment_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0" (pointer_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4)" * (cast_expression "(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4)" ( (binary_expression "(int)pdVar29 + *(int *)(iVar10 + 0x14) * 4" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar10 + 0x14) * 4" (pointer_expression "*(int *)(iVar10 + 0x14)" * (cast_expression "(int *)(iVar10 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)local_e0" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;" (assignment_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8" (pointer_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4)" * (cast_expression "(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4)" ( (binary_expression "(int)pdVar29 + *(int *)(iVar10 + 0x20) * 4" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar10 + 0x20) * 4" (pointer_expression "*(int *)(iVar10 + 0x20)" * (cast_expression "(int *)(iVar10 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x20)" ( (binary_expression "iVar10 + 0x20" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)local_d8" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (if_statement "if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }" if (parenthesized_expression "(*(int *)(iVar10 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x28) != 0" (pointer_expression "*(int *)(iVar10 + 0x28)" * (cast_expression "(int *)(iVar10 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x28)" ( (binary_expression "iVar10 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }" { (expression_statement "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;" (assignment_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0" (pointer_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4)" * (cast_expression "(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4)" ( (binary_expression "(int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar10 + 0x2c) * 4" (pointer_expression "*(int *)(iVar10 + 0x2c)" * (cast_expression "(int *)(iVar10 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x2c)" ( (binary_expression "iVar10 + 0x2c" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)local_d0" ( (type_descriptor "float" primitive_type) ) identifier)) ;) })) (if_statement "if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }" if (parenthesized_expression "(*(int *)(iVar10 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x34) != 0" (pointer_expression "*(int *)(iVar10 + 0x34)" * (cast_expression "(int *)(iVar10 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x34)" ( (binary_expression "iVar10 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }" { (if_statement "if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }" if (parenthesized_expression "(local_110[2] == 0)" ( (binary_expression "local_110[2] == 0" (subscript_expression "local_110[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }" { (expression_statement "fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);" (assignment_expression "fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier = (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                fVar43 = (float)local_c8;\n              }" else (compound_statement "{\n                fVar43 = (float)local_c8;\n              }" { (expression_statement "fVar43 = (float)local_c8;" (assignment_expression "fVar43 = (float)local_c8" identifier = (cast_expression "(float)local_c8" ( (type_descriptor "float" primitive_type) ) identifier)) ;) }))) (expression_statement "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;" (assignment_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43" (pointer_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4)" * (cast_expression "(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4)" ( (binary_expression "(int)pdVar29 + *(int *)(iVar10 + 0x38) * 4" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar10 + 0x38) * 4" (pointer_expression "*(int *)(iVar10 + 0x38)" * (cast_expression "(int *)(iVar10 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x38)" ( (binary_expression "iVar10 + 0x38" identifier + number_literal) )))) * number_literal)) )))) = identifier) ;) })) (expression_statement "pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);" (assignment_expression "pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4)" identifier = (cast_expression "(double *)((int)pdVar29 + piVar2[0xb0] * 4)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + piVar2[0xb0] * 4)" ( (binary_expression "(int)pdVar29 + piVar2[0xb0] * 4" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "piVar2[0xb0] * 4" (subscript_expression "piVar2[0xb0]" identifier [ number_literal ]) * number_literal)) )))) ;) })) (expression_statement "pdVar16 = pdVar5;" (assignment_expression "pdVar16 = pdVar5" identifier = identifier) ;) (expression_statement "iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);" (assignment_expression "iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4)" identifier = (call_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4)" (parenthesized_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)" ( (pointer_expression "*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510" * (cast_expression "(code *)PTR_SyncCacheViewAuthenticPixels_003fa510" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pdVar5,unaff_s4)" ( identifier , identifier )))) ;) (if_statement "if (iVar10 == 0) {\n            param_1[10] = 0;\n          }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n            param_1[10] = 0;\n          }" { (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) })) })) }))) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s6 = (double *)puVar36;" (assignment_expression "unaff_s6 = (double *)puVar36" identifier = (cast_expression "(double *)puVar36" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(iVar3 < (int)puVar6)" ( (binary_expression "iVar3 < (int)puVar6" identifier < (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (if_statement "if (local_5c == *(int *)PTR___stack_chk_guard_003fa248) {\n    return *(int *)PTR___stack_chk_guard_003fa248;\n  }" if (parenthesized_expression "(local_5c == *(int *)PTR___stack_chk_guard_003fa248)" ( (binary_expression "local_5c == *(int *)PTR___stack_chk_guard_003fa248" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_003fa248" * (cast_expression "(int *)PTR___stack_chk_guard_003fa248" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return *(int *)PTR___stack_chk_guard_003fa248;\n  }" { (return_statement "return *(int *)PTR___stack_chk_guard_003fa248;" return (pointer_expression "*(int *)PTR___stack_chk_guard_003fa248" * (cast_expression "(int *)PTR___stack_chk_guard_003fa248" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "pcVar37 = FUN_000a3ef0;" (assignment_expression "pcVar37 = FUN_000a3ef0" identifier = identifier) ;) (expression_statement "puVar36 = PTR___stack_chk_fail_003fa07c;" (assignment_expression "puVar36 = 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 "puStack_350 = puVar36 + 0x35d9c0;" (assignment_expression "puStack_350 = puVar36 + 0x35d9c0" identifier = (binary_expression "puVar36 + 0x35d9c0" identifier + number_literal)) ;) (expression_statement "iStack_1e4 = **(int **)(puVar36 + 0x356358);" (assignment_expression "iStack_1e4 = **(int **)(puVar36 + 0x356358)" identifier = (pointer_expression "**(int **)(puVar36 + 0x356358)" * (pointer_expression "*(int **)(puVar36 + 0x356358)" * (cast_expression "(int **)(puVar36 + 0x356358)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x356358)" ( (binary_expression "puVar36 + 0x356358" identifier + number_literal) )))))) ;) (expression_statement "iVar28 = *(int *)((int)pdVar16 + 0x24);" (assignment_expression "iVar28 = *(int *)((int)pdVar16 + 0x24)" identifier = (pointer_expression "*(int *)((int)pdVar16 + 0x24)" * (cast_expression "(int *)((int)pdVar16 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 0x24)" ( (binary_expression "(int)pdVar16 + 0x24" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pdStack_2a8 = pdVar16;" (assignment_expression "pdStack_2a8 = pdVar16" identifier = identifier) ;) (expression_statement "pdStack_1e0 = pdVar29;" (assignment_expression "pdStack_1e0 = pdVar29" identifier = identifier) ;) (expression_statement "piStack_1dc = piVar2;" (assignment_expression "piStack_1dc = piVar2" identifier = identifier) ;) (expression_statement "iStack_1d8 = unaff_s2;" (assignment_expression "iStack_1d8 = unaff_s2" identifier = identifier) ;) (expression_statement "pdStack_1d4 = unaff_s3;" (assignment_expression "pdStack_1d4 = unaff_s3" identifier = identifier) ;) (expression_statement "piStack_1d0 = unaff_s4;" (assignment_expression "piStack_1d0 = unaff_s4" identifier = identifier) ;) (expression_statement "puStack_1cc = param_1;" (assignment_expression "puStack_1cc = param_1" identifier = identifier) ;) (expression_statement "pdStack_1c8 = unaff_s6;" (assignment_expression "pdStack_1c8 = unaff_s6" identifier = identifier) ;) (expression_statement "uStack_1c4 = unaff_s7;" (assignment_expression "uStack_1c4 = unaff_s7" identifier = identifier) ;) (expression_statement "iStack_1c0 = iVar3;" (assignment_expression "iStack_1c0 = iVar3" identifier = identifier) ;) (expression_statement "pcStack_1bc = pcVar37;" (assignment_expression "pcStack_1bc = pcVar37" identifier = identifier) ;) (expression_statement "dStack_1b8 = in_f20_21;" (assignment_expression "dStack_1b8 = in_f20_21" identifier = identifier) ;) (expression_statement "dStack_1b0 = in_f22_23;" (assignment_expression "dStack_1b0 = in_f22_23" identifier = identifier) ;) (expression_statement "dStack_1a8 = in_f24_25;" (assignment_expression "dStack_1a8 = in_f24_25" identifier = identifier) ;) (expression_statement "dStack_1a0 = in_f26_27;" (assignment_expression "dStack_1a0 = in_f26_27" identifier = identifier) ;) (expression_statement "dStack_198 = in_f28_29;" (assignment_expression "dStack_198 = in_f28_29" identifier = identifier) ;) (expression_statement "dStack_190 = in_f30_31;" (assignment_expression "dStack_190 = in_f30_31" identifier = identifier) ;) (expression_statement "iVar10 = (**(code **)(puVar36 + 0x356a34))();" (assignment_expression "iVar10 = (**(code **)(puVar36 + 0x356a34))()" identifier = (call_expression "(**(code **)(puVar36 + 0x356a34))()" (parenthesized_expression "(**(code **)(puVar36 + 0x356a34))" ( (pointer_expression "**(code **)(puVar36 + 0x356a34)" * (pointer_expression "*(code **)(puVar36 + 0x356a34)" * (cast_expression "(code **)(puVar36 + 0x356a34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x356a34)" ( (binary_expression "puVar36 + 0x356a34" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar49 = (**(code **)(puStack_350 + -0x7390))();" (assignment_expression "iVar49 = (**(code **)(puStack_350 + -0x7390))()" identifier = (call_expression "(**(code **)(puStack_350 + -0x7390))()" (parenthesized_expression "(**(code **)(puStack_350 + -0x7390))" ( (pointer_expression "**(code **)(puStack_350 + -0x7390)" * (pointer_expression "*(code **)(puStack_350 + -0x7390)" * (cast_expression "(code **)(puStack_350 + -0x7390)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_350 + -0x7390)" ( (binary_expression "puStack_350 + -0x7390" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar12 = (*(int *)(pdVar16 + 5) + 1) - iVar28;" (assignment_expression "iVar12 = (*(int *)(pdVar16 + 5) + 1) - iVar28" identifier = (binary_expression "(*(int *)(pdVar16 + 5) + 1) - iVar28" (parenthesized_expression "(*(int *)(pdVar16 + 5) + 1)" ( (binary_expression "*(int *)(pdVar16 + 5) + 1" (pointer_expression "*(int *)(pdVar16 + 5)" * (cast_expression "(int *)(pdVar16 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 5)" ( (binary_expression "pdVar16 + 5" identifier + number_literal) )))) + number_literal) )) - identifier)) ;) (if_statement "if (iVar10 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 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 "iVar50 = iVar12 / iVar10;" (assignment_expression "iVar50 = iVar12 / iVar10" identifier = (binary_expression "iVar12 / iVar10" identifier / identifier)) ;) (expression_statement "iVar12 = iVar12 % iVar10;" (assignment_expression "iVar12 = iVar12 % iVar10" identifier = (binary_expression "iVar12 % iVar10" identifier % identifier)) ;) (expression_statement "uVar26 = (uint)(iVar49 < iVar12);" (assignment_expression "uVar26 = (uint)(iVar49 < iVar12)" identifier = (call_expression "(uint)(iVar49 < iVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar49 < iVar12)" ( (binary_expression "iVar49 < iVar12" identifier < identifier) )))) ;) (if_statement "if (uVar26 != 0) {\n    iVar50 = iVar50 + 1;\n    iVar12 = 0;\n  }" if (parenthesized_expression "(uVar26 != 0)" ( (binary_expression "uVar26 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar50 = iVar50 + 1;\n    iVar12 = 0;\n  }" { (expression_statement "iVar50 = iVar50 + 1;" (assignment_expression "iVar50 = iVar50 + 1" identifier = (binary_expression "iVar50 + 1" identifier + number_literal)) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) })) (expression_statement "uVar8 = iVar50 * iVar49 + iVar12;" (assignment_expression "uVar8 = iVar50 * iVar49 + iVar12" identifier = (binary_expression "iVar50 * iVar49 + iVar12" (binary_expression "iVar50 * iVar49" identifier * identifier) + identifier)) ;) (expression_statement "pdVar29 = (double *)(iVar50 + uVar8);" (assignment_expression "pdVar29 = (double *)(iVar50 + uVar8)" identifier = (cast_expression "(double *)(iVar50 + uVar8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar50 + uVar8)" ( (binary_expression "iVar50 + uVar8" identifier + identifier) )))) ;) (if_statement "if ((int)uVar8 < (int)pdVar29) {\n    iStack_29c = *(int *)((int)pdStack_2a8 + 0x1c);\n    in_f28_29 = *pdStack_2a8;\n    iStack_2f4 = *(int *)(pdStack_2a8 + 3);\n    pdStack_2a0 = *(double **)((int)pdStack_2a8 + 0x14);\n    uStack_2d0 = *(undefined4 *)(pdStack_2a8 + 2);\n    iStack_324 = *(int *)((int)pdStack_2a8 + 0xc);\n    unaff_s6 = *(double **)(pdStack_2a8 + 1);\n    iStack_2f0 = iVar28 + uVar8;\n    puStack_2a4 = (undefined1 *)(iVar28 + (int)pdVar29);\n    unaff_s7 = *(uint *)(puStack_350 + -0x7fd0);\n    dStack_320 = *(double *)(unaff_s7 + 0x4408);\n    iVar3 = *(int *)(puStack_350 + -0x7fd0);\n    dStack_2b8 = *(double *)(iVar3 + 0x43c8);\n    uStack_2f8 = uVar8;\n    do {\n      iVar28 = (**(code **)(puStack_350 + -0x7390))();\n      if (*(int *)((int)pdStack_2a8 + 0x2c) != 0) {\n        pdVar29 = *(double **)(pdStack_2a8 + 4);\n        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21);\n        uStack_2d4 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21);\n        uVar26 = uStack_2d4;\n        pdVar16 = (double *)(int)dVar39;\n        uStack_354 = uStack_2d0;\n        puStack_358 = (undefined4 *)0x1;\n        pdVar29 = pdStack_2a0;\n        pdStack_2cc = pdVar16;\n        iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)));\n        if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar28 = iVar28 * 4;\n          puVar36 = puStack_350;\n          if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar29 = pdStack_2a0;\n          iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }\n      }\n      iStack_2f0 = iStack_2f0 + 1;\n      uStack_2f8 = uStack_2f8 + 1;\n    } while (iStack_2f0 < (int)puStack_2a4);\n  }" if (parenthesized_expression "((int)uVar8 < (int)pdVar29)" ( (binary_expression "(int)uVar8 < (int)pdVar29" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    iStack_29c = *(int *)((int)pdStack_2a8 + 0x1c);\n    in_f28_29 = *pdStack_2a8;\n    iStack_2f4 = *(int *)(pdStack_2a8 + 3);\n    pdStack_2a0 = *(double **)((int)pdStack_2a8 + 0x14);\n    uStack_2d0 = *(undefined4 *)(pdStack_2a8 + 2);\n    iStack_324 = *(int *)((int)pdStack_2a8 + 0xc);\n    unaff_s6 = *(double **)(pdStack_2a8 + 1);\n    iStack_2f0 = iVar28 + uVar8;\n    puStack_2a4 = (undefined1 *)(iVar28 + (int)pdVar29);\n    unaff_s7 = *(uint *)(puStack_350 + -0x7fd0);\n    dStack_320 = *(double *)(unaff_s7 + 0x4408);\n    iVar3 = *(int *)(puStack_350 + -0x7fd0);\n    dStack_2b8 = *(double *)(iVar3 + 0x43c8);\n    uStack_2f8 = uVar8;\n    do {\n      iVar28 = (**(code **)(puStack_350 + -0x7390))();\n      if (*(int *)((int)pdStack_2a8 + 0x2c) != 0) {\n        pdVar29 = *(double **)(pdStack_2a8 + 4);\n        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21);\n        uStack_2d4 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21);\n        uVar26 = uStack_2d4;\n        pdVar16 = (double *)(int)dVar39;\n        uStack_354 = uStack_2d0;\n        puStack_358 = (undefined4 *)0x1;\n        pdVar29 = pdStack_2a0;\n        pdStack_2cc = pdVar16;\n        iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)));\n        if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar28 = iVar28 * 4;\n          puVar36 = puStack_350;\n          if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar29 = pdStack_2a0;\n          iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }\n      }\n      iStack_2f0 = iStack_2f0 + 1;\n      uStack_2f8 = uStack_2f8 + 1;\n    } while (iStack_2f0 < (int)puStack_2a4);\n  }" { (expression_statement "iStack_29c = *(int *)((int)pdStack_2a8 + 0x1c);" (assignment_expression "iStack_29c = *(int *)((int)pdStack_2a8 + 0x1c)" identifier = (pointer_expression "*(int *)((int)pdStack_2a8 + 0x1c)" * (cast_expression "(int *)((int)pdStack_2a8 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdStack_2a8 + 0x1c)" ( (binary_expression "(int)pdStack_2a8 + 0x1c" (cast_expression "(int)pdStack_2a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "in_f28_29 = *pdStack_2a8;" (assignment_expression "in_f28_29 = *pdStack_2a8" identifier = (pointer_expression "*pdStack_2a8" * identifier)) ;) (expression_statement "iStack_2f4 = *(int *)(pdStack_2a8 + 3);" (assignment_expression "iStack_2f4 = *(int *)(pdStack_2a8 + 3)" identifier = (pointer_expression "*(int *)(pdStack_2a8 + 3)" * (cast_expression "(int *)(pdStack_2a8 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdStack_2a8 + 3)" ( (binary_expression "pdStack_2a8 + 3" identifier + number_literal) ))))) ;) (expression_statement "pdStack_2a0 = *(double **)((int)pdStack_2a8 + 0x14);" (assignment_expression "pdStack_2a0 = *(double **)((int)pdStack_2a8 + 0x14)" identifier = (pointer_expression "*(double **)((int)pdStack_2a8 + 0x14)" * (cast_expression "(double **)((int)pdStack_2a8 + 0x14)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pdStack_2a8 + 0x14)" ( (binary_expression "(int)pdStack_2a8 + 0x14" (cast_expression "(int)pdStack_2a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uStack_2d0 = *(undefined4 *)(pdStack_2a8 + 2);" (assignment_expression "uStack_2d0 = *(undefined4 *)(pdStack_2a8 + 2)" identifier = (pointer_expression "*(undefined4 *)(pdStack_2a8 + 2)" * (cast_expression "(undefined4 *)(pdStack_2a8 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdStack_2a8 + 2)" ( (binary_expression "pdStack_2a8 + 2" identifier + number_literal) ))))) ;) (expression_statement "iStack_324 = *(int *)((int)pdStack_2a8 + 0xc);" (assignment_expression "iStack_324 = *(int *)((int)pdStack_2a8 + 0xc)" identifier = (pointer_expression "*(int *)((int)pdStack_2a8 + 0xc)" * (cast_expression "(int *)((int)pdStack_2a8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdStack_2a8 + 0xc)" ( (binary_expression "(int)pdStack_2a8 + 0xc" (cast_expression "(int)pdStack_2a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "unaff_s6 = *(double **)(pdStack_2a8 + 1);" (assignment_expression "unaff_s6 = *(double **)(pdStack_2a8 + 1)" identifier = (pointer_expression "*(double **)(pdStack_2a8 + 1)" * (cast_expression "(double **)(pdStack_2a8 + 1)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdStack_2a8 + 1)" ( (binary_expression "pdStack_2a8 + 1" identifier + number_literal) ))))) ;) (expression_statement "iStack_2f0 = iVar28 + uVar8;" (assignment_expression "iStack_2f0 = iVar28 + uVar8" identifier = (binary_expression "iVar28 + uVar8" identifier + identifier)) ;) (expression_statement "puStack_2a4 = (undefined1 *)(iVar28 + (int)pdVar29);" (assignment_expression "puStack_2a4 = (undefined1 *)(iVar28 + (int)pdVar29)" identifier = (cast_expression "(undefined1 *)(iVar28 + (int)pdVar29)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + (int)pdVar29)" ( (binary_expression "iVar28 + (int)pdVar29" identifier + (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "unaff_s7 = *(uint *)(puStack_350 + -0x7fd0);" (assignment_expression "unaff_s7 = *(uint *)(puStack_350 + -0x7fd0)" identifier = (pointer_expression "*(uint *)(puStack_350 + -0x7fd0)" * (cast_expression "(uint *)(puStack_350 + -0x7fd0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_350 + -0x7fd0)" ( (binary_expression "puStack_350 + -0x7fd0" identifier + number_literal) ))))) ;) (expression_statement "dStack_320 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dStack_320 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(puStack_350 + -0x7fd0);" (assignment_expression "iVar3 = *(int *)(puStack_350 + -0x7fd0)" identifier = (pointer_expression "*(int *)(puStack_350 + -0x7fd0)" * (cast_expression "(int *)(puStack_350 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_350 + -0x7fd0)" ( (binary_expression "puStack_350 + -0x7fd0" identifier + number_literal) ))))) ;) (expression_statement "dStack_2b8 = *(double *)(iVar3 + 0x43c8);" (assignment_expression "dStack_2b8 = *(double *)(iVar3 + 0x43c8)" identifier = (pointer_expression "*(double *)(iVar3 + 0x43c8)" * (cast_expression "(double *)(iVar3 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x43c8)" ( (binary_expression "iVar3 + 0x43c8" identifier + number_literal) ))))) ;) (expression_statement "uStack_2f8 = uVar8;" (assignment_expression "uStack_2f8 = uVar8" identifier = identifier) ;) (do_statement "do {\n      iVar28 = (**(code **)(puStack_350 + -0x7390))();\n      if (*(int *)((int)pdStack_2a8 + 0x2c) != 0) {\n        pdVar29 = *(double **)(pdStack_2a8 + 4);\n        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21);\n        uStack_2d4 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21);\n        uVar26 = uStack_2d4;\n        pdVar16 = (double *)(int)dVar39;\n        uStack_354 = uStack_2d0;\n        puStack_358 = (undefined4 *)0x1;\n        pdVar29 = pdStack_2a0;\n        pdStack_2cc = pdVar16;\n        iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)));\n        if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar28 = iVar28 * 4;\n          puVar36 = puStack_350;\n          if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar29 = pdStack_2a0;\n          iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }\n      }\n      iStack_2f0 = iStack_2f0 + 1;\n      uStack_2f8 = uStack_2f8 + 1;\n    } while (iStack_2f0 < (int)puStack_2a4);" do (compound_statement "{\n      iVar28 = (**(code **)(puStack_350 + -0x7390))();\n      if (*(int *)((int)pdStack_2a8 + 0x2c) != 0) {\n        pdVar29 = *(double **)(pdStack_2a8 + 4);\n        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21);\n        uStack_2d4 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21);\n        uVar26 = uStack_2d4;\n        pdVar16 = (double *)(int)dVar39;\n        uStack_354 = uStack_2d0;\n        puStack_358 = (undefined4 *)0x1;\n        pdVar29 = pdStack_2a0;\n        pdStack_2cc = pdVar16;\n        iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)));\n        if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar28 = iVar28 * 4;\n          puVar36 = puStack_350;\n          if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar29 = pdStack_2a0;\n          iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }\n      }\n      iStack_2f0 = iStack_2f0 + 1;\n      uStack_2f8 = uStack_2f8 + 1;\n    }" { (expression_statement "iVar28 = (**(code **)(puStack_350 + -0x7390))();" (assignment_expression "iVar28 = (**(code **)(puStack_350 + -0x7390))()" identifier = (call_expression "(**(code **)(puStack_350 + -0x7390))()" (parenthesized_expression "(**(code **)(puStack_350 + -0x7390))" ( (pointer_expression "**(code **)(puStack_350 + -0x7390)" * (pointer_expression "*(code **)(puStack_350 + -0x7390)" * (cast_expression "(code **)(puStack_350 + -0x7390)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_350 + -0x7390)" ( (binary_expression "puStack_350 + -0x7390" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (*(int *)((int)pdStack_2a8 + 0x2c) != 0) {\n        pdVar29 = *(double **)(pdStack_2a8 + 4);\n        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21);\n        uStack_2d4 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21);\n        uVar26 = uStack_2d4;\n        pdVar16 = (double *)(int)dVar39;\n        uStack_354 = uStack_2d0;\n        puStack_358 = (undefined4 *)0x1;\n        pdVar29 = pdStack_2a0;\n        pdStack_2cc = pdVar16;\n        iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)));\n        if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar28 = iVar28 * 4;\n          puVar36 = puStack_350;\n          if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar29 = pdStack_2a0;\n          iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }\n      }" if (parenthesized_expression "(*(int *)((int)pdStack_2a8 + 0x2c) != 0)" ( (binary_expression "*(int *)((int)pdStack_2a8 + 0x2c) != 0" (pointer_expression "*(int *)((int)pdStack_2a8 + 0x2c)" * (cast_expression "(int *)((int)pdStack_2a8 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdStack_2a8 + 0x2c)" ( (binary_expression "(int)pdStack_2a8 + 0x2c" (cast_expression "(int)pdStack_2a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n        pdVar29 = *(double **)(pdStack_2a8 + 4);\n        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21);\n        uStack_2d4 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21);\n        uVar26 = uStack_2d4;\n        pdVar16 = (double *)(int)dVar39;\n        uStack_354 = uStack_2d0;\n        puStack_358 = (undefined4 *)0x1;\n        pdVar29 = pdStack_2a0;\n        pdStack_2cc = pdVar16;\n        iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)));\n        if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar28 = iVar28 * 4;\n          puVar36 = puStack_350;\n          if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar29 = pdStack_2a0;\n          iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }\n      }" { (expression_statement "pdVar29 = *(double **)(pdStack_2a8 + 4);" (assignment_expression "pdVar29 = *(double **)(pdStack_2a8 + 4)" identifier = (pointer_expression "*(double **)(pdStack_2a8 + 4)" * (cast_expression "(double **)(pdStack_2a8 + 4)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdStack_2a8 + 4)" ( (binary_expression "pdStack_2a8 + 4" identifier + number_literal) ))))) ;) (expression_statement "in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);" (assignment_expression "in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0)" identifier = (pointer_expression "*(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0)" * (cast_expression "(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_350 + -0x7fd0) + 0x43d0)" ( (binary_expression "*(int *)(puStack_350 + -0x7fd0) + 0x43d0" (pointer_expression "*(int *)(puStack_350 + -0x7fd0)" * (cast_expression "(int *)(puStack_350 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_350 + -0x7fd0)" ( (binary_expression "puStack_350 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "dVar39 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21);" (assignment_expression "dVar39 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21)" identifier = (cast_expression "(double)(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21)" (parenthesized_expression "(**(code **)(puStack_350 + -0x7c78))" ( (pointer_expression "**(code **)(puStack_350 + -0x7c78)" * (pointer_expression "*(code **)(puStack_350 + -0x7c78)" * (cast_expression "(code **)(puStack_350 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_350 + -0x7c78)" ( (binary_expression "puStack_350 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(*pdVar29 - in_f20_21)" ( (binary_expression "*pdVar29 - in_f20_21" (pointer_expression "*pdVar29" * identifier) - identifier) ))))) ;) (expression_statement "uStack_2d4 = (uint)dVar39;" (assignment_expression "uStack_2d4 = (uint)dVar39" identifier = (cast_expression "(uint)dVar39" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "dVar39 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21);" (assignment_expression "dVar39 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21)" identifier = (cast_expression "(double)(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21)" (parenthesized_expression "(**(code **)(puStack_350 + -0x7228))" ( (pointer_expression "**(code **)(puStack_350 + -0x7228)" * (pointer_expression "*(code **)(puStack_350 + -0x7228)" * (cast_expression "(code **)(puStack_350 + -0x7228)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_350 + -0x7228)" ( (binary_expression "puStack_350 + -0x7228" identifier + number_literal) ))))) )) (argument_list "(pdVar29[2] + in_f20_21)" ( (binary_expression "pdVar29[2] + in_f20_21" (subscript_expression "pdVar29[2]" identifier [ number_literal ]) + identifier) ))))) ;) (expression_statement "uVar26 = uStack_2d4;" (assignment_expression "uVar26 = uStack_2d4" identifier = identifier) ;) (expression_statement "pdVar16 = (double *)(int)dVar39;" (assignment_expression "pdVar16 = (double *)(int)dVar39" identifier = (cast_expression "(double *)(int)dVar39" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)dVar39" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uStack_354 = uStack_2d0;" (assignment_expression "uStack_354 = uStack_2d0" identifier = identifier) ;) (expression_statement "puStack_358 = (undefined4 *)0x1;" (assignment_expression "puStack_358 = (undefined4 *)0x1" identifier = (cast_expression "(undefined4 *)0x1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pdVar29 = pdStack_2a0;" (assignment_expression "pdVar29 = pdStack_2a0" identifier = identifier) ;) (expression_statement "pdStack_2cc = pdVar16;" (assignment_expression "pdStack_2cc = pdVar16" identifier = identifier) ;) (expression_statement "iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)));" (assignment_expression "iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)))" identifier = (call_expression "(**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)))" (parenthesized_expression "(**(code **)(puStack_350 + -0x724c))" ( (pointer_expression "**(code **)(puStack_350 + -0x724c)" * (pointer_expression "*(code **)(puStack_350 + -0x724c)" * (cast_expression "(code **)(puStack_350 + -0x724c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_350 + -0x724c)" ( (binary_expression "puStack_350 + -0x724c" identifier + number_literal) ))))) )) (argument_list "(pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)))" ( identifier , identifier , identifier , (cast_expression "(undefined *)((int)pdVar16 + (1 - uStack_2d4))" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + (1 - uStack_2d4))" ( (binary_expression "(int)pdVar16 + (1 - uStack_2d4)" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(1 - uStack_2d4)" ( (binary_expression "1 - uStack_2d4" number_literal - identifier) ))) ))) )))) ;) (if_statement "if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar28 = iVar28 * 4;\n          puVar36 = puStack_350;\n          if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar29 = pdStack_2a0;\n          iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }" if (parenthesized_expression "(iStack_308 == 0)" ( (binary_expression "iStack_308 == 0" identifier == number_literal) )) (compound_statement "{\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }" { (expression_statement "*(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0" (pointer_expression "*(undefined4 *)((int)pdStack_2a8 + 0x2c)" * (cast_expression "(undefined4 *)((int)pdStack_2a8 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdStack_2a8 + 0x2c)" ( (binary_expression "(int)pdStack_2a8 + 0x2c" (cast_expression "(int)pdStack_2a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n          iVar28 = iVar28 * 4;\n          puVar36 = puStack_350;\n          if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar29 = pdStack_2a0;\n          iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }" else (compound_statement "{\n          iVar28 = iVar28 * 4;\n          puVar36 = puStack_350;\n          if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar29 = pdStack_2a0;\n          iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }" { (expression_statement "iVar28 = iVar28 * 4;" (assignment_expression "iVar28 = iVar28 * 4" identifier = (binary_expression "iVar28 * 4" identifier * number_literal)) ;) (expression_statement "puVar36 = puStack_350;" (assignment_expression "puVar36 = puStack_350" identifier = identifier) ;) (if_statement "if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }" if (parenthesized_expression "((int)uVar26 <= (int)pdVar16)" ( (binary_expression "(int)uVar26 <= (int)pdVar16" (cast_expression "(int)uVar26" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }" { (expression_statement "puStack_2bc = (undefined4 *)(iStack_29c + iVar28);" (assignment_expression "puStack_2bc = (undefined4 *)(iStack_29c + iVar28)" identifier = (cast_expression "(undefined4 *)(iStack_29c + iVar28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_29c + iVar28)" ( (binary_expression "iStack_29c + iVar28" identifier + identifier) )))) ;) (expression_statement "uStack_328 = uStack_2d4;" (assignment_expression "uStack_328 = uStack_2d4" identifier = identifier) ;) (expression_statement "pdVar16 = unaff_s6;" (assignment_expression "pdVar16 = unaff_s6" identifier = identifier) ;) (do_statement "do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);" do (compound_statement "{\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            }" { (expression_statement "unaff_s4 = (int *)*puStack_2bc;" (assignment_expression "unaff_s4 = (int *)*puStack_2bc" identifier = (cast_expression "(int *)*puStack_2bc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puStack_2bc" * identifier))) ;) (expression_statement "iStack_2c0 = *(int *)(iStack_324 + 0x240);" (assignment_expression "iStack_2c0 = *(int *)(iStack_324 + 0x240)" identifier = (pointer_expression "*(int *)(iStack_324 + 0x240)" * (cast_expression "(int *)(iStack_324 + 0x240)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x240)" ( (binary_expression "iStack_324 + 0x240" identifier + number_literal) ))))) ;) (expression_statement "unaff_s3 = (double *)*unaff_s4;" (assignment_expression "unaff_s3 = (double *)*unaff_s4" identifier = (cast_expression "(double *)*unaff_s4" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*unaff_s4" * identifier))) ;) (expression_statement "puVar13 = (undefined4 *)unaff_s4[1];" (assignment_expression "puVar13 = (undefined4 *)unaff_s4[1]" identifier = (cast_expression "(undefined4 *)unaff_s4[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "unaff_s4[1]" identifier [ number_literal ]))) ;) (expression_statement "pdStack_2ec = unaff_s3;" (assignment_expression "pdStack_2ec = unaff_s3" identifier = identifier) ;) (if_statement "if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }" if (parenthesized_expression "((int)puVar13 < 1)" ( (binary_expression "(int)puVar13 < 1" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }" { (if_statement "if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }" if (parenthesized_expression "(iStack_2f4 != 0)" ( (binary_expression "iStack_2f4 != 0" identifier != number_literal) )) (compound_statement "{\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }" { (expression_statement "dStack_338 = 0.0;" (assignment_expression "dStack_338 = 0.0" identifier = number_literal) ;) (expression_statement "dStack_340 = 0.0;" (assignment_expression "dStack_340 = 0.0" identifier = number_literal) ;) (expression_statement "dVar39 = in_f30_31;" (assignment_expression "dVar39 = in_f30_31" identifier = identifier) ;) (labeled_statement "LAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;" statement_identifier : (expression_statement "pdVar29 = (double *)*unaff_s4;" (assignment_expression "pdVar29 = (double *)*unaff_s4" identifier = (cast_expression "(double *)*unaff_s4" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*unaff_s4" * identifier))) ;)) (if_statement "if (0 < (int)puVar13) goto LAB_000a4f3c;" if (parenthesized_expression "(0 < (int)puVar13)" ( (binary_expression "0 < (int)puVar13" number_literal < (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_000a4f3c;" goto statement_identifier ;)) (goto_statement "goto LAB_000a4684;" goto statement_identifier ;) })) (labeled_statement "LAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }" statement_identifier : (if_statement "if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }" if (parenthesized_expression "(*(int *)(iStack_324 + 0x238) == 0)" ( (binary_expression "*(int *)(iStack_324 + 0x238) == 0" (pointer_expression "*(int *)(iStack_324 + 0x238)" * (cast_expression "(int *)(iStack_324 + 0x238)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x238)" ( (binary_expression "iStack_324 + 0x238" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }" { (expression_statement "dStack_338 = 0.0;" (assignment_expression "dStack_338 = 0.0" identifier = number_literal) ;) (expression_statement "dStack_340 = 0.0;" (assignment_expression "dStack_340 = 0.0" identifier = number_literal) ;) (expression_statement "dVar39 = in_f30_31;" (assignment_expression "dVar39 = in_f30_31" identifier = identifier) ;) (labeled_statement "LAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);" statement_identifier : (expression_statement "iVar10 = *(int *)(puVar36 + -0x7fd0);" (assignment_expression "iVar10 = *(int *)(puVar36 + -0x7fd0)" identifier = (pointer_expression "*(int *)(puVar36 + -0x7fd0)" * (cast_expression "(int *)(puVar36 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fd0)" ( (binary_expression "puVar36 + -0x7fd0" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_000a4ec4;" goto statement_identifier ;) }))) (expression_statement "dStack_338 = 0.0;" (assignment_expression "dStack_338 = 0.0" identifier = number_literal) ;) (expression_statement "dStack_340 = 0.0;" (assignment_expression "dStack_340 = 0.0" identifier = number_literal) ;) (expression_statement "dVar39 = in_f30_31;" (assignment_expression "dVar39 = in_f30_31" identifier = identifier) ;) }) (else_clause "else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }" else (compound_statement "{\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }" { (expression_statement "in_f26_27 = (double)iStack_2f0;" (assignment_expression "in_f26_27 = (double)iStack_2f0" identifier = (cast_expression "(double)iStack_2f0" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "iVar10 = *(int *)(puVar36 + -0x7fd0);" (assignment_expression "iVar10 = *(int *)(puVar36 + -0x7fd0)" identifier = (pointer_expression "*(int *)(puVar36 + -0x7fd0)" * (cast_expression "(int *)(puVar36 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fd0)" ( (binary_expression "puVar36 + -0x7fd0" identifier + number_literal) ))))) ;) (expression_statement "dVar39 = *(double *)(iVar10 + 0x43d0);" (assignment_expression "dVar39 = *(double *)(iVar10 + 0x43d0)" identifier = (pointer_expression "*(double *)(iVar10 + 0x43d0)" * (cast_expression "(double *)(iVar10 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x43d0)" ( (binary_expression "iVar10 + 0x43d0" identifier + number_literal) ))))) ;) (expression_statement "param_1 = (undefined4 *)0x0;" (assignment_expression "param_1 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }" if (parenthesized_expression "((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27)" ( (binary_expression "(unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27" (binary_expression "(unaff_s3[1] - in_f28_29) - dVar39" (parenthesized_expression "(unaff_s3[1] - in_f28_29)" ( (binary_expression "unaff_s3[1] - in_f28_29" (subscript_expression "unaff_s3[1]" identifier [ number_literal ]) - identifier) )) - identifier) < identifier) )) (compound_statement "{\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }" { (expression_statement "dStack_338 = 0.0;" (assignment_expression "dStack_338 = 0.0" identifier = number_literal) ;) (expression_statement "dStack_340 = 0.0;" (assignment_expression "dStack_340 = 0.0" identifier = number_literal) ;) (expression_statement "pdVar29 = unaff_s3;" (assignment_expression "pdVar29 = unaff_s3" identifier = identifier) ;) (expression_statement "dStack_330 = dVar39;" (assignment_expression "dStack_330 = dVar39" identifier = identifier) ;) (expression_statement "pdStack_2d8 = pdVar16;" (assignment_expression "pdStack_2d8 = pdVar16" identifier = identifier) ;) (do_statement "do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));" do (compound_statement "{\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  }" { (expression_statement "pdVar16 = pdStack_2ec;" (assignment_expression "pdVar16 = pdStack_2ec" identifier = identifier) ;) (expression_statement "iVar49 = iStack_2f4;" (assignment_expression "iVar49 = iStack_2f4" identifier = identifier) ;) (if_statement "if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }" if (parenthesized_expression "(in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39)" ( (binary_expression "in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39" identifier <= (binary_expression "in_f28_29 + pdVar29[3] + dVar39" (binary_expression "in_f28_29 + pdVar29[3]" identifier + (subscript_expression "pdVar29[3]" identifier [ number_literal ])) + identifier)) )) (compound_statement "{\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }" { (expression_statement "in_f22_23 = (double)(int)uStack_328;" (assignment_expression "in_f22_23 = (double)(int)uStack_328" identifier = (cast_expression "(double)(int)uStack_328" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)uStack_328" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }" if (parenthesized_expression "(((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0)))" ( (binary_expression "((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))" (parenthesized_expression "((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23)" ( (binary_expression "(*pdVar29 - in_f28_29) - dStack_330 < in_f22_23" (binary_expression "(*pdVar29 - in_f28_29) - dStack_330" (parenthesized_expression "(*pdVar29 - in_f28_29)" ( (binary_expression "*pdVar29 - in_f28_29" (pointer_expression "*pdVar29" * identifier) - identifier) )) - identifier) < identifier) )) && (parenthesized_expression "(in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))" ( (binary_expression "in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0)" identifier <= (binary_expression "in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0)" (binary_expression "in_f28_29 + pdVar29[2]" identifier + (subscript_expression "pdVar29[2]" identifier [ number_literal ])) + (pointer_expression "*(double *)(iVar10 + 0x43d0)" * (cast_expression "(double *)(iVar10 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x43d0)" ( (binary_expression "iVar10 + 0x43d0" identifier + number_literal) )))))) ))) )) (compound_statement "{\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }" { (expression_statement "iVar28 = *(int *)(pdVar29 + 7);" (assignment_expression "iVar28 = *(int *)(pdVar29 + 7)" identifier = (pointer_expression "*(int *)(pdVar29 + 7)" * (cast_expression "(int *)(pdVar29 + 7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar29 + 7)" ( (binary_expression "pdVar29 + 7" identifier + number_literal) ))))) ;) (expression_statement "dVar41 = (double)iVar28;" (assignment_expression "dVar41 = (double)iVar28" identifier = (cast_expression "(double)iVar28" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }" if (parenthesized_expression "(iVar28 < 0)" ( (binary_expression "iVar28 < 0" identifier < number_literal) )) (compound_statement "{\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8)" identifier + (pointer_expression "*(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8)" * (cast_expression "(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + -0x7fd0) + 0x43e8)" ( (binary_expression "*(int *)(puVar36 + -0x7fd0) + 0x43e8" (pointer_expression "*(int *)(puVar36 + -0x7fd0)" * (cast_expression "(int *)(puVar36 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fd0)" ( (binary_expression "puVar36 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) })) (if_statement "if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }" if (parenthesized_expression "(dVar41 <= *(double *)(unaff_s7 + 0x4408))" ( (binary_expression "dVar41 <= *(double *)(unaff_s7 + 0x4408)" identifier <= (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) )) (compound_statement "{\n                          iVar28 = 1;\n                        }" { (expression_statement "iVar28 = 1;" (assignment_expression "iVar28 = 1" identifier = number_literal) ;) })) (if_statement "if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }" if (parenthesized_expression "(iVar28 < *(int *)((int)pdVar29 + 0x2c))" ( (binary_expression "iVar28 < *(int *)((int)pdVar29 + 0x2c)" identifier < (pointer_expression "*(int *)((int)pdVar29 + 0x2c)" * (cast_expression "(int *)((int)pdVar29 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + 0x2c)" ( (binary_expression "(int)pdVar29 + 0x2c" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (compound_statement "{\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }" { (expression_statement "iVar12 = *(int *)(pdVar29 + 5);" (assignment_expression "iVar12 = *(int *)(pdVar29 + 5)" identifier = (pointer_expression "*(int *)(pdVar29 + 5)" * (cast_expression "(int *)(pdVar29 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar29 + 5)" ( (binary_expression "pdVar29 + 5" identifier + number_literal) ))))) ;) (expression_statement "iVar50 = (iVar28 + 0xfffffff) * 0x10;" (assignment_expression "iVar50 = (iVar28 + 0xfffffff) * 0x10" identifier = (binary_expression "(iVar28 + 0xfffffff) * 0x10" (parenthesized_expression "(iVar28 + 0xfffffff)" ( (binary_expression "iVar28 + 0xfffffff" identifier + number_literal) )) * number_literal)) ;) (expression_statement "pdVar16 = (double *)(iVar12 + iVar50);" (assignment_expression "pdVar16 = (double *)(iVar12 + iVar50)" identifier = (cast_expression "(double *)(iVar12 + iVar50)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + iVar50)" ( (binary_expression "iVar12 + iVar50" identifier + identifier) )))) ;) (expression_statement "dVar41 = *(double *)(iVar10 + 0x43d0);" (assignment_expression "dVar41 = *(double *)(iVar10 + 0x43d0)" identifier = (pointer_expression "*(double *)(iVar10 + 0x43d0)" * (cast_expression "(double *)(iVar10 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x43d0)" ( (binary_expression "iVar10 + 0x43d0" identifier + number_literal) ))))) ;) (if_statement "if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }" if (parenthesized_expression "((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27)" ( (binary_expression "(pdVar16[1] - in_f28_29) - dVar41 < in_f26_27" (binary_expression "(pdVar16[1] - in_f28_29) - dVar41" (parenthesized_expression "(pdVar16[1] - in_f28_29)" ( (binary_expression "pdVar16[1] - in_f28_29" (subscript_expression "pdVar16[1]" identifier [ number_literal ]) - identifier) )) - identifier) < identifier) )) (compound_statement "{\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }" { (expression_statement "dStack_318 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dStack_318 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) (expression_statement "iVar31 = *(int *)(puVar36 + -0x7fcc);" (assignment_expression "iVar31 = *(int *)(puVar36 + -0x7fcc)" identifier = (pointer_expression "*(int *)(puVar36 + -0x7fcc)" * (cast_expression "(int *)(puVar36 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fcc)" ( (binary_expression "puVar36 + -0x7fcc" identifier + number_literal) ))))) ;) (expression_statement "dStack_300 = *(double *)(iVar31 + 0x2a8);" (assignment_expression "dStack_300 = *(double *)(iVar31 + 0x2a8)" identifier = (pointer_expression "*(double *)(iVar31 + 0x2a8)" * (cast_expression "(double *)(iVar31 + 0x2a8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0x2a8)" ( (binary_expression "iVar31 + 0x2a8" identifier + number_literal) ))))) ;) (expression_statement "piStack_304 = unaff_s4;" (assignment_expression "piStack_304 = unaff_s4" identifier = identifier) ;) (do_statement "do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);" do (compound_statement "{\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            }" { (expression_statement "iVar50 = iVar50 + 0x10;" (assignment_expression "iVar50 = iVar50 + 0x10" identifier = (binary_expression "iVar50 + 0x10" identifier + number_literal)) ;) (expression_statement "dVar40 = dStack_340;" (assignment_expression "dVar40 = dStack_340" identifier = identifier) ;) (if_statement "if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }" if (parenthesized_expression "(in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 )" ( (binary_expression "in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41" identifier <= (binary_expression "in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41" (binary_expression "in_f28_29 + *(double *)(iVar12 + iVar50 + 8)" identifier + (pointer_expression "*(double *)(iVar12 + iVar50 + 8)" * (cast_expression "(double *)(iVar12 + iVar50 + 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + iVar50 + 8)" ( (binary_expression "iVar12 + iVar50 + 8" (binary_expression "iVar12 + iVar50" identifier + identifier) + number_literal) ))))) + identifier)) )) (compound_statement "{\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }" { (if_statement "if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }" if (parenthesized_expression "(in_f26_27 != pdVar29[4])" ( (binary_expression "in_f26_27 != pdVar29[4]" identifier != (subscript_expression "pdVar29[4]" identifier [ number_literal ])) )) (compound_statement "{\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }" { (expression_statement "pdVar29[4] = in_f26_27;" (assignment_expression "pdVar29[4] = in_f26_27" (subscript_expression "pdVar29[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(int *)(pdVar29 + 7) = iVar28;" (assignment_expression "*(int *)(pdVar29 + 7) = iVar28" (pointer_expression "*(int *)(pdVar29 + 7)" * (cast_expression "(int *)(pdVar29 + 7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar29 + 7)" ( (binary_expression "pdVar29 + 7" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "dVar44 = pdVar16[2] - *pdVar16;" (assignment_expression "dVar44 = pdVar16[2] - *pdVar16" identifier = (binary_expression "pdVar16[2] - *pdVar16" (subscript_expression "pdVar16[2]" identifier [ number_literal ]) - (pointer_expression "*pdVar16" * identifier))) ;) (expression_statement "dVar42 = pdVar16[3] - pdVar16[1];" (assignment_expression "dVar42 = pdVar16[3] - pdVar16[1]" identifier = (binary_expression "pdVar16[3] - pdVar16[1]" (subscript_expression "pdVar16[3]" identifier [ number_literal ]) - (subscript_expression "pdVar16[1]" identifier [ number_literal ]))) ;) (expression_statement "dVar47 = in_f22_23 - *pdVar16;" (assignment_expression "dVar47 = in_f22_23 - *pdVar16" identifier = (binary_expression "in_f22_23 - *pdVar16" identifier - (pointer_expression "*pdVar16" * identifier))) ;) (expression_statement "dVar40 = in_f26_27 - pdVar16[1];" (assignment_expression "dVar40 = in_f26_27 - pdVar16[1]" identifier = (binary_expression "in_f26_27 - pdVar16[1]" identifier - (subscript_expression "pdVar16[1]" identifier [ number_literal ]))) ;) (expression_statement "dVar45 = dVar44 * dVar47 + dVar42 * dVar40;" (assignment_expression "dVar45 = dVar44 * dVar47 + dVar42 * dVar40" identifier = (binary_expression "dVar44 * dVar47 + dVar42 * dVar40" (binary_expression "dVar44 * dVar47" identifier * identifier) + (binary_expression "dVar42 * dVar40" identifier * identifier))) ;) (if_statement "if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }" if (parenthesized_expression "(0.0 < dVar45)" ( (binary_expression "0.0 < dVar45" number_literal < identifier) )) (compound_statement "{\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }" { (expression_statement "dVar46 = dVar44 * dVar44 + dVar42 * dVar42;" (assignment_expression "dVar46 = dVar44 * dVar44 + dVar42 * dVar42" identifier = (binary_expression "dVar44 * dVar44 + dVar42 * dVar42" (binary_expression "dVar44 * dVar44" identifier * identifier) + (binary_expression "dVar42 * dVar42" identifier * identifier))) ;) (if_statement "if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }" if (parenthesized_expression "(dVar46 <= dVar45)" ( (binary_expression "dVar46 <= dVar45" identifier <= identifier) )) (compound_statement "{\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }" { (expression_statement "dVar47 = in_f22_23 - pdVar16[2];" (assignment_expression "dVar47 = in_f22_23 - pdVar16[2]" identifier = (binary_expression "in_f22_23 - pdVar16[2]" identifier - (subscript_expression "pdVar16[2]" identifier [ number_literal ]))) ;) (expression_statement "dVar40 = in_f26_27 - pdVar16[3];" (assignment_expression "dVar40 = in_f26_27 - pdVar16[3]" identifier = (binary_expression "in_f26_27 - pdVar16[3]" identifier - (subscript_expression "pdVar16[3]" identifier [ number_literal ]))) ;) (expression_statement "in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;" (assignment_expression "in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40" identifier = (binary_expression "dVar47 * dVar47 + dVar40 * dVar40" (binary_expression "dVar47 * dVar47" identifier * identifier) + (binary_expression "dVar40 * dVar40" identifier * identifier))) ;) }) (else_clause "else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }" else (compound_statement "{\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }" { (if_statement "if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }" if (parenthesized_expression "(*(double *)(iVar3 + 0x43c8) <= dVar46)" ( (binary_expression "*(double *)(iVar3 + 0x43c8) <= dVar46" (pointer_expression "*(double *)(iVar3 + 0x43c8)" * (cast_expression "(double *)(iVar3 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x43c8)" ( (binary_expression "iVar3 + 0x43c8" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }" { (expression_statement "dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;" (assignment_expression "dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46" identifier = (binary_expression "*(double *)(unaff_s7 + 0x4408) / dVar46" (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) )))) / identifier)) ;) }) (else_clause "else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }" else (compound_statement "{\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }" { (expression_statement "dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);" (assignment_expression "dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40)" identifier = (pointer_expression "*(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40)" * (cast_expression "(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + -0x7fd0) + 0x4a40)" ( (binary_expression "*(int *)(puVar36 + -0x7fd0) + 0x4a40" (pointer_expression "*(int *)(puVar36 + -0x7fd0)" * (cast_expression "(int *)(puVar36 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fd0)" ( (binary_expression "puVar36 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (expression_statement "in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);" (assignment_expression "in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8)" identifier = (binary_expression "(dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8)" (parenthesized_expression "(dVar44 * dVar40 - dVar42 * dVar47)" ( (binary_expression "dVar44 * dVar40 - dVar42 * dVar47" (binary_expression "dVar44 * dVar40" identifier * identifier) - (binary_expression "dVar42 * dVar47" identifier * identifier)) )) + (pointer_expression "*(double *)(iVar3 + 0x43c8)" * (cast_expression "(double *)(iVar3 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x43c8)" ( (binary_expression "iVar3 + 0x43c8" identifier + number_literal) )))))) ;) (expression_statement "in_f20_21 = in_f20_21 * dVar46 * in_f20_21;" (assignment_expression "in_f20_21 = in_f20_21 * dVar46 * in_f20_21" identifier = (binary_expression "in_f20_21 * dVar46 * in_f20_21" (binary_expression "in_f20_21 * dVar46" identifier * identifier) * identifier)) ;) }))) }) (else_clause "else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }" else (compound_statement "{\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }" { (expression_statement "in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;" (assignment_expression "in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40" identifier = (binary_expression "dVar47 * dVar47 + dVar40 * dVar40" (binary_expression "dVar47 * dVar47" identifier * identifier) + (binary_expression "dVar40 * dVar40" identifier * identifier))) ;) }))) (expression_statement "dVar40 = dStack_338;" (assignment_expression "dVar40 = dStack_338" identifier = identifier) ;) (if_statement "if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }" if (parenthesized_expression "(*(int *)((int)pdVar29 + 0x34) == 0)" ( (binary_expression "*(int *)((int)pdVar29 + 0x34) == 0" (pointer_expression "*(int *)((int)pdVar29 + 0x34)" * (cast_expression "(int *)((int)pdVar29 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + 0x34)" ( (binary_expression "(int)pdVar29 + 0x34" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }" { (if_statement "if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }" if (parenthesized_expression "(*(double *)(unaff_s7 + 0x4408) <= dStack_338)" ( (binary_expression "*(double *)(unaff_s7 + 0x4408) <= dStack_338" (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                                    uStack_348 = 0.0;\n                                  }" { (expression_statement "uStack_348 = 0.0;" (assignment_expression "uStack_348 = 0.0" identifier = number_literal) ;) }) (else_clause "else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }" else (compound_statement "{\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }" { (expression_statement "dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;" (assignment_expression "dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300" identifier = (binary_expression "in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300" (binary_expression "in_f28_29 + *(double *)(iVar10 + 0x43d0)" identifier + (pointer_expression "*(double *)(iVar10 + 0x43d0)" * (cast_expression "(double *)(iVar10 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x43d0)" ( (binary_expression "iVar10 + 0x43d0" identifier + number_literal) ))))) + identifier)) ;) (if_statement "if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }" if (parenthesized_expression "(in_f20_21 <= dVar47 * dVar47)" ( (binary_expression "in_f20_21 <= dVar47 * dVar47" identifier <= (binary_expression "dVar47 * dVar47" identifier * identifier)) )) (compound_statement "{\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }" { (expression_statement "dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);" (assignment_expression "dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8)" identifier = (binary_expression "(in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8)" (parenthesized_expression "(in_f28_29 - *(double *)(iVar10 + 0x43d0))" ( (binary_expression "in_f28_29 - *(double *)(iVar10 + 0x43d0)" identifier - (pointer_expression "*(double *)(iVar10 + 0x43d0)" * (cast_expression "(double *)(iVar10 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x43d0)" ( (binary_expression "iVar10 + 0x43d0" identifier + number_literal) ))))) )) + (pointer_expression "*(double *)(iVar31 + 0x2a8)" * (cast_expression "(double *)(iVar31 + 0x2a8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0x2a8)" ( (binary_expression "iVar31 + 0x2a8" identifier + number_literal) )))))) ;) (if_statement "if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }" if (parenthesized_expression "(dVar40 * dVar40 < in_f20_21)" ( (binary_expression "dVar40 * dVar40 < in_f20_21" (binary_expression "dVar40 * dVar40" identifier * identifier) < identifier) )) (compound_statement "{\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }" { (expression_statement "dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408)" identifier = (binary_expression "in_f20_21 - *(double *)(unaff_s7 + 0x4408)" identifier - (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) )))))) ;) (expression_statement "uStack_2ac = SUB84(dVar40,0);" (assignment_expression "uStack_2ac = SUB84(dVar40,0)" identifier = (call_expression "SUB84(dVar40,0)" identifier (argument_list "(dVar40,0)" ( identifier , number_literal )))) ;) (expression_statement "uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;" (assignment_expression "uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff" identifier = (binary_expression "(uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff" (call_expression "(uint)((ulonglong)dVar40 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)dVar40 >> 0x20)" ( (binary_expression "(ulonglong)dVar40 >> 0x20" (cast_expression "(ulonglong)dVar40" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & number_literal)) ;) (expression_statement "uStack_348 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "uStack_348 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) (if_statement "if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }" if (parenthesized_expression "((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0))" ( (binary_expression "(*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)" (parenthesized_expression "(*(double *)(iVar3 + 0x43c8) <= ABS(dVar40))" ( (binary_expression "*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)" (pointer_expression "*(double *)(iVar3 + 0x43c8)" * (cast_expression "(double *)(iVar3 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x43c8)" ( (binary_expression "iVar3 + 0x43c8" identifier + number_literal) )))) <= (call_expression "ABS(dVar40)" identifier (argument_list "(dVar40)" ( identifier )))) )) && (parenthesized_expression "(uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)" ( (comma_expression "uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0" (assignment_expression "uStack_348 = SQRT(in_f20_21)" identifier = (call_expression "SQRT(in_f20_21)" identifier (argument_list "(in_f20_21)" ( identifier )))) , (binary_expression "in_f20_21 < 0.0" identifier < number_literal)) ))) )) (compound_statement "{\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }" { (expression_statement "(**(code **)(puVar36 + -0x7418))(in_f20_21);" (call_expression "(**(code **)(puVar36 + -0x7418))(in_f20_21)" (parenthesized_expression "(**(code **)(puVar36 + -0x7418))" ( (pointer_expression "**(code **)(puVar36 + -0x7418)" * (pointer_expression "*(code **)(puVar36 + -0x7418)" * (cast_expression "(code **)(puVar36 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x7418)" ( (binary_expression "puVar36 + -0x7418" identifier + number_literal) ))))) )) (argument_list "(in_f20_21)" ( identifier ))) ;) (expression_statement "puVar36 = puStack_350;" (assignment_expression "puVar36 = puStack_350" identifier = identifier) ;) })) (expression_statement "dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);" (assignment_expression "dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8)" identifier = (binary_expression "((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8)" (parenthesized_expression "((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0))" ( (binary_expression "(uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)" (parenthesized_expression "(uStack_348 - in_f28_29)" ( (binary_expression "uStack_348 - in_f28_29" identifier - identifier) )) - (pointer_expression "*(double *)(iVar10 + 0x43d0)" * (cast_expression "(double *)(iVar10 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x43d0)" ( (binary_expression "iVar10 + 0x43d0" identifier + number_literal) ))))) )) - (pointer_expression "*(double *)(iVar31 + 0x2a8)" * (cast_expression "(double *)(iVar31 + 0x2a8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0x2a8)" ( (binary_expression "iVar31 + 0x2a8" identifier + number_literal) )))))) ;) (expression_statement "dVar40 = dVar40 * dVar40;" (assignment_expression "dVar40 = dVar40 * dVar40" identifier = (binary_expression "dVar40 * dVar40" identifier * identifier)) ;) (if_statement "if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }" if (parenthesized_expression "(dVar40 <= dStack_338)" ( (binary_expression "dVar40 <= dStack_338" identifier <= identifier) )) (compound_statement "{\n                                          dVar40 = dStack_338;\n                                        }" { (expression_statement "dVar40 = dStack_338;" (assignment_expression "dVar40 = dStack_338" identifier = identifier) ;) })) }) (else_clause "else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }" else (compound_statement "{\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }" { (expression_statement "uStack_348 = 0.0;" (assignment_expression "uStack_348 = 0.0" identifier = number_literal) ;) (expression_statement "dVar40 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dVar40 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) }))) }) (else_clause "else {\n                                      uStack_348 = 0.0;\n                                    }" else (compound_statement "{\n                                      uStack_348 = 0.0;\n                                    }" { (expression_statement "uStack_348 = 0.0;" (assignment_expression "uStack_348 = 0.0" identifier = number_literal) ;) }))) }))) }) (else_clause "else {\n                                  uStack_348 = 0.0;\n                                }" else (compound_statement "{\n                                  uStack_348 = 0.0;\n                                }" { (expression_statement "uStack_348 = 0.0;" (assignment_expression "uStack_348 = 0.0" identifier = number_literal) ;) }))) (expression_statement "dStack_338 = dVar40;" (assignment_expression "dStack_338 = dVar40" identifier = identifier) ;) (expression_statement "dVar40 = dStack_340;" (assignment_expression "dVar40 = dStack_340" identifier = identifier) ;) (if_statement "if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }" if (parenthesized_expression "(((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318))" ( (binary_expression "((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)" (parenthesized_expression "((iVar49 != 0) && (in_f20_21 <= dStack_320))" ( (binary_expression "(iVar49 != 0) && (in_f20_21 <= dStack_320)" (parenthesized_expression "(iVar49 != 0)" ( (binary_expression "iVar49 != 0" identifier != number_literal) )) && (parenthesized_expression "(in_f20_21 <= dStack_320)" ( (binary_expression "in_f20_21 <= dStack_320" identifier <= identifier) ))) )) && (parenthesized_expression "(dStack_340 < dStack_318)" ( (binary_expression "dStack_340 < dStack_318" identifier < identifier) ))) )) (compound_statement "{\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }" { (if_statement "if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }" if (parenthesized_expression "(0.0 < in_f20_21)" ( (binary_expression "0.0 < in_f20_21" number_literal < identifier) )) (compound_statement "{\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }" { (expression_statement "uStack_310 = uStack_348._0_4_ & 0x7fffffff;" (assignment_expression "uStack_310 = uStack_348._0_4_ & 0x7fffffff" identifier = (binary_expression "uStack_348._0_4_ & 0x7fffffff" (field_expression "uStack_348._0_4_" identifier . field_identifier) & number_literal)) ;) (expression_statement "uStack_30c = uStack_348._4_4_;" (assignment_expression "uStack_30c = uStack_348._4_4_" identifier = (field_expression "uStack_348._4_4_" identifier . field_identifier)) ;) (expression_statement "dVar40 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dVar40 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) (if_statement "if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }" if (parenthesized_expression "(ABS(uStack_348) < dStack_2b8)" ( (binary_expression "ABS(uStack_348) < dStack_2b8" (call_expression "ABS(uStack_348)" identifier (argument_list "(uStack_348)" ( identifier ))) < identifier) )) (compound_statement "{\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }" { (expression_statement "dVar40 = in_f20_21 - dVar40;" (assignment_expression "dVar40 = in_f20_21 - dVar40" identifier = (binary_expression "in_f20_21 - dVar40" identifier - identifier)) ;) (expression_statement "uStack_2c4 = SUB84(dVar40,0);" (assignment_expression "uStack_2c4 = SUB84(dVar40,0)" identifier = (call_expression "SUB84(dVar40,0)" identifier (argument_list "(dVar40,0)" ( identifier , number_literal )))) ;) (expression_statement "uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;" (assignment_expression "uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff" identifier = (binary_expression "(uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff" (call_expression "(uint)((ulonglong)dVar40 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)dVar40 >> 0x20)" ( (binary_expression "(ulonglong)dVar40 >> 0x20" (cast_expression "(ulonglong)dVar40" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & number_literal)) ;) (expression_statement "uStack_348 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "uStack_348 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) (if_statement "if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }" if (parenthesized_expression "((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21))" ( (binary_expression "(ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)" (parenthesized_expression "(ABS(dVar40) < *(double *)(iVar3 + 0x43c8))" ( (binary_expression "ABS(dVar40) < *(double *)(iVar3 + 0x43c8)" (call_expression "ABS(dVar40)" identifier (argument_list "(dVar40)" ( identifier ))) < (pointer_expression "*(double *)(iVar3 + 0x43c8)" * (cast_expression "(double *)(iVar3 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x43c8)" ( (binary_expression "iVar3 + 0x43c8" identifier + number_literal) ))))) )) || (parenthesized_expression "(uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)" ( (comma_expression "uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21" (assignment_expression "uStack_348 = SQRT(in_f20_21)" identifier = (call_expression "SQRT(in_f20_21)" identifier (argument_list "(in_f20_21)" ( identifier )))) , (binary_expression "0.0 <= in_f20_21" number_literal <= identifier)) ))) )) (compound_statement "{\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }" { (expression_statement "dVar40 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dVar40 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }" else (compound_statement "{\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }" { (expression_statement "(**(code **)(puVar36 + -0x7418))(in_f20_21);" (call_expression "(**(code **)(puVar36 + -0x7418))(in_f20_21)" (parenthesized_expression "(**(code **)(puVar36 + -0x7418))" ( (pointer_expression "**(code **)(puVar36 + -0x7418)" * (pointer_expression "*(code **)(puVar36 + -0x7418)" * (cast_expression "(code **)(puVar36 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x7418)" ( (binary_expression "puVar36 + -0x7418" identifier + number_literal) ))))) )) (argument_list "(in_f20_21)" ( identifier ))) ;) (expression_statement "dVar40 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dVar40 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) (expression_statement "puVar36 = puStack_350;" (assignment_expression "puVar36 = puStack_350" identifier = identifier) ;) }))) })) (expression_statement "dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);" (assignment_expression "dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40)" identifier = (binary_expression "(uStack_348 - dVar40) * (uStack_348 - dVar40)" (parenthesized_expression "(uStack_348 - dVar40)" ( (binary_expression "uStack_348 - dVar40" identifier - identifier) )) * (parenthesized_expression "(uStack_348 - dVar40)" ( (binary_expression "uStack_348 - dVar40" identifier - identifier) )))) ;) (if_statement "if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }" if (parenthesized_expression "(dVar40 <= dStack_340)" ( (binary_expression "dVar40 <= dStack_340" identifier <= identifier) )) (compound_statement "{\n                                      dVar40 = dStack_340;\n                                    }" { (expression_statement "dVar40 = dStack_340;" (assignment_expression "dVar40 = dStack_340" identifier = identifier) ;) })) }) (else_clause "else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }" else (compound_statement "{\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }" { (expression_statement "dVar40 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dVar40 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) }))) })) })) (expression_statement "dStack_340 = dVar40;" (assignment_expression "dStack_340 = dVar40" identifier = identifier) ;) (expression_statement "iVar28 = iVar28 + 1;" (assignment_expression "iVar28 = iVar28 + 1" identifier = (binary_expression "iVar28 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s4 = piStack_304;" (assignment_expression "unaff_s4 = piStack_304" identifier = identifier) ;) (expression_statement "in_f24_25 = dVar41;" (assignment_expression "in_f24_25 = dVar41" identifier = identifier) ;) (if_statement "if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;" if (parenthesized_expression "(*(int *)((int)pdVar29 + 0x2c) <= iVar28)" ( (binary_expression "*(int *)((int)pdVar29 + 0x2c) <= iVar28" (pointer_expression "*(int *)((int)pdVar29 + 0x2c)" * (cast_expression "(int *)((int)pdVar29 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + 0x2c)" ( (binary_expression "(int)pdVar29 + 0x2c" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) <= identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = *(int *)(pdVar29 + 5);" (assignment_expression "iVar12 = *(int *)(pdVar29 + 5)" identifier = (pointer_expression "*(int *)(pdVar29 + 5)" * (cast_expression "(int *)(pdVar29 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar29 + 5)" ( (binary_expression "pdVar29 + 5" identifier + number_literal) ))))) ;) (expression_statement "pdVar16 = (double *)(iVar12 + iVar50);" (assignment_expression "pdVar16 = (double *)(iVar12 + iVar50)" identifier = (cast_expression "(double *)(iVar12 + iVar50)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + iVar50)" ( (binary_expression "iVar12 + iVar50" identifier + identifier) )))) ;) }) while (parenthesized_expression "((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27)" ( (binary_expression "(pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27" (binary_expression "(pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0)" (parenthesized_expression "(pdVar16[1] - in_f28_29)" ( (binary_expression "pdVar16[1] - in_f28_29" (subscript_expression "pdVar16[1]" identifier [ number_literal ]) - identifier) )) - (pointer_expression "*(double *)(iVar10 + 0x43d0)" * (cast_expression "(double *)(iVar10 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x43d0)" ( (binary_expression "iVar10 + 0x43d0" identifier + number_literal) ))))) < identifier) )) ;) })) })) })) }) (else_clause "else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }" else (compound_statement "{\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }" { (if_statement "if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }" if (parenthesized_expression "(puVar13 <= param_1)" ( (binary_expression "puVar13 <= param_1" identifier <= identifier) )) (compound_statement "{\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }" { (expression_statement "iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);" (assignment_expression "iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c)" identifier = (call_expression "(**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c)" (parenthesized_expression "(**(code **)(puVar36 + -0x7290))" ( (pointer_expression "**(code **)(puVar36 + -0x7290)" * (pointer_expression "*(code **)(puVar36 + -0x7290)" * (cast_expression "(code **)(puVar36 + -0x7290)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x7290)" ( (binary_expression "puVar36 + -0x7290" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c)" ( (binary_expression "*(int *)(puVar36 + -0x7fcc) + 0x69fc" (pointer_expression "*(int *)(puVar36 + -0x7fcc)" * (cast_expression "(int *)(puVar36 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fcc)" ( (binary_expression "puVar36 + -0x7fcc" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar36 + -0x7fcc) + 0x69c0" (pointer_expression "*(int *)(puVar36 + -0x7fcc)" * (cast_expression "(int *)(puVar36 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fcc)" ( (binary_expression "puVar36 + -0x7fcc" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar36 + -0x7fcc) + 0x773c" (pointer_expression "*(int *)(puVar36 + -0x7fcc)" * (cast_expression "(int *)(puVar36 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fcc)" ( (binary_expression "puVar36 + -0x7fcc" identifier + number_literal) )))) + number_literal) )))) ;) (return_statement "return iVar3;" return identifier ;) })) (expression_statement "iVar49 = *unaff_s4 - (int)pdStack_2ec;" (assignment_expression "iVar49 = *unaff_s4 - (int)pdStack_2ec" identifier = (binary_expression "*unaff_s4 - (int)pdStack_2ec" (pointer_expression "*unaff_s4" * identifier) - (cast_expression "(int)pdStack_2ec" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));" (assignment_expression "uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28))" identifier = (call_expression "(**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28))" (parenthesized_expression "(**(code **)(puVar36 + -0x78d8))" ( (pointer_expression "**(code **)(puVar36 + -0x78d8)" * (pointer_expression "*(code **)(puVar36 + -0x78d8)" * (cast_expression "(code **)(puVar36 + -0x78d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x78d8)" ( (binary_expression "puVar36 + -0x78d8" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)((int)pdVar29 + iVar49 + 0x28))" ( (pointer_expression "*(undefined4 *)((int)pdVar29 + iVar49 + 0x28)" * (cast_expression "(undefined4 *)((int)pdVar29 + iVar49 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + iVar49 + 0x28)" ( (binary_expression "(int)pdVar29 + iVar49 + 0x28" (binary_expression "(int)pdVar29 + iVar49" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) )))) ;) (expression_statement "*(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;" (assignment_expression "*(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4" (pointer_expression "*(undefined4 *)((int)pdVar29 + iVar49 + 0x28)" * (cast_expression "(undefined4 *)((int)pdVar29 + iVar49 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + iVar49 + 0x28)" ( (binary_expression "(int)pdVar29 + iVar49 + 0x28" (binary_expression "(int)pdVar29 + iVar49" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar13 = (undefined4 *)(unaff_s4[1] + -1);" (assignment_expression "puVar13 = (undefined4 *)(unaff_s4[1] + -1)" identifier = (cast_expression "(undefined4 *)(unaff_s4[1] + -1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s4[1] + -1)" ( (binary_expression "unaff_s4[1] + -1" (subscript_expression "unaff_s4[1]" identifier [ number_literal ]) + number_literal) )))) ;) (expression_statement "unaff_s4[1] = (int)puVar13;" (assignment_expression "unaff_s4[1] = (int)puVar13" (subscript_expression "unaff_s4[1]" identifier [ number_literal ]) = (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar36 = puStack_350;" (assignment_expression "puVar36 = puStack_350" identifier = identifier) ;) (if_statement "if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }" if (parenthesized_expression "(param_1 < puVar13)" ( (binary_expression "param_1 < puVar13" identifier < identifier) )) (compound_statement "{\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }" { (expression_statement "(**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);" (call_expression "(**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40)" (parenthesized_expression "(**(code **)(puStack_350 + -0x7948))" ( (pointer_expression "**(code **)(puStack_350 + -0x7948)" * (pointer_expression "*(code **)(puStack_350 + -0x7948)" * (cast_expression "(code **)(puStack_350 + -0x7948)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_350 + -0x7948)" ( (binary_expression "puStack_350 + -0x7948" identifier + number_literal) ))))) )) (argument_list "((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40)" ( (cast_expression "(undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16))" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + (*unaff_s4 - (int)pdVar16))" ( (binary_expression "(int)pdVar29 + (*unaff_s4 - (int)pdVar16)" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(*unaff_s4 - (int)pdVar16)" ( (binary_expression "*unaff_s4 - (int)pdVar16" (pointer_expression "*unaff_s4" * identifier) - (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) , (binary_expression "*unaff_s4 + ((int)param_1 + 1) * 0x40" (pointer_expression "*unaff_s4" * identifier) + (binary_expression "((int)param_1 + 1) * 0x40" (parenthesized_expression "((int)param_1 + 1)" ( (binary_expression "(int)param_1 + 1" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) * number_literal)) , (binary_expression "((int)puVar13 - (int)param_1) * 0x40" (parenthesized_expression "((int)puVar13 - (int)param_1)" ( (binary_expression "(int)puVar13 - (int)param_1" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal) ))) ;) (expression_statement "puVar36 = puStack_350;" (assignment_expression "puVar36 = puStack_350" identifier = identifier) ;) })) }))) (expression_statement "param_1 = (undefined4 *)((int)param_1 + 1);" (assignment_expression "param_1 = (undefined4 *)((int)param_1 + 1)" identifier = (cast_expression "(undefined4 *)((int)param_1 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 1)" ( (binary_expression "(int)param_1 + 1" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "unaff_s3 = pdVar29 + 8;" (assignment_expression "unaff_s3 = pdVar29 + 8" identifier = (binary_expression "pdVar29 + 8" identifier + number_literal)) ;) (expression_statement "puVar13 = (undefined4 *)unaff_s4[1];" (assignment_expression "puVar13 = (undefined4 *)unaff_s4[1]" identifier = (cast_expression "(undefined4 *)unaff_s4[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "unaff_s4[1]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27))" ( (binary_expression "((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27)" (parenthesized_expression "((int)param_1 < (int)puVar13)" ( (binary_expression "(int)param_1 < (int)puVar13" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27)" ( (comma_expression "pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27" (assignment_expression "pdVar16 = pdVar29 + 9" identifier = (binary_expression "pdVar29 + 9" identifier + number_literal)) , (comma_expression "pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27" (assignment_expression "pdVar29 = unaff_s3" identifier = identifier) , (binary_expression "(*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27" (binary_expression "(*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0)" (parenthesized_expression "(*pdVar16 - in_f28_29)" ( (binary_expression "*pdVar16 - in_f28_29" (pointer_expression "*pdVar16" * identifier) - identifier) )) - (pointer_expression "*(double *)(iVar10 + 0x43d0)" * (cast_expression "(double *)(iVar10 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x43d0)" ( (binary_expression "iVar10 + 0x43d0" identifier + number_literal) ))))) < identifier))) ))) )) ;) (expression_statement "pdVar16 = pdStack_2d8;" (assignment_expression "pdVar16 = pdStack_2d8" identifier = identifier) ;) (if_statement "if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }" if (parenthesized_expression "(iStack_2f4 != 0)" ( (binary_expression "iStack_2f4 != 0" identifier != number_literal) )) (compound_statement "{\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }" { (if_statement "if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;" if (parenthesized_expression "(dStack_340 < *(double *)(unaff_s7 + 0x4408))" ( (binary_expression "dStack_340 < *(double *)(unaff_s7 + 0x4408)" identifier < (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) )) (goto_statement "goto LAB_000a4f34;" goto statement_identifier ;)) (goto_statement "goto LAB_000a4528;" goto statement_identifier ;) })) (if_statement "if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }" if (parenthesized_expression "(*(int *)(iStack_324 + 0x238) == 0)" ( (binary_expression "*(int *)(iStack_324 + 0x238) == 0" (pointer_expression "*(int *)(iStack_324 + 0x238)" * (cast_expression "(int *)(iStack_324 + 0x238)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x238)" ( (binary_expression "iStack_324 + 0x238" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }" { (expression_statement "dStack_340 = 0.0;" (assignment_expression "dStack_340 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_000a4ec0;" goto statement_identifier ;) })) (expression_statement "dStack_340 = 0.0;" (assignment_expression "dStack_340 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_000a46d8;" goto statement_identifier ;) })) (if_statement "if (iStack_2f4 == 0) goto LAB_000a4f94;" if (parenthesized_expression "(iStack_2f4 == 0)" ( (binary_expression "iStack_2f4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000a4f94;" goto statement_identifier ;)) (expression_statement "pdVar29 = (double *)*unaff_s4;" (assignment_expression "pdVar29 = (double *)*unaff_s4" identifier = (cast_expression "(double *)*unaff_s4" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*unaff_s4" * identifier))) ;) (expression_statement "dStack_338 = 0.0;" (assignment_expression "dStack_338 = 0.0" identifier = number_literal) ;) (expression_statement "dStack_340 = 0.0;" (assignment_expression "dStack_340 = 0.0" identifier = number_literal) ;) (expression_statement "dVar39 = in_f30_31;" (assignment_expression "dVar39 = in_f30_31" identifier = identifier) ;) (labeled_statement "LAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;" statement_identifier : (expression_statement "dVar41 = (double)iStack_2f0;" (assignment_expression "dVar41 = (double)iStack_2f0" identifier = (cast_expression "(double)iStack_2f0" ( (type_descriptor "double" primitive_type) ) identifier)) ;)) (expression_statement "puVar21 = (undefined4 *)0x0;" (assignment_expression "puVar21 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }" if (parenthesized_expression "(pdVar29[1] < dVar41)" ( (binary_expression "pdVar29[1] < dVar41" (subscript_expression "pdVar29[1]" identifier [ number_literal ]) < identifier) )) (compound_statement "{\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }" { (expression_statement "uVar26 = 0;" (assignment_expression "uVar26 = 0" identifier = number_literal) ;) (do_statement "do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));" do (compound_statement "{\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  }" { (if_statement "if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }" if (parenthesized_expression "((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40))" ( (binary_expression "(dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)" (parenthesized_expression "(dVar41 <= pdVar29[3])" ( (binary_expression "dVar41 <= pdVar29[3]" identifier <= (subscript_expression "pdVar29[3]" identifier [ number_literal ])) )) && (parenthesized_expression "(dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)" ( (comma_expression "dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40" (assignment_expression "dVar40 = (double)(int)uStack_328" identifier = (cast_expression "(double)(int)uStack_328" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)uStack_328" ( (type_descriptor "int" primitive_type) ) identifier))) , (binary_expression "*pdVar29 < dVar40" (pointer_expression "*pdVar29" * identifier) < identifier)) ))) )) (compound_statement "{\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }" { (expression_statement "iVar10 = -1;" (assignment_expression "iVar10 = -1" identifier = number_literal) ;) (if_statement "if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }" if (parenthesized_expression "(dVar40 <= pdVar29[2])" ( (binary_expression "dVar40 <= pdVar29[2]" identifier <= (subscript_expression "pdVar29[2]" identifier [ number_literal ])) )) (compound_statement "{\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }" { (expression_statement "iVar10 = *(int *)(pdVar29 + 7);" (assignment_expression "iVar10 = *(int *)(pdVar29 + 7)" identifier = (pointer_expression "*(int *)(pdVar29 + 7)" * (cast_expression "(int *)(pdVar29 + 7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar29 + 7)" ( (binary_expression "pdVar29 + 7" identifier + number_literal) ))))) ;) (expression_statement "dVar47 = (double)iVar10;" (assignment_expression "dVar47 = (double)iVar10" identifier = (cast_expression "(double)iVar10" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }" if (parenthesized_expression "(iVar10 < 0)" ( (binary_expression "iVar10 < 0" identifier < number_literal) )) (compound_statement "{\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }" { (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8)" identifier = (binary_expression "dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8)" identifier + (pointer_expression "*(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8)" * (cast_expression "(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + -0x7fd0) + 0x43e8)" ( (binary_expression "*(int *)(puVar36 + -0x7fd0) + 0x43e8" (pointer_expression "*(int *)(puVar36 + -0x7fd0)" * (cast_expression "(int *)(puVar36 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fd0)" ( (binary_expression "puVar36 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) })) (if_statement "if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }" if (parenthesized_expression "(dVar47 <= *(double *)(unaff_s7 + 0x4408))" ( (binary_expression "dVar47 <= *(double *)(unaff_s7 + 0x4408)" identifier <= (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) )) (compound_statement "{\n                          iVar10 = 1;\n                        }" { (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) })) (expression_statement "iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;" (assignment_expression "iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1" identifier = (binary_expression "*(int *)((int)pdVar29 + 0x2c) + -1" (pointer_expression "*(int *)((int)pdVar29 + 0x2c)" * (cast_expression "(int *)((int)pdVar29 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + 0x2c)" ( (binary_expression "(int)pdVar29 + 0x2c" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal)) ;) (if_statement "if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }" if (parenthesized_expression "(iVar10 < iVar49)" ( (binary_expression "iVar10 < iVar49" identifier < identifier) )) (compound_statement "{\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }" { (expression_statement "iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;" (assignment_expression "iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10" identifier = (binary_expression "*(int *)(pdVar29 + 5) + iVar10 * 0x10" (pointer_expression "*(int *)(pdVar29 + 5)" * (cast_expression "(int *)(pdVar29 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar29 + 5)" ( (binary_expression "pdVar29 + 5" identifier + number_literal) )))) + (binary_expression "iVar10 * 0x10" identifier * number_literal))) ;) (expression_statement "dVar47 = *(double *)(iVar28 + 8);" (assignment_expression "dVar47 = *(double *)(iVar28 + 8)" identifier = (pointer_expression "*(double *)(iVar28 + 8)" * (cast_expression "(double *)(iVar28 + 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + 8)" ( (binary_expression "iVar28 + 8" identifier + number_literal) ))))) ;) (while_statement "while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }" while (parenthesized_expression "(dVar47 < dVar41)" ( (binary_expression "dVar47 < dVar41" identifier < identifier) )) (compound_statement "{\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }" { (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (if_statement "if (iVar49 <= iVar10) break;" if (parenthesized_expression "(iVar49 <= iVar10)" ( (binary_expression "iVar49 <= iVar10" identifier <= identifier) )) (break_statement "break;" break ;)) (expression_statement "dVar47 = *(double *)(iVar28 + 0x18);" (assignment_expression "dVar47 = *(double *)(iVar28 + 0x18)" identifier = (pointer_expression "*(double *)(iVar28 + 0x18)" * (cast_expression "(double *)(iVar28 + 0x18)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + 0x18)" ( (binary_expression "iVar28 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "iVar28 = iVar28 + 0x10;" (assignment_expression "iVar28 = iVar28 + 0x10" identifier = (binary_expression "iVar28 + 0x10" identifier + number_literal)) ;) })) })) (expression_statement "pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);" (assignment_expression "pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10)" identifier = (cast_expression "(double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10)" ( (binary_expression "*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10" (pointer_expression "*(int *)(pdVar29 + 5)" * (cast_expression "(int *)(pdVar29 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar29 + 5)" ( (binary_expression "pdVar29 + 5" identifier + number_literal) )))) + (binary_expression "(iVar10 + 0xfffffff) * 0x10" (parenthesized_expression "(iVar10 + 0xfffffff)" ( (binary_expression "iVar10 + 0xfffffff" identifier + number_literal) )) * number_literal)) )))) ;) (expression_statement "iVar10 = -1;" (assignment_expression "iVar10 = -1" identifier = number_literal) ;) (if_statement "if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }" if (parenthesized_expression "((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5))" ( (binary_expression "(pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)" (binary_expression "(pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1])" (parenthesized_expression "(pdVar5[2] - *pdVar5)" ( (binary_expression "pdVar5[2] - *pdVar5" (subscript_expression "pdVar5[2]" identifier [ number_literal ]) - (pointer_expression "*pdVar5" * identifier)) )) * (parenthesized_expression "(dVar41 - pdVar5[1])" ( (binary_expression "dVar41 - pdVar5[1]" identifier - (subscript_expression "pdVar5[1]" identifier [ number_literal ])) ))) <= (binary_expression "(pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)" (parenthesized_expression "(pdVar5[3] - pdVar5[1])" ( (binary_expression "pdVar5[3] - pdVar5[1]" (subscript_expression "pdVar5[3]" identifier [ number_literal ]) - (subscript_expression "pdVar5[1]" identifier [ number_literal ])) )) * (parenthesized_expression "(dVar40 - *pdVar5)" ( (binary_expression "dVar40 - *pdVar5" identifier - (pointer_expression "*pdVar5" * identifier)) )))) )) (compound_statement "{\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }" { (if_statement "if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }" if (parenthesized_expression "(*(int *)(pdVar29 + 6) != 0)" ( (binary_expression "*(int *)(pdVar29 + 6) != 0" (pointer_expression "*(int *)(pdVar29 + 6)" * (cast_expression "(int *)(pdVar29 + 6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar29 + 6)" ( (binary_expression "pdVar29 + 6" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                            iVar10 = 1;\n                          }" { (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) })) (expression_statement "uVar26 = uVar26 + iVar10;" (assignment_expression "uVar26 = uVar26 + iVar10" identifier = (binary_expression "uVar26 + iVar10" identifier + identifier)) ;) })) }) (else_clause "else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }" else (compound_statement "{\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }" { (if_statement "if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }" if (parenthesized_expression "(*(int *)(pdVar29 + 6) != 0)" ( (binary_expression "*(int *)(pdVar29 + 6) != 0" (pointer_expression "*(int *)(pdVar29 + 6)" * (cast_expression "(int *)(pdVar29 + 6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar29 + 6)" ( (binary_expression "pdVar29 + 6" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                          iVar10 = 1;\n                        }" { (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) })) (expression_statement "uVar26 = uVar26 + iVar10;" (assignment_expression "uVar26 = uVar26 + iVar10" identifier = (binary_expression "uVar26 + iVar10" identifier + identifier)) ;) }))) })) (expression_statement "puVar21 = (undefined4 *)((int)puVar21 + 1);" (assignment_expression "puVar21 = (undefined4 *)((int)puVar21 + 1)" identifier = (cast_expression "(undefined4 *)((int)puVar21 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar21 + 1)" ( (binary_expression "(int)puVar21 + 1" (cast_expression "(int)puVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41))" ( (binary_expression "(puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41)" (parenthesized_expression "(puVar21 != puVar13)" ( (binary_expression "puVar21 != puVar13" identifier != identifier) )) && (parenthesized_expression "(pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41)" ( (comma_expression "pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41" (assignment_expression "pdVar5 = pdVar29 + 9" identifier = (binary_expression "pdVar29 + 9" identifier + number_literal)) , (comma_expression "pdVar29 = pdVar29 + 8, *pdVar5 < dVar41" (assignment_expression "pdVar29 = pdVar29 + 8" identifier = (binary_expression "pdVar29 + 8" identifier + number_literal)) , (binary_expression "*pdVar5 < dVar41" (pointer_expression "*pdVar5" * identifier) < identifier))) ))) )) ;) (if_statement "if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }" if (parenthesized_expression "(iStack_2c0 != 2)" ( (binary_expression "iStack_2c0 != 2" identifier != number_literal) )) (compound_statement "{\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }" { (if_statement "if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }" if (parenthesized_expression "((int)uVar26 < 0)" ( (binary_expression "(int)uVar26 < 0" (cast_expression "(int)uVar26" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                      uVar26 = -uVar26;\n                    }" { (expression_statement "uVar26 = -uVar26;" (assignment_expression "uVar26 = -uVar26" identifier = (unary_expression "-uVar26" - identifier)) ;) })) (if_statement "if ((uVar26 & 1) != 0) goto LAB_000a4528;" if (parenthesized_expression "((uVar26 & 1) != 0)" ( (binary_expression "(uVar26 & 1) != 0" (parenthesized_expression "(uVar26 & 1)" ( (binary_expression "uVar26 & 1" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000a4528;" goto statement_identifier ;)) (goto_statement "goto LAB_000a4684;" goto statement_identifier ;) })) (if_statement "if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }" if (parenthesized_expression "(uVar26 != 0)" ( (binary_expression "uVar26 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }" { (labeled_statement "LAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);" statement_identifier : (expression_statement "dStack_340 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dStack_340 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;)) (if_statement "if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;" if (parenthesized_expression "(*(int *)(iStack_324 + 0x238) == 0)" ( (binary_expression "*(int *)(iStack_324 + 0x238) == 0" (pointer_expression "*(int *)(iStack_324 + 0x238)" * (cast_expression "(int *)(iStack_324 + 0x238)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x238)" ( (binary_expression "iStack_324 + 0x238" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000a4ec0;" goto statement_identifier ;)) (goto_statement "goto LAB_000a46d8;" goto statement_identifier ;) })) (expression_statement "iVar10 = *(int *)(iStack_324 + 0x238);" (assignment_expression "iVar10 = *(int *)(iStack_324 + 0x238)" identifier = (pointer_expression "*(int *)(iStack_324 + 0x238)" * (cast_expression "(int *)(iStack_324 + 0x238)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x238)" ( (binary_expression "iStack_324 + 0x238" identifier + number_literal) ))))) ;) }) (else_clause "else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }" else (compound_statement "{\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }" { (labeled_statement "LAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);" statement_identifier : (expression_statement "iVar10 = *(int *)(iStack_324 + 0x238);" (assignment_expression "iVar10 = *(int *)(iStack_324 + 0x238)" identifier = (pointer_expression "*(int *)(iStack_324 + 0x238)" * (cast_expression "(int *)(iStack_324 + 0x238)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x238)" ( (binary_expression "iStack_324 + 0x238" identifier + number_literal) ))))) ;)) }))) (if_statement "if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }" { (expression_statement "iVar10 = *(int *)(puVar36 + -0x7fd0);" (assignment_expression "iVar10 = *(int *)(puVar36 + -0x7fd0)" identifier = (pointer_expression "*(int *)(puVar36 + -0x7fd0)" * (cast_expression "(int *)(puVar36 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fd0)" ( (binary_expression "puVar36 + -0x7fd0" identifier + number_literal) ))))) ;) (expression_statement "bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);" (assignment_expression "bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0)" identifier = (binary_expression "dStack_340 <= *(double *)(iVar10 + 0x43d0)" identifier <= (pointer_expression "*(double *)(iVar10 + 0x43d0)" * (cast_expression "(double *)(iVar10 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x43d0)" ( (binary_expression "iVar10 + 0x43d0" identifier + number_literal) )))))) ;) (expression_statement "dStack_340 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dStack_340 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) (if_statement "if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }" { (expression_statement "dStack_340 = 0.0;" (assignment_expression "dStack_340 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_000a4ec0;" goto statement_identifier ;) })) (labeled_statement "LAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);" statement_identifier : (expression_statement "bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);" (assignment_expression "bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0)" identifier = (binary_expression "dStack_338 <= *(double *)(iVar10 + 0x43d0)" identifier <= (pointer_expression "*(double *)(iVar10 + 0x43d0)" * (cast_expression "(double *)(iVar10 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x43d0)" ( (binary_expression "iVar10 + 0x43d0" identifier + number_literal) )))))) ;)) (expression_statement "dStack_338 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dStack_338 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) (if_statement "if (bVar1) {\n                    dStack_338 = 0.0;\n                  }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                    dStack_338 = 0.0;\n                  }" { (expression_statement "dStack_338 = 0.0;" (assignment_expression "dStack_338 = 0.0" identifier = number_literal) ;) })) })) }))) (labeled_statement "LAB_000a46d8:\n              uVar26 = uStack_2f8;" statement_identifier : (expression_statement "uVar26 = uStack_2f8;" (assignment_expression "uVar26 = uStack_2f8" identifier = identifier) ;)) (expression_statement "iVar28 = uStack_328 - uStack_2d4;" (assignment_expression "iVar28 = uStack_328 - uStack_2d4" identifier = (binary_expression "uStack_328 - uStack_2d4" identifier - identifier)) ;) (expression_statement "iVar10 = *(int *)(iStack_324 + 0x1a8);" (assignment_expression "iVar10 = *(int *)(iStack_324 + 0x1a8)" identifier = (pointer_expression "*(int *)(iStack_324 + 0x1a8)" * (cast_expression "(int *)(iStack_324 + 0x1a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x1a8)" ( (binary_expression "iStack_324 + 0x1a8" identifier + number_literal) ))))) ;) (if_statement "if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }" { (expression_statement "puVar13 = (undefined4 *)(iStack_324 + 0x48);" (assignment_expression "puVar13 = (undefined4 *)(iStack_324 + 0x48)" identifier = (cast_expression "(undefined4 *)(iStack_324 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x48)" ( (binary_expression "iStack_324 + 0x48" identifier + number_literal) )))) ;) (expression_statement "puVar21 = auStack_298;" (assignment_expression "puVar21 = auStack_298" identifier = identifier) ;) (do_statement "do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));" do (compound_statement "{\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                }" { (expression_statement "puVar15 = puVar21;" (assignment_expression "puVar15 = puVar21" identifier = identifier) ;) (expression_statement "puVar9 = puVar13;" (assignment_expression "puVar9 = puVar13" identifier = identifier) ;) (expression_statement "uVar27 = puVar9[1];" (assignment_expression "uVar27 = puVar9[1]" identifier = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "uVar25 = puVar9[2];" (assignment_expression "uVar25 = puVar9[2]" identifier = (subscript_expression "puVar9[2]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = puVar9[3];" (assignment_expression "uVar4 = puVar9[3]" identifier = (subscript_expression "puVar9[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar15 = *puVar9;" (assignment_expression "*puVar15 = *puVar9" (pointer_expression "*puVar15" * identifier) = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar15[1] = uVar27;" (assignment_expression "puVar15[1] = uVar27" (subscript_expression "puVar15[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[2] = uVar25;" (assignment_expression "puVar15[2] = uVar25" (subscript_expression "puVar15[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[3] = uVar4;" (assignment_expression "puVar15[3] = uVar4" (subscript_expression "puVar15[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13 = puVar9 + 4;" (assignment_expression "puVar13 = puVar9 + 4" identifier = (binary_expression "puVar9 + 4" identifier + number_literal)) ;) (expression_statement "puVar21 = puVar15 + 4;" (assignment_expression "puVar21 = puVar15 + 4" identifier = (binary_expression "puVar15 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar13 != (undefined4 *)(iStack_324 + 0x98))" ( (binary_expression "puVar13 != (undefined4 *)(iStack_324 + 0x98)" identifier != (cast_expression "(undefined4 *)(iStack_324 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x98)" ( (binary_expression "iStack_324 + 0x98" identifier + number_literal) )))) )) ;) (expression_statement "uVar4 = puVar9[5];" (assignment_expression "uVar4 = puVar9[5]" identifier = (subscript_expression "puVar9[5]" identifier [ number_literal ])) ;) (expression_statement "puVar15[4] = *puVar13;" (assignment_expression "puVar15[4] = *puVar13" (subscript_expression "puVar15[4]" identifier [ number_literal ]) = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "puVar15[5] = uVar4;" (assignment_expression "puVar15[5] = uVar4" (subscript_expression "puVar15[5]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }" else (compound_statement "{\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }" { (expression_statement "uStack_354 = uStack_2d0;" (assignment_expression "uStack_354 = uStack_2d0" identifier = identifier) ;) (expression_statement "puStack_358 = auStack_298;" (assignment_expression "puStack_358 = auStack_298" identifier = identifier) ;) (expression_statement "(**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));" (call_expression "(**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c))" (parenthesized_expression "(**(code **)(puVar36 + -0x747c))" ( (pointer_expression "**(code **)(puVar36 + -0x747c)" * (pointer_expression "*(code **)(puVar36 + -0x747c)" * (cast_expression "(code **)(puVar36 + -0x747c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x747c)" ( (binary_expression "puVar36 + -0x747c" identifier + number_literal) ))))) )) (argument_list "(iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c))" ( identifier , number_literal , (binary_expression "iVar28 + *(int *)(iVar10 + 0x298)" identifier + (pointer_expression "*(int *)(iVar10 + 0x298)" * (cast_expression "(int *)(iVar10 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x298)" ( (binary_expression "iVar10 + 0x298" identifier + number_literal) ))))) , (binary_expression "uStack_2f8 + *(int *)(iVar10 + 0x29c)" identifier + (pointer_expression "*(int *)(iVar10 + 0x29c)" * (cast_expression "(int *)(iVar10 + 0x29c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x29c)" ( (binary_expression "iVar10 + 0x29c" identifier + number_literal) ))))) ))) ;) (expression_statement "uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);" (assignment_expression "uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c)" identifier = (pointer_expression "*(undefined4 *)(iStack_324 + 0x39c)" * (cast_expression "(undefined4 *)(iStack_324 + 0x39c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x39c)" ( (binary_expression "iStack_324 + 0x39c" identifier + number_literal) ))))) ;) (expression_statement "pdVar29 = (double *)(iStack_324 + 0x398);" (assignment_expression "pdVar29 = (double *)(iStack_324 + 0x398)" identifier = (cast_expression "(double *)(iStack_324 + 0x398)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x398)" ( (binary_expression "iStack_324 + 0x398" identifier + number_literal) )))) ;) (expression_statement "uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;" (assignment_expression "uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff" identifier = (binary_expression "*(uint *)pdVar29 & 0x7fffffff" (pointer_expression "*(uint *)pdVar29" * (cast_expression "(uint *)pdVar29" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal)) ;) (expression_statement "puVar36 = puStack_350;" (assignment_expression "puVar36 = puStack_350" identifier = identifier) ;) (if_statement "if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }" if (parenthesized_expression "(*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29))" ( (binary_expression "*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)" (pointer_expression "*(double *)(iVar3 + 0x43c8)" * (cast_expression "(double *)(iVar3 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x43c8)" ( (binary_expression "iVar3 + 0x43c8" identifier + number_literal) )))) <= (call_expression "ABS(*pdVar29)" identifier (argument_list "(*pdVar29)" ( (pointer_expression "*pdVar29" * identifier) )))) )) (compound_statement "{\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }" { (expression_statement "dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);" (assignment_expression "dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" identifier = (binary_expression "dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" (binary_expression "dStack_250 *\n                               *pdVar29" identifier * (pointer_expression "*pdVar29" * identifier)) * (pointer_expression "*(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" * (cast_expression "(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" ( (binary_expression "*(int *)(puStack_350 + -0x7fd0) + 0x4410" (pointer_expression "*(int *)(puStack_350 + -0x7fd0)" * (cast_expression "(int *)(puStack_350 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_350 + -0x7fd0)" ( (binary_expression "puStack_350 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) })) }))) (if_statement "if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }" if (parenthesized_expression "(*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0)" ( (binary_expression "*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0" (pointer_expression "*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34)" * (cast_expression "(int *)(*(int *)(pdVar16 + 0x5a) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar16 + 0x5a) + 0x34)" ( (binary_expression "*(int *)(pdVar16 + 0x5a) + 0x34" (pointer_expression "*(int *)(pdVar16 + 0x5a)" * (cast_expression "(int *)(pdVar16 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x5a)" ( (binary_expression "pdVar16 + 0x5a" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }" { (expression_statement "fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);" (assignment_expression "fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8)" identifier = (pointer_expression "*(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8)" * (cast_expression "(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + -0x7fd0) + 0x4aa8)" ( (binary_expression "*(int *)(puVar36 + -0x7fd0) + 0x4aa8" (pointer_expression "*(int *)(puVar36 + -0x7fd0)" * (cast_expression "(int *)(puVar36 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fd0)" ( (binary_expression "puVar36 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }" else (compound_statement "{\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }" { (expression_statement "fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);" (assignment_expression "fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4)" identifier = (pointer_expression "*(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4)" * (cast_expression "(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4)" ( (binary_expression "iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4" identifier + (binary_expression "*(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4" (pointer_expression "*(int *)(*(int *)(pdVar16 + 0x5a) + 0x38)" * (cast_expression "(int *)(*(int *)(pdVar16 + 0x5a) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar16 + 0x5a) + 0x38)" ( (binary_expression "*(int *)(pdVar16 + 0x5a) + 0x38" (pointer_expression "*(int *)(pdVar16 + 0x5a)" * (cast_expression "(int *)(pdVar16 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x5a)" ( (binary_expression "pdVar16 + 0x5a" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) }))) (expression_statement "dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);" (assignment_expression "dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" identifier = (binary_expression "dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" (binary_expression "dStack_340 * dStack_250" identifier * identifier) * (pointer_expression "*(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" * (cast_expression "(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + -0x7fd0) + 0x4410)" ( (binary_expression "*(int *)(puVar36 + -0x7fd0) + 0x4410" (pointer_expression "*(int *)(puVar36 + -0x7fd0)" * (cast_expression "(int *)(puVar36 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fd0)" ( (binary_expression "puVar36 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);" (assignment_expression "dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" identifier = (binary_expression "(double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" (cast_expression "(double)fVar43" ( (type_descriptor "double" primitive_type) ) identifier) * (pointer_expression "*(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" * (cast_expression "(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + -0x7fd0) + 0x4410)" ( (binary_expression "*(int *)(puVar36 + -0x7fd0) + 0x4410" (pointer_expression "*(int *)(puVar36 + -0x7fd0)" * (cast_expression "(int *)(puVar36 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fd0)" ( (binary_expression "puVar36 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;" (assignment_expression "dVar41 = (dVar41 + dVar40) - dVar41 * dVar40" identifier = (binary_expression "(dVar41 + dVar40) - dVar41 * dVar40" (parenthesized_expression "(dVar41 + dVar40)" ( (binary_expression "dVar41 + dVar40" identifier + identifier) )) - (binary_expression "dVar41 * dVar40" identifier * identifier))) ;) (expression_statement "in_f30_31 = dVar39;" (assignment_expression "in_f30_31 = dVar39" identifier = identifier) ;) (if_statement "if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }" if (parenthesized_expression "(0 < *(int *)(pdVar16 + 0x58))" ( (binary_expression "0 < *(int *)(pdVar16 + 0x58)" number_literal < (pointer_expression "*(int *)(pdVar16 + 0x58)" * (cast_expression "(int *)(pdVar16 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x58)" ( (binary_expression "pdVar16 + 0x58" identifier + number_literal) ))))) )) (compound_statement "{\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }" { (expression_statement "iVar49 = 0;" (assignment_expression "iVar49 = 0" identifier = number_literal) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "in_f26_27 = 0.0;" (assignment_expression "in_f26_27 = 0.0" identifier = number_literal) ;) (expression_statement "in_f20_21 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "in_f20_21 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) (do_statement "do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));" do (compound_statement "{\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                }" { (expression_statement "uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);" (assignment_expression "uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49)" identifier = (pointer_expression "*(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49)" * (cast_expression "(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar16 + 0x5a) + iVar49)" ( (binary_expression "*(int *)(pdVar16 + 0x5a) + iVar49" (pointer_expression "*(int *)(pdVar16 + 0x5a)" * (cast_expression "(int *)(pdVar16 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x5a)" ( (binary_expression "pdVar16 + 0x5a" identifier + number_literal) )))) + identifier) ))))) ;) (expression_statement "uStack_348 = dVar41;" (assignment_expression "uStack_348 = dVar41" identifier = identifier) ;) (if_statement "if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }" if (parenthesized_expression "((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5))" ( (binary_expression "(*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)" (parenthesized_expression "(*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0)" ( (binary_expression "*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0" (pointer_expression "*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4)" * (cast_expression "(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4)" ( (binary_expression "*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4" (binary_expression "*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc" (pointer_expression "*(int *)(pdVar16 + 0x5a)" * (cast_expression "(int *)(pdVar16 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x5a)" ( (binary_expression "pdVar16 + 0x5a" identifier + number_literal) )))) + (binary_expression "uVar8 * 0xc" identifier * number_literal)) + number_literal) )))) != number_literal) )) && (parenthesized_expression "(uVar8 < 5)" ( (binary_expression "uVar8 < 5" identifier < number_literal) ))) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }" { comment comment (expression_statement "iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;" (assignment_expression "iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()" identifier = (call_expression "(*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()" (parenthesized_expression "(*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))" ( (pointer_expression "*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4))" * (cast_expression "(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4))" ( (binary_expression "puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)" * (cast_expression "(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)" ( (binary_expression "*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4" (binary_expression "*(int *)(puVar36 + -0x7fcc) + 0x7370" (pointer_expression "*(int *)(puVar36 + -0x7fcc)" * (cast_expression "(int *)(puVar36 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fcc)" ( (binary_expression "puVar36 + -0x7fcc" identifier + number_literal) )))) + number_literal) + (binary_expression "uVar8 * 4" identifier * number_literal)) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar3;" return identifier ;) })) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "iVar49 = iVar49 + 0xc;" (assignment_expression "iVar49 = iVar49 + 0xc" identifier = (binary_expression "iVar49 + 0xc" identifier + number_literal)) ;) (expression_statement "in_f22_23 = in_f20_21;" (assignment_expression "in_f22_23 = in_f20_21" identifier = identifier) ;) (expression_statement "in_f24_25 = in_f20_21;" (assignment_expression "in_f24_25 = in_f20_21" identifier = identifier) ;) (expression_statement "in_f30_31 = in_f20_21;" (assignment_expression "in_f30_31 = in_f20_21" identifier = identifier) ;) }) while (parenthesized_expression "(iVar10 < *(int *)(pdVar16 + 0x58))" ( (binary_expression "iVar10 < *(int *)(pdVar16 + 0x58)" identifier < (pointer_expression "*(int *)(pdVar16 + 0x58)" * (cast_expression "(int *)(pdVar16 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x58)" ( (binary_expression "pdVar16 + 0x58" identifier + number_literal) ))))) )) ;) })) (expression_statement "iVar10 = *(int *)(iStack_324 + 0x1ac);" (assignment_expression "iVar10 = *(int *)(iStack_324 + 0x1ac)" identifier = (pointer_expression "*(int *)(iStack_324 + 0x1ac)" * (cast_expression "(int *)(iStack_324 + 0x1ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x1ac)" ( (binary_expression "iStack_324 + 0x1ac" identifier + number_literal) ))))) ;) (if_statement "if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }" { (expression_statement "puVar13 = (undefined4 *)(iStack_324 + 0xa0);" (assignment_expression "puVar13 = (undefined4 *)(iStack_324 + 0xa0)" identifier = (cast_expression "(undefined4 *)(iStack_324 + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0xa0)" ( (binary_expression "iStack_324 + 0xa0" identifier + number_literal) )))) ;) (expression_statement "puVar21 = auStack_240;" (assignment_expression "puVar21 = auStack_240" identifier = identifier) ;) (do_statement "do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));" do (compound_statement "{\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                }" { (expression_statement "puVar15 = puVar21;" (assignment_expression "puVar15 = puVar21" identifier = identifier) ;) (expression_statement "puVar9 = puVar13;" (assignment_expression "puVar9 = puVar13" identifier = identifier) ;) (expression_statement "uVar27 = puVar9[1];" (assignment_expression "uVar27 = puVar9[1]" identifier = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "uVar25 = puVar9[2];" (assignment_expression "uVar25 = puVar9[2]" identifier = (subscript_expression "puVar9[2]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = puVar9[3];" (assignment_expression "uVar4 = puVar9[3]" identifier = (subscript_expression "puVar9[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar15 = *puVar9;" (assignment_expression "*puVar15 = *puVar9" (pointer_expression "*puVar15" * identifier) = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar15[1] = uVar27;" (assignment_expression "puVar15[1] = uVar27" (subscript_expression "puVar15[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[2] = uVar25;" (assignment_expression "puVar15[2] = uVar25" (subscript_expression "puVar15[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[3] = uVar4;" (assignment_expression "puVar15[3] = uVar4" (subscript_expression "puVar15[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13 = puVar9 + 4;" (assignment_expression "puVar13 = puVar9 + 4" identifier = (binary_expression "puVar9 + 4" identifier + number_literal)) ;) (expression_statement "puVar21 = puVar15 + 4;" (assignment_expression "puVar21 = puVar15 + 4" identifier = (binary_expression "puVar15 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar13 != (undefined4 *)(iStack_324 + 0xf0))" ( (binary_expression "puVar13 != (undefined4 *)(iStack_324 + 0xf0)" identifier != (cast_expression "(undefined4 *)(iStack_324 + 0xf0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0xf0)" ( (binary_expression "iStack_324 + 0xf0" identifier + number_literal) )))) )) ;) (expression_statement "uVar4 = puVar9[5];" (assignment_expression "uVar4 = puVar9[5]" identifier = (subscript_expression "puVar9[5]" identifier [ number_literal ])) ;) (expression_statement "puVar15[4] = *puVar13;" (assignment_expression "puVar15[4] = *puVar13" (subscript_expression "puVar15[4]" identifier [ number_literal ]) = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "puVar15[5] = uVar4;" (assignment_expression "puVar15[5] = uVar4" (subscript_expression "puVar15[5]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }" else (compound_statement "{\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }" { (expression_statement "uStack_354 = uStack_2d0;" (assignment_expression "uStack_354 = uStack_2d0" identifier = identifier) ;) (expression_statement "puStack_358 = auStack_240;" (assignment_expression "puStack_358 = auStack_240" identifier = identifier) ;) (expression_statement "(**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));" (call_expression "(**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c))" (parenthesized_expression "(**(code **)(puVar36 + -0x747c))" ( (pointer_expression "**(code **)(puVar36 + -0x747c)" * (pointer_expression "*(code **)(puVar36 + -0x747c)" * (cast_expression "(code **)(puVar36 + -0x747c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x747c)" ( (binary_expression "puVar36 + -0x747c" identifier + number_literal) ))))) )) (argument_list "(iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c))" ( identifier , number_literal , (binary_expression "iVar28 + *(int *)(iVar10 + 0x298)" identifier + (pointer_expression "*(int *)(iVar10 + 0x298)" * (cast_expression "(int *)(iVar10 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x298)" ( (binary_expression "iVar10 + 0x298" identifier + number_literal) ))))) , (binary_expression "uVar26 + *(int *)(iVar10 + 0x29c)" identifier + (pointer_expression "*(int *)(iVar10 + 0x29c)" * (cast_expression "(int *)(iVar10 + 0x29c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x29c)" ( (binary_expression "iVar10 + 0x29c" identifier + number_literal) ))))) ))) ;) (expression_statement "uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);" (assignment_expression "uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4)" identifier = (pointer_expression "*(undefined4 *)(iStack_324 + 0x3a4)" * (cast_expression "(undefined4 *)(iStack_324 + 0x3a4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x3a4)" ( (binary_expression "iStack_324 + 0x3a4" identifier + number_literal) ))))) ;) (expression_statement "pdVar29 = (double *)(iStack_324 + 0x3a0);" (assignment_expression "pdVar29 = (double *)(iStack_324 + 0x3a0)" identifier = (cast_expression "(double *)(iStack_324 + 0x3a0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x3a0)" ( (binary_expression "iStack_324 + 0x3a0" identifier + number_literal) )))) ;) (expression_statement "uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;" (assignment_expression "uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff" identifier = (binary_expression "*(uint *)pdVar29 & 0x7fffffff" (pointer_expression "*(uint *)pdVar29" * (cast_expression "(uint *)pdVar29" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal)) ;) (expression_statement "puVar36 = puStack_350;" (assignment_expression "puVar36 = puStack_350" identifier = identifier) ;) (if_statement "if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }" if (parenthesized_expression "(*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29))" ( (binary_expression "*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)" (pointer_expression "*(double *)(iVar3 + 0x43c8)" * (cast_expression "(double *)(iVar3 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x43c8)" ( (binary_expression "iVar3 + 0x43c8" identifier + number_literal) )))) <= (call_expression "ABS(*pdVar29)" identifier (argument_list "(*pdVar29)" ( (pointer_expression "*pdVar29" * identifier) )))) )) (compound_statement "{\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }" { (expression_statement "dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);" (assignment_expression "dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" identifier = (binary_expression "dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" (binary_expression "dStack_1f8 *\n                               *pdVar29" identifier * (pointer_expression "*pdVar29" * identifier)) * (pointer_expression "*(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" * (cast_expression "(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" ( (binary_expression "*(int *)(puStack_350 + -0x7fd0) + 0x4410" (pointer_expression "*(int *)(puStack_350 + -0x7fd0)" * (cast_expression "(int *)(puStack_350 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_350 + -0x7fd0)" ( (binary_expression "puStack_350 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) })) }))) (if_statement "if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }" if (parenthesized_expression "(*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0)" ( (binary_expression "*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0" (pointer_expression "*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34)" * (cast_expression "(int *)(*(int *)(pdVar16 + 0x5a) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar16 + 0x5a) + 0x34)" ( (binary_expression "*(int *)(pdVar16 + 0x5a) + 0x34" (pointer_expression "*(int *)(pdVar16 + 0x5a)" * (cast_expression "(int *)(pdVar16 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x5a)" ( (binary_expression "pdVar16 + 0x5a" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }" { (expression_statement "fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);" (assignment_expression "fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8)" identifier = (pointer_expression "*(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8)" * (cast_expression "(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + -0x7fd0) + 0x4aa8)" ( (binary_expression "*(int *)(puVar36 + -0x7fd0) + 0x4aa8" (pointer_expression "*(int *)(puVar36 + -0x7fd0)" * (cast_expression "(int *)(puVar36 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fd0)" ( (binary_expression "puVar36 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }" else (compound_statement "{\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }" { (expression_statement "fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);" (assignment_expression "fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4)" identifier = (pointer_expression "*(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4)" * (cast_expression "(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4)" ( (binary_expression "iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4" identifier + (binary_expression "*(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4" (pointer_expression "*(int *)(*(int *)(pdVar16 + 0x5a) + 0x38)" * (cast_expression "(int *)(*(int *)(pdVar16 + 0x5a) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar16 + 0x5a) + 0x38)" ( (binary_expression "*(int *)(pdVar16 + 0x5a) + 0x38" (pointer_expression "*(int *)(pdVar16 + 0x5a)" * (cast_expression "(int *)(pdVar16 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x5a)" ( (binary_expression "pdVar16 + 0x5a" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) }))) (expression_statement "dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);" (assignment_expression "dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" identifier = (binary_expression "dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" (binary_expression "dStack_338 * dStack_1f8" identifier * identifier) * (pointer_expression "*(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" * (cast_expression "(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + -0x7fd0) + 0x4410)" ( (binary_expression "*(int *)(puVar36 + -0x7fd0) + 0x4410" (pointer_expression "*(int *)(puVar36 + -0x7fd0)" * (cast_expression "(int *)(puVar36 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fd0)" ( (binary_expression "puVar36 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);" (assignment_expression "dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" identifier = (binary_expression "(double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" (cast_expression "(double)fVar43" ( (type_descriptor "double" primitive_type) ) identifier) * (pointer_expression "*(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" * (cast_expression "(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + -0x7fd0) + 0x4410)" ( (binary_expression "*(int *)(puVar36 + -0x7fd0) + 0x4410" (pointer_expression "*(int *)(puVar36 + -0x7fd0)" * (cast_expression "(int *)(puVar36 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fd0)" ( (binary_expression "puVar36 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;" (assignment_expression "dVar39 = (dVar39 + dVar41) - dVar39 * dVar41" identifier = (binary_expression "(dVar39 + dVar41) - dVar39 * dVar41" (parenthesized_expression "(dVar39 + dVar41)" ( (binary_expression "dVar39 + dVar41" identifier + identifier) )) - (binary_expression "dVar39 * dVar41" identifier * identifier))) ;) (expression_statement "iVar10 = *(int *)(pdVar16 + 0x58);" (assignment_expression "iVar10 = *(int *)(pdVar16 + 0x58)" identifier = (pointer_expression "*(int *)(pdVar16 + 0x58)" * (cast_expression "(int *)(pdVar16 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x58)" ( (binary_expression "pdVar16 + 0x58" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }" if (parenthesized_expression "(0 < iVar10)" ( (binary_expression "0 < iVar10" number_literal < identifier) )) (compound_statement "{\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "iVar49 = 0;" (assignment_expression "iVar49 = 0" identifier = number_literal) ;) (expression_statement "in_f30_31 = 0.0;" (assignment_expression "in_f30_31 = 0.0" identifier = number_literal) ;) (expression_statement "in_f20_21 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "in_f20_21 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) (do_statement "do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);" do (compound_statement "{\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                }" { (expression_statement "uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);" (assignment_expression "uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12)" identifier = (pointer_expression "*(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12)" * (cast_expression "(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar16 + 0x5a) + iVar12)" ( (binary_expression "*(int *)(pdVar16 + 0x5a) + iVar12" (pointer_expression "*(int *)(pdVar16 + 0x5a)" * (cast_expression "(int *)(pdVar16 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x5a)" ( (binary_expression "pdVar16 + 0x5a" identifier + number_literal) )))) + identifier) ))))) ;) (expression_statement "uStack_348 = dVar39;" (assignment_expression "uStack_348 = dVar39" identifier = identifier) ;) (if_statement "if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }" if (parenthesized_expression "((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5))" ( (binary_expression "(*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)" (parenthesized_expression "(*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0)" ( (binary_expression "*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0" (pointer_expression "*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4)" * (cast_expression "(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4)" ( (binary_expression "*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4" (binary_expression "*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc" (pointer_expression "*(int *)(pdVar16 + 0x5a)" * (cast_expression "(int *)(pdVar16 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x5a)" ( (binary_expression "pdVar16 + 0x5a" identifier + number_literal) )))) + (binary_expression "uVar8 * 0xc" identifier * number_literal)) + number_literal) )))) != number_literal) )) && (parenthesized_expression "(uVar8 < 5)" ( (binary_expression "uVar8 < 5" identifier < number_literal) ))) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }" { comment comment (expression_statement "iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));" (assignment_expression "iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48))" identifier = (call_expression "(*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48))" (parenthesized_expression "(*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))" ( (pointer_expression "*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4))" * (cast_expression "(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4))" ( (binary_expression "puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)" * (cast_expression "(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)" ( (binary_expression "*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4" (binary_expression "*(int *)(puVar36 + -0x7fcc) + 0x7384" (pointer_expression "*(int *)(puVar36 + -0x7fcc)" * (cast_expression "(int *)(puVar36 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fcc)" ( (binary_expression "puVar36 + -0x7fcc" identifier + number_literal) )))) + number_literal) + (binary_expression "uVar8 * 4" identifier * number_literal)) ))))) )))) )) (argument_list "(in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48))" ( identifier , (pointer_expression "*(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48)" * (cast_expression "(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + -0x7fd0) + 0x4a48)" ( (binary_expression "*(int *)(puVar36 + -0x7fd0) + 0x4a48" (pointer_expression "*(int *)(puVar36 + -0x7fd0)" * (cast_expression "(int *)(puVar36 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fd0)" ( (binary_expression "puVar36 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))) )))) ;) (return_statement "return iVar3;" return identifier ;) })) (expression_statement "iVar49 = iVar49 + 1;" (assignment_expression "iVar49 = iVar49 + 1" identifier = (binary_expression "iVar49 + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = *(int *)(pdVar16 + 0x58);" (assignment_expression "iVar10 = *(int *)(pdVar16 + 0x58)" identifier = (pointer_expression "*(int *)(pdVar16 + 0x58)" * (cast_expression "(int *)(pdVar16 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x58)" ( (binary_expression "pdVar16 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = iVar12 + 0xc;" (assignment_expression "iVar12 = iVar12 + 0xc" identifier = (binary_expression "iVar12 + 0xc" identifier + number_literal)) ;) (expression_statement "in_f22_23 = in_f20_21;" (assignment_expression "in_f22_23 = in_f20_21" identifier = identifier) ;) (expression_statement "in_f24_25 = in_f20_21;" (assignment_expression "in_f24_25 = in_f20_21" identifier = identifier) ;) (expression_statement "in_f26_27 = in_f20_21;" (assignment_expression "in_f26_27 = in_f20_21" identifier = identifier) ;) }) while (parenthesized_expression "(iVar49 < iVar10)" ( (binary_expression "iVar49 < iVar10" identifier < identifier) )) ;) })) (expression_statement "iStack_308 = iStack_308 + iVar10 * 4;" (assignment_expression "iStack_308 = iStack_308 + iVar10 * 4" identifier = (binary_expression "iStack_308 + iVar10 * 4" identifier + (binary_expression "iVar10 * 4" identifier * number_literal))) ;) (expression_statement "uStack_328 = uStack_328 + 1;" (assignment_expression "uStack_328 = uStack_328 + 1" identifier = (binary_expression "uStack_328 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s6 = pdVar16;" (assignment_expression "unaff_s6 = pdVar16" identifier = identifier) ;) }) while (parenthesized_expression "((int)uStack_328 <= (int)pdStack_2cc)" ( (binary_expression "(int)uStack_328 <= (int)pdStack_2cc" (cast_expression "(int)uStack_328" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pdStack_2cc" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "pdVar29 = pdStack_2a0;" (assignment_expression "pdVar29 = pdStack_2a0" identifier = identifier) ;) (expression_statement "iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);" (assignment_expression "iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0)" identifier = (call_expression "(**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0)" (parenthesized_expression "(**(code **)(puVar36 + -0x73a0))" ( (pointer_expression "**(code **)(puVar36 + -0x73a0)" * (pointer_expression "*(code **)(puVar36 + -0x73a0)" * (cast_expression "(code **)(puVar36 + -0x73a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x73a0)" ( (binary_expression "puVar36 + -0x73a0" identifier + number_literal) ))))) )) (argument_list "(pdStack_2a0,uStack_2d0)" ( identifier , identifier )))) ;) (if_statement "if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }" { (expression_statement "*(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0" (pointer_expression "*(undefined4 *)((int)pdStack_2a8 + 0x2c)" * (cast_expression "(undefined4 *)((int)pdStack_2a8 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdStack_2a8 + 0x2c)" ( (binary_expression "(int)pdStack_2a8 + 0x2c" (cast_expression "(int)pdStack_2a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })) }))) })) (expression_statement "iStack_2f0 = iStack_2f0 + 1;" (assignment_expression "iStack_2f0 = iStack_2f0 + 1" identifier = (binary_expression "iStack_2f0 + 1" identifier + number_literal)) ;) (expression_statement "uStack_2f8 = uStack_2f8 + 1;" (assignment_expression "uStack_2f8 = uStack_2f8 + 1" identifier = (binary_expression "uStack_2f8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iStack_2f0 < (int)puStack_2a4)" ( (binary_expression "iStack_2f0 < (int)puStack_2a4" identifier < (cast_expression "(int)puStack_2a4" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (if_statement "if (iStack_1e4 == **(int **)(puStack_350 + -0x7668)) {\n    return **(int **)(puStack_350 + -0x7668);\n  }" if (parenthesized_expression "(iStack_1e4 == **(int **)(puStack_350 + -0x7668))" ( (binary_expression "iStack_1e4 == **(int **)(puStack_350 + -0x7668)" identifier == (pointer_expression "**(int **)(puStack_350 + -0x7668)" * (pointer_expression "*(int **)(puStack_350 + -0x7668)" * (cast_expression "(int **)(puStack_350 + -0x7668)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_350 + -0x7668)" ( (binary_expression "puStack_350 + -0x7668" identifier + number_literal) )))))) )) (compound_statement "{\n    return **(int **)(puStack_350 + -0x7668);\n  }" { (return_statement "return **(int **)(puStack_350 + -0x7668);" return (pointer_expression "**(int **)(puStack_350 + -0x7668)" * (pointer_expression "*(int **)(puStack_350 + -0x7668)" * (cast_expression "(int **)(puStack_350 + -0x7668)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_350 + -0x7668)" ( (binary_expression "puStack_350 + -0x7668" identifier + number_literal) ))))) ;) })) (expression_statement "pcVar37 = *(code **)(puStack_350 + -0x7834);" (assignment_expression "pcVar37 = *(code **)(puStack_350 + -0x7834)" identifier = (pointer_expression "*(code **)(puStack_350 + -0x7834)" * (cast_expression "(code **)(puStack_350 + -0x7834)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_350 + -0x7834)" ( (binary_expression "puStack_350 + -0x7834" identifier + number_literal) ))))) ;) (expression_statement "pcVar38 = FUN_000a5040;" (assignment_expression "pcVar38 = FUN_000a5040" identifier = identifier) ;) (expression_statement "(*pcVar37)();" (call_expression "(*pcVar37)()" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_440 = pcVar37 + 0x35c870;" (assignment_expression "pcStack_440 = pcVar37 + 0x35c870" identifier = (binary_expression "pcVar37 + 0x35c870" identifier + number_literal)) ;) (expression_statement "iStack_3bc = **(int **)(pcVar37 + 0x355208);" (assignment_expression "iStack_3bc = **(int **)(pcVar37 + 0x355208)" identifier = (pointer_expression "**(int **)(pcVar37 + 0x355208)" * (pointer_expression "*(int **)(pcVar37 + 0x355208)" * (cast_expression "(int **)(pcVar37 + 0x355208)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x355208)" ( (binary_expression "pcVar37 + 0x355208" identifier + number_literal) )))))) ;) (expression_statement "uVar8 = *(uint *)(pdVar29 + 3);" (assignment_expression "uVar8 = *(uint *)(pdVar29 + 3)" identifier = (pointer_expression "*(uint *)(pdVar29 + 3)" * (cast_expression "(uint *)(pdVar29 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar29 + 3)" ( (binary_expression "pdVar29 + 3" identifier + number_literal) ))))) ;) (expression_statement "pdVar5 = pdVar29;" (assignment_expression "pdVar5 = pdVar29" identifier = identifier) ;) (expression_statement "uStack_428 = uVar8;" (assignment_expression "uStack_428 = uVar8" identifier = identifier) ;) (expression_statement "iStack_3b8 = iVar28;" (assignment_expression "iStack_3b8 = iVar28" identifier = identifier) ;) (expression_statement "uStack_3b4 = uVar26;" (assignment_expression "uStack_3b4 = uVar26" identifier = identifier) ;) (expression_statement "pdStack_3b0 = pdVar16;" (assignment_expression "pdStack_3b0 = pdVar16" identifier = identifier) ;) (expression_statement "pdStack_3ac = unaff_s3;" (assignment_expression "pdStack_3ac = unaff_s3" identifier = identifier) ;) (expression_statement "piStack_3a8 = unaff_s4;" (assignment_expression "piStack_3a8 = unaff_s4" identifier = identifier) ;) (expression_statement "puStack_3a4 = param_1;" (assignment_expression "puStack_3a4 = param_1" identifier = identifier) ;) (expression_statement "pdStack_3a0 = unaff_s6;" (assignment_expression "pdStack_3a0 = unaff_s6" identifier = identifier) ;) (expression_statement "uStack_39c = unaff_s7;" (assignment_expression "uStack_39c = unaff_s7" identifier = identifier) ;) (expression_statement "iStack_398 = iVar3;" (assignment_expression "iStack_398 = iVar3" identifier = identifier) ;) (expression_statement "pcStack_394 = pcVar38;" (assignment_expression "pcStack_394 = pcVar38" identifier = identifier) ;) (expression_statement "dStack_390 = in_f20_21;" (assignment_expression "dStack_390 = in_f20_21" identifier = identifier) ;) (expression_statement "dStack_388 = in_f22_23;" (assignment_expression "dStack_388 = in_f22_23" identifier = identifier) ;) (expression_statement "dStack_380 = in_f24_25;" (assignment_expression "dStack_380 = in_f24_25" identifier = identifier) ;) (expression_statement "dStack_378 = in_f26_27;" (assignment_expression "dStack_378 = in_f26_27" identifier = identifier) ;) (expression_statement "dStack_370 = in_f28_29;" (assignment_expression "dStack_370 = in_f28_29" identifier = identifier) ;) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3558e4))();" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3558e4))()" identifier = (call_expression "(**(code **)(pcVar37 + 0x3558e4))()" (parenthesized_expression "(**(code **)(pcVar37 + 0x3558e4))" ( (pointer_expression "**(code **)(pcVar37 + 0x3558e4)" * (pointer_expression "*(code **)(pcVar37 + 0x3558e4)" * (cast_expression "(code **)(pcVar37 + 0x3558e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3558e4)" ( (binary_expression "pcVar37 + 0x3558e4" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar10 = (**(code **)(pcStack_440 + -0x7390))();" (assignment_expression "iVar10 = (**(code **)(pcStack_440 + -0x7390))()" identifier = (call_expression "(**(code **)(pcStack_440 + -0x7390))()" (parenthesized_expression "(**(code **)(pcStack_440 + -0x7390))" ( (pointer_expression "**(code **)(pcStack_440 + -0x7390)" * (pointer_expression "*(code **)(pcStack_440 + -0x7390)" * (cast_expression "(code **)(pcStack_440 + -0x7390)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_440 + -0x7390)" ( (binary_expression "pcStack_440 + -0x7390" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar49 = (*(uint *)((int)pdVar29 + 0x1c) + 1) - uVar8;" (assignment_expression "iVar49 = (*(uint *)((int)pdVar29 + 0x1c) + 1) - uVar8" identifier = (binary_expression "(*(uint *)((int)pdVar29 + 0x1c) + 1) - uVar8" (parenthesized_expression "(*(uint *)((int)pdVar29 + 0x1c) + 1)" ( (binary_expression "*(uint *)((int)pdVar29 + 0x1c) + 1" (pointer_expression "*(uint *)((int)pdVar29 + 0x1c)" * (cast_expression "(uint *)((int)pdVar29 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + 0x1c)" ( (binary_expression "(int)pdVar29 + 0x1c" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) )) - identifier)) ;) (if_statement "if (iVar3 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 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 "iVar28 = iVar49 / iVar3;" (assignment_expression "iVar28 = iVar49 / iVar3" identifier = (binary_expression "iVar49 / iVar3" identifier / identifier)) ;) (expression_statement "iVar49 = iVar49 % iVar3;" (assignment_expression "iVar49 = iVar49 % iVar3" identifier = (binary_expression "iVar49 % iVar3" identifier % identifier)) ;) (expression_statement "uVar26 = (uint)(iVar10 < iVar49);" (assignment_expression "uVar26 = (uint)(iVar10 < iVar49)" identifier = (call_expression "(uint)(iVar10 < iVar49)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar10 < iVar49)" ( (binary_expression "iVar10 < iVar49" identifier < identifier) )))) ;) (if_statement "if (uVar26 != 0) {\n    iVar28 = iVar28 + 1;\n    iVar49 = 0;\n  }" if (parenthesized_expression "(uVar26 != 0)" ( (binary_expression "uVar26 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar28 = iVar28 + 1;\n    iVar49 = 0;\n  }" { (expression_statement "iVar28 = iVar28 + 1;" (assignment_expression "iVar28 = iVar28 + 1" identifier = (binary_expression "iVar28 + 1" identifier + number_literal)) ;) (expression_statement "iVar49 = 0;" (assignment_expression "iVar49 = 0" identifier = number_literal) ;) })) (expression_statement "iVar49 = iVar28 * iVar10 + iVar49;" (assignment_expression "iVar49 = iVar28 * iVar10 + iVar49" identifier = (binary_expression "iVar28 * iVar10 + iVar49" (binary_expression "iVar28 * iVar10" identifier * identifier) + identifier)) ;) (expression_statement "iVar28 = iVar28 + iVar49;" (assignment_expression "iVar28 = iVar28 + iVar49" identifier = (binary_expression "iVar28 + iVar49" identifier + identifier)) ;) (expression_statement "iVar3 = *(int *)(pcStack_440 + -0x7fd0);" (assignment_expression "iVar3 = *(int *)(pcStack_440 + -0x7fd0)" identifier = (pointer_expression "*(int *)(pcStack_440 + -0x7fd0)" * (cast_expression "(int *)(pcStack_440 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_440 + -0x7fd0)" ( (binary_expression "pcStack_440 + -0x7fd0" identifier + number_literal) ))))) ;) (expression_statement "pcVar37 = pcStack_440;" (assignment_expression "pcVar37 = pcStack_440" identifier = identifier) ;) (if_statement "if (iVar49 < iVar28) {\n    pdStack_42c = *(double **)(pdVar29 + 2);\n    uStack_430 = *(uint *)((int)pdVar29 + 0xc);\n    unaff_s6 = *(double **)(pdVar29 + 1);\n    uStack_424 = *(uint *)((int)pdVar29 + 4);\n    unaff_s7 = *(uint *)pdVar29;\n    iVar49 = uStack_428 + iVar49;\n    iVar28 = uStack_428 + iVar28;\n    in_f22_23 = *(double *)(iVar3 + 0x43d0);\n    in_f26_27 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8);\n    in_f28_29 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410);\n    do {\n      in_f20_21 = *(double *)(iVar3 + 0x43d0);\n      if (*(uint *)(pdVar29 + 4) != 0) {\n        pdVar16 = *(double **)((int)pdVar29 + 0x14);\n        dVar39 = (double)(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21);\n        uStack_434 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21);\n        uVar26 = uStack_434;\n        param_1 = (undefined4 *)(int)dVar39;\n        uStack_444 = uStack_430;\n        piStack_448 = (int *)0x1;\n        pdVar5 = pdStack_42c;\n        pdVar16 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434));\n        if (pdVar16 == (double *)0x0) {\n          *(uint *)(pdVar29 + 4) = 0;\n          pcVar37 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar26 <= (int)param_1;\n          uVar26 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }\n          pdVar5 = pdStack_42c;\n          iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar37 = pcStack_440;\n          if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }\n        }\n      }\n      iVar49 = iVar49 + 1;\n    } while (iVar49 < iVar28);\n  }" if (parenthesized_expression "(iVar49 < iVar28)" ( (binary_expression "iVar49 < iVar28" identifier < identifier) )) (compound_statement "{\n    pdStack_42c = *(double **)(pdVar29 + 2);\n    uStack_430 = *(uint *)((int)pdVar29 + 0xc);\n    unaff_s6 = *(double **)(pdVar29 + 1);\n    uStack_424 = *(uint *)((int)pdVar29 + 4);\n    unaff_s7 = *(uint *)pdVar29;\n    iVar49 = uStack_428 + iVar49;\n    iVar28 = uStack_428 + iVar28;\n    in_f22_23 = *(double *)(iVar3 + 0x43d0);\n    in_f26_27 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8);\n    in_f28_29 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410);\n    do {\n      in_f20_21 = *(double *)(iVar3 + 0x43d0);\n      if (*(uint *)(pdVar29 + 4) != 0) {\n        pdVar16 = *(double **)((int)pdVar29 + 0x14);\n        dVar39 = (double)(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21);\n        uStack_434 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21);\n        uVar26 = uStack_434;\n        param_1 = (undefined4 *)(int)dVar39;\n        uStack_444 = uStack_430;\n        piStack_448 = (int *)0x1;\n        pdVar5 = pdStack_42c;\n        pdVar16 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434));\n        if (pdVar16 == (double *)0x0) {\n          *(uint *)(pdVar29 + 4) = 0;\n          pcVar37 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar26 <= (int)param_1;\n          uVar26 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }\n          pdVar5 = pdStack_42c;\n          iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar37 = pcStack_440;\n          if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }\n        }\n      }\n      iVar49 = iVar49 + 1;\n    } while (iVar49 < iVar28);\n  }" { (expression_statement "pdStack_42c = *(double **)(pdVar29 + 2);" (assignment_expression "pdStack_42c = *(double **)(pdVar29 + 2)" identifier = (pointer_expression "*(double **)(pdVar29 + 2)" * (cast_expression "(double **)(pdVar29 + 2)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar29 + 2)" ( (binary_expression "pdVar29 + 2" identifier + number_literal) ))))) ;) (expression_statement "uStack_430 = *(uint *)((int)pdVar29 + 0xc);" (assignment_expression "uStack_430 = *(uint *)((int)pdVar29 + 0xc)" identifier = (pointer_expression "*(uint *)((int)pdVar29 + 0xc)" * (cast_expression "(uint *)((int)pdVar29 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + 0xc)" ( (binary_expression "(int)pdVar29 + 0xc" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "unaff_s6 = *(double **)(pdVar29 + 1);" (assignment_expression "unaff_s6 = *(double **)(pdVar29 + 1)" identifier = (pointer_expression "*(double **)(pdVar29 + 1)" * (cast_expression "(double **)(pdVar29 + 1)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar29 + 1)" ( (binary_expression "pdVar29 + 1" identifier + number_literal) ))))) ;) (expression_statement "uStack_424 = *(uint *)((int)pdVar29 + 4);" (assignment_expression "uStack_424 = *(uint *)((int)pdVar29 + 4)" identifier = (pointer_expression "*(uint *)((int)pdVar29 + 4)" * (cast_expression "(uint *)((int)pdVar29 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + 4)" ( (binary_expression "(int)pdVar29 + 4" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "unaff_s7 = *(uint *)pdVar29;" (assignment_expression "unaff_s7 = *(uint *)pdVar29" identifier = (pointer_expression "*(uint *)pdVar29" * (cast_expression "(uint *)pdVar29" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar49 = uStack_428 + iVar49;" (assignment_expression "iVar49 = uStack_428 + iVar49" identifier = (binary_expression "uStack_428 + iVar49" identifier + identifier)) ;) (expression_statement "iVar28 = uStack_428 + iVar28;" (assignment_expression "iVar28 = uStack_428 + iVar28" identifier = (binary_expression "uStack_428 + iVar28" identifier + identifier)) ;) (expression_statement "in_f22_23 = *(double *)(iVar3 + 0x43d0);" (assignment_expression "in_f22_23 = *(double *)(iVar3 + 0x43d0)" identifier = (pointer_expression "*(double *)(iVar3 + 0x43d0)" * (cast_expression "(double *)(iVar3 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x43d0)" ( (binary_expression "iVar3 + 0x43d0" identifier + number_literal) ))))) ;) (expression_statement "in_f26_27 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8);" (assignment_expression "in_f26_27 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8)" * (cast_expression "(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8)" ( (binary_expression "*(int *)(pcStack_440 + -0x7fd0) + 0x43c8" (pointer_expression "*(int *)(pcStack_440 + -0x7fd0)" * (cast_expression "(int *)(pcStack_440 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_440 + -0x7fd0)" ( (binary_expression "pcStack_440 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "in_f28_29 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410);" (assignment_expression "in_f28_29 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410)" * (cast_expression "(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_440 + -0x7fd0) + 0x4410)" ( (binary_expression "*(int *)(pcStack_440 + -0x7fd0) + 0x4410" (pointer_expression "*(int *)(pcStack_440 + -0x7fd0)" * (cast_expression "(int *)(pcStack_440 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_440 + -0x7fd0)" ( (binary_expression "pcStack_440 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) (do_statement "do {\n      in_f20_21 = *(double *)(iVar3 + 0x43d0);\n      if (*(uint *)(pdVar29 + 4) != 0) {\n        pdVar16 = *(double **)((int)pdVar29 + 0x14);\n        dVar39 = (double)(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21);\n        uStack_434 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21);\n        uVar26 = uStack_434;\n        param_1 = (undefined4 *)(int)dVar39;\n        uStack_444 = uStack_430;\n        piStack_448 = (int *)0x1;\n        pdVar5 = pdStack_42c;\n        pdVar16 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434));\n        if (pdVar16 == (double *)0x0) {\n          *(uint *)(pdVar29 + 4) = 0;\n          pcVar37 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar26 <= (int)param_1;\n          uVar26 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }\n          pdVar5 = pdStack_42c;\n          iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar37 = pcStack_440;\n          if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }\n        }\n      }\n      iVar49 = iVar49 + 1;\n    } while (iVar49 < iVar28);" do (compound_statement "{\n      in_f20_21 = *(double *)(iVar3 + 0x43d0);\n      if (*(uint *)(pdVar29 + 4) != 0) {\n        pdVar16 = *(double **)((int)pdVar29 + 0x14);\n        dVar39 = (double)(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21);\n        uStack_434 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21);\n        uVar26 = uStack_434;\n        param_1 = (undefined4 *)(int)dVar39;\n        uStack_444 = uStack_430;\n        piStack_448 = (int *)0x1;\n        pdVar5 = pdStack_42c;\n        pdVar16 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434));\n        if (pdVar16 == (double *)0x0) {\n          *(uint *)(pdVar29 + 4) = 0;\n          pcVar37 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar26 <= (int)param_1;\n          uVar26 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }\n          pdVar5 = pdStack_42c;\n          iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar37 = pcStack_440;\n          if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }\n        }\n      }\n      iVar49 = iVar49 + 1;\n    }" { (expression_statement "in_f20_21 = *(double *)(iVar3 + 0x43d0);" (assignment_expression "in_f20_21 = *(double *)(iVar3 + 0x43d0)" identifier = (pointer_expression "*(double *)(iVar3 + 0x43d0)" * (cast_expression "(double *)(iVar3 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x43d0)" ( (binary_expression "iVar3 + 0x43d0" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(pdVar29 + 4) != 0) {\n        pdVar16 = *(double **)((int)pdVar29 + 0x14);\n        dVar39 = (double)(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21);\n        uStack_434 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21);\n        uVar26 = uStack_434;\n        param_1 = (undefined4 *)(int)dVar39;\n        uStack_444 = uStack_430;\n        piStack_448 = (int *)0x1;\n        pdVar5 = pdStack_42c;\n        pdVar16 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434));\n        if (pdVar16 == (double *)0x0) {\n          *(uint *)(pdVar29 + 4) = 0;\n          pcVar37 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar26 <= (int)param_1;\n          uVar26 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }\n          pdVar5 = pdStack_42c;\n          iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar37 = pcStack_440;\n          if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }\n        }\n      }" if (parenthesized_expression "(*(uint *)(pdVar29 + 4) != 0)" ( (binary_expression "*(uint *)(pdVar29 + 4) != 0" (pointer_expression "*(uint *)(pdVar29 + 4)" * (cast_expression "(uint *)(pdVar29 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar29 + 4)" ( (binary_expression "pdVar29 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        pdVar16 = *(double **)((int)pdVar29 + 0x14);\n        dVar39 = (double)(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21);\n        uStack_434 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21);\n        uVar26 = uStack_434;\n        param_1 = (undefined4 *)(int)dVar39;\n        uStack_444 = uStack_430;\n        piStack_448 = (int *)0x1;\n        pdVar5 = pdStack_42c;\n        pdVar16 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434));\n        if (pdVar16 == (double *)0x0) {\n          *(uint *)(pdVar29 + 4) = 0;\n          pcVar37 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar26 <= (int)param_1;\n          uVar26 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }\n          pdVar5 = pdStack_42c;\n          iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar37 = pcStack_440;\n          if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }\n        }\n      }" { (expression_statement "pdVar16 = *(double **)((int)pdVar29 + 0x14);" (assignment_expression "pdVar16 = *(double **)((int)pdVar29 + 0x14)" identifier = (pointer_expression "*(double **)((int)pdVar29 + 0x14)" * (cast_expression "(double **)((int)pdVar29 + 0x14)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pdVar29 + 0x14)" ( (binary_expression "(int)pdVar29 + 0x14" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "dVar39 = (double)(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21);" (assignment_expression "dVar39 = (double)(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21)" identifier = (cast_expression "(double)(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21)" (parenthesized_expression "(**(code **)(pcVar37 + -0x7c78))" ( (pointer_expression "**(code **)(pcVar37 + -0x7c78)" * (pointer_expression "*(code **)(pcVar37 + -0x7c78)" * (cast_expression "(code **)(pcVar37 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + -0x7c78)" ( (binary_expression "pcVar37 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(*pdVar16 - in_f20_21)" ( (binary_expression "*pdVar16 - in_f20_21" (pointer_expression "*pdVar16" * identifier) - identifier) ))))) ;) (expression_statement "uStack_434 = (uint)dVar39;" (assignment_expression "uStack_434 = (uint)dVar39" identifier = (cast_expression "(uint)dVar39" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "dVar39 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21);" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21)" identifier = (cast_expression "(double)(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21)" (parenthesized_expression "(**(code **)(pcStack_440 + -0x7228))" ( (pointer_expression "**(code **)(pcStack_440 + -0x7228)" * (pointer_expression "*(code **)(pcStack_440 + -0x7228)" * (cast_expression "(code **)(pcStack_440 + -0x7228)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_440 + -0x7228)" ( (binary_expression "pcStack_440 + -0x7228" identifier + number_literal) ))))) )) (argument_list "(pdVar16[2] + in_f20_21)" ( (binary_expression "pdVar16[2] + in_f20_21" (subscript_expression "pdVar16[2]" identifier [ number_literal ]) + identifier) ))))) ;) (expression_statement "uVar26 = uStack_434;" (assignment_expression "uVar26 = uStack_434" identifier = identifier) ;) (expression_statement "param_1 = (undefined4 *)(int)dVar39;" (assignment_expression "param_1 = (undefined4 *)(int)dVar39" identifier = (cast_expression "(undefined4 *)(int)dVar39" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)dVar39" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uStack_444 = uStack_430;" (assignment_expression "uStack_444 = uStack_430" identifier = identifier) ;) (expression_statement "piStack_448 = (int *)0x1;" (assignment_expression "piStack_448 = (int *)0x1" identifier = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pdVar5 = pdStack_42c;" (assignment_expression "pdVar5 = pdStack_42c" identifier = identifier) ;) (expression_statement "pdVar16 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434));" (assignment_expression "pdVar16 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434))" identifier = (cast_expression "(double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434))" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434))" (parenthesized_expression "(**(code **)(pcStack_440 + -0x724c))" ( (pointer_expression "**(code **)(pcStack_440 + -0x724c)" * (pointer_expression "*(code **)(pcStack_440 + -0x724c)" * (cast_expression "(code **)(pcStack_440 + -0x724c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_440 + -0x724c)" ( (binary_expression "pcStack_440 + -0x724c" identifier + number_literal) ))))) )) (argument_list "(pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434))" ( identifier , identifier , identifier , (binary_expression "(int)param_1 + (1 - uStack_434)" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(1 - uStack_434)" ( (binary_expression "1 - uStack_434" number_literal - identifier) ))) ))))) ;) (if_statement "if (pdVar16 == (double *)0x0) {\n          *(uint *)(pdVar29 + 4) = 0;\n          pcVar37 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar26 <= (int)param_1;\n          uVar26 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }\n          pdVar5 = pdStack_42c;\n          iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar37 = pcStack_440;\n          if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }\n        }" if (parenthesized_expression "(pdVar16 == (double *)0x0)" ( (binary_expression "pdVar16 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *(uint *)(pdVar29 + 4) = 0;\n          pcVar37 = pcStack_440;\n        }" { (expression_statement "*(uint *)(pdVar29 + 4) = 0;" (assignment_expression "*(uint *)(pdVar29 + 4) = 0" (pointer_expression "*(uint *)(pdVar29 + 4)" * (cast_expression "(uint *)(pdVar29 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar29 + 4)" ( (binary_expression "pdVar29 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar37 = pcStack_440;" (assignment_expression "pcVar37 = pcStack_440" identifier = identifier) ;) }) (else_clause "else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar26 <= (int)param_1;\n          uVar26 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }\n          pdVar5 = pdStack_42c;\n          iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar37 = pcStack_440;\n          if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }\n        }" else (compound_statement "{\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar26 <= (int)param_1;\n          uVar26 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }\n          pdVar5 = pdStack_42c;\n          iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar37 = pcStack_440;\n          if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }\n        }" { (expression_statement "(**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);" (call_expression "(**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418)" (parenthesized_expression "(**(code **)(pcStack_440 + -0x75e4))" ( (pointer_expression "**(code **)(pcStack_440 + -0x75e4)" * (pointer_expression "*(code **)(pcStack_440 + -0x75e4)" * (cast_expression "(code **)(pcStack_440 + -0x75e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_440 + -0x75e4)" ( (binary_expression "pcStack_440 + -0x75e4" identifier + number_literal) ))))) )) (argument_list "(unaff_s7,aiStack_418)" ( identifier , identifier ))) ;) (expression_statement "bVar1 = (int)uVar26 <= (int)param_1;" (assignment_expression "bVar1 = (int)uVar26 <= (int)param_1" identifier = (binary_expression "(int)uVar26 <= (int)param_1" (cast_expression "(int)uVar26" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar26 = uStack_434;" (assignment_expression "uVar26 = uStack_434" identifier = identifier) ;) (if_statement "if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }" { (expression_statement "in_f20_21 = *(double *)(iVar3 + 0x43d0);" (assignment_expression "in_f20_21 = *(double *)(iVar3 + 0x43d0)" identifier = (pointer_expression "*(double *)(iVar3 + 0x43d0)" * (cast_expression "(double *)(iVar3 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x43d0)" ( (binary_expression "iVar3 + 0x43d0" identifier + number_literal) ))))) ;) (expression_statement "in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));" (assignment_expression "in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8))" identifier = (cast_expression "(double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8))" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8))" identifier (argument_list "((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8))" ( (cast_expression "(int)((ulonglong)in_f24_25 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)in_f24_25 >> 0x20)" ( (binary_expression "(ulonglong)in_f24_25 >> 0x20" (cast_expression "(ulonglong)in_f24_25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (pointer_expression "*(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8)" * (cast_expression "(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8)" ( (binary_expression "*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8" (pointer_expression "*(int *)(pcStack_440 + -0x7fd0)" * (cast_expression "(int *)(pcStack_440 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_440 + -0x7fd0)" ( (binary_expression "pcStack_440 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))) ))))) ;) (do_statement "do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);" do (compound_statement "{\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            }" { (expression_statement "dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21)" identifier = (cast_expression "(double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21)" (parenthesized_expression "(**(code **)(pcStack_440 + -0x7c78))" ( (pointer_expression "**(code **)(pcStack_440 + -0x7c78)" * (pointer_expression "*(code **)(pcStack_440 + -0x7c78)" * (cast_expression "(code **)(pcStack_440 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_440 + -0x7c78)" ( (binary_expression "pcStack_440 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(*unaff_s6 - in_f20_21)" ( (binary_expression "*unaff_s6 - in_f20_21" (pointer_expression "*unaff_s6" * identifier) - identifier) ))))) ;) (if_statement "if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }" if (parenthesized_expression "(((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39))" ( (binary_expression "((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)" (parenthesized_expression "((int)dVar39 == uVar26)" ( (binary_expression "(int)dVar39 == uVar26" (cast_expression "(int)dVar39" ( (type_descriptor "int" primitive_type) ) identifier) == identifier) )) && (parenthesized_expression "(dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)" ( (comma_expression "dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23)" identifier = (cast_expression "(double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23)" (parenthesized_expression "(**(code **)(pcStack_440 + -0x7c78))" ( (pointer_expression "**(code **)(pcStack_440 + -0x7c78)" * (pointer_expression "*(code **)(pcStack_440 + -0x7c78)" * (cast_expression "(code **)(pcStack_440 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_440 + -0x7c78)" ( (binary_expression "pcStack_440 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(unaff_s6[1] - in_f22_23)" ( (binary_expression "unaff_s6[1] - in_f22_23" (subscript_expression "unaff_s6[1]" identifier [ number_literal ]) - identifier) ))))) , (binary_expression "iVar49 == (int)dVar39" identifier == (cast_expression "(int)dVar39" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }" { (expression_statement "iVar10 = *(int *)(uStack_424 + 0x1a8);" (assignment_expression "iVar10 = *(int *)(uStack_424 + 0x1a8)" identifier = (pointer_expression "*(int *)(uStack_424 + 0x1a8)" * (cast_expression "(int *)(uStack_424 + 0x1a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uStack_424 + 0x1a8)" ( (binary_expression "uStack_424 + 0x1a8" identifier + number_literal) ))))) ;) (if_statement "if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }" { (expression_statement "piVar2 = (int *)(uStack_424 + 0x48);" (assignment_expression "piVar2 = (int *)(uStack_424 + 0x48)" identifier = (cast_expression "(int *)(uStack_424 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uStack_424 + 0x48)" ( (binary_expression "uStack_424 + 0x48" identifier + number_literal) )))) ;) (expression_statement "piVar48 = aiStack_418;" (assignment_expression "piVar48 = aiStack_418" identifier = identifier) ;) (do_statement "do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));" do (compound_statement "{\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  }" { (expression_statement "piVar17 = piVar48;" (assignment_expression "piVar17 = piVar48" identifier = identifier) ;) (expression_statement "piVar19 = piVar2;" (assignment_expression "piVar19 = piVar2" identifier = identifier) ;) (expression_statement "iVar50 = piVar19[1];" (assignment_expression "iVar50 = piVar19[1]" identifier = (subscript_expression "piVar19[1]" identifier [ number_literal ])) ;) (expression_statement "iVar12 = piVar19[2];" (assignment_expression "iVar12 = piVar19[2]" identifier = (subscript_expression "piVar19[2]" identifier [ number_literal ])) ;) (expression_statement "iVar10 = piVar19[3];" (assignment_expression "iVar10 = piVar19[3]" identifier = (subscript_expression "piVar19[3]" identifier [ number_literal ])) ;) (expression_statement "*piVar17 = *piVar19;" (assignment_expression "*piVar17 = *piVar19" (pointer_expression "*piVar17" * identifier) = (pointer_expression "*piVar19" * identifier)) ;) (expression_statement "piVar17[1] = iVar50;" (assignment_expression "piVar17[1] = iVar50" (subscript_expression "piVar17[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar17[2] = iVar12;" (assignment_expression "piVar17[2] = iVar12" (subscript_expression "piVar17[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar17[3] = iVar10;" (assignment_expression "piVar17[3] = iVar10" (subscript_expression "piVar17[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar2 = piVar19 + 4;" (assignment_expression "piVar2 = piVar19 + 4" identifier = (binary_expression "piVar19 + 4" identifier + number_literal)) ;) (expression_statement "piVar48 = piVar17 + 4;" (assignment_expression "piVar48 = piVar17 + 4" identifier = (binary_expression "piVar17 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar2 != (int *)(uStack_424 + 0x98))" ( (binary_expression "piVar2 != (int *)(uStack_424 + 0x98)" identifier != (cast_expression "(int *)(uStack_424 + 0x98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uStack_424 + 0x98)" ( (binary_expression "uStack_424 + 0x98" identifier + number_literal) )))) )) ;) (expression_statement "iVar10 = piVar19[5];" (assignment_expression "iVar10 = piVar19[5]" identifier = (subscript_expression "piVar19[5]" identifier [ number_literal ])) ;) (expression_statement "piVar17[4] = *piVar2;" (assignment_expression "piVar17[4] = *piVar2" (subscript_expression "piVar17[4]" identifier [ number_literal ]) = (pointer_expression "*piVar2" * identifier)) ;) (expression_statement "piVar17[5] = iVar10;" (assignment_expression "piVar17[5] = iVar10" (subscript_expression "piVar17[5]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }" else (compound_statement "{\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }" { (expression_statement "uStack_444 = uStack_430;" (assignment_expression "uStack_444 = uStack_430" identifier = identifier) ;) (expression_statement "piStack_448 = aiStack_418;" (assignment_expression "piStack_448 = aiStack_418" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));" (call_expression "(**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c))" (parenthesized_expression "(**(code **)(pcStack_440 + -0x747c))" ( (pointer_expression "**(code **)(pcStack_440 + -0x747c)" * (pointer_expression "*(code **)(pcStack_440 + -0x747c)" * (cast_expression "(code **)(pcStack_440 + -0x747c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_440 + -0x747c)" ( (binary_expression "pcStack_440 + -0x747c" identifier + number_literal) ))))) )) (argument_list "(iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c))" ( identifier , number_literal , (binary_expression "(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298)" (parenthesized_expression "(uVar26 - uStack_434)" ( (binary_expression "uVar26 - uStack_434" identifier - identifier) )) + (pointer_expression "*(int *)(iVar10 + 0x298)" * (cast_expression "(int *)(iVar10 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x298)" ( (binary_expression "iVar10 + 0x298" identifier + number_literal) ))))) , (binary_expression "(iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c)" (parenthesized_expression "(iVar49 - uStack_428)" ( (binary_expression "iVar49 - uStack_428" identifier - identifier) )) + (pointer_expression "*(int *)(iVar10 + 0x29c)" * (cast_expression "(int *)(iVar10 + 0x29c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x29c)" ( (binary_expression "iVar10 + 0x29c" identifier + number_literal) ))))) ))) ;) (expression_statement "uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);" (assignment_expression "uStack_41c = *(undefined4 *)(uStack_424 + 0x39c)" identifier = (pointer_expression "*(undefined4 *)(uStack_424 + 0x39c)" * (cast_expression "(undefined4 *)(uStack_424 + 0x39c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uStack_424 + 0x39c)" ( (binary_expression "uStack_424 + 0x39c" identifier + number_literal) ))))) ;) (expression_statement "pdVar5 = (double *)(uStack_424 + 0x398);" (assignment_expression "pdVar5 = (double *)(uStack_424 + 0x398)" identifier = (cast_expression "(double *)(uStack_424 + 0x398)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uStack_424 + 0x398)" ( (binary_expression "uStack_424 + 0x398" identifier + number_literal) )))) ;) (expression_statement "uStack_420 = *(uint *)pdVar5 & 0x7fffffff;" (assignment_expression "uStack_420 = *(uint *)pdVar5 & 0x7fffffff" identifier = (binary_expression "*(uint *)pdVar5 & 0x7fffffff" (pointer_expression "*(uint *)pdVar5" * (cast_expression "(uint *)pdVar5" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal)) ;) (if_statement "if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }" if (parenthesized_expression "(in_f26_27 <= ABS(*pdVar5))" ( (binary_expression "in_f26_27 <= ABS(*pdVar5)" identifier <= (call_expression "ABS(*pdVar5)" identifier (argument_list "(*pdVar5)" ( (pointer_expression "*pdVar5" * identifier) )))) )) (compound_statement "{\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }" { (expression_statement "dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;" (assignment_expression "dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29" identifier = (binary_expression "dStack_3d0 * *pdVar5 * in_f28_29" (binary_expression "dStack_3d0 * *pdVar5" identifier * (pointer_expression "*pdVar5" * identifier)) * identifier)) ;) })) }))) (expression_statement "iVar10 = *(int *)(unaff_s7 + 0x2d0);" (assignment_expression "iVar10 = *(int *)(unaff_s7 + 0x2d0)" identifier = (pointer_expression "*(int *)(unaff_s7 + 0x2d0)" * (cast_expression "(int *)(unaff_s7 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x2d0)" ( (binary_expression "unaff_s7 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "*(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;" (assignment_expression "*(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0" (pointer_expression "*(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4)" * (cast_expression "(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + *(int *)(iVar10 + 8) * 4)" ( (binary_expression "(int)pdVar16 + *(int *)(iVar10 + 8) * 4" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar10 + 8) * 4" (pointer_expression "*(int *)(iVar10 + 8)" * (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)dStack_3f0" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "*(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;" (assignment_expression "*(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8" (pointer_expression "*(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4)" * (cast_expression "(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4)" ( (binary_expression "(int)pdVar16 + *(int *)(iVar10 + 0x14) * 4" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar10 + 0x14) * 4" (pointer_expression "*(int *)(iVar10 + 0x14)" * (cast_expression "(int *)(iVar10 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)dStack_3e8" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "*(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;" (assignment_expression "*(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0" (pointer_expression "*(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4)" * (cast_expression "(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4)" ( (binary_expression "(int)pdVar16 + *(int *)(iVar10 + 0x20) * 4" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar10 + 0x20) * 4" (pointer_expression "*(int *)(iVar10 + 0x20)" * (cast_expression "(int *)(iVar10 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x20)" ( (binary_expression "iVar10 + 0x20" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)dStack_3e0" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (if_statement "if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }" if (parenthesized_expression "(*(int *)(iVar10 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x28) != 0" (pointer_expression "*(int *)(iVar10 + 0x28)" * (cast_expression "(int *)(iVar10 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x28)" ( (binary_expression "iVar10 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }" { (expression_statement "*(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;" (assignment_expression "*(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8" (pointer_expression "*(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4)" * (cast_expression "(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4)" ( (binary_expression "(int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar10 + 0x2c) * 4" (pointer_expression "*(int *)(iVar10 + 0x2c)" * (cast_expression "(int *)(iVar10 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x2c)" ( (binary_expression "iVar10 + 0x2c" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)dStack_3d8" ( (type_descriptor "float" primitive_type) ) identifier)) ;) })) (if_statement "if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }" if (parenthesized_expression "(*(int *)(iVar10 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x34) != 0" (pointer_expression "*(int *)(iVar10 + 0x34)" * (cast_expression "(int *)(iVar10 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x34)" ( (binary_expression "iVar10 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }" { (if_statement "if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }" if (parenthesized_expression "(aiStack_418[2] == 0)" ( (binary_expression "aiStack_418[2] == 0" (subscript_expression "aiStack_418[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                    fVar43 = SUB84(in_f24_25,0);\n                  }" { (expression_statement "fVar43 = SUB84(in_f24_25,0);" (assignment_expression "fVar43 = SUB84(in_f24_25,0)" identifier = (call_expression "SUB84(in_f24_25,0)" identifier (argument_list "(in_f24_25,0)" ( identifier , number_literal )))) ;) }) (else_clause "else {\n                    fVar43 = (float)dStack_3d0;\n                  }" else (compound_statement "{\n                    fVar43 = (float)dStack_3d0;\n                  }" { (expression_statement "fVar43 = (float)dStack_3d0;" (assignment_expression "fVar43 = (float)dStack_3d0" identifier = (cast_expression "(float)dStack_3d0" ( (type_descriptor "float" primitive_type) ) identifier)) ;) }))) (expression_statement "*(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;" (assignment_expression "*(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43" (pointer_expression "*(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4)" * (cast_expression "(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4)" ( (binary_expression "(int)pdVar16 + *(int *)(iVar10 + 0x38) * 4" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar10 + 0x38) * 4" (pointer_expression "*(int *)(iVar10 + 0x38)" * (cast_expression "(int *)(iVar10 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x38)" ( (binary_expression "iVar10 + 0x38" identifier + number_literal) )))) * number_literal)) )))) = identifier) ;) })) })) (expression_statement "pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);" (assignment_expression "pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4)" identifier = (cast_expression "(double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4)" ( (binary_expression "(int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(unaff_s7 + 0x2c0) * 4" (pointer_expression "*(int *)(unaff_s7 + 0x2c0)" * (cast_expression "(int *)(unaff_s7 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x2c0)" ( (binary_expression "unaff_s7 + 0x2c0" identifier + number_literal) )))) * number_literal)) )))) ;) (expression_statement "uVar26 = uVar26 + 1;" (assignment_expression "uVar26 = uVar26 + 1" identifier = (binary_expression "uVar26 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((int)uVar26 <= (int)param_1)" ( (binary_expression "(int)uVar26 <= (int)param_1" (cast_expression "(int)uVar26" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "pdVar5 = pdStack_42c;" (assignment_expression "pdVar5 = pdStack_42c" identifier = identifier) ;) (expression_statement "iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);" (assignment_expression "iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430)" identifier = (call_expression "(**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430)" (parenthesized_expression "(**(code **)(pcStack_440 + -0x73a0))" ( (pointer_expression "**(code **)(pcStack_440 + -0x73a0)" * (pointer_expression "*(code **)(pcStack_440 + -0x73a0)" * (cast_expression "(code **)(pcStack_440 + -0x73a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_440 + -0x73a0)" ( (binary_expression "pcStack_440 + -0x73a0" identifier + number_literal) ))))) )) (argument_list "(pdStack_42c,uStack_430)" ( identifier , identifier )))) ;) (expression_statement "pcVar37 = pcStack_440;" (assignment_expression "pcVar37 = pcStack_440" identifier = identifier) ;) (if_statement "if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n            *(uint *)(pdVar29 + 4) = 0;\n          }" { (expression_statement "*(uint *)(pdVar29 + 4) = 0;" (assignment_expression "*(uint *)(pdVar29 + 4) = 0" (pointer_expression "*(uint *)(pdVar29 + 4)" * (cast_expression "(uint *)(pdVar29 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar29 + 4)" ( (binary_expression "pdVar29 + 4" identifier + number_literal) )))) = number_literal) ;) })) }))) })) (expression_statement "iVar49 = iVar49 + 1;" (assignment_expression "iVar49 = iVar49 + 1" identifier = (binary_expression "iVar49 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar49 < iVar28)" ( (binary_expression "iVar49 < iVar28" identifier < identifier) )) ;) })) (if_statement "if (iStack_3bc == **(int **)(pcVar37 + -0x7668)) {\n    return **(int **)(pcVar37 + -0x7668);\n  }" if (parenthesized_expression "(iStack_3bc == **(int **)(pcVar37 + -0x7668))" ( (binary_expression "iStack_3bc == **(int **)(pcVar37 + -0x7668)" identifier == (pointer_expression "**(int **)(pcVar37 + -0x7668)" * (pointer_expression "*(int **)(pcVar37 + -0x7668)" * (cast_expression "(int **)(pcVar37 + -0x7668)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + -0x7668)" ( (binary_expression "pcVar37 + -0x7668" identifier + number_literal) )))))) )) (compound_statement "{\n    return **(int **)(pcVar37 + -0x7668);\n  }" { (return_statement "return **(int **)(pcVar37 + -0x7668);" return (pointer_expression "**(int **)(pcVar37 + -0x7668)" * (pointer_expression "*(int **)(pcVar37 + -0x7668)" * (cast_expression "(int **)(pcVar37 + -0x7668)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + -0x7668)" ( (binary_expression "pcVar37 + -0x7668" identifier + number_literal) ))))) ;) })) (expression_statement "pcVar37 = *(code **)(pcVar37 + -0x7834);" (assignment_expression "pcVar37 = *(code **)(pcVar37 + -0x7834)" identifier = (pointer_expression "*(code **)(pcVar37 + -0x7834)" * (cast_expression "(code **)(pcVar37 + -0x7834)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + -0x7834)" ( (binary_expression "pcVar37 + -0x7834" identifier + number_literal) ))))) ;) (expression_statement "pcVar38 = FUN_000a549c;" (assignment_expression "pcVar38 = FUN_000a549c" identifier = identifier) ;) (expression_statement "(*pcVar37)();" (call_expression "(*pcVar37)()" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_5a8 = pcVar37 + 0x35c414;" (assignment_expression "pcStack_5a8 = pcVar37 + 0x35c414" identifier = (binary_expression "pcVar37 + 0x35c414" identifier + number_literal)) ;) (expression_statement "iStack_4b4 = **(int **)(pcVar37 + 0x354dac);" (assignment_expression "iStack_4b4 = **(int **)(pcVar37 + 0x354dac)" identifier = (pointer_expression "**(int **)(pcVar37 + 0x354dac)" * (pointer_expression "*(int **)(pcVar37 + 0x354dac)" * (cast_expression "(int **)(pcVar37 + 0x354dac)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x354dac)" ( (binary_expression "pcVar37 + 0x354dac" identifier + number_literal) )))))) ;) (expression_statement "puVar32 = *(uint **)(pdVar5 + 4);" (assignment_expression "puVar32 = *(uint **)(pdVar5 + 4)" identifier = (pointer_expression "*(uint **)(pdVar5 + 4)" * (cast_expression "(uint **)(pdVar5 + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar5 + 4)" ( (binary_expression "pdVar5 + 4" identifier + number_literal) ))))) ;) (expression_statement "pdVar30 = (double *)puVar32[3];" (assignment_expression "pdVar30 = (double *)puVar32[3]" identifier = (cast_expression "(double *)puVar32[3]" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar32[3]" identifier [ number_literal ]))) ;) (expression_statement "pdVar14 = pdVar5;" (assignment_expression "pdVar14 = pdVar5" identifier = identifier) ;) (expression_statement "uStack_4b0 = uVar26;" (assignment_expression "uStack_4b0 = uVar26" identifier = identifier) ;) (expression_statement "iStack_4ac = iVar49;" (assignment_expression "iStack_4ac = iVar49" identifier = identifier) ;) (expression_statement "pdStack_4a8 = pdVar16;" (assignment_expression "pdStack_4a8 = pdVar16" identifier = identifier) ;) (expression_statement "pdStack_4a4 = pdVar29;" (assignment_expression "pdStack_4a4 = pdVar29" identifier = identifier) ;) (expression_statement "iStack_4a0 = iVar28;" (assignment_expression "iStack_4a0 = iVar28" identifier = identifier) ;) (expression_statement "puStack_49c = param_1;" (assignment_expression "puStack_49c = param_1" identifier = identifier) ;) (expression_statement "pdStack_498 = unaff_s6;" (assignment_expression "pdStack_498 = unaff_s6" identifier = identifier) ;) (expression_statement "uStack_494 = unaff_s7;" (assignment_expression "uStack_494 = unaff_s7" identifier = identifier) ;) (expression_statement "iStack_490 = iVar3;" (assignment_expression "iStack_490 = iVar3" identifier = identifier) ;) (expression_statement "pcStack_48c = pcVar38;" (assignment_expression "pcStack_48c = pcVar38" identifier = identifier) ;) (expression_statement "dStack_488 = in_f20_21;" (assignment_expression "dStack_488 = in_f20_21" identifier = identifier) ;) (expression_statement "dStack_480 = in_f22_23;" (assignment_expression "dStack_480 = in_f22_23" identifier = identifier) ;) (expression_statement "dStack_478 = in_f24_25;" (assignment_expression "dStack_478 = in_f24_25" identifier = identifier) ;) (expression_statement "dStack_470 = in_f26_27;" (assignment_expression "dStack_470 = in_f26_27" identifier = identifier) ;) (expression_statement "dStack_468 = in_f28_29;" (assignment_expression "dStack_468 = in_f28_29" identifier = identifier) ;) (expression_statement "dStack_460 = in_f30_31;" (assignment_expression "dStack_460 = in_f30_31" identifier = identifier) ;) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x355488))();" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x355488))()" identifier = (call_expression "(**(code **)(pcVar37 + 0x355488))()" (parenthesized_expression "(**(code **)(pcVar37 + 0x355488))" ( (pointer_expression "**(code **)(pcVar37 + 0x355488)" * (pointer_expression "*(code **)(pcVar37 + 0x355488)" * (cast_expression "(code **)(pcVar37 + 0x355488)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x355488)" ( (binary_expression "pcVar37 + 0x355488" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar10 = (**(code **)(pcStack_5a8 + -0x7390))();" (assignment_expression "iVar10 = (**(code **)(pcStack_5a8 + -0x7390))()" identifier = (call_expression "(**(code **)(pcStack_5a8 + -0x7390))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7390))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7390)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7390)" * (cast_expression "(code **)(pcStack_5a8 + -0x7390)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7390)" ( (binary_expression "pcStack_5a8 + -0x7390" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 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 "iVar49 = (int)(puVar32[1] - (int)pdVar30) / iVar3;" (assignment_expression "iVar49 = (int)(puVar32[1] - (int)pdVar30) / iVar3" identifier = (binary_expression "(int)(puVar32[1] - (int)pdVar30) / iVar3" (cast_expression "(int)(puVar32[1] - (int)pdVar30)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar32[1] - (int)pdVar30)" ( (binary_expression "puVar32[1] - (int)pdVar30" (subscript_expression "puVar32[1]" identifier [ number_literal ]) - (cast_expression "(int)pdVar30" ( (type_descriptor "int" primitive_type) ) identifier)) ))) / identifier)) ;) (expression_statement "piVar48 = (int *)((int)(puVar32[1] - (int)pdVar30) % iVar3);" (assignment_expression "piVar48 = (int *)((int)(puVar32[1] - (int)pdVar30) % iVar3)" identifier = (cast_expression "(int *)((int)(puVar32[1] - (int)pdVar30) % iVar3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(puVar32[1] - (int)pdVar30) % iVar3)" ( (binary_expression "(int)(puVar32[1] - (int)pdVar30) % iVar3" (cast_expression "(int)(puVar32[1] - (int)pdVar30)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar32[1] - (int)pdVar30)" ( (binary_expression "puVar32[1] - (int)pdVar30" (subscript_expression "puVar32[1]" identifier [ number_literal ]) - (cast_expression "(int)pdVar30" ( (type_descriptor "int" primitive_type) ) identifier)) ))) % identifier) )))) ;) (expression_statement "piVar2 = piVar48;" (assignment_expression "piVar2 = piVar48" identifier = identifier) ;) (if_statement "if (iVar10 < (int)piVar48) {\n    iVar49 = iVar49 + 1;\n    piVar2 = (int *)0x0;\n  }" if (parenthesized_expression "(iVar10 < (int)piVar48)" ( (binary_expression "iVar10 < (int)piVar48" identifier < (cast_expression "(int)piVar48" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    iVar49 = iVar49 + 1;\n    piVar2 = (int *)0x0;\n  }" { (expression_statement "iVar49 = iVar49 + 1;" (assignment_expression "iVar49 = iVar49 + 1" identifier = (binary_expression "iVar49 + 1" identifier + number_literal)) ;) (expression_statement "piVar2 = (int *)0x0;" (assignment_expression "piVar2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "piVar2 = (int *)(iVar49 * iVar10 + (int)piVar2);" (assignment_expression "piVar2 = (int *)(iVar49 * iVar10 + (int)piVar2)" identifier = (cast_expression "(int *)(iVar49 * iVar10 + (int)piVar2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 * iVar10 + (int)piVar2)" ( (binary_expression "iVar49 * iVar10 + (int)piVar2" (binary_expression "iVar49 * iVar10" identifier * identifier) + (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "puVar35 = (undefined1 *)((int)pdVar30 + (int)piVar2);" (assignment_expression "puVar35 = (undefined1 *)((int)pdVar30 + (int)piVar2)" identifier = (cast_expression "(undefined1 *)((int)pdVar30 + (int)piVar2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar30 + (int)piVar2)" ( (binary_expression "(int)pdVar30 + (int)piVar2" (cast_expression "(int)pdVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pcVar37 = pcStack_5a8;" (assignment_expression "pcVar37 = pcStack_5a8" identifier = identifier) ;) (if_statement "if ((int)piVar2 < iVar49 + (int)piVar2) {\n    dStack_580 = *pdVar5;\n    pdStack_588 = *(double **)(pdVar5 + 3);\n    puVar32 = *(uint **)((int)pdVar5 + 0x14);\n    pdStack_568 = *(double **)(pdVar5 + 2);\n    uStack_564 = *(uint *)((int)pdVar5 + 0xc);\n    piVar48 = *(int **)(pdVar5 + 1);\n    puStack_56c = (undefined1 *)((int)pdVar30 + iVar49 + (int)piVar2);\n    dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n    if (dStack_580 < 0.0) {\n      dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n    }\n    iStack_570 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_598 = *(double *)(iStack_570 + 0x4a48);\n    iStack_584 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_560 = *(double *)(iStack_584 + 0x43d0);\n    unaff_s6 = *(double **)(pcStack_5a8 + -0x7fd0);\n    dStack_548 = unaff_s6[0x879];\n    do {\n      if (*(uint *)((int)pdVar5 + 0x24) != 0) {\n        uStack_5ac = uStack_564;\n        uStack_5b0 = 1;\n        pdVar14 = pdStack_568;\n        pdVar30 = (double *)(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6]);\n        if (pdVar30 == (double *)0x0) {\n          *(uint *)((int)pdVar5 + 0x24) = 0;\n          pcVar37 = pcStack_5a8;\n        }\n        else {\n          piVar17 = *(int **)((int)pdVar5 + 0x1c);\n          piVar2 = piVar17;\n          piVar19 = aiStack_510;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);\n          iVar10 = *piVar2;\n          iVar3 = piVar7[5];\n          *piVar19 = iVar10;\n          piVar11[5] = iVar3;\n          in_f20_21 = *(double *)(piVar17 + 10);\n          in_f22_23 = *(double *)(piVar17 + 0xc);\n          in_f24_25 = *(double *)(piVar17 + 0xe);\n          dStack_590 = *(double *)(piVar17 + 0x10);\n          dVar39 = *(double *)(piVar17 + 0x12);\n          if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];\n          pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }\n          pdVar14 = pdStack_568;\n          iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar37 = pcStack_5a8;\n          if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }\n        }\n      }\n      puVar35 = puVar35 + 1;\n    } while ((int)puVar35 < (int)puStack_56c);\n  }" if (parenthesized_expression "((int)piVar2 < iVar49 + (int)piVar2)" ( (binary_expression "(int)piVar2 < iVar49 + (int)piVar2" (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier) < (binary_expression "iVar49 + (int)piVar2" identifier + (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier))) )) (compound_statement "{\n    dStack_580 = *pdVar5;\n    pdStack_588 = *(double **)(pdVar5 + 3);\n    puVar32 = *(uint **)((int)pdVar5 + 0x14);\n    pdStack_568 = *(double **)(pdVar5 + 2);\n    uStack_564 = *(uint *)((int)pdVar5 + 0xc);\n    piVar48 = *(int **)(pdVar5 + 1);\n    puStack_56c = (undefined1 *)((int)pdVar30 + iVar49 + (int)piVar2);\n    dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n    if (dStack_580 < 0.0) {\n      dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n    }\n    iStack_570 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_598 = *(double *)(iStack_570 + 0x4a48);\n    iStack_584 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_560 = *(double *)(iStack_584 + 0x43d0);\n    unaff_s6 = *(double **)(pcStack_5a8 + -0x7fd0);\n    dStack_548 = unaff_s6[0x879];\n    do {\n      if (*(uint *)((int)pdVar5 + 0x24) != 0) {\n        uStack_5ac = uStack_564;\n        uStack_5b0 = 1;\n        pdVar14 = pdStack_568;\n        pdVar30 = (double *)(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6]);\n        if (pdVar30 == (double *)0x0) {\n          *(uint *)((int)pdVar5 + 0x24) = 0;\n          pcVar37 = pcStack_5a8;\n        }\n        else {\n          piVar17 = *(int **)((int)pdVar5 + 0x1c);\n          piVar2 = piVar17;\n          piVar19 = aiStack_510;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);\n          iVar10 = *piVar2;\n          iVar3 = piVar7[5];\n          *piVar19 = iVar10;\n          piVar11[5] = iVar3;\n          in_f20_21 = *(double *)(piVar17 + 10);\n          in_f22_23 = *(double *)(piVar17 + 0xc);\n          in_f24_25 = *(double *)(piVar17 + 0xe);\n          dStack_590 = *(double *)(piVar17 + 0x10);\n          dVar39 = *(double *)(piVar17 + 0x12);\n          if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];\n          pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }\n          pdVar14 = pdStack_568;\n          iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar37 = pcStack_5a8;\n          if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }\n        }\n      }\n      puVar35 = puVar35 + 1;\n    } while ((int)puVar35 < (int)puStack_56c);\n  }" { (expression_statement "dStack_580 = *pdVar5;" (assignment_expression "dStack_580 = *pdVar5" identifier = (pointer_expression "*pdVar5" * identifier)) ;) (expression_statement "pdStack_588 = *(double **)(pdVar5 + 3);" (assignment_expression "pdStack_588 = *(double **)(pdVar5 + 3)" identifier = (pointer_expression "*(double **)(pdVar5 + 3)" * (cast_expression "(double **)(pdVar5 + 3)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar5 + 3)" ( (binary_expression "pdVar5 + 3" identifier + number_literal) ))))) ;) (expression_statement "puVar32 = *(uint **)((int)pdVar5 + 0x14);" (assignment_expression "puVar32 = *(uint **)((int)pdVar5 + 0x14)" identifier = (pointer_expression "*(uint **)((int)pdVar5 + 0x14)" * (cast_expression "(uint **)((int)pdVar5 + 0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pdVar5 + 0x14)" ( (binary_expression "(int)pdVar5 + 0x14" (cast_expression "(int)pdVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pdStack_568 = *(double **)(pdVar5 + 2);" (assignment_expression "pdStack_568 = *(double **)(pdVar5 + 2)" identifier = (pointer_expression "*(double **)(pdVar5 + 2)" * (cast_expression "(double **)(pdVar5 + 2)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar5 + 2)" ( (binary_expression "pdVar5 + 2" identifier + number_literal) ))))) ;) (expression_statement "uStack_564 = *(uint *)((int)pdVar5 + 0xc);" (assignment_expression "uStack_564 = *(uint *)((int)pdVar5 + 0xc)" identifier = (pointer_expression "*(uint *)((int)pdVar5 + 0xc)" * (cast_expression "(uint *)((int)pdVar5 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar5 + 0xc)" ( (binary_expression "(int)pdVar5 + 0xc" (cast_expression "(int)pdVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "piVar48 = *(int **)(pdVar5 + 1);" (assignment_expression "piVar48 = *(int **)(pdVar5 + 1)" identifier = (pointer_expression "*(int **)(pdVar5 + 1)" * (cast_expression "(int **)(pdVar5 + 1)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar5 + 1)" ( (binary_expression "pdVar5 + 1" identifier + number_literal) ))))) ;) (expression_statement "puStack_56c = (undefined1 *)((int)pdVar30 + iVar49 + (int)piVar2);" (assignment_expression "puStack_56c = (undefined1 *)((int)pdVar30 + iVar49 + (int)piVar2)" identifier = (cast_expression "(undefined1 *)((int)pdVar30 + iVar49 + (int)piVar2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar30 + iVar49 + (int)piVar2)" ( (binary_expression "(int)pdVar30 + iVar49 + (int)piVar2" (binary_expression "(int)pdVar30 + iVar49" (cast_expression "(int)pdVar30" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);" (assignment_expression "dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (dStack_580 < 0.0) {\n      dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n    }" if (parenthesized_expression "(dStack_580 < 0.0)" ( (binary_expression "dStack_580 < 0.0" identifier < number_literal) )) (compound_statement "{\n      dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n    }" { (expression_statement "dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) })) (expression_statement "iStack_570 = *(int *)(pcStack_5a8 + -0x7fd0);" (assignment_expression "iStack_570 = *(int *)(pcStack_5a8 + -0x7fd0)" identifier = (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) ))))) ;) (expression_statement "dStack_598 = *(double *)(iStack_570 + 0x4a48);" (assignment_expression "dStack_598 = *(double *)(iStack_570 + 0x4a48)" identifier = (pointer_expression "*(double *)(iStack_570 + 0x4a48)" * (cast_expression "(double *)(iStack_570 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_570 + 0x4a48)" ( (binary_expression "iStack_570 + 0x4a48" identifier + number_literal) ))))) ;) (expression_statement "iStack_584 = *(int *)(pcStack_5a8 + -0x7fd0);" (assignment_expression "iStack_584 = *(int *)(pcStack_5a8 + -0x7fd0)" identifier = (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) ))))) ;) (expression_statement "dStack_560 = *(double *)(iStack_584 + 0x43d0);" (assignment_expression "dStack_560 = *(double *)(iStack_584 + 0x43d0)" identifier = (pointer_expression "*(double *)(iStack_584 + 0x43d0)" * (cast_expression "(double *)(iStack_584 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_584 + 0x43d0)" ( (binary_expression "iStack_584 + 0x43d0" identifier + number_literal) ))))) ;) (expression_statement "unaff_s6 = *(double **)(pcStack_5a8 + -0x7fd0);" (assignment_expression "unaff_s6 = *(double **)(pcStack_5a8 + -0x7fd0)" identifier = (pointer_expression "*(double **)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(double **)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) ))))) ;) (expression_statement "dStack_548 = unaff_s6[0x879];" (assignment_expression "dStack_548 = unaff_s6[0x879]" identifier = (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ])) ;) (do_statement "do {\n      if (*(uint *)((int)pdVar5 + 0x24) != 0) {\n        uStack_5ac = uStack_564;\n        uStack_5b0 = 1;\n        pdVar14 = pdStack_568;\n        pdVar30 = (double *)(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6]);\n        if (pdVar30 == (double *)0x0) {\n          *(uint *)((int)pdVar5 + 0x24) = 0;\n          pcVar37 = pcStack_5a8;\n        }\n        else {\n          piVar17 = *(int **)((int)pdVar5 + 0x1c);\n          piVar2 = piVar17;\n          piVar19 = aiStack_510;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);\n          iVar10 = *piVar2;\n          iVar3 = piVar7[5];\n          *piVar19 = iVar10;\n          piVar11[5] = iVar3;\n          in_f20_21 = *(double *)(piVar17 + 10);\n          in_f22_23 = *(double *)(piVar17 + 0xc);\n          in_f24_25 = *(double *)(piVar17 + 0xe);\n          dStack_590 = *(double *)(piVar17 + 0x10);\n          dVar39 = *(double *)(piVar17 + 0x12);\n          if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];\n          pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }\n          pdVar14 = pdStack_568;\n          iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar37 = pcStack_5a8;\n          if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }\n        }\n      }\n      puVar35 = puVar35 + 1;\n    } while ((int)puVar35 < (int)puStack_56c);" do (compound_statement "{\n      if (*(uint *)((int)pdVar5 + 0x24) != 0) {\n        uStack_5ac = uStack_564;\n        uStack_5b0 = 1;\n        pdVar14 = pdStack_568;\n        pdVar30 = (double *)(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6]);\n        if (pdVar30 == (double *)0x0) {\n          *(uint *)((int)pdVar5 + 0x24) = 0;\n          pcVar37 = pcStack_5a8;\n        }\n        else {\n          piVar17 = *(int **)((int)pdVar5 + 0x1c);\n          piVar2 = piVar17;\n          piVar19 = aiStack_510;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);\n          iVar10 = *piVar2;\n          iVar3 = piVar7[5];\n          *piVar19 = iVar10;\n          piVar11[5] = iVar3;\n          in_f20_21 = *(double *)(piVar17 + 10);\n          in_f22_23 = *(double *)(piVar17 + 0xc);\n          in_f24_25 = *(double *)(piVar17 + 0xe);\n          dStack_590 = *(double *)(piVar17 + 0x10);\n          dVar39 = *(double *)(piVar17 + 0x12);\n          if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];\n          pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }\n          pdVar14 = pdStack_568;\n          iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar37 = pcStack_5a8;\n          if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }\n        }\n      }\n      puVar35 = puVar35 + 1;\n    }" { (if_statement "if (*(uint *)((int)pdVar5 + 0x24) != 0) {\n        uStack_5ac = uStack_564;\n        uStack_5b0 = 1;\n        pdVar14 = pdStack_568;\n        pdVar30 = (double *)(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6]);\n        if (pdVar30 == (double *)0x0) {\n          *(uint *)((int)pdVar5 + 0x24) = 0;\n          pcVar37 = pcStack_5a8;\n        }\n        else {\n          piVar17 = *(int **)((int)pdVar5 + 0x1c);\n          piVar2 = piVar17;\n          piVar19 = aiStack_510;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);\n          iVar10 = *piVar2;\n          iVar3 = piVar7[5];\n          *piVar19 = iVar10;\n          piVar11[5] = iVar3;\n          in_f20_21 = *(double *)(piVar17 + 10);\n          in_f22_23 = *(double *)(piVar17 + 0xc);\n          in_f24_25 = *(double *)(piVar17 + 0xe);\n          dStack_590 = *(double *)(piVar17 + 0x10);\n          dVar39 = *(double *)(piVar17 + 0x12);\n          if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];\n          pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }\n          pdVar14 = pdStack_568;\n          iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar37 = pcStack_5a8;\n          if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }\n        }\n      }" if (parenthesized_expression "(*(uint *)((int)pdVar5 + 0x24) != 0)" ( (binary_expression "*(uint *)((int)pdVar5 + 0x24) != 0" (pointer_expression "*(uint *)((int)pdVar5 + 0x24)" * (cast_expression "(uint *)((int)pdVar5 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar5 + 0x24)" ( (binary_expression "(int)pdVar5 + 0x24" (cast_expression "(int)pdVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n        uStack_5ac = uStack_564;\n        uStack_5b0 = 1;\n        pdVar14 = pdStack_568;\n        pdVar30 = (double *)(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6]);\n        if (pdVar30 == (double *)0x0) {\n          *(uint *)((int)pdVar5 + 0x24) = 0;\n          pcVar37 = pcStack_5a8;\n        }\n        else {\n          piVar17 = *(int **)((int)pdVar5 + 0x1c);\n          piVar2 = piVar17;\n          piVar19 = aiStack_510;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);\n          iVar10 = *piVar2;\n          iVar3 = piVar7[5];\n          *piVar19 = iVar10;\n          piVar11[5] = iVar3;\n          in_f20_21 = *(double *)(piVar17 + 10);\n          in_f22_23 = *(double *)(piVar17 + 0xc);\n          in_f24_25 = *(double *)(piVar17 + 0xe);\n          dStack_590 = *(double *)(piVar17 + 0x10);\n          dVar39 = *(double *)(piVar17 + 0x12);\n          if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];\n          pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }\n          pdVar14 = pdStack_568;\n          iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar37 = pcStack_5a8;\n          if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }\n        }\n      }" { (expression_statement "uStack_5ac = uStack_564;" (assignment_expression "uStack_5ac = uStack_564" identifier = identifier) ;) (expression_statement "uStack_5b0 = 1;" (assignment_expression "uStack_5b0 = 1" identifier = number_literal) ;) (expression_statement "pdVar14 = pdStack_568;" (assignment_expression "pdVar14 = pdStack_568" identifier = identifier) ;) (expression_statement "pdVar30 = (double *)(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6]);" (assignment_expression "pdVar30 = (double *)(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6])" identifier = (cast_expression "(double *)(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6])" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6])" (parenthesized_expression "(**(code **)(pcVar37 + -0x724c))" ( (pointer_expression "**(code **)(pcVar37 + -0x724c)" * (pointer_expression "*(code **)(pcVar37 + -0x724c)" * (cast_expression "(code **)(pcVar37 + -0x724c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + -0x724c)" ( (binary_expression "pcVar37 + -0x724c" identifier + number_literal) ))))) )) (argument_list "(pdStack_568,0,puVar35,piVar48[6])" ( identifier , number_literal , identifier , (subscript_expression "piVar48[6]" identifier [ number_literal ]) ))))) ;) (if_statement "if (pdVar30 == (double *)0x0) {\n          *(uint *)((int)pdVar5 + 0x24) = 0;\n          pcVar37 = pcStack_5a8;\n        }\n        else {\n          piVar17 = *(int **)((int)pdVar5 + 0x1c);\n          piVar2 = piVar17;\n          piVar19 = aiStack_510;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);\n          iVar10 = *piVar2;\n          iVar3 = piVar7[5];\n          *piVar19 = iVar10;\n          piVar11[5] = iVar3;\n          in_f20_21 = *(double *)(piVar17 + 10);\n          in_f22_23 = *(double *)(piVar17 + 0xc);\n          in_f24_25 = *(double *)(piVar17 + 0xe);\n          dStack_590 = *(double *)(piVar17 + 0x10);\n          dVar39 = *(double *)(piVar17 + 0x12);\n          if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];\n          pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }\n          pdVar14 = pdStack_568;\n          iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar37 = pcStack_5a8;\n          if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }\n        }" if (parenthesized_expression "(pdVar30 == (double *)0x0)" ( (binary_expression "pdVar30 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *(uint *)((int)pdVar5 + 0x24) = 0;\n          pcVar37 = pcStack_5a8;\n        }" { (expression_statement "*(uint *)((int)pdVar5 + 0x24) = 0;" (assignment_expression "*(uint *)((int)pdVar5 + 0x24) = 0" (pointer_expression "*(uint *)((int)pdVar5 + 0x24)" * (cast_expression "(uint *)((int)pdVar5 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar5 + 0x24)" ( (binary_expression "(int)pdVar5 + 0x24" (cast_expression "(int)pdVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "pcVar37 = pcStack_5a8;" (assignment_expression "pcVar37 = pcStack_5a8" identifier = identifier) ;) }) (else_clause "else {\n          piVar17 = *(int **)((int)pdVar5 + 0x1c);\n          piVar2 = piVar17;\n          piVar19 = aiStack_510;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);\n          iVar10 = *piVar2;\n          iVar3 = piVar7[5];\n          *piVar19 = iVar10;\n          piVar11[5] = iVar3;\n          in_f20_21 = *(double *)(piVar17 + 10);\n          in_f22_23 = *(double *)(piVar17 + 0xc);\n          in_f24_25 = *(double *)(piVar17 + 0xe);\n          dStack_590 = *(double *)(piVar17 + 0x10);\n          dVar39 = *(double *)(piVar17 + 0x12);\n          if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];\n          pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }\n          pdVar14 = pdStack_568;\n          iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar37 = pcStack_5a8;\n          if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }\n        }" else (compound_statement "{\n          piVar17 = *(int **)((int)pdVar5 + 0x1c);\n          piVar2 = piVar17;\n          piVar19 = aiStack_510;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);\n          iVar10 = *piVar2;\n          iVar3 = piVar7[5];\n          *piVar19 = iVar10;\n          piVar11[5] = iVar3;\n          in_f20_21 = *(double *)(piVar17 + 10);\n          in_f22_23 = *(double *)(piVar17 + 0xc);\n          in_f24_25 = *(double *)(piVar17 + 0xe);\n          dStack_590 = *(double *)(piVar17 + 0x10);\n          dVar39 = *(double *)(piVar17 + 0x12);\n          if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];\n          pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }\n          pdVar14 = pdStack_568;\n          iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar37 = pcStack_5a8;\n          if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }\n        }" { (expression_statement "piVar17 = *(int **)((int)pdVar5 + 0x1c);" (assignment_expression "piVar17 = *(int **)((int)pdVar5 + 0x1c)" identifier = (pointer_expression "*(int **)((int)pdVar5 + 0x1c)" * (cast_expression "(int **)((int)pdVar5 + 0x1c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pdVar5 + 0x1c)" ( (binary_expression "(int)pdVar5 + 0x1c" (cast_expression "(int)pdVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "piVar2 = piVar17;" (assignment_expression "piVar2 = piVar17" identifier = identifier) ;) (expression_statement "piVar19 = aiStack_510;" (assignment_expression "piVar19 = aiStack_510" identifier = identifier) ;) (do_statement "do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);" do (compound_statement "{\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          }" { (expression_statement "piVar11 = piVar19;" (assignment_expression "piVar11 = piVar19" identifier = identifier) ;) (expression_statement "piVar7 = piVar2;" (assignment_expression "piVar7 = piVar2" identifier = identifier) ;) (expression_statement "iVar49 = piVar7[1];" (assignment_expression "iVar49 = piVar7[1]" identifier = (subscript_expression "piVar7[1]" identifier [ number_literal ])) ;) (expression_statement "iVar10 = piVar7[2];" (assignment_expression "iVar10 = piVar7[2]" identifier = (subscript_expression "piVar7[2]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = piVar7[3];" (assignment_expression "iVar3 = piVar7[3]" identifier = (subscript_expression "piVar7[3]" identifier [ number_literal ])) ;) (expression_statement "*piVar11 = *piVar7;" (assignment_expression "*piVar11 = *piVar7" (pointer_expression "*piVar11" * identifier) = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "piVar11[1] = iVar49;" (assignment_expression "piVar11[1] = iVar49" (subscript_expression "piVar11[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar11[2] = iVar10;" (assignment_expression "piVar11[2] = iVar10" (subscript_expression "piVar11[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar11[3] = iVar3;" (assignment_expression "piVar11[3] = iVar3" (subscript_expression "piVar11[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar2 = piVar7 + 4;" (assignment_expression "piVar2 = piVar7 + 4" identifier = (binary_expression "piVar7 + 4" identifier + number_literal)) ;) (expression_statement "piVar19 = piVar11 + 4;" (assignment_expression "piVar19 = piVar11 + 4" identifier = (binary_expression "piVar11 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar2 != piVar17 + 0x14)" ( (binary_expression "piVar2 != piVar17 + 0x14" identifier != (binary_expression "piVar17 + 0x14" identifier + number_literal)) )) ;) (expression_statement "iVar10 = *piVar2;" (assignment_expression "iVar10 = *piVar2" identifier = (pointer_expression "*piVar2" * identifier)) ;) (expression_statement "iVar3 = piVar7[5];" (assignment_expression "iVar3 = piVar7[5]" identifier = (subscript_expression "piVar7[5]" identifier [ number_literal ])) ;) (expression_statement "*piVar19 = iVar10;" (assignment_expression "*piVar19 = iVar10" (pointer_expression "*piVar19" * identifier) = identifier) ;) (expression_statement "piVar11[5] = iVar3;" (assignment_expression "piVar11[5] = iVar3" (subscript_expression "piVar11[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "in_f20_21 = *(double *)(piVar17 + 10);" (assignment_expression "in_f20_21 = *(double *)(piVar17 + 10)" identifier = (pointer_expression "*(double *)(piVar17 + 10)" * (cast_expression "(double *)(piVar17 + 10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar17 + 10)" ( (binary_expression "piVar17 + 10" identifier + number_literal) ))))) ;) (expression_statement "in_f22_23 = *(double *)(piVar17 + 0xc);" (assignment_expression "in_f22_23 = *(double *)(piVar17 + 0xc)" identifier = (pointer_expression "*(double *)(piVar17 + 0xc)" * (cast_expression "(double *)(piVar17 + 0xc)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar17 + 0xc)" ( (binary_expression "piVar17 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "in_f24_25 = *(double *)(piVar17 + 0xe);" (assignment_expression "in_f24_25 = *(double *)(piVar17 + 0xe)" identifier = (pointer_expression "*(double *)(piVar17 + 0xe)" * (cast_expression "(double *)(piVar17 + 0xe)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar17 + 0xe)" ( (binary_expression "piVar17 + 0xe" identifier + number_literal) ))))) ;) (expression_statement "dStack_590 = *(double *)(piVar17 + 0x10);" (assignment_expression "dStack_590 = *(double *)(piVar17 + 0x10)" identifier = (pointer_expression "*(double *)(piVar17 + 0x10)" * (cast_expression "(double *)(piVar17 + 0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar17 + 0x10)" ( (binary_expression "piVar17 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "dVar39 = *(double *)(piVar17 + 0x12);" (assignment_expression "dVar39 = *(double *)(piVar17 + 0x12)" identifier = (pointer_expression "*(double *)(piVar17 + 0x12)" * (cast_expression "(double *)(piVar17 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar17 + 0x12)" ( (binary_expression "piVar17 + 0x12" identifier + number_literal) ))))) ;) (if_statement "if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }" if (parenthesized_expression "(*puVar32 < 2)" ( (binary_expression "*puVar32 < 2" (pointer_expression "*puVar32" * identifier) < number_literal) )) (compound_statement "{\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }" { (expression_statement "uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);" (assignment_expression "uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6)" identifier = (binary_expression "*(double *)(puVar32 + 10) - *(double *)(puVar32 + 6)" (pointer_expression "*(double *)(puVar32 + 10)" * (cast_expression "(double *)(puVar32 + 10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 10)" ( (binary_expression "puVar32 + 10" identifier + number_literal) )))) - (pointer_expression "*(double *)(puVar32 + 6)" * (cast_expression "(double *)(puVar32 + 6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 6)" ( (binary_expression "puVar32 + 6" identifier + number_literal) )))))) ;) (expression_statement "dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);" (assignment_expression "dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8)" identifier = (binary_expression "*(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8)" (pointer_expression "*(double *)(puVar32 + 0xc)" * (cast_expression "(double *)(puVar32 + 0xc)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0xc)" ( (binary_expression "puVar32 + 0xc" identifier + number_literal) )))) - (pointer_expression "*(double *)(puVar32 + 8)" * (cast_expression "(double *)(puVar32 + 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 8)" ( (binary_expression "puVar32 + 8" identifier + number_literal) )))))) ;) (expression_statement "dStack_540 = 0.0 - *(double *)(puVar32 + 6);" (assignment_expression "dStack_540 = 0.0 - *(double *)(puVar32 + 6)" identifier = (binary_expression "0.0 - *(double *)(puVar32 + 6)" number_literal - (pointer_expression "*(double *)(puVar32 + 6)" * (cast_expression "(double *)(puVar32 + 6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 6)" ( (binary_expression "puVar32 + 6" identifier + number_literal) )))))) ;) (expression_statement "dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);" (assignment_expression "dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8)" identifier = (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 8)" (cast_expression "(double)(int)puVar35" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar35" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar32 + 8)" * (cast_expression "(double *)(puVar32 + 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 8)" ( (binary_expression "puVar32 + 8" identifier + number_literal) )))))) ;) (expression_statement "dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;" (assignment_expression "dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530" identifier = (binary_expression "dStack_540 * dStack_540 + dStack_530 * dStack_530" (binary_expression "dStack_540 * dStack_540" identifier * identifier) + (binary_expression "dStack_530 * dStack_530" identifier * identifier))) ;) (expression_statement "dStack_558 = SQRT(dVar41);" (assignment_expression "dStack_558 = SQRT(dVar41)" identifier = (call_expression "SQRT(dVar41)" identifier (argument_list "(dVar41)" ( identifier )))) ;) (if_statement "if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }" if (parenthesized_expression "(0.0 <= dVar41)" ( (binary_expression "0.0 <= dVar41" number_literal <= identifier) )) (compound_statement "{\n              dVar41 = dVar40 * dVar40;\n            }" { (expression_statement "dVar41 = dVar40 * dVar40;" (assignment_expression "dVar41 = dVar40 * dVar40" identifier = (binary_expression "dVar40 * dVar40" identifier * identifier)) ;) }) (else_clause "else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }" else (compound_statement "{\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }" { (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "dVar41 = dVar40 * dVar40;" (assignment_expression "dVar41 = dVar40 * dVar40" identifier = (binary_expression "dVar40 * dVar40" identifier * identifier)) ;) }))) (expression_statement "dVar41 = uStack_5a0 * uStack_5a0 + dVar41;" (assignment_expression "dVar41 = uStack_5a0 * uStack_5a0 + dVar41" identifier = (binary_expression "uStack_5a0 * uStack_5a0 + dVar41" (binary_expression "uStack_5a0 * uStack_5a0" identifier * identifier) + identifier)) ;) (expression_statement "in_f26_27 = SQRT(dVar41);" (assignment_expression "in_f26_27 = SQRT(dVar41)" identifier = (call_expression "SQRT(dVar41)" identifier (argument_list "(dVar41)" ( identifier )))) ;) (if_statement "if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }" if (parenthesized_expression "(dVar41 < 0.0)" ( (binary_expression "dVar41 < 0.0" identifier < number_literal) )) (compound_statement "{\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }" { (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "in_f26_27 = dStack_558 * in_f26_27;" (assignment_expression "in_f26_27 = dStack_558 * in_f26_27" identifier = (binary_expression "dStack_558 * in_f26_27" identifier * identifier)) ;) (if_statement "if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }" if (parenthesized_expression "(0.0 <= in_f26_27)" ( (binary_expression "0.0 <= in_f26_27" number_literal <= identifier) )) (compound_statement "{\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }" { (expression_statement "dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);" (assignment_expression "dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }" else (compound_statement "{\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }" { (expression_statement "dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }" if (parenthesized_expression "(unaff_s6[0x879] <= in_f26_27 * dVar41)" ( (binary_expression "unaff_s6[0x879] <= in_f26_27 * dVar41" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "in_f26_27 * dVar41" identifier * identifier)) )) (compound_statement "{\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }" { (expression_statement "dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;" (assignment_expression "dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27" identifier = (binary_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27" (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))) / identifier)) ;) }) (else_clause "else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }" else (compound_statement "{\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }" { (expression_statement "in_f26_27 = unaff_s6[0x879];" (assignment_expression "in_f26_27 = unaff_s6[0x879]" identifier = (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ])) ;) (expression_statement "dVar41 = dVar41 / in_f26_27;" (assignment_expression "dVar41 = dVar41 / in_f26_27" identifier = (binary_expression "dVar41 / in_f26_27" identifier / identifier)) ;) }))) (expression_statement "uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;" (assignment_expression "uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558" identifier = (binary_expression "(uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558" (binary_expression "(uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41" (parenthesized_expression "(uStack_5a0 * dStack_540 + dVar40 * dStack_530)" ( (binary_expression "uStack_5a0 * dStack_540 + dVar40 * dStack_530" (binary_expression "uStack_5a0 * dStack_540" identifier * identifier) + (binary_expression "dVar40 * dStack_530" identifier * identifier)) )) * identifier) * identifier)) ;) (labeled_statement "LAB_000a56c0:\n            uVar26 = *puVar32;" statement_identifier : (expression_statement "uVar26 = *puVar32;" (assignment_expression "uVar26 = *puVar32" identifier = (pointer_expression "*puVar32" * identifier)) ;)) (labeled_statement "LAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }" statement_identifier : (if_statement "if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }" if (parenthesized_expression "(uVar26 != 2)" ( (binary_expression "uVar26 != 2" identifier != number_literal) )) (compound_statement "{\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }" { (if_statement "if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }" if (parenthesized_expression "(unaff_s6[0x879] <= dStack_580 * dStack_578)" ( (binary_expression "unaff_s6[0x879] <= dStack_580 * dStack_578" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dStack_580 * dStack_578" identifier * identifier)) )) (compound_statement "{\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }" { (expression_statement "dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;" (assignment_expression "dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580" identifier = (binary_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580" (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))) / identifier)) ;) }) (else_clause "else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }" else (compound_statement "{\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }" { (expression_statement "dVar41 = dStack_578 / unaff_s6[0x879];" (assignment_expression "dVar41 = dStack_578 / unaff_s6[0x879]" identifier = (binary_expression "dStack_578 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "uStack_5a0 = uStack_5a0 * dVar41;" (assignment_expression "uStack_5a0 = uStack_5a0 * dVar41" identifier = (binary_expression "uStack_5a0 * dVar41" identifier * identifier)) ;) }))) }) (else_clause "else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }" else (compound_statement "{\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }" { (if_statement "if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }" if (parenthesized_expression "(*puVar32 != 2)" ( (binary_expression "*puVar32 != 2" (pointer_expression "*puVar32" * identifier) != number_literal) )) (compound_statement "{\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }" { (expression_statement "uStack_5a0 = 0.0;" (assignment_expression "uStack_5a0 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_000a56c0;" goto statement_identifier ;) })) (if_statement "if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }" if (parenthesized_expression "(puVar32[0x10] != 3)" ( (binary_expression "puVar32[0x10] != 3" (subscript_expression "puVar32[0x10]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }" { (expression_statement "in_f26_27 = 0.0;" (assignment_expression "in_f26_27 = 0.0" identifier = number_literal) ;) (expression_statement "dVar40 = 0.0 - *(double *)(puVar32 + 0x12);" (assignment_expression "dVar40 = 0.0 - *(double *)(puVar32 + 0x12)" identifier = (binary_expression "0.0 - *(double *)(puVar32 + 0x12)" number_literal - (pointer_expression "*(double *)(puVar32 + 0x12)" * (cast_expression "(double *)(puVar32 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x12)" ( (binary_expression "puVar32 + 0x12" identifier + number_literal) )))))) ;) (expression_statement "(**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);" (call_expression "(**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520)" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x78e0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x78e0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x78e0)" * (cast_expression "(code **)(pcStack_5a8 + -0x78e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x78e0)" ( (binary_expression "pcStack_5a8 + -0x78e0" identifier + number_literal) ))))) )) (argument_list "((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520)" ( (binary_expression "(*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" (parenthesized_expression "(*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88))" ( (binary_expression "*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" (pointer_expression "*(double *)(puVar32 + 0x1c)" * (cast_expression "(double *)(puVar32 + 0x1c)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x1c)" ( (binary_expression "puVar32 + 0x1c" identifier + number_literal) )))) * (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) )) / (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) , identifier , identifier , (pointer_expression "&dStack_518" & identifier) , (pointer_expression "&dStack_520" & identifier) ))) ;) (expression_statement "dVar41 = *(double *)(puVar32 + 0x16);" (assignment_expression "dVar41 = *(double *)(puVar32 + 0x16)" identifier = (pointer_expression "*(double *)(puVar32 + 0x16)" * (cast_expression "(double *)(puVar32 + 0x16)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x16)" ( (binary_expression "puVar32 + 0x16" identifier + number_literal) ))))) ;) (if_statement "if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }" if (parenthesized_expression "(in_f26_27 <= dVar41)" ( (binary_expression "in_f26_27 <= dVar41" identifier <= identifier) )) (compound_statement "{\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }" { (expression_statement "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);" (assignment_expression "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }" else (compound_statement "{\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }" { (expression_statement "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar41 * dVar47)" ( (binary_expression "unaff_s6[0x879] <= dVar41 * dVar47" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar41 * dVar47" identifier * identifier)) )) (compound_statement "{\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }" { (expression_statement "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;" (assignment_expression "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41" identifier = (binary_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41" (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))) / identifier)) ;) }) (else_clause "else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }" else (compound_statement "{\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }" { (expression_statement "dVar47 = dVar47 / unaff_s6[0x879];" (assignment_expression "dVar47 = dVar47 / unaff_s6[0x879]" identifier = (binary_expression "dVar47 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;" (assignment_expression "dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47" identifier = (binary_expression "(dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47" (parenthesized_expression "(dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518)" ( (binary_expression "dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518" (binary_expression "dVar40 * dStack_520" identifier * identifier) + (binary_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518" (parenthesized_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" ( (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 0x14)" (cast_expression "(double)(int)puVar35" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar35" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar32 + 0x14)" * (cast_expression "(double *)(puVar32 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x14)" ( (binary_expression "puVar32 + 0x14" identifier + number_literal) ))))) )) * identifier)) )) * identifier)) ;) (expression_statement "dVar41 = *(double *)(puVar32 + 0x18);" (assignment_expression "dVar41 = *(double *)(puVar32 + 0x18)" identifier = (pointer_expression "*(double *)(puVar32 + 0x18)" * (cast_expression "(double *)(puVar32 + 0x18)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x18)" ( (binary_expression "puVar32 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }" if (parenthesized_expression "(0.0 <= dVar41)" ( (binary_expression "0.0 <= dVar41" number_literal <= identifier) )) (compound_statement "{\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }" { (expression_statement "dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);" (assignment_expression "dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }" else (compound_statement "{\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }" { (expression_statement "dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar41 * dVar44)" ( (binary_expression "unaff_s6[0x879] <= dVar41 * dVar44" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar41 * dVar44" identifier * identifier)) )) (compound_statement "{\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }" { (expression_statement "dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;" (assignment_expression "dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41" identifier = (binary_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41" (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))) / identifier)) ;) }) (else_clause "else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }" else (compound_statement "{\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }" { (expression_statement "dVar44 = dVar44 / unaff_s6[0x879];" (assignment_expression "dVar44 = dVar44 / unaff_s6[0x879]" identifier = (binary_expression "dVar44 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;" (assignment_expression "dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44" identifier = (binary_expression "(dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44" (parenthesized_expression "(dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)))" ( (binary_expression "dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (binary_expression "dVar40 * dStack_518" identifier * identifier) - (binary_expression "dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" identifier * (parenthesized_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" ( (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 0x14)" (cast_expression "(double)(int)puVar35" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar35" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar32 + 0x14)" * (cast_expression "(double *)(puVar32 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x14)" ( (binary_expression "puVar32 + 0x14" identifier + number_literal) ))))) )))) )) * identifier)) ;) (expression_statement "dVar41 = dVar47 * dVar47 + dVar44 * dVar44;" (assignment_expression "dVar41 = dVar47 * dVar47 + dVar44 * dVar44" identifier = (binary_expression "dVar47 * dVar47 + dVar44 * dVar44" (binary_expression "dVar47 * dVar47" identifier * identifier) + (binary_expression "dVar44 * dVar44" identifier * identifier))) ;) (expression_statement "uStack_5a0 = SQRT(dVar41);" (assignment_expression "uStack_5a0 = SQRT(dVar41)" identifier = (call_expression "SQRT(dVar41)" identifier (argument_list "(dVar41)" ( identifier )))) ;) (if_statement "if (0.0 <= dVar41) goto LAB_000a5700;" if (parenthesized_expression "(0.0 <= dVar41)" ( (binary_expression "0.0 <= dVar41" number_literal <= identifier) )) (goto_statement "goto LAB_000a5700;" goto statement_identifier ;)) (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar26 = *puVar32;" (assignment_expression "uVar26 = *puVar32" identifier = (pointer_expression "*puVar32" * identifier)) ;) (goto_statement "goto LAB_000a56c4;" goto statement_identifier ;) })) (expression_statement "dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));" (assignment_expression "dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" identifier = (binary_expression "(0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (binary_expression "(0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12))" (parenthesized_expression "(0.0 - *(double *)(puVar32 + 0x12))" ( (binary_expression "0.0 - *(double *)(puVar32 + 0x12)" number_literal - (pointer_expression "*(double *)(puVar32 + 0x12)" * (cast_expression "(double *)(puVar32 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x12)" ( (binary_expression "puVar32 + 0x12" identifier + number_literal) ))))) )) * (parenthesized_expression "(0.0 - *(double *)(puVar32 + 0x12))" ( (binary_expression "0.0 - *(double *)(puVar32 + 0x12)" number_literal - (pointer_expression "*(double *)(puVar32 + 0x12)" * (cast_expression "(double *)(puVar32 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x12)" ( (binary_expression "puVar32 + 0x12" identifier + number_literal) ))))) ))) + (binary_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (parenthesized_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" ( (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 0x14)" (cast_expression "(double)(int)puVar35" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar35" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar32 + 0x14)" * (cast_expression "(double *)(puVar32 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x14)" ( (binary_expression "puVar32 + 0x14" identifier + number_literal) ))))) )) * (parenthesized_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" ( (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 0x14)" (cast_expression "(double)(int)puVar35" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar35" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar32 + 0x14)" * (cast_expression "(double *)(puVar32 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x14)" ( (binary_expression "puVar32 + 0x14" identifier + number_literal) ))))) ))))) ;) (expression_statement "uStack_5a0 = SQRT(dVar41);" (assignment_expression "uStack_5a0 = SQRT(dVar41)" identifier = (call_expression "SQRT(dVar41)" identifier (argument_list "(dVar41)" ( identifier )))) ;) (if_statement "if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }" if (parenthesized_expression "(dVar41 < 0.0)" ( (binary_expression "dVar41 < 0.0" identifier < number_literal) )) (compound_statement "{\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }" { (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar26 = *puVar32;" (assignment_expression "uVar26 = *puVar32" identifier = (pointer_expression "*puVar32" * identifier)) ;) (goto_statement "goto LAB_000a56c4;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];" statement_identifier : (expression_statement "iVar28 = (*(int **)(pdVar5 + 4))[2];" (assignment_expression "iVar28 = (*(int **)(pdVar5 + 4))[2]" identifier = (subscript_expression "(*(int **)(pdVar5 + 4))[2]" (parenthesized_expression "(*(int **)(pdVar5 + 4))" ( (pointer_expression "*(int **)(pdVar5 + 4)" * (cast_expression "(int **)(pdVar5 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar5 + 4)" ( (binary_expression "pdVar5 + 4" identifier + number_literal) )))) )) [ number_literal ])) ;)) (expression_statement "pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);" (assignment_expression "pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0)" identifier = (pointer_expression "*(double **)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(double **)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) ))))) ;) (if_statement "if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }" if (parenthesized_expression "(iVar28 < **(int **)(pdVar5 + 4))" ( (binary_expression "iVar28 < **(int **)(pdVar5 + 4)" identifier < (pointer_expression "**(int **)(pdVar5 + 4)" * (pointer_expression "*(int **)(pdVar5 + 4)" * (cast_expression "(int **)(pdVar5 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar5 + 4)" ( (binary_expression "pdVar5 + 4" identifier + number_literal) )))))) )) (compound_statement "{\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }" { (expression_statement "dStack_540 = pdVar29[0x881];" (assignment_expression "dStack_540 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) (expression_statement "dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);" (assignment_expression "dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_)" identifier = (cast_expression "(double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_)" identifier (argument_list "(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_)" ( (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) , (field_expression "dStack_558._4_4_" identifier . field_identifier) ))))) ;) (expression_statement "dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);" (assignment_expression "dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) (do_statement "do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));" do (compound_statement "{\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            }" { (expression_statement "(**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);" (call_expression "(**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58)" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x78a4))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x78a4)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x78a4)" * (cast_expression "(code **)(pcStack_5a8 + -0x78a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x78a4)" ( (binary_expression "pcStack_5a8 + -0x78a4" identifier + number_literal) ))))) )) (argument_list "(aiStack_510,0,0x58)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "aiStack_510[0] = 1;" (assignment_expression "aiStack_510[0] = 1" (subscript_expression "aiStack_510[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_510[1] = 0x17;" (assignment_expression "aiStack_510[1] = 0x17" (subscript_expression "aiStack_510[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iStack_4f8 = 0x10;" (assignment_expression "iStack_4f8 = 0x10" identifier = number_literal) ;) (expression_statement "aiStack_510[2] = 0;" (assignment_expression "aiStack_510[2] = 0" (subscript_expression "aiStack_510[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "dStack_4c8 = dStack_598;" (assignment_expression "dStack_4c8 = dStack_598" identifier = identifier) ;) (if_statement "if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }" if (parenthesized_expression "(piVar48 != (int *)0x0)" ( (binary_expression "piVar48 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }" { (expression_statement "aiStack_510[0] = *piVar48;" (assignment_expression "aiStack_510[0] = *piVar48" (subscript_expression "aiStack_510[0]" identifier [ number_literal ]) = (pointer_expression "*piVar48" * identifier)) ;) (expression_statement "aiStack_510[1] = piVar48[1];" (assignment_expression "aiStack_510[1] = piVar48[1]" (subscript_expression "aiStack_510[1]" identifier [ number_literal ]) = (subscript_expression "piVar48[1]" identifier [ number_literal ])) ;) (expression_statement "uStack_500 = *(undefined8 *)(piVar48 + 0x92);" (assignment_expression "uStack_500 = *(undefined8 *)(piVar48 + 0x92)" identifier = (pointer_expression "*(undefined8 *)(piVar48 + 0x92)" * (cast_expression "(undefined8 *)(piVar48 + 0x92)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar48 + 0x92)" ( (binary_expression "piVar48 + 0x92" identifier + number_literal) ))))) ;) (expression_statement "iStack_4f8 = piVar48[8];" (assignment_expression "iStack_4f8 = piVar48[8]" identifier = (subscript_expression "piVar48[8]" identifier [ number_literal ])) ;) (expression_statement "aiStack_510[2] = piVar48[0xaf];" (assignment_expression "aiStack_510[2] = piVar48[0xaf]" (subscript_expression "aiStack_510[2]" identifier [ number_literal ]) = (subscript_expression "piVar48[0xaf]" identifier [ number_literal ])) ;) (if_statement "if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }" if (parenthesized_expression "(pdVar30 != (double *)0x0)" ( (binary_expression "pdVar30 != (double *)0x0" identifier != (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }" { (expression_statement "iVar3 = piVar48[0xb4];" (assignment_expression "iVar3 = piVar48[0xb4]" identifier = (subscript_expression "piVar48[0xb4]" identifier [ number_literal ])) ;) (expression_statement "dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);" (assignment_expression "dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4)" identifier = (cast_expression "(double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4)" * (cast_expression "(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar30 + *(int *)(iVar3 + 8) * 4)" ( (binary_expression "(int)pdVar30 + *(int *)(iVar3 + 8) * 4" (cast_expression "(int)pdVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar3 + 8) * 4" (pointer_expression "*(int *)(iVar3 + 8)" * (cast_expression "(int *)(iVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);" (assignment_expression "dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4)" identifier = (cast_expression "(double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4)" * (cast_expression "(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4)" ( (binary_expression "(int)pdVar30 + *(int *)(iVar3 + 0x14) * 4" (cast_expression "(int)pdVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar3 + 0x14) * 4" (pointer_expression "*(int *)(iVar3 + 0x14)" * (cast_expression "(int *)(iVar3 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);" (assignment_expression "dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4)" identifier = (cast_expression "(double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4)" * (cast_expression "(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4)" ( (binary_expression "(int)pdVar30 + *(int *)(iVar3 + 0x20) * 4" (cast_expression "(int)pdVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar3 + 0x20) * 4" (pointer_expression "*(int *)(iVar3 + 0x20)" * (cast_expression "(int *)(iVar3 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x20)" ( (binary_expression "iVar3 + 0x20" identifier + number_literal) )))) * number_literal)) )))))) ;) (if_statement "if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }" if (parenthesized_expression "(*(int *)(iVar3 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar3 + 0x28) != 0" (pointer_expression "*(int *)(iVar3 + 0x28)" * (cast_expression "(int *)(iVar3 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x28)" ( (binary_expression "iVar3 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }" { (expression_statement "dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);" (assignment_expression "dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4)" identifier = (cast_expression "(double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4)" * (cast_expression "(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4)" ( (binary_expression "(int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4" (cast_expression "(int)pdVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar3 + 0x2c) * 4" (pointer_expression "*(int *)(iVar3 + 0x2c)" * (cast_expression "(int *)(iVar3 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2c)" ( (binary_expression "iVar3 + 0x2c" identifier + number_literal) )))) * number_literal)) )))))) ;) })) (if_statement "if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }" if (parenthesized_expression "(*(int *)(iVar3 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar3 + 0x34) != 0" (pointer_expression "*(int *)(iVar3 + 0x34)" * (cast_expression "(int *)(iVar3 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x34)" ( (binary_expression "iVar3 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }" { (expression_statement "dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);" (assignment_expression "dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4)" identifier = (cast_expression "(double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4)" * (cast_expression "(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4)" ( (binary_expression "(int)pdVar30 + *(int *)(iVar3 + 0x38) * 4" (cast_expression "(int)pdVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar3 + 0x38) * 4" (pointer_expression "*(int *)(iVar3 + 0x38)" * (cast_expression "(int *)(iVar3 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x38)" ( (binary_expression "iVar3 + 0x38" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "aiStack_510[2] = 4;" (assignment_expression "aiStack_510[2] = 4" (subscript_expression "aiStack_510[2]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }" if (parenthesized_expression "(*(int *)(iVar3 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar3 + 0x40) != 0" (pointer_expression "*(int *)(iVar3 + 0x40)" * (cast_expression "(int *)(iVar3 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x40)" ( (binary_expression "iVar3 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }" { (expression_statement "dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);" (assignment_expression "dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4)" identifier = (cast_expression "(double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4)" * (cast_expression "(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4)" ( (binary_expression "(int)pdVar30 + *(int *)(iVar3 + 0x44) * 4" (cast_expression "(int)pdVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar3 + 0x44) * 4" (pointer_expression "*(int *)(iVar3 + 0x44)" * (cast_expression "(int *)(iVar3 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x44)" ( (binary_expression "iVar3 + 0x44" identifier + number_literal) )))) * number_literal)) )))))) ;) })) })) })) (expression_statement "unaff_s7 = puVar32[0x10];" (assignment_expression "unaff_s7 = puVar32[0x10]" identifier = (subscript_expression "puVar32[0x10]" identifier [ number_literal ])) ;) (if_statement "if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }" if (parenthesized_expression "(unaff_s7 == 2)" ( (binary_expression "unaff_s7 == 2" identifier == number_literal) )) (compound_statement "{\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }" { (expression_statement "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560)" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560)" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7c78))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7c78)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7c78)" * (cast_expression "(code **)(pcStack_5a8 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7c78)" ( (binary_expression "pcStack_5a8 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(*pdStack_588 - dStack_560)" ( (binary_expression "*pdStack_588 - dStack_560" (pointer_expression "*pdStack_588" * identifier) - identifier) ))))) ;) (if_statement "if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }" if (parenthesized_expression "(((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39))" ( (binary_expression "((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)" (parenthesized_expression "((int)dVar39 == iVar28)" ( (binary_expression "(int)dVar39 == iVar28" (cast_expression "(int)dVar39" ( (type_descriptor "int" primitive_type) ) identifier) == identifier) )) && (parenthesized_expression "(dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)" ( (comma_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7c78))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7c78)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7c78)" * (cast_expression "(code **)(pcStack_5a8 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7c78)" ( (binary_expression "pcStack_5a8 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" ( (binary_expression "pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)" (subscript_expression "pdStack_588[1]" identifier [ number_literal ]) - (pointer_expression "*(double *)(iStack_584 + 0x43d0)" * (cast_expression "(double *)(iStack_584 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_584 + 0x43d0)" ( (binary_expression "iStack_584 + 0x43d0" identifier + number_literal) ))))) ))))) , (binary_expression "puVar35 == (undefined1 *)(int)dVar39" identifier == (cast_expression "(undefined1 *)(int)dVar39" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)dVar39" ( (type_descriptor "int" primitive_type) ) identifier)))) ))) )) (compound_statement "{\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }" { (labeled_statement "LAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }" statement_identifier : (if_statement "if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }" if (parenthesized_expression "(uStack_5a0 < 0.0)" ( (binary_expression "uStack_5a0 < 0.0" identifier < number_literal) )) (compound_statement "{\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }" { (expression_statement "uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;" (assignment_expression "uStack_550 = uStack_5a0._0_4_ ^ 0x80000000" identifier = (binary_expression "uStack_5a0._0_4_ ^ 0x80000000" (field_expression "uStack_5a0._0_4_" identifier . field_identifier) ^ number_literal)) ;) (expression_statement "uStack_54c = uStack_5a0._4_4_;" (assignment_expression "uStack_54c = uStack_5a0._4_4_" identifier = (field_expression "uStack_5a0._4_4_" identifier . field_identifier)) ;) (expression_statement "uStack_5a0 = -uStack_5a0;" (assignment_expression "uStack_5a0 = -uStack_5a0" identifier = (unary_expression "-uStack_5a0" - identifier)) ;) }))) (labeled_statement "LAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);" statement_identifier : (expression_statement "iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);" (assignment_expression "iVar3 = *(int *)(pcStack_5a8 + -0x7fcc)" identifier = (pointer_expression "*(int *)(pcStack_5a8 + -0x7fcc)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fcc)" ( (binary_expression "pcStack_5a8 + -0x7fcc" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }" else (compound_statement "{\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }" { (if_statement "if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }" if (parenthesized_expression "(*puVar32 < 2)" ( (binary_expression "*puVar32 < 2" (pointer_expression "*puVar32" * identifier) < number_literal) )) (compound_statement "{\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }" { (expression_statement "dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);" (assignment_expression "dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6)" identifier = (binary_expression "*(double *)(puVar32 + 10) - *(double *)(puVar32 + 6)" (pointer_expression "*(double *)(puVar32 + 10)" * (cast_expression "(double *)(puVar32 + 10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 10)" ( (binary_expression "puVar32 + 10" identifier + number_literal) )))) - (pointer_expression "*(double *)(puVar32 + 6)" * (cast_expression "(double *)(puVar32 + 6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 6)" ( (binary_expression "puVar32 + 6" identifier + number_literal) )))))) ;) (expression_statement "dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);" (assignment_expression "dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8)" identifier = (binary_expression "*(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8)" (pointer_expression "*(double *)(puVar32 + 0xc)" * (cast_expression "(double *)(puVar32 + 0xc)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0xc)" ( (binary_expression "puVar32 + 0xc" identifier + number_literal) )))) - (pointer_expression "*(double *)(puVar32 + 8)" * (cast_expression "(double *)(puVar32 + 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 8)" ( (binary_expression "puVar32 + 8" identifier + number_literal) )))))) ;) (expression_statement "dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);" (assignment_expression "dVar45 = (double)iVar28 - *(double *)(puVar32 + 6)" identifier = (binary_expression "(double)iVar28 - *(double *)(puVar32 + 6)" (cast_expression "(double)iVar28" ( (type_descriptor "double" primitive_type) ) identifier) - (pointer_expression "*(double *)(puVar32 + 6)" * (cast_expression "(double *)(puVar32 + 6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 6)" ( (binary_expression "puVar32 + 6" identifier + number_literal) )))))) ;) (expression_statement "dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);" (assignment_expression "dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8)" identifier = (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 8)" (cast_expression "(double)(int)puVar35" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar35" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar32 + 8)" * (cast_expression "(double *)(puVar32 + 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 8)" ( (binary_expression "puVar32 + 8" identifier + number_literal) )))))) ;) (expression_statement "dVar39 = dVar45 * dVar45 + dVar47 * dVar47;" (assignment_expression "dVar39 = dVar45 * dVar45 + dVar47 * dVar47" identifier = (binary_expression "dVar45 * dVar45 + dVar47 * dVar47" (binary_expression "dVar45 * dVar45" identifier * identifier) + (binary_expression "dVar47 * dVar47" identifier * identifier))) ;) (expression_statement "uStack_5a0 = SQRT(dVar39);" (assignment_expression "uStack_5a0 = SQRT(dVar39)" identifier = (call_expression "SQRT(dVar39)" identifier (argument_list "(dVar39)" ( identifier )))) ;) (if_statement "if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }" if (parenthesized_expression "(0.0 <= dVar39)" ( (binary_expression "0.0 <= dVar39" number_literal <= identifier) )) (compound_statement "{\n                      dVar39 = dVar40 * dVar40;\n                    }" { (expression_statement "dVar39 = dVar40 * dVar40;" (assignment_expression "dVar39 = dVar40 * dVar40" identifier = (binary_expression "dVar40 * dVar40" identifier * identifier)) ;) }) (else_clause "else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }" else (compound_statement "{\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }" { (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "dVar39 = dVar40 * dVar40;" (assignment_expression "dVar39 = dVar40 * dVar40" identifier = (binary_expression "dVar40 * dVar40" identifier * identifier)) ;) }))) (expression_statement "dVar39 = dVar44 * dVar44 + dVar39;" (assignment_expression "dVar39 = dVar44 * dVar44 + dVar39" identifier = (binary_expression "dVar44 * dVar44 + dVar39" (binary_expression "dVar44 * dVar44" identifier * identifier) + identifier)) ;) (expression_statement "dVar42 = SQRT(dVar39);" (assignment_expression "dVar42 = SQRT(dVar39)" identifier = (call_expression "SQRT(dVar39)" identifier (argument_list "(dVar39)" ( identifier )))) ;) (if_statement "if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }" if (parenthesized_expression "(dVar39 < 0.0)" ( (binary_expression "dVar39 < 0.0" identifier < number_literal) )) (compound_statement "{\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }" { (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "dVar42 = uStack_5a0 * dVar42;" (assignment_expression "dVar42 = uStack_5a0 * dVar42" identifier = (binary_expression "uStack_5a0 * dVar42" identifier * identifier)) ;) (if_statement "if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" if (parenthesized_expression "(0.0 <= dVar42)" ( (binary_expression "0.0 <= dVar42" number_literal <= identifier) )) (compound_statement "{\n                      in_f26_27 = pdVar29[0x881];\n                    }" { (expression_statement "in_f26_27 = pdVar29[0x881];" (assignment_expression "in_f26_27 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" else (compound_statement "{\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" { (expression_statement "in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar42 * in_f26_27)" ( (binary_expression "unaff_s6[0x879] <= dVar42 * in_f26_27" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar42 * in_f26_27" identifier * identifier)) )) (compound_statement "{\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }" { (expression_statement "in_f26_27 = pdVar29[0x881] / dVar42;" (assignment_expression "in_f26_27 = pdVar29[0x881] / dVar42" identifier = (binary_expression "pdVar29[0x881] / dVar42" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }" else (compound_statement "{\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }" { (expression_statement "in_f26_27 = in_f26_27 / unaff_s6[0x879];" (assignment_expression "in_f26_27 = in_f26_27 / unaff_s6[0x879]" identifier = (binary_expression "in_f26_27 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;" (assignment_expression "in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27" identifier = (binary_expression "(dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27" (parenthesized_expression "(dVar44 * dVar45 + dVar40 * dVar47)" ( (binary_expression "dVar44 * dVar45 + dVar40 * dVar47" (binary_expression "dVar44 * dVar45" identifier * identifier) + (binary_expression "dVar40 * dVar47" identifier * identifier)) )) * identifier)) ;) (expression_statement "uStack_5a0 = in_f26_27 * uStack_5a0;" (assignment_expression "uStack_5a0 = in_f26_27 * uStack_5a0" identifier = (binary_expression "in_f26_27 * uStack_5a0" identifier * identifier)) ;) (labeled_statement "LAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }" statement_identifier : (if_statement "if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }" if (parenthesized_expression "(*puVar32 != 2)" ( (binary_expression "*puVar32 != 2" (pointer_expression "*puVar32" * identifier) != number_literal) )) (compound_statement "{\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }" { (labeled_statement "LAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }" statement_identifier : (if_statement "if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }" if (parenthesized_expression "(dStack_548 <= dStack_580 * dStack_578)" ( (binary_expression "dStack_548 <= dStack_580 * dStack_578" identifier <= (binary_expression "dStack_580 * dStack_578" identifier * identifier)) )) (compound_statement "{\n                        dVar39 = dStack_540 / dStack_580;\n                      }" { (expression_statement "dVar39 = dStack_540 / dStack_580;" (assignment_expression "dVar39 = dStack_540 / dStack_580" identifier = (binary_expression "dStack_540 / dStack_580" identifier / identifier)) ;) }) (else_clause "else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }" else (compound_statement "{\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }" { (expression_statement "dVar39 = dStack_578 / unaff_s6[0x879];" (assignment_expression "dVar39 = dStack_578 / unaff_s6[0x879]" identifier = (binary_expression "dStack_578 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) })))) (expression_statement "uStack_5a0 = uStack_5a0 * dVar39;" (assignment_expression "uStack_5a0 = uStack_5a0 * dVar39" identifier = (binary_expression "uStack_5a0 * dVar39" identifier * identifier)) ;) }))) (goto_statement "goto LAB_000a63a4;" goto statement_identifier ;) })) (if_statement "if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }" if (parenthesized_expression "(*puVar32 != 2)" ( (binary_expression "*puVar32 != 2" (pointer_expression "*puVar32" * identifier) != number_literal) )) (compound_statement "{\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }" { (expression_statement "uStack_5a0 = 0.0;" (assignment_expression "uStack_5a0 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_000a6368;" goto statement_identifier ;) })) (expression_statement "dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);" (assignment_expression "dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12)" identifier = (binary_expression "(double)iVar28 - *(double *)(puVar32 + 0x12)" (cast_expression "(double)iVar28" ( (type_descriptor "double" primitive_type) ) identifier) - (pointer_expression "*(double *)(puVar32 + 0x12)" * (cast_expression "(double *)(puVar32 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x12)" ( (binary_expression "puVar32 + 0x12" identifier + number_literal) )))))) ;) (expression_statement "(**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));" (call_expression "(**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x78e0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x78e0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x78e0)" * (cast_expression "(code **)(pcStack_5a8 + -0x78e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x78e0)" ( (binary_expression "pcStack_5a8 + -0x78e0" identifier + number_literal) ))))) )) (argument_list "((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80))" ( (binary_expression "(*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" (parenthesized_expression "(*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88))" ( (binary_expression "*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" (pointer_expression "*(double *)(puVar32 + 0x1c)" * (cast_expression "(double *)(puVar32 + 0x1c)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x1c)" ( (binary_expression "puVar32 + 0x1c" identifier + number_literal) )))) * (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) )) / (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ))) ;) (expression_statement "dVar39 = *(double *)(puVar32 + 0x16);" (assignment_expression "dVar39 = *(double *)(puVar32 + 0x16)" identifier = (pointer_expression "*(double *)(puVar32 + 0x16)" * (cast_expression "(double *)(puVar32 + 0x16)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x16)" ( (binary_expression "puVar32 + 0x16" identifier + number_literal) ))))) ;) (if_statement "if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }" if (parenthesized_expression "(0.0 <= dVar39)" ( (binary_expression "0.0 <= dVar39" number_literal <= identifier) )) (compound_statement "{\n                    dVar47 = pdVar29[0x881];\n                  }" { (expression_statement "dVar47 = pdVar29[0x881];" (assignment_expression "dVar47 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }" else (compound_statement "{\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }" { (expression_statement "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar39 * dVar47)" ( (binary_expression "unaff_s6[0x879] <= dVar39 * dVar47" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar39 * dVar47" identifier * identifier)) )) (compound_statement "{\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }" { (expression_statement "dVar47 = pdVar29[0x881] / dVar39;" (assignment_expression "dVar47 = pdVar29[0x881] / dVar39" identifier = (binary_expression "pdVar29[0x881] / dVar39" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }" else (compound_statement "{\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }" { (expression_statement "dVar47 = dVar47 / unaff_s6[0x879];" (assignment_expression "dVar47 = dVar47 / unaff_s6[0x879]" identifier = (binary_expression "dVar47 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "dVar39 = *(double *)(puVar32 + 0x18);" (assignment_expression "dVar39 = *(double *)(puVar32 + 0x18)" identifier = (pointer_expression "*(double *)(puVar32 + 0x18)" * (cast_expression "(double *)(puVar32 + 0x18)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x18)" ( (binary_expression "puVar32 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;" (assignment_expression "dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47" identifier = (binary_expression "(dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47" (parenthesized_expression "(dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518)" ( (binary_expression "dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518" (binary_expression "dVar40 * dStack_520" identifier * identifier) + (binary_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518" (parenthesized_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" ( (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 0x14)" (cast_expression "(double)(int)puVar35" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar35" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar32 + 0x14)" * (cast_expression "(double *)(puVar32 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x14)" ( (binary_expression "puVar32 + 0x14" identifier + number_literal) ))))) )) * identifier)) )) * identifier)) ;) (if_statement "if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }" if (parenthesized_expression "(0.0 <= dVar39)" ( (binary_expression "0.0 <= dVar39" number_literal <= identifier) )) (compound_statement "{\n                    dVar44 = pdVar29[0x881];\n                  }" { (expression_statement "dVar44 = pdVar29[0x881];" (assignment_expression "dVar44 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }" else (compound_statement "{\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }" { (expression_statement "dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar39 * dVar44)" ( (binary_expression "unaff_s6[0x879] <= dVar39 * dVar44" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar39 * dVar44" identifier * identifier)) )) (compound_statement "{\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }" { (expression_statement "dVar44 = pdVar29[0x881] / dVar39;" (assignment_expression "dVar44 = pdVar29[0x881] / dVar39" identifier = (binary_expression "pdVar29[0x881] / dVar39" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }" else (compound_statement "{\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }" { (expression_statement "dVar44 = dVar44 / unaff_s6[0x879];" (assignment_expression "dVar44 = dVar44 / unaff_s6[0x879]" identifier = (binary_expression "dVar44 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;" (assignment_expression "dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44" identifier = (binary_expression "(dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44" (parenthesized_expression "(dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)))" ( (binary_expression "dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (binary_expression "dVar40 * dStack_518" identifier * identifier) - (binary_expression "dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" identifier * (parenthesized_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" ( (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 0x14)" (cast_expression "(double)(int)puVar35" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar35" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar32 + 0x14)" * (cast_expression "(double *)(puVar32 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x14)" ( (binary_expression "puVar32 + 0x14" identifier + number_literal) ))))) )))) )) * identifier)) ;) (expression_statement "dVar39 = dVar47 * dVar47 + dVar44 * dVar44;" (assignment_expression "dVar39 = dVar47 * dVar47 + dVar44 * dVar44" identifier = (binary_expression "dVar47 * dVar47 + dVar44 * dVar44" (binary_expression "dVar47 * dVar47" identifier * identifier) + (binary_expression "dVar44 * dVar44" identifier * identifier))) ;) (expression_statement "uStack_5a0 = SQRT(dVar39);" (assignment_expression "uStack_5a0 = SQRT(dVar39)" identifier = (call_expression "SQRT(dVar39)" identifier (argument_list "(dVar39)" ( identifier )))) ;) (if_statement "if (0.0 <= dVar39) goto LAB_000a63bc;" if (parenthesized_expression "(0.0 <= dVar39)" ( (binary_expression "0.0 <= dVar39" number_literal <= identifier) )) (goto_statement "goto LAB_000a63bc;" goto statement_identifier ;)) (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (if_statement "if (*puVar32 != 2) goto LAB_000a6378;" if (parenthesized_expression "(*puVar32 != 2)" ( (binary_expression "*puVar32 != 2" (pointer_expression "*puVar32" * identifier) != number_literal) )) (goto_statement "goto LAB_000a6378;" goto statement_identifier ;)) (expression_statement "iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);" (assignment_expression "iVar3 = *(int *)(pcStack_5a8 + -0x7fcc)" identifier = (pointer_expression "*(int *)(pcStack_5a8 + -0x7fcc)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fcc)" ( (binary_expression "pcStack_5a8 + -0x7fcc" identifier + number_literal) ))))) ;) }))) (expression_statement "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298))" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298))" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x6ee0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x6ee0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x6ee0)" * (cast_expression "(code **)(pcStack_5a8 + -0x6ee0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x6ee0)" ( (binary_expression "pcStack_5a8 + -0x6ee0" identifier + number_literal) ))))) )) (argument_list "(uStack_5a0,*(undefined8 *)(iVar3 + 0x298))" ( identifier , (pointer_expression "*(undefined8 *)(iVar3 + 0x298)" * (cast_expression "(undefined8 *)(iVar3 + 0x298)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x298)" ( (binary_expression "iVar3 + 0x298" identifier + number_literal) )))) ))))) ;) (if_statement "if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }" if (parenthesized_expression "((int)dVar39 == 0)" ( (binary_expression "(int)dVar39 == 0" (cast_expression "(int)dVar39" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }" { (expression_statement "uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);" (assignment_expression "uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881])" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881])" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881])" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x6ee0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x6ee0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x6ee0)" * (cast_expression "(code **)(pcStack_5a8 + -0x6ee0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x6ee0)" ( (binary_expression "pcStack_5a8 + -0x6ee0" identifier + number_literal) ))))) )) (argument_list "(uStack_5a0,pdVar29[0x881])" ( identifier , (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) ))))) ;) }) (else_clause "else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }" else (compound_statement "{\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }" { (expression_statement "dVar39 = pdVar29[0x881];" (assignment_expression "dVar39 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) (expression_statement "uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);" (assignment_expression "uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39)" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39)" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x6ee0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x6ee0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x6ee0)" * (cast_expression "(code **)(pcStack_5a8 + -0x6ee0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x6ee0)" ( (binary_expression "pcStack_5a8 + -0x6ee0" identifier + number_literal) ))))) )) (argument_list "(uStack_5a0,dVar39)" ( identifier , identifier ))))) ;) (expression_statement "uStack_5a0 = dVar39 - uStack_5a0;" (assignment_expression "uStack_5a0 = dVar39 - uStack_5a0" identifier = (binary_expression "dVar39 - uStack_5a0" identifier - identifier)) ;) }))) (expression_statement "uVar26 = puVar32[0xf];" (assignment_expression "uVar26 = puVar32[0xf]" identifier = (subscript_expression "puVar32[0xf]" identifier [ number_literal ])) ;) (if_statement "if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }" if (parenthesized_expression "(0 < (int)uVar26)" ( (binary_expression "0 < (int)uVar26" number_literal < (cast_expression "(int)uVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }" { (expression_statement "uVar8 = puVar32[0xe];" (assignment_expression "uVar8 = puVar32[0xe]" identifier = (subscript_expression "puVar32[0xe]" identifier [ number_literal ])) ;) (if_statement "if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }" if (parenthesized_expression "(*(double *)(uVar8 + 0x58) <= uStack_5a0)" ( (binary_expression "*(double *)(uVar8 + 0x58) <= uStack_5a0" (pointer_expression "*(double *)(uVar8 + 0x58)" * (cast_expression "(double *)(uVar8 + 0x58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + 0x58)" ( (binary_expression "uVar8 + 0x58" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }" { (expression_statement "pdVar16 = (double *)(uVar8 + 0xb8);" (assignment_expression "pdVar16 = (double *)(uVar8 + 0xb8)" identifier = (cast_expression "(double *)(uVar8 + 0xb8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + 0xb8)" ( (binary_expression "uVar8 + 0xb8" identifier + number_literal) )))) ;) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);" do (compound_statement "{\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    }" { (expression_statement "uVar22 = uVar18;" (assignment_expression "uVar22 = uVar18" identifier = identifier) ;) (expression_statement "uVar18 = uVar22 + 1;" (assignment_expression "uVar18 = uVar22 + 1" identifier = (binary_expression "uVar22 + 1" identifier + number_literal)) ;) (if_statement "if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }" if (parenthesized_expression "(uVar18 == uVar26)" ( (binary_expression "uVar18 == uVar26" identifier == identifier) )) (compound_statement "{\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }" { (if_statement "if (uVar18 == 0) goto LAB_000a6248;" if (parenthesized_expression "(uVar18 == 0)" ( (binary_expression "uVar18 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000a6248;" goto statement_identifier ;)) (expression_statement "iVar3 = uVar8 + uVar26 * 0x60 + -0x60;" (assignment_expression "iVar3 = uVar8 + uVar26 * 0x60 + -0x60" identifier = (binary_expression "uVar8 + uVar26 * 0x60 + -0x60" (binary_expression "uVar8 + uVar26 * 0x60" identifier + (binary_expression "uVar26 * 0x60" identifier * number_literal)) + number_literal)) ;) (expression_statement "in_f20_21 = *(double *)(iVar3 + 0x28);" (assignment_expression "in_f20_21 = *(double *)(iVar3 + 0x28)" identifier = (pointer_expression "*(double *)(iVar3 + 0x28)" * (cast_expression "(double *)(iVar3 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x28)" ( (binary_expression "iVar3 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "in_f22_23 = *(double *)(iVar3 + 0x30);" (assignment_expression "in_f22_23 = *(double *)(iVar3 + 0x30)" identifier = (pointer_expression "*(double *)(iVar3 + 0x30)" * (cast_expression "(double *)(iVar3 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x30)" ( (binary_expression "iVar3 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "in_f24_25 = *(double *)(iVar3 + 0x38);" (assignment_expression "in_f24_25 = *(double *)(iVar3 + 0x38)" identifier = (pointer_expression "*(double *)(iVar3 + 0x38)" * (cast_expression "(double *)(iVar3 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x38)" ( (binary_expression "iVar3 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "dStack_590 = *(double *)(iVar3 + 0x40);" (assignment_expression "dStack_590 = *(double *)(iVar3 + 0x40)" identifier = (pointer_expression "*(double *)(iVar3 + 0x40)" * (cast_expression "(double *)(iVar3 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x40)" ( (binary_expression "iVar3 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "dVar39 = *(double *)(iVar3 + 0x48);" (assignment_expression "dVar39 = *(double *)(iVar3 + 0x48)" identifier = (pointer_expression "*(double *)(iVar3 + 0x48)" * (cast_expression "(double *)(iVar3 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x48)" ( (binary_expression "iVar3 + 0x48" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000a5af8;" goto statement_identifier ;) })) (expression_statement "dVar39 = *pdVar16;" (assignment_expression "dVar39 = *pdVar16" identifier = (pointer_expression "*pdVar16" * identifier)) ;) (expression_statement "pdVar16 = pdVar16 + 0xc;" (assignment_expression "pdVar16 = pdVar16 + 0xc" identifier = (binary_expression "pdVar16 + 0xc" identifier + number_literal)) ;) }) while (parenthesized_expression "(dVar39 <= uStack_5a0)" ( (binary_expression "dVar39 <= uStack_5a0" identifier <= identifier) )) ;) (if_statement "if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }" if (parenthesized_expression "(uVar18 != 0)" ( (binary_expression "uVar18 != 0" identifier != number_literal) )) (compound_statement "{\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }" { (expression_statement "iVar10 = uVar8 + uVar22 * 0x60;" (assignment_expression "iVar10 = uVar8 + uVar22 * 0x60" identifier = (binary_expression "uVar8 + uVar22 * 0x60" identifier + (binary_expression "uVar22 * 0x60" identifier * number_literal))) ;) (expression_statement "iVar3 = uVar8 + uVar18 * 0x60;" (assignment_expression "iVar3 = uVar8 + uVar18 * 0x60" identifier = (binary_expression "uVar8 + uVar18 * 0x60" identifier + (binary_expression "uVar18 * 0x60" identifier * number_literal))) ;) (expression_statement "dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));" (assignment_expression "dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58))" identifier = (binary_expression "(uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58))" (parenthesized_expression "(uStack_5a0 - *(double *)(iVar10 + 0x58))" ( (binary_expression "uStack_5a0 - *(double *)(iVar10 + 0x58)" identifier - (pointer_expression "*(double *)(iVar10 + 0x58)" * (cast_expression "(double *)(iVar10 + 0x58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x58)" ( (binary_expression "iVar10 + 0x58" identifier + number_literal) ))))) )) / (parenthesized_expression "(*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58))" ( (binary_expression "*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58)" (pointer_expression "*(double *)(iVar3 + 0x58)" * (cast_expression "(double *)(iVar3 + 0x58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x58)" ( (binary_expression "iVar3 + 0x58" identifier + number_literal) )))) - (pointer_expression "*(double *)(iVar10 + 0x58)" * (cast_expression "(double *)(iVar10 + 0x58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x58)" ( (binary_expression "iVar10 + 0x58" identifier + number_literal) ))))) )))) ;) (expression_statement "dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);" (assignment_expression "dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" identifier = (binary_expression "(pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" (binary_expression "(pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48)" (parenthesized_expression "(pdVar29[0x881] - dVar39)" ( (binary_expression "pdVar29[0x881] - dVar39" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) - identifier) )) * (pointer_expression "*(double *)(iVar10 + 0x48)" * (cast_expression "(double *)(iVar10 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x48)" ( (binary_expression "iVar10 + 0x48" identifier + number_literal) ))))) * (pointer_expression "*(double *)(dStack_558._0_4_ + 0x4410)" * (cast_expression "(double *)(dStack_558._0_4_ + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(dStack_558._0_4_ + 0x4410)" ( (binary_expression "dStack_558._0_4_ + 0x4410" (field_expression "dStack_558._0_4_" identifier . field_identifier) + number_literal) )))))) ;) (expression_statement "dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);" (assignment_expression "dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" identifier = (binary_expression "dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" (binary_expression "dVar39 * *(double *)(iVar3 + 0x48)" identifier * (pointer_expression "*(double *)(iVar3 + 0x48)" * (cast_expression "(double *)(iVar3 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x48)" ( (binary_expression "iVar3 + 0x48" identifier + number_literal) ))))) * (pointer_expression "*(double *)(dStack_558._0_4_ + 0x4410)" * (cast_expression "(double *)(dStack_558._0_4_ + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(dStack_558._0_4_ + 0x4410)" ( (binary_expression "dStack_558._0_4_ + 0x4410" (field_expression "dStack_558._0_4_" identifier . field_identifier) + number_literal) )))))) ;) (expression_statement "dVar44 = dVar47 + dVar40;" (assignment_expression "dVar44 = dVar47 + dVar40" identifier = (binary_expression "dVar47 + dVar40" identifier + identifier)) ;) (if_statement "if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }" if (parenthesized_expression "(0.0 <= dVar44)" ( (binary_expression "0.0 <= dVar44" number_literal <= identifier) )) (compound_statement "{\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }" { (if_statement "if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }" if (parenthesized_expression "(pdVar29[0x881] < dVar44)" ( (binary_expression "pdVar29[0x881] < dVar44" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) < identifier) )) (compound_statement "{\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }" { (expression_statement "dVar44 = pdVar29[0x881];" (assignment_expression "dVar44 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_000a6e58;" goto statement_identifier ;) })) (if_statement "if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }" if (parenthesized_expression "(0.0 <= dVar44)" ( (binary_expression "0.0 <= dVar44" number_literal <= identifier) )) (compound_statement "{\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }" { (expression_statement "dVar39 = dVar44;" (assignment_expression "dVar39 = dVar44" identifier = identifier) ;) (if_statement "if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }" if (parenthesized_expression "(pdVar29[0x881] < dVar44)" ( (binary_expression "pdVar29[0x881] < dVar44" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) < identifier) )) (compound_statement "{\n                            dVar39 = pdVar29[0x881];\n                          }" { (expression_statement "dVar39 = pdVar29[0x881];" (assignment_expression "dVar39 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) })) (expression_statement "dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);" (assignment_expression "dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48)" identifier = (binary_expression "dVar39 * *(double *)(iStack_570 + 0x4a48)" identifier * (pointer_expression "*(double *)(iStack_570 + 0x4a48)" * (cast_expression "(double *)(iStack_570 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_570 + 0x4a48)" ( (binary_expression "iStack_570 + 0x4a48" identifier + number_literal) )))))) ;) (if_statement "if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }" if (parenthesized_expression "(dVar44 < 0.0)" ( (binary_expression "dVar44 < 0.0" identifier < number_literal) )) (compound_statement "{\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }" { (expression_statement "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n                            dVar45 = pdVar29[0x881];\n                          }" else (compound_statement "{\n                            dVar45 = pdVar29[0x881];\n                          }" { (expression_statement "dVar45 = pdVar29[0x881];" (assignment_expression "dVar45 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) }))) }) (else_clause "else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }" else (compound_statement "{\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }" { (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" identifier = number_literal) ;) (expression_statement "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) }) (else_clause "else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }" else (compound_statement "{\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }" { (expression_statement "dVar44 = 0.0;" (assignment_expression "dVar44 = 0.0" identifier = number_literal) ;) (labeled_statement "LAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);" statement_identifier : (expression_statement "dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);" (assignment_expression "dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48)" identifier = (binary_expression "dVar44 * *(double *)(iStack_570 + 0x4a48)" identifier * (pointer_expression "*(double *)(iStack_570 + 0x4a48)" * (cast_expression "(double *)(iStack_570 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_570 + 0x4a48)" ( (binary_expression "iStack_570 + 0x4a48" identifier + number_literal) )))))) ;)) (expression_statement "dVar45 = pdVar29[0x881];" (assignment_expression "dVar45 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar45 * dVar44)" ( (binary_expression "unaff_s6[0x879] <= dVar45 * dVar44" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar45 * dVar44" identifier * identifier)) )) (compound_statement "{\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }" { (expression_statement "dVar45 = pdVar29[0x881] / dVar44;" (assignment_expression "dVar45 = pdVar29[0x881] / dVar44" identifier = (binary_expression "pdVar29[0x881] / dVar44" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }" else (compound_statement "{\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }" { (expression_statement "dVar45 = dVar45 / unaff_s6[0x879];" (assignment_expression "dVar45 = dVar45 / unaff_s6[0x879]" identifier = (binary_expression "dVar45 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;" (assignment_expression "in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45" identifier = (binary_expression "(dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45" (parenthesized_expression "(dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28))" ( (binary_expression "dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)" (binary_expression "dVar47 * *(double *)(iVar10 + 0x28)" identifier * (pointer_expression "*(double *)(iVar10 + 0x28)" * (cast_expression "(double *)(iVar10 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x28)" ( (binary_expression "iVar10 + 0x28" identifier + number_literal) ))))) + (binary_expression "dVar40 * *(double *)(iVar3 + 0x28)" identifier * (pointer_expression "*(double *)(iVar3 + 0x28)" * (cast_expression "(double *)(iVar3 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x28)" ( (binary_expression "iVar3 + 0x28" identifier + number_literal) )))))) )) * identifier)) ;) (expression_statement "in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;" (assignment_expression "in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45" identifier = (binary_expression "(dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45" (parenthesized_expression "(dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30))" ( (binary_expression "dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)" (binary_expression "dVar47 * *(double *)(iVar10 + 0x30)" identifier * (pointer_expression "*(double *)(iVar10 + 0x30)" * (cast_expression "(double *)(iVar10 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x30)" ( (binary_expression "iVar10 + 0x30" identifier + number_literal) ))))) + (binary_expression "dVar40 * *(double *)(iVar3 + 0x30)" identifier * (pointer_expression "*(double *)(iVar3 + 0x30)" * (cast_expression "(double *)(iVar3 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x30)" ( (binary_expression "iVar3 + 0x30" identifier + number_literal) )))))) )) * identifier)) ;) (expression_statement "in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;" (assignment_expression "in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45" identifier = (binary_expression "(dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45" (parenthesized_expression "(dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38))" ( (binary_expression "dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)" (binary_expression "dVar47 * *(double *)(iVar10 + 0x38)" identifier * (pointer_expression "*(double *)(iVar10 + 0x38)" * (cast_expression "(double *)(iVar10 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x38)" ( (binary_expression "iVar10 + 0x38" identifier + number_literal) ))))) + (binary_expression "dVar40 * *(double *)(iVar3 + 0x38)" identifier * (pointer_expression "*(double *)(iVar3 + 0x38)" * (cast_expression "(double *)(iVar3 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x38)" ( (binary_expression "iVar3 + 0x38" identifier + number_literal) )))))) )) * identifier)) ;) (if_statement "if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }" if (parenthesized_expression "(*(int *)(iVar3 + 4) == 2)" ( (binary_expression "*(int *)(iVar3 + 4) == 2" (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }" { (expression_statement "dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;" (assignment_expression "dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45" identifier = (binary_expression "(dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45" (parenthesized_expression "(dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40))" ( (binary_expression "dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)" (binary_expression "dVar47 * *(double *)(iVar10 + 0x40)" identifier * (pointer_expression "*(double *)(iVar10 + 0x40)" * (cast_expression "(double *)(iVar10 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x40)" ( (binary_expression "iVar10 + 0x40" identifier + number_literal) ))))) + (binary_expression "dVar40 * *(double *)(iVar3 + 0x40)" identifier * (pointer_expression "*(double *)(iVar3 + 0x40)" * (cast_expression "(double *)(iVar3 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x40)" ( (binary_expression "iVar3 + 0x40" identifier + number_literal) )))))) )) * identifier)) ;) })) (goto_statement "goto LAB_000a5af8;" goto statement_identifier ;) })) })) })) (labeled_statement "LAB_000a6248:\n                uVar26 = puVar32[0xe];" statement_identifier : (expression_statement "uVar26 = puVar32[0xe];" (assignment_expression "uVar26 = puVar32[0xe]" identifier = (subscript_expression "puVar32[0xe]" identifier [ number_literal ])) ;)) (expression_statement "in_f20_21 = *(double *)(uVar26 + 0x28);" (assignment_expression "in_f20_21 = *(double *)(uVar26 + 0x28)" identifier = (pointer_expression "*(double *)(uVar26 + 0x28)" * (cast_expression "(double *)(uVar26 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 + 0x28)" ( (binary_expression "uVar26 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "in_f22_23 = *(double *)(uVar26 + 0x30);" (assignment_expression "in_f22_23 = *(double *)(uVar26 + 0x30)" identifier = (pointer_expression "*(double *)(uVar26 + 0x30)" * (cast_expression "(double *)(uVar26 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 + 0x30)" ( (binary_expression "uVar26 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "in_f24_25 = *(double *)(uVar26 + 0x38);" (assignment_expression "in_f24_25 = *(double *)(uVar26 + 0x38)" identifier = (pointer_expression "*(double *)(uVar26 + 0x38)" * (cast_expression "(double *)(uVar26 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 + 0x38)" ( (binary_expression "uVar26 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "dStack_590 = *(double *)(uVar26 + 0x40);" (assignment_expression "dStack_590 = *(double *)(uVar26 + 0x40)" identifier = (pointer_expression "*(double *)(uVar26 + 0x40)" * (cast_expression "(double *)(uVar26 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 + 0x40)" ( (binary_expression "uVar26 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "dVar39 = *(double *)(uVar26 + 0x48);" (assignment_expression "dVar39 = *(double *)(uVar26 + 0x48)" identifier = (pointer_expression "*(double *)(uVar26 + 0x48)" * (cast_expression "(double *)(uVar26 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 + 0x48)" ( (binary_expression "uVar26 + 0x48" identifier + number_literal) ))))) ;) }) (else_clause "else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }" else (if_statement "if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }" if (parenthesized_expression "(unaff_s7 < 2)" ( (binary_expression "unaff_s7 < 2" identifier < number_literal) )) (compound_statement "{\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }" { (expression_statement "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0))" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0))" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7c78))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7c78)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7c78)" * (cast_expression "(code **)(pcStack_5a8 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7c78)" ( (binary_expression "pcStack_5a8 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(*pdStack_588 - *(double *)(iStack_584 + 0x43d0))" ( (binary_expression "*pdStack_588 - *(double *)(iStack_584 + 0x43d0)" (pointer_expression "*pdStack_588" * identifier) - (pointer_expression "*(double *)(iStack_584 + 0x43d0)" * (cast_expression "(double *)(iStack_584 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_584 + 0x43d0)" ( (binary_expression "iStack_584 + 0x43d0" identifier + number_literal) ))))) ))))) ;) (if_statement "if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;" if (parenthesized_expression "(((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39))" ( (binary_expression "((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)" (parenthesized_expression "((int)dVar39 == iVar28)" ( (binary_expression "(int)dVar39 == iVar28" (cast_expression "(int)dVar39" ( (type_descriptor "int" primitive_type) ) identifier) == identifier) )) && (parenthesized_expression "(dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)" ( (comma_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7c78))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7c78)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7c78)" * (cast_expression "(code **)(pcStack_5a8 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7c78)" ( (binary_expression "pcStack_5a8 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" ( (binary_expression "pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)" (subscript_expression "pdStack_588[1]" identifier [ number_literal ]) - (pointer_expression "*(double *)(iStack_584 + 0x43d0)" * (cast_expression "(double *)(iStack_584 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_584 + 0x43d0)" ( (binary_expression "iStack_584 + 0x43d0" identifier + number_literal) ))))) ))))) , (binary_expression "puVar35 == (undefined1 *)(int)dVar39" identifier == (cast_expression "(undefined1 *)(int)dVar39" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)dVar39" ( (type_descriptor "int" primitive_type) ) identifier)))) ))) )) (goto_statement "goto LAB_000a6944;" goto statement_identifier ;)) (if_statement "if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }" if (parenthesized_expression "(*puVar32 < 2)" ( (binary_expression "*puVar32 < 2" (pointer_expression "*puVar32" * identifier) < number_literal) )) (compound_statement "{\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }" { (expression_statement "dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);" (assignment_expression "dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6)" identifier = (binary_expression "*(double *)(puVar32 + 10) - *(double *)(puVar32 + 6)" (pointer_expression "*(double *)(puVar32 + 10)" * (cast_expression "(double *)(puVar32 + 10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 10)" ( (binary_expression "puVar32 + 10" identifier + number_literal) )))) - (pointer_expression "*(double *)(puVar32 + 6)" * (cast_expression "(double *)(puVar32 + 6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 6)" ( (binary_expression "puVar32 + 6" identifier + number_literal) )))))) ;) (expression_statement "dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);" (assignment_expression "dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8)" identifier = (binary_expression "*(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8)" (pointer_expression "*(double *)(puVar32 + 0xc)" * (cast_expression "(double *)(puVar32 + 0xc)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0xc)" ( (binary_expression "puVar32 + 0xc" identifier + number_literal) )))) - (pointer_expression "*(double *)(puVar32 + 8)" * (cast_expression "(double *)(puVar32 + 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 8)" ( (binary_expression "puVar32 + 8" identifier + number_literal) )))))) ;) (expression_statement "dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);" (assignment_expression "dVar45 = (double)iVar28 - *(double *)(puVar32 + 6)" identifier = (binary_expression "(double)iVar28 - *(double *)(puVar32 + 6)" (cast_expression "(double)iVar28" ( (type_descriptor "double" primitive_type) ) identifier) - (pointer_expression "*(double *)(puVar32 + 6)" * (cast_expression "(double *)(puVar32 + 6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 6)" ( (binary_expression "puVar32 + 6" identifier + number_literal) )))))) ;) (expression_statement "dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);" (assignment_expression "dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8)" identifier = (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 8)" (cast_expression "(double)(int)puVar35" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar35" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar32 + 8)" * (cast_expression "(double *)(puVar32 + 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 8)" ( (binary_expression "puVar32 + 8" identifier + number_literal) )))))) ;) (expression_statement "dVar39 = dVar45 * dVar45 + dVar47 * dVar47;" (assignment_expression "dVar39 = dVar45 * dVar45 + dVar47 * dVar47" identifier = (binary_expression "dVar45 * dVar45 + dVar47 * dVar47" (binary_expression "dVar45 * dVar45" identifier * identifier) + (binary_expression "dVar47 * dVar47" identifier * identifier))) ;) (expression_statement "uStack_5a0 = SQRT(dVar39);" (assignment_expression "uStack_5a0 = SQRT(dVar39)" identifier = (call_expression "SQRT(dVar39)" identifier (argument_list "(dVar39)" ( identifier )))) ;) (if_statement "if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }" if (parenthesized_expression "(0.0 <= dVar39)" ( (binary_expression "0.0 <= dVar39" number_literal <= identifier) )) (compound_statement "{\n                    dVar39 = dVar40 * dVar40;\n                  }" { (expression_statement "dVar39 = dVar40 * dVar40;" (assignment_expression "dVar39 = dVar40 * dVar40" identifier = (binary_expression "dVar40 * dVar40" identifier * identifier)) ;) }) (else_clause "else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }" else (compound_statement "{\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }" { (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "dVar39 = dVar40 * dVar40;" (assignment_expression "dVar39 = dVar40 * dVar40" identifier = (binary_expression "dVar40 * dVar40" identifier * identifier)) ;) }))) (expression_statement "dVar39 = dVar44 * dVar44 + dVar39;" (assignment_expression "dVar39 = dVar44 * dVar44 + dVar39" identifier = (binary_expression "dVar44 * dVar44 + dVar39" (binary_expression "dVar44 * dVar44" identifier * identifier) + identifier)) ;) (expression_statement "dVar42 = SQRT(dVar39);" (assignment_expression "dVar42 = SQRT(dVar39)" identifier = (call_expression "SQRT(dVar39)" identifier (argument_list "(dVar39)" ( identifier )))) ;) (if_statement "if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }" if (parenthesized_expression "(dVar39 < 0.0)" ( (binary_expression "dVar39 < 0.0" identifier < number_literal) )) (compound_statement "{\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }" { (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "dVar42 = uStack_5a0 * dVar42;" (assignment_expression "dVar42 = uStack_5a0 * dVar42" identifier = (binary_expression "uStack_5a0 * dVar42" identifier * identifier)) ;) (if_statement "if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }" if (parenthesized_expression "(0.0 <= dVar42)" ( (binary_expression "0.0 <= dVar42" number_literal <= identifier) )) (compound_statement "{\n                    in_f26_27 = pdVar29[0x881];\n                  }" { (expression_statement "in_f26_27 = pdVar29[0x881];" (assignment_expression "in_f26_27 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }" else (compound_statement "{\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }" { (expression_statement "in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar42 * in_f26_27)" ( (binary_expression "unaff_s6[0x879] <= dVar42 * in_f26_27" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar42 * in_f26_27" identifier * identifier)) )) (compound_statement "{\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }" { (expression_statement "in_f26_27 = pdVar29[0x881] / dVar42;" (assignment_expression "in_f26_27 = pdVar29[0x881] / dVar42" identifier = (binary_expression "pdVar29[0x881] / dVar42" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }" else (compound_statement "{\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }" { (expression_statement "in_f26_27 = in_f26_27 / unaff_s6[0x879];" (assignment_expression "in_f26_27 = in_f26_27 / unaff_s6[0x879]" identifier = (binary_expression "in_f26_27 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;" (assignment_expression "in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27" identifier = (binary_expression "(dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27" (parenthesized_expression "(dVar44 * dVar45 + dVar40 * dVar47)" ( (binary_expression "dVar44 * dVar45 + dVar40 * dVar47" (binary_expression "dVar44 * dVar45" identifier * identifier) + (binary_expression "dVar40 * dVar47" identifier * identifier)) )) * identifier)) ;) (expression_statement "uStack_5a0 = in_f26_27 * uStack_5a0;" (assignment_expression "uStack_5a0 = in_f26_27 * uStack_5a0" identifier = (binary_expression "in_f26_27 * uStack_5a0" identifier * identifier)) ;) (labeled_statement "LAB_000a6908:\n                  uVar26 = *puVar32;" statement_identifier : (expression_statement "uVar26 = *puVar32;" (assignment_expression "uVar26 = *puVar32" identifier = (pointer_expression "*puVar32" * identifier)) ;)) (labeled_statement "LAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }" statement_identifier : (if_statement "if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }" if (parenthesized_expression "(uVar26 != 2)" ( (binary_expression "uVar26 != 2" identifier != number_literal) )) (compound_statement "{\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }" { (if_statement "if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }" if (parenthesized_expression "(unaff_s6[0x879] <= dStack_580 * dStack_578)" ( (binary_expression "unaff_s6[0x879] <= dStack_580 * dStack_578" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dStack_580 * dStack_578" identifier * identifier)) )) (compound_statement "{\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }" { (expression_statement "dVar39 = pdVar29[0x881] / dStack_580;" (assignment_expression "dVar39 = pdVar29[0x881] / dStack_580" identifier = (binary_expression "pdVar29[0x881] / dStack_580" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }" else (compound_statement "{\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }" { (expression_statement "dVar39 = dStack_578 / unaff_s6[0x879];" (assignment_expression "dVar39 = dStack_578 / unaff_s6[0x879]" identifier = (binary_expression "dStack_578 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "uStack_5a0 = uStack_5a0 * dVar39;" (assignment_expression "uStack_5a0 = uStack_5a0 * dVar39" identifier = (binary_expression "uStack_5a0 * dVar39" identifier * identifier)) ;) }))) }) (else_clause "else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }" else (compound_statement "{\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }" { (if_statement "if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }" if (parenthesized_expression "(*puVar32 != 2)" ( (binary_expression "*puVar32 != 2" (pointer_expression "*puVar32" * identifier) != number_literal) )) (compound_statement "{\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }" { (expression_statement "uStack_5a0 = 0.0;" (assignment_expression "uStack_5a0 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_000a6908;" goto statement_identifier ;) })) (if_statement "if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }" if (parenthesized_expression "(unaff_s7 != 3)" ( (binary_expression "unaff_s7 != 3" identifier != number_literal) )) (compound_statement "{\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }" { (expression_statement "dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);" (assignment_expression "dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12)" identifier = (binary_expression "(double)iVar28 - *(double *)(puVar32 + 0x12)" (cast_expression "(double)iVar28" ( (type_descriptor "double" primitive_type) ) identifier) - (pointer_expression "*(double *)(puVar32 + 0x12)" * (cast_expression "(double *)(puVar32 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x12)" ( (binary_expression "puVar32 + 0x12" identifier + number_literal) )))))) ;) (expression_statement "(**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));" (call_expression "(**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x78e0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x78e0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x78e0)" * (cast_expression "(code **)(pcStack_5a8 + -0x78e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x78e0)" ( (binary_expression "pcStack_5a8 + -0x78e0" identifier + number_literal) ))))) )) (argument_list "((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80))" ( (binary_expression "(*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" (parenthesized_expression "(*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88))" ( (binary_expression "*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" (pointer_expression "*(double *)(puVar32 + 0x1c)" * (cast_expression "(double *)(puVar32 + 0x1c)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x1c)" ( (binary_expression "puVar32 + 0x1c" identifier + number_literal) )))) * (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) )) / (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ))) ;) (expression_statement "dVar39 = *(double *)(puVar32 + 0x16);" (assignment_expression "dVar39 = *(double *)(puVar32 + 0x16)" identifier = (pointer_expression "*(double *)(puVar32 + 0x16)" * (cast_expression "(double *)(puVar32 + 0x16)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x16)" ( (binary_expression "puVar32 + 0x16" identifier + number_literal) ))))) ;) (if_statement "if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" if (parenthesized_expression "(0.0 <= dVar39)" ( (binary_expression "0.0 <= dVar39" number_literal <= identifier) )) (compound_statement "{\n                      dVar47 = pdVar29[0x881];\n                    }" { (expression_statement "dVar47 = pdVar29[0x881];" (assignment_expression "dVar47 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" else (compound_statement "{\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" { (expression_statement "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar39 * dVar47)" ( (binary_expression "unaff_s6[0x879] <= dVar39 * dVar47" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar39 * dVar47" identifier * identifier)) )) (compound_statement "{\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }" { (expression_statement "dVar47 = pdVar29[0x881] / dVar39;" (assignment_expression "dVar47 = pdVar29[0x881] / dVar39" identifier = (binary_expression "pdVar29[0x881] / dVar39" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }" else (compound_statement "{\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }" { (expression_statement "dVar47 = dVar47 / unaff_s6[0x879];" (assignment_expression "dVar47 = dVar47 / unaff_s6[0x879]" identifier = (binary_expression "dVar47 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "dVar39 = *(double *)(puVar32 + 0x18);" (assignment_expression "dVar39 = *(double *)(puVar32 + 0x18)" identifier = (pointer_expression "*(double *)(puVar32 + 0x18)" * (cast_expression "(double *)(puVar32 + 0x18)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x18)" ( (binary_expression "puVar32 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;" (assignment_expression "dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47" identifier = (binary_expression "(dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47" (parenthesized_expression "(dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518)" ( (binary_expression "dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518" (binary_expression "dVar40 * dStack_520" identifier * identifier) + (binary_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518" (parenthesized_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" ( (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 0x14)" (cast_expression "(double)(int)puVar35" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar35" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar32 + 0x14)" * (cast_expression "(double *)(puVar32 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x14)" ( (binary_expression "puVar32 + 0x14" identifier + number_literal) ))))) )) * identifier)) )) * identifier)) ;) (if_statement "if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" if (parenthesized_expression "(0.0 <= dVar39)" ( (binary_expression "0.0 <= dVar39" number_literal <= identifier) )) (compound_statement "{\n                      dVar44 = pdVar29[0x881];\n                    }" { (expression_statement "dVar44 = pdVar29[0x881];" (assignment_expression "dVar44 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" else (compound_statement "{\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" { (expression_statement "dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar39 * dVar44)" ( (binary_expression "unaff_s6[0x879] <= dVar39 * dVar44" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar39 * dVar44" identifier * identifier)) )) (compound_statement "{\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }" { (expression_statement "dVar44 = pdVar29[0x881] / dVar39;" (assignment_expression "dVar44 = pdVar29[0x881] / dVar39" identifier = (binary_expression "pdVar29[0x881] / dVar39" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }" else (compound_statement "{\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }" { (expression_statement "dVar44 = dVar44 / unaff_s6[0x879];" (assignment_expression "dVar44 = dVar44 / unaff_s6[0x879]" identifier = (binary_expression "dVar44 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;" (assignment_expression "dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44" identifier = (binary_expression "(dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44" (parenthesized_expression "(dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)))" ( (binary_expression "dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (binary_expression "dVar40 * dStack_518" identifier * identifier) - (binary_expression "dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" identifier * (parenthesized_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" ( (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 0x14)" (cast_expression "(double)(int)puVar35" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar35" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar32 + 0x14)" * (cast_expression "(double *)(puVar32 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x14)" ( (binary_expression "puVar32 + 0x14" identifier + number_literal) ))))) )))) )) * identifier)) ;) (expression_statement "dVar39 = dVar47 * dVar47 + dVar44 * dVar44;" (assignment_expression "dVar39 = dVar47 * dVar47 + dVar44 * dVar44" identifier = (binary_expression "dVar47 * dVar47 + dVar44 * dVar44" (binary_expression "dVar47 * dVar47" identifier * identifier) + (binary_expression "dVar44 * dVar44" identifier * identifier))) ;) (expression_statement "uStack_5a0 = SQRT(dVar39);" (assignment_expression "uStack_5a0 = SQRT(dVar39)" identifier = (call_expression "SQRT(dVar39)" identifier (argument_list "(dVar39)" ( identifier )))) ;) (if_statement "if (0.0 <= dVar39) goto LAB_000a6944;" if (parenthesized_expression "(0.0 <= dVar39)" ( (binary_expression "0.0 <= dVar39" number_literal <= identifier) )) (goto_statement "goto LAB_000a6944;" goto statement_identifier ;)) (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar26 = *puVar32;" (assignment_expression "uVar26 = *puVar32" identifier = (pointer_expression "*puVar32" * identifier)) ;) (goto_statement "goto LAB_000a690c;" goto statement_identifier ;) })) (expression_statement "dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));" (assignment_expression "dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" identifier = (binary_expression "((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (binary_expression "((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12))" (parenthesized_expression "((double)iVar28 - *(double *)(puVar32 + 0x12))" ( (binary_expression "(double)iVar28 - *(double *)(puVar32 + 0x12)" (cast_expression "(double)iVar28" ( (type_descriptor "double" primitive_type) ) identifier) - (pointer_expression "*(double *)(puVar32 + 0x12)" * (cast_expression "(double *)(puVar32 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x12)" ( (binary_expression "puVar32 + 0x12" identifier + number_literal) ))))) )) * (parenthesized_expression "((double)iVar28 - *(double *)(puVar32 + 0x12))" ( (binary_expression "(double)iVar28 - *(double *)(puVar32 + 0x12)" (cast_expression "(double)iVar28" ( (type_descriptor "double" primitive_type) ) identifier) - (pointer_expression "*(double *)(puVar32 + 0x12)" * (cast_expression "(double *)(puVar32 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x12)" ( (binary_expression "puVar32 + 0x12" identifier + number_literal) ))))) ))) + (binary_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (parenthesized_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" ( (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 0x14)" (cast_expression "(double)(int)puVar35" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar35" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar32 + 0x14)" * (cast_expression "(double *)(puVar32 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x14)" ( (binary_expression "puVar32 + 0x14" identifier + number_literal) ))))) )) * (parenthesized_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" ( (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 0x14)" (cast_expression "(double)(int)puVar35" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar35" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar32 + 0x14)" * (cast_expression "(double *)(puVar32 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x14)" ( (binary_expression "puVar32 + 0x14" identifier + number_literal) ))))) ))))) ;) (expression_statement "uStack_5a0 = SQRT(dVar39);" (assignment_expression "uStack_5a0 = SQRT(dVar39)" identifier = (call_expression "SQRT(dVar39)" identifier (argument_list "(dVar39)" ( identifier )))) ;) (if_statement "if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }" if (parenthesized_expression "(dVar39 < 0.0)" ( (binary_expression "dVar39 < 0.0" identifier < number_literal) )) (compound_statement "{\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }" { (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar26 = *puVar32;" (assignment_expression "uVar26 = *puVar32" identifier = (pointer_expression "*puVar32" * identifier)) ;) (goto_statement "goto LAB_000a690c;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_000a6944:\n                uVar26 = puVar32[0xf];" statement_identifier : (expression_statement "uVar26 = puVar32[0xf];" (assignment_expression "uVar26 = puVar32[0xf]" identifier = (subscript_expression "puVar32[0xf]" identifier [ number_literal ])) ;)) (if_statement "if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }" if (parenthesized_expression "(0 < (int)uVar26)" ( (binary_expression "0 < (int)uVar26" number_literal < (cast_expression "(int)uVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }" { (expression_statement "uVar8 = puVar32[0xe];" (assignment_expression "uVar8 = puVar32[0xe]" identifier = (subscript_expression "puVar32[0xe]" identifier [ number_literal ])) ;) (if_statement "if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }" if (parenthesized_expression "(*(double *)(uVar8 + 0x58) <= uStack_5a0)" ( (binary_expression "*(double *)(uVar8 + 0x58) <= uStack_5a0" (pointer_expression "*(double *)(uVar8 + 0x58)" * (cast_expression "(double *)(uVar8 + 0x58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + 0x58)" ( (binary_expression "uVar8 + 0x58" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }" { (expression_statement "pdVar16 = (double *)(uVar8 + 0xb8);" (assignment_expression "pdVar16 = (double *)(uVar8 + 0xb8)" identifier = (cast_expression "(double *)(uVar8 + 0xb8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + 0xb8)" ( (binary_expression "uVar8 + 0xb8" identifier + number_literal) )))) ;) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);" do (compound_statement "{\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    }" { (expression_statement "uVar22 = uVar18;" (assignment_expression "uVar22 = uVar18" identifier = identifier) ;) (expression_statement "uVar18 = uVar22 + 1;" (assignment_expression "uVar18 = uVar22 + 1" identifier = (binary_expression "uVar22 + 1" identifier + number_literal)) ;) (if_statement "if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }" if (parenthesized_expression "(uVar18 == uVar26)" ( (binary_expression "uVar18 == uVar26" identifier == identifier) )) (compound_statement "{\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }" { (if_statement "if (uStack_5a0 < 0.0) goto LAB_000a6694;" if (parenthesized_expression "(uStack_5a0 < 0.0)" ( (binary_expression "uStack_5a0 < 0.0" identifier < number_literal) )) (goto_statement "goto LAB_000a6694;" goto statement_identifier ;)) (expression_statement "dVar39 = pdVar29[0x881];" (assignment_expression "dVar39 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) (expression_statement "uVar18 = uVar26;" (assignment_expression "uVar18 = uVar26" identifier = identifier) ;) (goto_statement "goto LAB_000a6f20;" goto statement_identifier ;) })) (expression_statement "dVar39 = *pdVar16;" (assignment_expression "dVar39 = *pdVar16" identifier = (pointer_expression "*pdVar16" * identifier)) ;) (expression_statement "pdVar16 = pdVar16 + 0xc;" (assignment_expression "pdVar16 = pdVar16 + 0xc" identifier = (binary_expression "pdVar16 + 0xc" identifier + number_literal)) ;) }) while (parenthesized_expression "(dVar39 <= uStack_5a0)" ( (binary_expression "dVar39 <= uStack_5a0" identifier <= identifier) )) ;) (if_statement "if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }" if (parenthesized_expression "((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0))" ( (binary_expression "(0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)" (parenthesized_expression "(0.0 <= uStack_5a0)" ( (binary_expression "0.0 <= uStack_5a0" number_literal <= identifier) )) && (parenthesized_expression "(dVar39 = pdVar29[0x881], uVar18 != 0)" ( (comma_expression "dVar39 = pdVar29[0x881], uVar18 != 0" (assignment_expression "dVar39 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) , (binary_expression "uVar18 != 0" identifier != number_literal)) ))) )) (compound_statement "{\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }" { (labeled_statement "LAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }" statement_identifier : (if_statement "if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }" if (parenthesized_expression "((dVar39 < uStack_5a0) || (uVar26 == uVar18))" ( (binary_expression "(dVar39 < uStack_5a0) || (uVar26 == uVar18)" (parenthesized_expression "(dVar39 < uStack_5a0)" ( (binary_expression "dVar39 < uStack_5a0" identifier < identifier) )) || (parenthesized_expression "(uVar26 == uVar18)" ( (binary_expression "uVar26 == uVar18" identifier == identifier) ))) )) (compound_statement "{\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }" { (expression_statement "iVar3 = uVar8 + uVar26 * 0x60 + -0x60;" (assignment_expression "iVar3 = uVar8 + uVar26 * 0x60 + -0x60" identifier = (binary_expression "uVar8 + uVar26 * 0x60 + -0x60" (binary_expression "uVar8 + uVar26 * 0x60" identifier + (binary_expression "uVar26 * 0x60" identifier * number_literal)) + number_literal)) ;) (expression_statement "in_f20_21 = *(double *)(iVar3 + 0x28);" (assignment_expression "in_f20_21 = *(double *)(iVar3 + 0x28)" identifier = (pointer_expression "*(double *)(iVar3 + 0x28)" * (cast_expression "(double *)(iVar3 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x28)" ( (binary_expression "iVar3 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "in_f22_23 = *(double *)(iVar3 + 0x30);" (assignment_expression "in_f22_23 = *(double *)(iVar3 + 0x30)" identifier = (pointer_expression "*(double *)(iVar3 + 0x30)" * (cast_expression "(double *)(iVar3 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x30)" ( (binary_expression "iVar3 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "in_f24_25 = *(double *)(iVar3 + 0x38);" (assignment_expression "in_f24_25 = *(double *)(iVar3 + 0x38)" identifier = (pointer_expression "*(double *)(iVar3 + 0x38)" * (cast_expression "(double *)(iVar3 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x38)" ( (binary_expression "iVar3 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "dStack_590 = *(double *)(iVar3 + 0x40);" (assignment_expression "dStack_590 = *(double *)(iVar3 + 0x40)" identifier = (pointer_expression "*(double *)(iVar3 + 0x40)" * (cast_expression "(double *)(iVar3 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x40)" ( (binary_expression "iVar3 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "dVar39 = *(double *)(iVar3 + 0x48);" (assignment_expression "dVar39 = *(double *)(iVar3 + 0x48)" identifier = (pointer_expression "*(double *)(iVar3 + 0x48)" * (cast_expression "(double *)(iVar3 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x48)" ( (binary_expression "iVar3 + 0x48" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000a5af8;" goto statement_identifier ;) }))) (expression_statement "iVar3 = uVar8 + uVar22 * 0x60;" (assignment_expression "iVar3 = uVar8 + uVar22 * 0x60" identifier = (binary_expression "uVar8 + uVar22 * 0x60" identifier + (binary_expression "uVar22 * 0x60" identifier * number_literal))) ;) (expression_statement "iVar10 = uVar8 + uVar18 * 0x60;" (assignment_expression "iVar10 = uVar8 + uVar18 * 0x60" identifier = (binary_expression "uVar8 + uVar18 * 0x60" identifier + (binary_expression "uVar18 * 0x60" identifier * number_literal))) ;) (expression_statement "dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));" (assignment_expression "dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58))" identifier = (binary_expression "(uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58))" (parenthesized_expression "(uStack_5a0 - *(double *)(iVar3 + 0x58))" ( (binary_expression "uStack_5a0 - *(double *)(iVar3 + 0x58)" identifier - (pointer_expression "*(double *)(iVar3 + 0x58)" * (cast_expression "(double *)(iVar3 + 0x58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x58)" ( (binary_expression "iVar3 + 0x58" identifier + number_literal) ))))) )) / (parenthesized_expression "(*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58))" ( (binary_expression "*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58)" (pointer_expression "*(double *)(iVar10 + 0x58)" * (cast_expression "(double *)(iVar10 + 0x58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x58)" ( (binary_expression "iVar10 + 0x58" identifier + number_literal) )))) - (pointer_expression "*(double *)(iVar3 + 0x58)" * (cast_expression "(double *)(iVar3 + 0x58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x58)" ( (binary_expression "iVar3 + 0x58" identifier + number_literal) ))))) )))) ;) (expression_statement "dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);" (assignment_expression "dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" identifier = (binary_expression "(pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" (binary_expression "(pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48)" (parenthesized_expression "(pdVar29[0x881] - dVar39)" ( (binary_expression "pdVar29[0x881] - dVar39" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) - identifier) )) * (pointer_expression "*(double *)(iVar3 + 0x48)" * (cast_expression "(double *)(iVar3 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x48)" ( (binary_expression "iVar3 + 0x48" identifier + number_literal) ))))) * (pointer_expression "*(double *)(dStack_558._0_4_ + 0x4410)" * (cast_expression "(double *)(dStack_558._0_4_ + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(dStack_558._0_4_ + 0x4410)" ( (binary_expression "dStack_558._0_4_ + 0x4410" (field_expression "dStack_558._0_4_" identifier . field_identifier) + number_literal) )))))) ;) (expression_statement "dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);" (assignment_expression "dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" identifier = (binary_expression "dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" (binary_expression "dVar39 * *(double *)(iVar10 + 0x48)" identifier * (pointer_expression "*(double *)(iVar10 + 0x48)" * (cast_expression "(double *)(iVar10 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x48)" ( (binary_expression "iVar10 + 0x48" identifier + number_literal) ))))) * (pointer_expression "*(double *)(dStack_558._0_4_ + 0x4410)" * (cast_expression "(double *)(dStack_558._0_4_ + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(dStack_558._0_4_ + 0x4410)" ( (binary_expression "dStack_558._0_4_ + 0x4410" (field_expression "dStack_558._0_4_" identifier . field_identifier) + number_literal) )))))) ;) (expression_statement "dVar44 = dVar47 + dVar40;" (assignment_expression "dVar44 = dVar47 + dVar40" identifier = (binary_expression "dVar47 + dVar40" identifier + identifier)) ;) (if_statement "if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }" if (parenthesized_expression "(0.0 <= dVar44)" ( (binary_expression "0.0 <= dVar44" number_literal <= identifier) )) (compound_statement "{\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }" { (if_statement "if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }" if (parenthesized_expression "(pdVar29[0x881] < dVar44)" ( (binary_expression "pdVar29[0x881] < dVar44" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) < identifier) )) (compound_statement "{\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }" { (expression_statement "dVar44 = pdVar29[0x881];" (assignment_expression "dVar44 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_000a6740;" goto statement_identifier ;) })) (if_statement "if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }" if (parenthesized_expression "(0.0 <= dVar44)" ( (binary_expression "0.0 <= dVar44" number_literal <= identifier) )) (compound_statement "{\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }" { (expression_statement "dVar39 = dVar44;" (assignment_expression "dVar39 = dVar44" identifier = identifier) ;) (if_statement "if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }" if (parenthesized_expression "(pdVar29[0x881] < dVar44)" ( (binary_expression "pdVar29[0x881] < dVar44" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) < identifier) )) (compound_statement "{\n                            dVar39 = pdVar29[0x881];\n                          }" { (expression_statement "dVar39 = pdVar29[0x881];" (assignment_expression "dVar39 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) })) (expression_statement "dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);" (assignment_expression "dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48)" identifier = (binary_expression "dVar39 * *(double *)(iStack_570 + 0x4a48)" identifier * (pointer_expression "*(double *)(iStack_570 + 0x4a48)" * (cast_expression "(double *)(iStack_570 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_570 + 0x4a48)" ( (binary_expression "iStack_570 + 0x4a48" identifier + number_literal) )))))) ;) (if_statement "if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }" if (parenthesized_expression "(dVar44 < 0.0)" ( (binary_expression "dVar44 < 0.0" identifier < number_literal) )) (compound_statement "{\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }" { (expression_statement "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n                            dVar45 = pdVar29[0x881];\n                          }" else (compound_statement "{\n                            dVar45 = pdVar29[0x881];\n                          }" { (expression_statement "dVar45 = pdVar29[0x881];" (assignment_expression "dVar45 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) }))) }) (else_clause "else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }" else (compound_statement "{\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }" { (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" identifier = number_literal) ;) (expression_statement "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) }) (else_clause "else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }" else (compound_statement "{\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }" { (expression_statement "dVar44 = 0.0;" (assignment_expression "dVar44 = 0.0" identifier = number_literal) ;) (labeled_statement "LAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);" statement_identifier : (expression_statement "dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);" (assignment_expression "dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48)" identifier = (binary_expression "dVar44 * *(double *)(iStack_570 + 0x4a48)" identifier * (pointer_expression "*(double *)(iStack_570 + 0x4a48)" * (cast_expression "(double *)(iStack_570 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_570 + 0x4a48)" ( (binary_expression "iStack_570 + 0x4a48" identifier + number_literal) )))))) ;)) (expression_statement "dVar45 = pdVar29[0x881];" (assignment_expression "dVar45 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar45 * dVar44)" ( (binary_expression "unaff_s6[0x879] <= dVar45 * dVar44" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar45 * dVar44" identifier * identifier)) )) (compound_statement "{\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }" { (expression_statement "dVar45 = pdVar29[0x881] / dVar44;" (assignment_expression "dVar45 = pdVar29[0x881] / dVar44" identifier = (binary_expression "pdVar29[0x881] / dVar44" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }" else (compound_statement "{\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }" { (expression_statement "dVar45 = dVar45 / unaff_s6[0x879];" (assignment_expression "dVar45 = dVar45 / unaff_s6[0x879]" identifier = (binary_expression "dVar45 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;" (assignment_expression "in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45" identifier = (binary_expression "(dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45" (parenthesized_expression "(dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28))" ( (binary_expression "dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)" (binary_expression "dVar47 * *(double *)(iVar3 + 0x28)" identifier * (pointer_expression "*(double *)(iVar3 + 0x28)" * (cast_expression "(double *)(iVar3 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x28)" ( (binary_expression "iVar3 + 0x28" identifier + number_literal) ))))) + (binary_expression "dVar40 * *(double *)(iVar10 + 0x28)" identifier * (pointer_expression "*(double *)(iVar10 + 0x28)" * (cast_expression "(double *)(iVar10 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x28)" ( (binary_expression "iVar10 + 0x28" identifier + number_literal) )))))) )) * identifier)) ;) (expression_statement "in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;" (assignment_expression "in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45" identifier = (binary_expression "(dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45" (parenthesized_expression "(dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30))" ( (binary_expression "dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)" (binary_expression "dVar47 * *(double *)(iVar3 + 0x30)" identifier * (pointer_expression "*(double *)(iVar3 + 0x30)" * (cast_expression "(double *)(iVar3 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x30)" ( (binary_expression "iVar3 + 0x30" identifier + number_literal) ))))) + (binary_expression "dVar40 * *(double *)(iVar10 + 0x30)" identifier * (pointer_expression "*(double *)(iVar10 + 0x30)" * (cast_expression "(double *)(iVar10 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x30)" ( (binary_expression "iVar10 + 0x30" identifier + number_literal) )))))) )) * identifier)) ;) (expression_statement "in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;" (assignment_expression "in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45" identifier = (binary_expression "(dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45" (parenthesized_expression "(dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38))" ( (binary_expression "dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)" (binary_expression "dVar47 * *(double *)(iVar3 + 0x38)" identifier * (pointer_expression "*(double *)(iVar3 + 0x38)" * (cast_expression "(double *)(iVar3 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x38)" ( (binary_expression "iVar3 + 0x38" identifier + number_literal) ))))) + (binary_expression "dVar40 * *(double *)(iVar10 + 0x38)" identifier * (pointer_expression "*(double *)(iVar10 + 0x38)" * (cast_expression "(double *)(iVar10 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x38)" ( (binary_expression "iVar10 + 0x38" identifier + number_literal) )))))) )) * identifier)) ;) (if_statement "if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }" if (parenthesized_expression "(*(int *)(iVar10 + 4) == 2)" ( (binary_expression "*(int *)(iVar10 + 4) == 2" (pointer_expression "*(int *)(iVar10 + 4)" * (cast_expression "(int *)(iVar10 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 4)" ( (binary_expression "iVar10 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }" { (expression_statement "dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;" (assignment_expression "dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45" identifier = (binary_expression "(dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45" (parenthesized_expression "(dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40))" ( (binary_expression "dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)" (binary_expression "dVar47 * *(double *)(iVar3 + 0x40)" identifier * (pointer_expression "*(double *)(iVar3 + 0x40)" * (cast_expression "(double *)(iVar3 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x40)" ( (binary_expression "iVar3 + 0x40" identifier + number_literal) ))))) + (binary_expression "dVar40 * *(double *)(iVar10 + 0x40)" identifier * (pointer_expression "*(double *)(iVar10 + 0x40)" * (cast_expression "(double *)(iVar10 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x40)" ( (binary_expression "iVar10 + 0x40" identifier + number_literal) )))))) )) * identifier)) ;) })) (goto_statement "goto LAB_000a5af8;" goto statement_identifier ;) })) })) })) (labeled_statement "LAB_000a6694:\n                uVar26 = puVar32[0xe];" statement_identifier : (expression_statement "uVar26 = puVar32[0xe];" (assignment_expression "uVar26 = puVar32[0xe]" identifier = (subscript_expression "puVar32[0xe]" identifier [ number_literal ])) ;)) (expression_statement "in_f20_21 = *(double *)(uVar26 + 0x28);" (assignment_expression "in_f20_21 = *(double *)(uVar26 + 0x28)" identifier = (pointer_expression "*(double *)(uVar26 + 0x28)" * (cast_expression "(double *)(uVar26 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 + 0x28)" ( (binary_expression "uVar26 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "in_f22_23 = *(double *)(uVar26 + 0x30);" (assignment_expression "in_f22_23 = *(double *)(uVar26 + 0x30)" identifier = (pointer_expression "*(double *)(uVar26 + 0x30)" * (cast_expression "(double *)(uVar26 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 + 0x30)" ( (binary_expression "uVar26 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "in_f24_25 = *(double *)(uVar26 + 0x38);" (assignment_expression "in_f24_25 = *(double *)(uVar26 + 0x38)" identifier = (pointer_expression "*(double *)(uVar26 + 0x38)" * (cast_expression "(double *)(uVar26 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 + 0x38)" ( (binary_expression "uVar26 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "dStack_590 = *(double *)(uVar26 + 0x40);" (assignment_expression "dStack_590 = *(double *)(uVar26 + 0x40)" identifier = (pointer_expression "*(double *)(uVar26 + 0x40)" * (cast_expression "(double *)(uVar26 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 + 0x40)" ( (binary_expression "uVar26 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "dVar39 = *(double *)(uVar26 + 0x48);" (assignment_expression "dVar39 = *(double *)(uVar26 + 0x48)" identifier = (pointer_expression "*(double *)(uVar26 + 0x48)" * (cast_expression "(double *)(uVar26 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 + 0x48)" ( (binary_expression "uVar26 + 0x48" identifier + number_literal) ))))) ;) }) (else_clause "else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }" else (if_statement "if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }" if (parenthesized_expression "(unaff_s7 == 3)" ( (binary_expression "unaff_s7 == 3" identifier == number_literal) )) (compound_statement "{\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }" { (expression_statement "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0))" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0))" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7c78))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7c78)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7c78)" * (cast_expression "(code **)(pcStack_5a8 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7c78)" ( (binary_expression "pcStack_5a8 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(*pdStack_588 - *(double *)(iStack_584 + 0x43d0))" ( (binary_expression "*pdStack_588 - *(double *)(iStack_584 + 0x43d0)" (pointer_expression "*pdStack_588" * identifier) - (pointer_expression "*(double *)(iStack_584 + 0x43d0)" * (cast_expression "(double *)(iStack_584 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_584 + 0x43d0)" ( (binary_expression "iStack_584 + 0x43d0" identifier + number_literal) ))))) ))))) ;) (if_statement "if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }" if (parenthesized_expression "(((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39))" ( (binary_expression "((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)" (parenthesized_expression "((int)dVar39 == iVar28)" ( (binary_expression "(int)dVar39 == iVar28" (cast_expression "(int)dVar39" ( (type_descriptor "int" primitive_type) ) identifier) == identifier) )) && (parenthesized_expression "(dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)" ( (comma_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7c78))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7c78)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7c78)" * (cast_expression "(code **)(pcStack_5a8 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7c78)" ( (binary_expression "pcStack_5a8 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" ( (binary_expression "pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)" (subscript_expression "pdStack_588[1]" identifier [ number_literal ]) - (pointer_expression "*(double *)(iStack_584 + 0x43d0)" * (cast_expression "(double *)(iStack_584 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_584 + 0x43d0)" ( (binary_expression "iStack_584 + 0x43d0" identifier + number_literal) ))))) ))))) , (binary_expression "puVar35 == (undefined1 *)(int)dVar39" identifier == (cast_expression "(undefined1 *)(int)dVar39" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)dVar39" ( (type_descriptor "int" primitive_type) ) identifier)))) ))) )) (compound_statement "{\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }" { (expression_statement "dVar40 = 0.0;" (assignment_expression "dVar40 = 0.0" identifier = number_literal) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) }) (else_clause "else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }" else (compound_statement "{\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }" { (if_statement "if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }" if (parenthesized_expression "(*puVar32 < 2)" ( (binary_expression "*puVar32 < 2" (pointer_expression "*puVar32" * identifier) < number_literal) )) (compound_statement "{\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }" { (expression_statement "dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);" (assignment_expression "dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6)" identifier = (binary_expression "*(double *)(puVar32 + 10) - *(double *)(puVar32 + 6)" (pointer_expression "*(double *)(puVar32 + 10)" * (cast_expression "(double *)(puVar32 + 10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 10)" ( (binary_expression "puVar32 + 10" identifier + number_literal) )))) - (pointer_expression "*(double *)(puVar32 + 6)" * (cast_expression "(double *)(puVar32 + 6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 6)" ( (binary_expression "puVar32 + 6" identifier + number_literal) )))))) ;) (expression_statement "dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);" (assignment_expression "dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8)" identifier = (binary_expression "*(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8)" (pointer_expression "*(double *)(puVar32 + 0xc)" * (cast_expression "(double *)(puVar32 + 0xc)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0xc)" ( (binary_expression "puVar32 + 0xc" identifier + number_literal) )))) - (pointer_expression "*(double *)(puVar32 + 8)" * (cast_expression "(double *)(puVar32 + 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 8)" ( (binary_expression "puVar32 + 8" identifier + number_literal) )))))) ;) (expression_statement "dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);" (assignment_expression "dVar45 = (double)iVar28 - *(double *)(puVar32 + 6)" identifier = (binary_expression "(double)iVar28 - *(double *)(puVar32 + 6)" (cast_expression "(double)iVar28" ( (type_descriptor "double" primitive_type) ) identifier) - (pointer_expression "*(double *)(puVar32 + 6)" * (cast_expression "(double *)(puVar32 + 6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 6)" ( (binary_expression "puVar32 + 6" identifier + number_literal) )))))) ;) (expression_statement "dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);" (assignment_expression "dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8)" identifier = (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 8)" (cast_expression "(double)(int)puVar35" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar35" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar32 + 8)" * (cast_expression "(double *)(puVar32 + 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 8)" ( (binary_expression "puVar32 + 8" identifier + number_literal) )))))) ;) (expression_statement "dVar39 = dVar45 * dVar45 + dVar47 * dVar47;" (assignment_expression "dVar39 = dVar45 * dVar45 + dVar47 * dVar47" identifier = (binary_expression "dVar45 * dVar45 + dVar47 * dVar47" (binary_expression "dVar45 * dVar45" identifier * identifier) + (binary_expression "dVar47 * dVar47" identifier * identifier))) ;) (expression_statement "uStack_5a0 = SQRT(dVar39);" (assignment_expression "uStack_5a0 = SQRT(dVar39)" identifier = (call_expression "SQRT(dVar39)" identifier (argument_list "(dVar39)" ( identifier )))) ;) (if_statement "if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }" if (parenthesized_expression "(0.0 <= dVar39)" ( (binary_expression "0.0 <= dVar39" number_literal <= identifier) )) (compound_statement "{\n                      dVar39 = dVar40 * dVar40;\n                    }" { (expression_statement "dVar39 = dVar40 * dVar40;" (assignment_expression "dVar39 = dVar40 * dVar40" identifier = (binary_expression "dVar40 * dVar40" identifier * identifier)) ;) }) (else_clause "else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }" else (compound_statement "{\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }" { (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "dVar39 = dVar40 * dVar40;" (assignment_expression "dVar39 = dVar40 * dVar40" identifier = (binary_expression "dVar40 * dVar40" identifier * identifier)) ;) }))) (expression_statement "dVar39 = dVar44 * dVar44 + dVar39;" (assignment_expression "dVar39 = dVar44 * dVar44 + dVar39" identifier = (binary_expression "dVar44 * dVar44 + dVar39" (binary_expression "dVar44 * dVar44" identifier * identifier) + identifier)) ;) (expression_statement "dVar42 = SQRT(dVar39);" (assignment_expression "dVar42 = SQRT(dVar39)" identifier = (call_expression "SQRT(dVar39)" identifier (argument_list "(dVar39)" ( identifier )))) ;) (if_statement "if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }" if (parenthesized_expression "(dVar39 < 0.0)" ( (binary_expression "dVar39 < 0.0" identifier < number_literal) )) (compound_statement "{\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }" { (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "dVar42 = uStack_5a0 * dVar42;" (assignment_expression "dVar42 = uStack_5a0 * dVar42" identifier = (binary_expression "uStack_5a0 * dVar42" identifier * identifier)) ;) (if_statement "if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" if (parenthesized_expression "(0.0 <= dVar42)" ( (binary_expression "0.0 <= dVar42" number_literal <= identifier) )) (compound_statement "{\n                      dVar39 = pdVar29[0x881];\n                    }" { (expression_statement "dVar39 = pdVar29[0x881];" (assignment_expression "dVar39 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" else (compound_statement "{\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" { (expression_statement "dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar42 * dVar39)" ( (binary_expression "unaff_s6[0x879] <= dVar42 * dVar39" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar42 * dVar39" identifier * identifier)) )) (compound_statement "{\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }" { (expression_statement "dVar39 = pdVar29[0x881] / dVar42;" (assignment_expression "dVar39 = pdVar29[0x881] / dVar42" identifier = (binary_expression "pdVar29[0x881] / dVar42" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }" else (compound_statement "{\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }" { (expression_statement "dVar39 = dVar39 / unaff_s6[0x879];" (assignment_expression "dVar39 = dVar39 / unaff_s6[0x879]" identifier = (binary_expression "dVar39 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;" (assignment_expression "in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0" identifier = (binary_expression "(dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0" (binary_expression "(dVar44 * dVar45 + dVar40 * dVar47) * dVar39" (parenthesized_expression "(dVar44 * dVar45 + dVar40 * dVar47)" ( (binary_expression "dVar44 * dVar45 + dVar40 * dVar47" (binary_expression "dVar44 * dVar45" identifier * identifier) + (binary_expression "dVar40 * dVar47" identifier * identifier)) )) * identifier) * identifier)) ;) (labeled_statement "LAB_000a5e90:\n                    uVar26 = *puVar32;" statement_identifier : (expression_statement "uVar26 = *puVar32;" (assignment_expression "uVar26 = *puVar32" identifier = (pointer_expression "*puVar32" * identifier)) ;)) (labeled_statement "LAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }" statement_identifier : (if_statement "if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }" if (parenthesized_expression "(uVar26 == 1)" ( (binary_expression "uVar26 == 1" identifier == number_literal) )) (compound_statement "{\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }" { (expression_statement "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580)" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580)" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x6ee0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x6ee0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x6ee0)" * (cast_expression "(code **)(pcStack_5a8 + -0x6ee0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x6ee0)" ( (binary_expression "pcStack_5a8 + -0x6ee0" identifier + number_literal) ))))) )) (argument_list "(in_f26_27,dStack_580)" ( identifier , identifier ))))) ;) (expression_statement "uStack_5a0 = dVar39;" (assignment_expression "uStack_5a0 = dVar39" identifier = identifier) ;) (if_statement "if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }" if (parenthesized_expression "(0.0 <= dVar39)" ( (binary_expression "0.0 <= dVar39" number_literal <= identifier) )) (compound_statement "{\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }" { (expression_statement "dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);" (assignment_expression "dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580)" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580)" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x6ee0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x6ee0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x6ee0)" * (cast_expression "(code **)(pcStack_5a8 + -0x6ee0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x6ee0)" ( (binary_expression "pcStack_5a8 + -0x6ee0" identifier + number_literal) ))))) )) (argument_list "(in_f26_27,dStack_580)" ( identifier , identifier ))))) ;) }) (else_clause "else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }" else (compound_statement "{\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }" { (expression_statement "uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);" (assignment_expression "uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20)" (field_expression "uStack_5a0._0_4_" identifier . field_identifier) = (call_expression "(uint)((ulonglong)dVar39 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)dVar39 >> 0x20)" ( (binary_expression "(ulonglong)dVar39 >> 0x20" (cast_expression "(ulonglong)dVar39" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;" (assignment_expression "uStack_528 = uStack_5a0._0_4_ ^ 0x80000000" identifier = (binary_expression "uStack_5a0._0_4_ ^ 0x80000000" (field_expression "uStack_5a0._0_4_" identifier . field_identifier) ^ number_literal)) ;) (expression_statement "uStack_5a0._4_4_ = SUB84(dVar39,0);" (assignment_expression "uStack_5a0._4_4_ = SUB84(dVar39,0)" (field_expression "uStack_5a0._4_4_" identifier . field_identifier) = (call_expression "SUB84(dVar39,0)" identifier (argument_list "(dVar39,0)" ( identifier , number_literal )))) ;) (expression_statement "uStack_524 = uStack_5a0._4_4_;" (assignment_expression "uStack_524 = uStack_5a0._4_4_" identifier = (field_expression "uStack_5a0._4_4_" identifier . field_identifier)) ;) (expression_statement "dVar40 = dStack_580;" (assignment_expression "dVar40 = dStack_580" identifier = identifier) ;) (expression_statement "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580)" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580)" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x6ee0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x6ee0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x6ee0)" * (cast_expression "(code **)(pcStack_5a8 + -0x6ee0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x6ee0)" ( (binary_expression "pcStack_5a8 + -0x6ee0" identifier + number_literal) ))))) )) (argument_list "(-dVar39,dStack_580)" ( (unary_expression "-dVar39" - identifier) , identifier ))))) ;) (expression_statement "dVar40 = dVar40 - dVar39;" (assignment_expression "dVar40 = dVar40 - dVar39" identifier = (binary_expression "dVar40 - dVar39" identifier - identifier)) ;) }))) (expression_statement "bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];" (assignment_expression "bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881]" identifier = (binary_expression "dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881]" (binary_expression "dVar40 < dStack_580" identifier < identifier) && (binary_expression "dStack_580 < dVar40 + pdVar29[0x881]" identifier < (binary_expression "dVar40 + pdVar29[0x881]" identifier + (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]))))) ;) (if_statement "if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }" if (parenthesized_expression "(unaff_s6[0x879] <= dStack_580 * dStack_578)" ( (binary_expression "unaff_s6[0x879] <= dStack_580 * dStack_578" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dStack_580 * dStack_578" identifier * identifier)) )) (compound_statement "{\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }" { (expression_statement "uStack_5a0 = pdVar29[0x881] / dStack_580;" (assignment_expression "uStack_5a0 = pdVar29[0x881] / dStack_580" identifier = (binary_expression "pdVar29[0x881] / dStack_580" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }" else (compound_statement "{\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }" { (expression_statement "uStack_5a0 = dStack_578 / unaff_s6[0x879];" (assignment_expression "uStack_5a0 = dStack_578 / unaff_s6[0x879]" identifier = (binary_expression "dStack_578 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "uStack_5a0 = dVar40 * uStack_5a0;" (assignment_expression "uStack_5a0 = dVar40 * uStack_5a0" identifier = (binary_expression "dVar40 * uStack_5a0" identifier * identifier)) ;) (goto_statement "goto LAB_000a5f08;" goto statement_identifier ;) }))) }) (else_clause "else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }" else (compound_statement "{\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }" { (if_statement "if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }" if (parenthesized_expression "(*puVar32 != 2)" ( (binary_expression "*puVar32 != 2" (pointer_expression "*puVar32" * identifier) != number_literal) )) (compound_statement "{\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }" { (expression_statement "in_f26_27 = 0.0;" (assignment_expression "in_f26_27 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_000a5e90;" goto statement_identifier ;) })) (expression_statement "dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));" (assignment_expression "dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" identifier = (binary_expression "((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (binary_expression "((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12))" (parenthesized_expression "((double)iVar28 - *(double *)(puVar32 + 0x12))" ( (binary_expression "(double)iVar28 - *(double *)(puVar32 + 0x12)" (cast_expression "(double)iVar28" ( (type_descriptor "double" primitive_type) ) identifier) - (pointer_expression "*(double *)(puVar32 + 0x12)" * (cast_expression "(double *)(puVar32 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x12)" ( (binary_expression "puVar32 + 0x12" identifier + number_literal) ))))) )) * (parenthesized_expression "((double)iVar28 - *(double *)(puVar32 + 0x12))" ( (binary_expression "(double)iVar28 - *(double *)(puVar32 + 0x12)" (cast_expression "(double)iVar28" ( (type_descriptor "double" primitive_type) ) identifier) - (pointer_expression "*(double *)(puVar32 + 0x12)" * (cast_expression "(double *)(puVar32 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x12)" ( (binary_expression "puVar32 + 0x12" identifier + number_literal) ))))) ))) + (binary_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (parenthesized_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" ( (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 0x14)" (cast_expression "(double)(int)puVar35" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar35" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar32 + 0x14)" * (cast_expression "(double *)(puVar32 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x14)" ( (binary_expression "puVar32 + 0x14" identifier + number_literal) ))))) )) * (parenthesized_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" ( (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 0x14)" (cast_expression "(double)(int)puVar35" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar35" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar32 + 0x14)" * (cast_expression "(double *)(puVar32 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x14)" ( (binary_expression "puVar32 + 0x14" identifier + number_literal) ))))) ))))) ;) (expression_statement "in_f26_27 = SQRT(dVar39);" (assignment_expression "in_f26_27 = SQRT(dVar39)" identifier = (call_expression "SQRT(dVar39)" identifier (argument_list "(dVar39)" ( identifier )))) ;) (if_statement "if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }" if (parenthesized_expression "(dVar39 < 0.0)" ( (binary_expression "dVar39 < 0.0" identifier < number_literal) )) (compound_statement "{\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }" { (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar26 = *puVar32;" (assignment_expression "uVar26 = *puVar32" identifier = (pointer_expression "*puVar32" * identifier)) ;) (goto_statement "goto LAB_000a5e94;" goto statement_identifier ;) })) }))) (expression_statement "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a))" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a))" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x6ee0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x6ee0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x6ee0)" * (cast_expression "(code **)(pcStack_5a8 + -0x6ee0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x6ee0)" ( (binary_expression "pcStack_5a8 + -0x6ee0" identifier + number_literal) ))))) )) (argument_list "(in_f26_27,*(undefined8 *)(puVar32 + 0x1a))" ( identifier , (pointer_expression "*(undefined8 *)(puVar32 + 0x1a)" * (cast_expression "(undefined8 *)(puVar32 + 0x1a)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x1a)" ( (binary_expression "puVar32 + 0x1a" identifier + number_literal) )))) ))))) ;) (expression_statement "uStack_5a0 = dVar39;" (assignment_expression "uStack_5a0 = dVar39" identifier = identifier) ;) (if_statement "if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }" if (parenthesized_expression "(0.0 <= dVar39)" ( (binary_expression "0.0 <= dVar39" number_literal <= identifier) )) (compound_statement "{\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }" { (expression_statement "dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));" (assignment_expression "dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a))" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a))" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x6ee0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x6ee0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x6ee0)" * (cast_expression "(code **)(pcStack_5a8 + -0x6ee0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x6ee0)" ( (binary_expression "pcStack_5a8 + -0x6ee0" identifier + number_literal) ))))) )) (argument_list "(in_f26_27,*(undefined8 *)(puVar32 + 0x1a))" ( identifier , (pointer_expression "*(undefined8 *)(puVar32 + 0x1a)" * (cast_expression "(undefined8 *)(puVar32 + 0x1a)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x1a)" ( (binary_expression "puVar32 + 0x1a" identifier + number_literal) )))) ))))) ;) }) (else_clause "else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }" else (compound_statement "{\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }" { (expression_statement "dVar40 = *(double *)(puVar32 + 0x1a);" (assignment_expression "dVar40 = *(double *)(puVar32 + 0x1a)" identifier = (pointer_expression "*(double *)(puVar32 + 0x1a)" * (cast_expression "(double *)(puVar32 + 0x1a)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x1a)" ( (binary_expression "puVar32 + 0x1a" identifier + number_literal) ))))) ;) (expression_statement "uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);" (assignment_expression "uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20)" (field_expression "uStack_5a0._0_4_" identifier . field_identifier) = (call_expression "(uint)((ulonglong)dVar39 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)dVar39 >> 0x20)" ( (binary_expression "(ulonglong)dVar39 >> 0x20" (cast_expression "(ulonglong)dVar39" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;" (assignment_expression "uStack_538 = uStack_5a0._0_4_ ^ 0x80000000" identifier = (binary_expression "uStack_5a0._0_4_ ^ 0x80000000" (field_expression "uStack_5a0._0_4_" identifier . field_identifier) ^ number_literal)) ;) (expression_statement "uStack_5a0._4_4_ = SUB84(dVar39,0);" (assignment_expression "uStack_5a0._4_4_ = SUB84(dVar39,0)" (field_expression "uStack_5a0._4_4_" identifier . field_identifier) = (call_expression "SUB84(dVar39,0)" identifier (argument_list "(dVar39,0)" ( identifier , number_literal )))) ;) (expression_statement "uStack_534 = uStack_5a0._4_4_;" (assignment_expression "uStack_534 = uStack_5a0._4_4_" identifier = (field_expression "uStack_5a0._4_4_" identifier . field_identifier)) ;) (expression_statement "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40)" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40)" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x6ee0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x6ee0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x6ee0)" * (cast_expression "(code **)(pcStack_5a8 + -0x6ee0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x6ee0)" ( (binary_expression "pcStack_5a8 + -0x6ee0" identifier + number_literal) ))))) )) (argument_list "(-dVar39,dVar40)" ( (unary_expression "-dVar39" - identifier) , identifier ))))) ;) (expression_statement "dVar40 = dVar40 - dVar39;" (assignment_expression "dVar40 = dVar40 - dVar39" identifier = (binary_expression "dVar40 - dVar39" identifier - identifier)) ;) }))) (expression_statement "bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];" (assignment_expression "bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881]" identifier = (binary_expression "*(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881]" (pointer_expression "*(double *)(puVar32 + 0x1a)" * (cast_expression "(double *)(puVar32 + 0x1a)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x1a)" ( (binary_expression "puVar32 + 0x1a" identifier + number_literal) )))) < (binary_expression "dVar40 + pdVar29[0x881]" identifier + (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])))) ;) (expression_statement "uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);" (assignment_expression "uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a)" identifier = (binary_expression "dVar40 / *(double *)(puVar32 + 0x1a)" identifier / (pointer_expression "*(double *)(puVar32 + 0x1a)" * (cast_expression "(double *)(puVar32 + 0x1a)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x1a)" ( (binary_expression "puVar32 + 0x1a" identifier + number_literal) )))))) ;) }))) (labeled_statement "LAB_000a5f08:\n                uVar26 = puVar32[0xf];" statement_identifier : (expression_statement "uVar26 = puVar32[0xf];" (assignment_expression "uVar26 = puVar32[0xf]" identifier = (subscript_expression "puVar32[0xf]" identifier [ number_literal ])) ;)) (if_statement "if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }" if (parenthesized_expression "(0 < (int)uVar26)" ( (binary_expression "0 < (int)uVar26" number_literal < (cast_expression "(int)uVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }" { (expression_statement "uVar8 = puVar32[0xe];" (assignment_expression "uVar8 = puVar32[0xe]" identifier = (subscript_expression "puVar32[0xe]" identifier [ number_literal ])) ;) (if_statement "if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }" if (parenthesized_expression "(*(double *)(uVar8 + 0x58) <= uStack_5a0)" ( (binary_expression "*(double *)(uVar8 + 0x58) <= uStack_5a0" (pointer_expression "*(double *)(uVar8 + 0x58)" * (cast_expression "(double *)(uVar8 + 0x58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + 0x58)" ( (binary_expression "uVar8 + 0x58" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }" { (expression_statement "pdVar16 = (double *)(uVar8 + 0xb8);" (assignment_expression "pdVar16 = (double *)(uVar8 + 0xb8)" identifier = (cast_expression "(double *)(uVar8 + 0xb8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + 0xb8)" ( (binary_expression "uVar8 + 0xb8" identifier + number_literal) )))) ;) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);" do (compound_statement "{\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    }" { (expression_statement "uVar22 = uVar18;" (assignment_expression "uVar22 = uVar18" identifier = identifier) ;) (expression_statement "uVar18 = uVar22 + 1;" (assignment_expression "uVar18 = uVar22 + 1" identifier = (binary_expression "uVar22 + 1" identifier + number_literal)) ;) (if_statement "if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }" if (parenthesized_expression "(uVar18 == uVar26)" ( (binary_expression "uVar18 == uVar26" identifier == identifier) )) (compound_statement "{\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }" { (if_statement "if (uVar18 == 0) goto LAB_000a5db0;" if (parenthesized_expression "(uVar18 == 0)" ( (binary_expression "uVar18 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000a5db0;" goto statement_identifier ;)) (expression_statement "iVar3 = uVar8 + uVar26 * 0x60 + -0x60;" (assignment_expression "iVar3 = uVar8 + uVar26 * 0x60 + -0x60" identifier = (binary_expression "uVar8 + uVar26 * 0x60 + -0x60" (binary_expression "uVar8 + uVar26 * 0x60" identifier + (binary_expression "uVar26 * 0x60" identifier * number_literal)) + number_literal)) ;) (expression_statement "in_f20_21 = *(double *)(iVar3 + 0x28);" (assignment_expression "in_f20_21 = *(double *)(iVar3 + 0x28)" identifier = (pointer_expression "*(double *)(iVar3 + 0x28)" * (cast_expression "(double *)(iVar3 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x28)" ( (binary_expression "iVar3 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "in_f22_23 = *(double *)(iVar3 + 0x30);" (assignment_expression "in_f22_23 = *(double *)(iVar3 + 0x30)" identifier = (pointer_expression "*(double *)(iVar3 + 0x30)" * (cast_expression "(double *)(iVar3 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x30)" ( (binary_expression "iVar3 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "in_f24_25 = *(double *)(iVar3 + 0x38);" (assignment_expression "in_f24_25 = *(double *)(iVar3 + 0x38)" identifier = (pointer_expression "*(double *)(iVar3 + 0x38)" * (cast_expression "(double *)(iVar3 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x38)" ( (binary_expression "iVar3 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "dStack_590 = *(double *)(iVar3 + 0x40);" (assignment_expression "dStack_590 = *(double *)(iVar3 + 0x40)" identifier = (pointer_expression "*(double *)(iVar3 + 0x40)" * (cast_expression "(double *)(iVar3 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x40)" ( (binary_expression "iVar3 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "dVar39 = *(double *)(iVar3 + 0x48);" (assignment_expression "dVar39 = *(double *)(iVar3 + 0x48)" identifier = (pointer_expression "*(double *)(iVar3 + 0x48)" * (cast_expression "(double *)(iVar3 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x48)" ( (binary_expression "iVar3 + 0x48" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000a5af8;" goto statement_identifier ;) })) (expression_statement "dVar39 = *pdVar16;" (assignment_expression "dVar39 = *pdVar16" identifier = (pointer_expression "*pdVar16" * identifier)) ;) (expression_statement "pdVar16 = pdVar16 + 0xc;" (assignment_expression "pdVar16 = pdVar16 + 0xc" identifier = (binary_expression "pdVar16 + 0xc" identifier + number_literal)) ;) }) while (parenthesized_expression "(dVar39 <= uStack_5a0)" ( (binary_expression "dVar39 <= uStack_5a0" identifier <= identifier) )) ;) (if_statement "if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }" if (parenthesized_expression "(uVar18 != 0)" ( (binary_expression "uVar18 != 0" identifier != number_literal) )) (compound_statement "{\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }" { (expression_statement "dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);" (assignment_expression "dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58)" identifier = (pointer_expression "*(double *)(uVar8 + uVar22 * 0x60 + 0x58)" * (cast_expression "(double *)(uVar8 + uVar22 * 0x60 + 0x58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + uVar22 * 0x60 + 0x58)" ( (binary_expression "uVar8 + uVar22 * 0x60 + 0x58" (binary_expression "uVar8 + uVar22 * 0x60" identifier + (binary_expression "uVar22 * 0x60" identifier * number_literal)) + number_literal) ))))) ;) (if_statement "if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }" { (expression_statement "dVar39 = dStack_580;" (assignment_expression "dVar39 = dStack_580" identifier = identifier) ;) (if_statement "if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }" if (parenthesized_expression "(*puVar32 != 1)" ( (binary_expression "*puVar32 != 1" (pointer_expression "*puVar32" * identifier) != number_literal) )) (compound_statement "{\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }" { (expression_statement "dVar39 = *(double *)(puVar32 + 0x1a);" (assignment_expression "dVar39 = *(double *)(puVar32 + 0x1a)" identifier = (pointer_expression "*(double *)(puVar32 + 0x1a)" * (cast_expression "(double *)(puVar32 + 0x1a)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x1a)" ( (binary_expression "puVar32 + 0x1a" identifier + number_literal) ))))) ;) })) (expression_statement "dVar39 = dVar39 - dVar40;" (assignment_expression "dVar39 = dVar39 - dVar40" identifier = (binary_expression "dVar39 - dVar40" identifier - identifier)) ;) (expression_statement "uVar18 = uVar26 - 1;" (assignment_expression "uVar18 = uVar26 - 1" identifier = (binary_expression "uVar26 - 1" identifier - number_literal)) ;) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }" else (compound_statement "{\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }" { (expression_statement "dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);" (assignment_expression "dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39)" identifier = (binary_expression "(uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39)" (parenthesized_expression "(uStack_5a0 - dVar39)" ( (binary_expression "uStack_5a0 - dVar39" identifier - identifier) )) / (parenthesized_expression "(*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39)" ( (binary_expression "*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39" (pointer_expression "*(double *)(uVar8 + uVar18 * 0x60 + 0x58)" * (cast_expression "(double *)(uVar8 + uVar18 * 0x60 + 0x58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + uVar18 * 0x60 + 0x58)" ( (binary_expression "uVar8 + uVar18 * 0x60 + 0x58" (binary_expression "uVar8 + uVar18 * 0x60" identifier + (binary_expression "uVar18 * 0x60" identifier * number_literal)) + number_literal) )))) - identifier) )))) ;) }))) (expression_statement "iVar10 = uVar8 + uVar22 * 0x60;" (assignment_expression "iVar10 = uVar8 + uVar22 * 0x60" identifier = (binary_expression "uVar8 + uVar22 * 0x60" identifier + (binary_expression "uVar22 * 0x60" identifier * number_literal))) ;) (expression_statement "iVar3 = uVar8 + uVar18 * 0x60;" (assignment_expression "iVar3 = uVar8 + uVar18 * 0x60" identifier = (binary_expression "uVar8 + uVar18 * 0x60" identifier + (binary_expression "uVar18 * 0x60" identifier * number_literal))) ;) (expression_statement "dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);" (assignment_expression "dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" identifier = (binary_expression "(pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" (binary_expression "(pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48)" (parenthesized_expression "(pdVar29[0x881] - dVar39)" ( (binary_expression "pdVar29[0x881] - dVar39" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) - identifier) )) * (pointer_expression "*(double *)(iVar10 + 0x48)" * (cast_expression "(double *)(iVar10 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x48)" ( (binary_expression "iVar10 + 0x48" identifier + number_literal) ))))) * (pointer_expression "*(double *)(dStack_558._0_4_ + 0x4410)" * (cast_expression "(double *)(dStack_558._0_4_ + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(dStack_558._0_4_ + 0x4410)" ( (binary_expression "dStack_558._0_4_ + 0x4410" (field_expression "dStack_558._0_4_" identifier . field_identifier) + number_literal) )))))) ;) (expression_statement "dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);" (assignment_expression "dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" identifier = (binary_expression "dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" (binary_expression "dVar39 * *(double *)(iVar3 + 0x48)" identifier * (pointer_expression "*(double *)(iVar3 + 0x48)" * (cast_expression "(double *)(iVar3 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x48)" ( (binary_expression "iVar3 + 0x48" identifier + number_literal) ))))) * (pointer_expression "*(double *)(dStack_558._0_4_ + 0x4410)" * (cast_expression "(double *)(dStack_558._0_4_ + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(dStack_558._0_4_ + 0x4410)" ( (binary_expression "dStack_558._0_4_ + 0x4410" (field_expression "dStack_558._0_4_" identifier . field_identifier) + number_literal) )))))) ;) (expression_statement "dVar44 = dVar47 + dVar40;" (assignment_expression "dVar44 = dVar47 + dVar40" identifier = (binary_expression "dVar47 + dVar40" identifier + identifier)) ;) (if_statement "if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }" if (parenthesized_expression "(0.0 <= dVar44)" ( (binary_expression "0.0 <= dVar44" number_literal <= identifier) )) (compound_statement "{\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }" { (if_statement "if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }" if (parenthesized_expression "(pdVar29[0x881] < dVar44)" ( (binary_expression "pdVar29[0x881] < dVar44" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) < identifier) )) (compound_statement "{\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }" { (expression_statement "dVar44 = pdVar29[0x881];" (assignment_expression "dVar44 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_000a6d30;" goto statement_identifier ;) })) (if_statement "if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }" if (parenthesized_expression "(0.0 <= dVar44)" ( (binary_expression "0.0 <= dVar44" number_literal <= identifier) )) (compound_statement "{\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }" { (expression_statement "dVar39 = dVar44;" (assignment_expression "dVar39 = dVar44" identifier = identifier) ;) (if_statement "if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }" if (parenthesized_expression "(pdVar29[0x881] < dVar44)" ( (binary_expression "pdVar29[0x881] < dVar44" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) < identifier) )) (compound_statement "{\n                            dVar39 = pdVar29[0x881];\n                          }" { (expression_statement "dVar39 = pdVar29[0x881];" (assignment_expression "dVar39 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) })) (expression_statement "dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);" (assignment_expression "dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48)" identifier = (binary_expression "dVar39 * *(double *)(iStack_570 + 0x4a48)" identifier * (pointer_expression "*(double *)(iStack_570 + 0x4a48)" * (cast_expression "(double *)(iStack_570 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_570 + 0x4a48)" ( (binary_expression "iStack_570 + 0x4a48" identifier + number_literal) )))))) ;) (if_statement "if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }" if (parenthesized_expression "(dVar44 < 0.0)" ( (binary_expression "dVar44 < 0.0" identifier < number_literal) )) (compound_statement "{\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }" { (expression_statement "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n                            dVar45 = pdVar29[0x881];\n                          }" else (compound_statement "{\n                            dVar45 = pdVar29[0x881];\n                          }" { (expression_statement "dVar45 = pdVar29[0x881];" (assignment_expression "dVar45 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) }))) }) (else_clause "else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }" else (compound_statement "{\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }" { (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" identifier = number_literal) ;) (expression_statement "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) }) (else_clause "else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }" else (compound_statement "{\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }" { (expression_statement "dVar44 = 0.0;" (assignment_expression "dVar44 = 0.0" identifier = number_literal) ;) (labeled_statement "LAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);" statement_identifier : (expression_statement "dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);" (assignment_expression "dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48)" identifier = (binary_expression "dVar44 * *(double *)(iStack_570 + 0x4a48)" identifier * (pointer_expression "*(double *)(iStack_570 + 0x4a48)" * (cast_expression "(double *)(iStack_570 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_570 + 0x4a48)" ( (binary_expression "iStack_570 + 0x4a48" identifier + number_literal) )))))) ;)) (expression_statement "dVar45 = pdVar29[0x881];" (assignment_expression "dVar45 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar45 * dVar44)" ( (binary_expression "unaff_s6[0x879] <= dVar45 * dVar44" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar45 * dVar44" identifier * identifier)) )) (compound_statement "{\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }" { (expression_statement "dVar45 = pdVar29[0x881] / dVar44;" (assignment_expression "dVar45 = pdVar29[0x881] / dVar44" identifier = (binary_expression "pdVar29[0x881] / dVar44" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }" else (compound_statement "{\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }" { (expression_statement "dVar45 = dVar45 / unaff_s6[0x879];" (assignment_expression "dVar45 = dVar45 / unaff_s6[0x879]" identifier = (binary_expression "dVar45 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;" (assignment_expression "in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45" identifier = (binary_expression "(dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45" (parenthesized_expression "(dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28))" ( (binary_expression "dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)" (binary_expression "dVar47 * *(double *)(iVar10 + 0x28)" identifier * (pointer_expression "*(double *)(iVar10 + 0x28)" * (cast_expression "(double *)(iVar10 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x28)" ( (binary_expression "iVar10 + 0x28" identifier + number_literal) ))))) + (binary_expression "dVar40 * *(double *)(iVar3 + 0x28)" identifier * (pointer_expression "*(double *)(iVar3 + 0x28)" * (cast_expression "(double *)(iVar3 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x28)" ( (binary_expression "iVar3 + 0x28" identifier + number_literal) )))))) )) * identifier)) ;) (expression_statement "in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;" (assignment_expression "in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45" identifier = (binary_expression "(dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45" (parenthesized_expression "(dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30))" ( (binary_expression "dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)" (binary_expression "dVar47 * *(double *)(iVar10 + 0x30)" identifier * (pointer_expression "*(double *)(iVar10 + 0x30)" * (cast_expression "(double *)(iVar10 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x30)" ( (binary_expression "iVar10 + 0x30" identifier + number_literal) ))))) + (binary_expression "dVar40 * *(double *)(iVar3 + 0x30)" identifier * (pointer_expression "*(double *)(iVar3 + 0x30)" * (cast_expression "(double *)(iVar3 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x30)" ( (binary_expression "iVar3 + 0x30" identifier + number_literal) )))))) )) * identifier)) ;) (expression_statement "in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;" (assignment_expression "in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45" identifier = (binary_expression "(dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45" (parenthesized_expression "(dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38))" ( (binary_expression "dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)" (binary_expression "dVar47 * *(double *)(iVar10 + 0x38)" identifier * (pointer_expression "*(double *)(iVar10 + 0x38)" * (cast_expression "(double *)(iVar10 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x38)" ( (binary_expression "iVar10 + 0x38" identifier + number_literal) ))))) + (binary_expression "dVar40 * *(double *)(iVar3 + 0x38)" identifier * (pointer_expression "*(double *)(iVar3 + 0x38)" * (cast_expression "(double *)(iVar3 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x38)" ( (binary_expression "iVar3 + 0x38" identifier + number_literal) )))))) )) * identifier)) ;) (if_statement "if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }" if (parenthesized_expression "(*(int *)(iVar3 + 4) == 2)" ( (binary_expression "*(int *)(iVar3 + 4) == 2" (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }" { (expression_statement "dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;" (assignment_expression "dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45" identifier = (binary_expression "(dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45" (parenthesized_expression "(dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40))" ( (binary_expression "dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)" (binary_expression "dVar47 * *(double *)(iVar10 + 0x40)" identifier * (pointer_expression "*(double *)(iVar10 + 0x40)" * (cast_expression "(double *)(iVar10 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x40)" ( (binary_expression "iVar10 + 0x40" identifier + number_literal) ))))) + (binary_expression "dVar40 * *(double *)(iVar3 + 0x40)" identifier * (pointer_expression "*(double *)(iVar3 + 0x40)" * (cast_expression "(double *)(iVar3 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x40)" ( (binary_expression "iVar3 + 0x40" identifier + number_literal) )))))) )) * identifier)) ;) })) (goto_statement "goto LAB_000a5af8;" goto statement_identifier ;) })) })) })) (labeled_statement "LAB_000a5db0:\n                uVar26 = puVar32[0xe];" statement_identifier : (expression_statement "uVar26 = puVar32[0xe];" (assignment_expression "uVar26 = puVar32[0xe]" identifier = (subscript_expression "puVar32[0xe]" identifier [ number_literal ])) ;)) (expression_statement "in_f20_21 = *(double *)(uVar26 + 0x28);" (assignment_expression "in_f20_21 = *(double *)(uVar26 + 0x28)" identifier = (pointer_expression "*(double *)(uVar26 + 0x28)" * (cast_expression "(double *)(uVar26 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 + 0x28)" ( (binary_expression "uVar26 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "in_f22_23 = *(double *)(uVar26 + 0x30);" (assignment_expression "in_f22_23 = *(double *)(uVar26 + 0x30)" identifier = (pointer_expression "*(double *)(uVar26 + 0x30)" * (cast_expression "(double *)(uVar26 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 + 0x30)" ( (binary_expression "uVar26 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "in_f24_25 = *(double *)(uVar26 + 0x38);" (assignment_expression "in_f24_25 = *(double *)(uVar26 + 0x38)" identifier = (pointer_expression "*(double *)(uVar26 + 0x38)" * (cast_expression "(double *)(uVar26 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 + 0x38)" ( (binary_expression "uVar26 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "dStack_590 = *(double *)(uVar26 + 0x40);" (assignment_expression "dStack_590 = *(double *)(uVar26 + 0x40)" identifier = (pointer_expression "*(double *)(uVar26 + 0x40)" * (cast_expression "(double *)(uVar26 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 + 0x40)" ( (binary_expression "uVar26 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "dVar39 = *(double *)(uVar26 + 0x48);" (assignment_expression "dVar39 = *(double *)(uVar26 + 0x48)" identifier = (pointer_expression "*(double *)(uVar26 + 0x48)" * (cast_expression "(double *)(uVar26 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 + 0x48)" ( (binary_expression "uVar26 + 0x48" identifier + number_literal) ))))) ;) })))))) (labeled_statement "LAB_000a5af8:\n              dVar44 = dVar39 * dVar41;" statement_identifier : (expression_statement "dVar44 = dVar39 * dVar41;" (assignment_expression "dVar44 = dVar39 * dVar41" identifier = (binary_expression "dVar39 * dVar41" identifier * identifier)) ;)) (expression_statement "dVar47 = dStack_4c8 * dVar41;" (assignment_expression "dVar47 = dStack_4c8 * dVar41" identifier = (binary_expression "dStack_4c8 * dVar41" identifier * identifier)) ;) (expression_statement "dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;" (assignment_expression "dVar40 = (dVar44 + dVar47) - dVar44 * dVar47" identifier = (binary_expression "(dVar44 + dVar47) - dVar44 * dVar47" (parenthesized_expression "(dVar44 + dVar47)" ( (binary_expression "dVar44 + dVar47" identifier + identifier) )) - (binary_expression "dVar44 * dVar47" identifier * identifier))) ;) (if_statement "if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }" if (parenthesized_expression "(0.0 <= dVar40)" ( (binary_expression "0.0 <= dVar40" number_literal <= identifier) )) (compound_statement "{\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }" { (expression_statement "dStack_4c8 = pdVar29[0x881];" (assignment_expression "dStack_4c8 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) (if_statement "if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }" if (parenthesized_expression "(dVar40 <= pdVar29[0x881])" ( (binary_expression "dVar40 <= pdVar29[0x881]" identifier <= (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) )) (compound_statement "{\n                  dStack_4c8 = dVar40;\n                }" { (expression_statement "dStack_4c8 = dVar40;" (assignment_expression "dStack_4c8 = dVar40" identifier = identifier) ;) })) (expression_statement "dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);" (assignment_expression "dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48)" identifier = (binary_expression "dStack_4c8 * *(double *)(iStack_570 + 0x4a48)" identifier * (pointer_expression "*(double *)(iStack_570 + 0x4a48)" * (cast_expression "(double *)(iStack_570 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_570 + 0x4a48)" ( (binary_expression "iStack_570 + 0x4a48" identifier + number_literal) )))))) ;) (if_statement "if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }" if (parenthesized_expression "(0.0 <= dVar40)" ( (binary_expression "0.0 <= dVar40" number_literal <= identifier) )) (compound_statement "{\n                  dVar45 = pdVar29[0x881];\n                }" { (expression_statement "dVar45 = pdVar29[0x881];" (assignment_expression "dVar45 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }" else (compound_statement "{\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }" { (expression_statement "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) }) (else_clause "else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }" else (compound_statement "{\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }" { (expression_statement "dStack_4c8 = 0.0;" (assignment_expression "dStack_4c8 = 0.0" identifier = number_literal) ;) (expression_statement "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar40 * dVar45)" ( (binary_expression "unaff_s6[0x879] <= dVar40 * dVar45" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar40 * dVar45" identifier * identifier)) )) (compound_statement "{\n                dVar45 = pdVar29[0x881] / dVar40;\n              }" { (expression_statement "dVar45 = pdVar29[0x881] / dVar40;" (assignment_expression "dVar45 = pdVar29[0x881] / dVar40" identifier = (binary_expression "pdVar29[0x881] / dVar40" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }" else (compound_statement "{\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }" { (expression_statement "dVar45 = dVar45 / unaff_s6[0x879];" (assignment_expression "dVar45 = dVar45 / unaff_s6[0x879]" identifier = (binary_expression "dVar45 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "dVar40 = pdVar29[0x881] - dVar44;" (assignment_expression "dVar40 = pdVar29[0x881] - dVar44" identifier = (binary_expression "pdVar29[0x881] - dVar44" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;" (assignment_expression "dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45" identifier = (binary_expression "(dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45" (parenthesized_expression "(dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21)" ( (binary_expression "dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21" (binary_expression "dVar47 * dStack_4e8 * dVar40" (binary_expression "dVar47 * dStack_4e8" identifier * identifier) * identifier) + (binary_expression "dVar44 * in_f20_21" identifier * identifier)) )) * identifier)) ;) (expression_statement "dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;" (assignment_expression "dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45" identifier = (binary_expression "(dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45" (parenthesized_expression "(dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44)" ( (binary_expression "dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44" (binary_expression "dVar47 * dStack_4e0 * dVar40" (binary_expression "dVar47 * dStack_4e0" identifier * identifier) * identifier) + (binary_expression "in_f22_23 * dVar44" identifier * identifier)) )) * identifier)) ;) (expression_statement "dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;" (assignment_expression "dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45" identifier = (binary_expression "(dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45" (parenthesized_expression "(dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25)" ( (binary_expression "dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25" (binary_expression "dVar47 * dStack_4d8 * dVar40" (binary_expression "dVar47 * dStack_4d8" identifier * identifier) * identifier) + (binary_expression "dVar44 * in_f24_25" identifier * identifier)) )) * identifier)) ;) (if_statement "if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }" if (parenthesized_expression "(aiStack_510[1] == 2)" ( (binary_expression "aiStack_510[1] == 2" (subscript_expression "aiStack_510[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }" { (expression_statement "dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;" (assignment_expression "dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45" identifier = (binary_expression "(dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45" (parenthesized_expression "(dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44)" ( (binary_expression "dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44" (binary_expression "dVar47 * dStack_4d0 * dVar40" (binary_expression "dVar47 * dStack_4d0" identifier * identifier) * identifier) + (binary_expression "dStack_590 * dVar44" identifier * identifier)) )) * identifier)) ;) })) (expression_statement "iVar3 = piVar48[0xb4];" (assignment_expression "iVar3 = piVar48[0xb4]" identifier = (subscript_expression "piVar48[0xb4]" identifier [ number_literal ])) ;) (expression_statement "*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;" (assignment_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8" (pointer_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4)" * (cast_expression "(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar30 + *(int *)(iVar3 + 8) * 4)" ( (binary_expression "(int)pdVar30 + *(int *)(iVar3 + 8) * 4" (cast_expression "(int)pdVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar3 + 8) * 4" (pointer_expression "*(int *)(iVar3 + 8)" * (cast_expression "(int *)(iVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)dStack_4e8" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;" (assignment_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0" (pointer_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4)" * (cast_expression "(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4)" ( (binary_expression "(int)pdVar30 + *(int *)(iVar3 + 0x14) * 4" (cast_expression "(int)pdVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar3 + 0x14) * 4" (pointer_expression "*(int *)(iVar3 + 0x14)" * (cast_expression "(int *)(iVar3 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)dStack_4e0" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;" (assignment_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8" (pointer_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4)" * (cast_expression "(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4)" ( (binary_expression "(int)pdVar30 + *(int *)(iVar3 + 0x20) * 4" (cast_expression "(int)pdVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar3 + 0x20) * 4" (pointer_expression "*(int *)(iVar3 + 0x20)" * (cast_expression "(int *)(iVar3 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x20)" ( (binary_expression "iVar3 + 0x20" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)dStack_4d8" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (if_statement "if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }" if (parenthesized_expression "(*(int *)(iVar3 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar3 + 0x28) != 0" (pointer_expression "*(int *)(iVar3 + 0x28)" * (cast_expression "(int *)(iVar3 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x28)" ( (binary_expression "iVar3 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }" { (expression_statement "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;" (assignment_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0" (pointer_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4)" * (cast_expression "(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4)" ( (binary_expression "(int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4" (cast_expression "(int)pdVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar3 + 0x2c) * 4" (pointer_expression "*(int *)(iVar3 + 0x2c)" * (cast_expression "(int *)(iVar3 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2c)" ( (binary_expression "iVar3 + 0x2c" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)dStack_4d0" ( (type_descriptor "float" primitive_type) ) identifier)) ;) })) (if_statement "if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }" if (parenthesized_expression "(*(int *)(iVar3 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar3 + 0x34) != 0" (pointer_expression "*(int *)(iVar3 + 0x34)" * (cast_expression "(int *)(iVar3 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x34)" ( (binary_expression "iVar3 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }" { (if_statement "if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }" if (parenthesized_expression "(aiStack_510[2] == 0)" ( (binary_expression "aiStack_510[2] == 0" (subscript_expression "aiStack_510[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }" { (expression_statement "fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);" (assignment_expression "fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8)" identifier = (pointer_expression "*(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8)" * (cast_expression "(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n                  fVar43 = (float)dStack_4c8;\n                }" else (compound_statement "{\n                  fVar43 = (float)dStack_4c8;\n                }" { (expression_statement "fVar43 = (float)dStack_4c8;" (assignment_expression "fVar43 = (float)dStack_4c8" identifier = (cast_expression "(float)dStack_4c8" ( (type_descriptor "float" primitive_type) ) identifier)) ;) }))) (expression_statement "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;" (assignment_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43" (pointer_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4)" * (cast_expression "(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4)" ( (binary_expression "(int)pdVar30 + *(int *)(iVar3 + 0x38) * 4" (cast_expression "(int)pdVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar3 + 0x38) * 4" (pointer_expression "*(int *)(iVar3 + 0x38)" * (cast_expression "(int *)(iVar3 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x38)" ( (binary_expression "iVar3 + 0x38" identifier + number_literal) )))) * number_literal)) )))) = identifier) ;) })) (expression_statement "pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);" (assignment_expression "pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4)" identifier = (cast_expression "(double *)((int)pdVar30 + piVar48[0xb0] * 4)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar30 + piVar48[0xb0] * 4)" ( (binary_expression "(int)pdVar30 + piVar48[0xb0] * 4" (cast_expression "(int)pdVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "piVar48[0xb0] * 4" (subscript_expression "piVar48[0xb0]" identifier [ number_literal ]) * number_literal)) )))) ;) (expression_statement "iVar28 = iVar28 + 1;" (assignment_expression "iVar28 = iVar28 + 1" identifier = (binary_expression "iVar28 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar28 < **(int **)(pdVar5 + 4))" ( (binary_expression "iVar28 < **(int **)(pdVar5 + 4)" identifier < (pointer_expression "**(int **)(pdVar5 + 4)" * (pointer_expression "*(int **)(pdVar5 + 4)" * (cast_expression "(int **)(pdVar5 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar5 + 4)" ( (binary_expression "pdVar5 + 4" identifier + number_literal) )))))) )) ;) })) (expression_statement "pdVar14 = pdStack_568;" (assignment_expression "pdVar14 = pdStack_568" identifier = identifier) ;) (expression_statement "iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);" (assignment_expression "iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564)" identifier = (call_expression "(**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564)" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x73a0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x73a0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x73a0)" * (cast_expression "(code **)(pcStack_5a8 + -0x73a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x73a0)" ( (binary_expression "pcStack_5a8 + -0x73a0" identifier + number_literal) ))))) )) (argument_list "(pdStack_568,uStack_564)" ( identifier , identifier )))) ;) (expression_statement "pcVar37 = pcStack_5a8;" (assignment_expression "pcVar37 = pcStack_5a8" identifier = identifier) ;) (if_statement "if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }" { (expression_statement "*(uint *)((int)pdVar5 + 0x24) = 0;" (assignment_expression "*(uint *)((int)pdVar5 + 0x24) = 0" (pointer_expression "*(uint *)((int)pdVar5 + 0x24)" * (cast_expression "(uint *)((int)pdVar5 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar5 + 0x24)" ( (binary_expression "(int)pdVar5 + 0x24" (cast_expression "(int)pdVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })) }))) })) (expression_statement "puVar35 = puVar35 + 1;" (assignment_expression "puVar35 = puVar35 + 1" identifier = (binary_expression "puVar35 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((int)puVar35 < (int)puStack_56c)" ( (binary_expression "(int)puVar35 < (int)puStack_56c" (cast_expression "(int)puVar35" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puStack_56c" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (if_statement "if (iStack_4b4 == **(int **)(pcVar37 + -0x7668)) {\n    return **(int **)(pcVar37 + -0x7668);\n  }" if (parenthesized_expression "(iStack_4b4 == **(int **)(pcVar37 + -0x7668))" ( (binary_expression "iStack_4b4 == **(int **)(pcVar37 + -0x7668)" identifier == (pointer_expression "**(int **)(pcVar37 + -0x7668)" * (pointer_expression "*(int **)(pcVar37 + -0x7668)" * (cast_expression "(int **)(pcVar37 + -0x7668)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + -0x7668)" ( (binary_expression "pcVar37 + -0x7668" identifier + number_literal) )))))) )) (compound_statement "{\n    return **(int **)(pcVar37 + -0x7668);\n  }" { (return_statement "return **(int **)(pcVar37 + -0x7668);" return (pointer_expression "**(int **)(pcVar37 + -0x7668)" * (pointer_expression "*(int **)(pcVar37 + -0x7668)" * (cast_expression "(int **)(pcVar37 + -0x7668)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + -0x7668)" ( (binary_expression "pcVar37 + -0x7668" identifier + number_literal) ))))) ;) })) (expression_statement "pcVar37 = *(code **)(pcVar37 + -0x7834);" (assignment_expression "pcVar37 = *(code **)(pcVar37 + -0x7834)" identifier = (pointer_expression "*(code **)(pcVar37 + -0x7834)" * (cast_expression "(code **)(pcVar37 + -0x7834)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + -0x7834)" ( (binary_expression "pcVar37 + -0x7834" identifier + number_literal) ))))) ;) (expression_statement "pcVar38 = DestroyDrawInfo;" (assignment_expression "pcVar38 = DestroyDrawInfo" identifier = identifier) ;) (expression_statement "(*pcVar37)();" (call_expression "(*pcVar37)()" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_5d0 = pcVar37 + 0x35a8f0;" (assignment_expression "pcStack_5d0 = pcVar37 + 0x35a8f0" identifier = (binary_expression "pcVar37 + 0x35a8f0" identifier + number_literal)) ;) (expression_statement "pdStack_5c8 = pdVar30;" (assignment_expression "pdStack_5c8 = pdVar30" identifier = identifier) ;) (expression_statement "pcStack_5c4 = pcVar38;" (assignment_expression "pcStack_5c4 = pcVar38" identifier = identifier) ;) (if_statement "if (pdVar14 == (double *)0x0) {\n    (**(code **)(pcVar37 + 0x353660))\n              (*(int *)(pcVar37 + 0x352920) + 0x40e4,*(int *)(pcVar37 + 0x352924) + 0x69c0,0x39a,\n               *(int *)(pcVar37 + 0x352924) + 0x7914);\n    pdVar14 = pdVar30;\nLAB_000a7234:\n    iStack_5d8 = *(int *)(pcVar37 + 0x352924) + 0x10f4;\n    (**(code **)(pcVar37 + 0x353238))\n              (0x8000,*(int *)(pcVar37 + 0x352924) + 0x69c0,*(int *)(pcVar37 + 0x352924) + 0x7904,\n               0x39c);\n    uVar26 = *(uint *)(pdVar14 + 0x72);\n  }\n  else {\n    if (*(uint *)((int)pdVar14 + 0x38c) != 0) goto LAB_000a7234;\n    uVar26 = *(uint *)(pdVar14 + 0x72);\n  }" if (parenthesized_expression "(pdVar14 == (double *)0x0)" ( (binary_expression "pdVar14 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(pcVar37 + 0x353660))\n              (*(int *)(pcVar37 + 0x352920) + 0x40e4,*(int *)(pcVar37 + 0x352924) + 0x69c0,0x39a,\n               *(int *)(pcVar37 + 0x352924) + 0x7914);\n    pdVar14 = pdVar30;\nLAB_000a7234:\n    iStack_5d8 = *(int *)(pcVar37 + 0x352924) + 0x10f4;\n    (**(code **)(pcVar37 + 0x353238))\n              (0x8000,*(int *)(pcVar37 + 0x352924) + 0x69c0,*(int *)(pcVar37 + 0x352924) + 0x7904,\n               0x39c);\n    uVar26 = *(uint *)(pdVar14 + 0x72);\n  }" { (expression_statement "(**(code **)(pcVar37 + 0x353660))\n              (*(int *)(pcVar37 + 0x352920) + 0x40e4,*(int *)(pcVar37 + 0x352924) + 0x69c0,0x39a,\n               *(int *)(pcVar37 + 0x352924) + 0x7914);" (call_expression "(**(code **)(pcVar37 + 0x353660))\n              (*(int *)(pcVar37 + 0x352920) + 0x40e4,*(int *)(pcVar37 + 0x352924) + 0x69c0,0x39a,\n               *(int *)(pcVar37 + 0x352924) + 0x7914)" (parenthesized_expression "(**(code **)(pcVar37 + 0x353660))" ( (pointer_expression "**(code **)(pcVar37 + 0x353660)" * (pointer_expression "*(code **)(pcVar37 + 0x353660)" * (cast_expression "(code **)(pcVar37 + 0x353660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x353660)" ( (binary_expression "pcVar37 + 0x353660" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar37 + 0x352920) + 0x40e4,*(int *)(pcVar37 + 0x352924) + 0x69c0,0x39a,\n               *(int *)(pcVar37 + 0x352924) + 0x7914)" ( (binary_expression "*(int *)(pcVar37 + 0x352920) + 0x40e4" (pointer_expression "*(int *)(pcVar37 + 0x352920)" * (cast_expression "(int *)(pcVar37 + 0x352920)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x352920)" ( (binary_expression "pcVar37 + 0x352920" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar37 + 0x352924) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + 0x352924)" * (cast_expression "(int *)(pcVar37 + 0x352924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x352924)" ( (binary_expression "pcVar37 + 0x352924" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar37 + 0x352924) + 0x7914" (pointer_expression "*(int *)(pcVar37 + 0x352924)" * (cast_expression "(int *)(pcVar37 + 0x352924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x352924)" ( (binary_expression "pcVar37 + 0x352924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pdVar14 = pdVar30;" (assignment_expression "pdVar14 = pdVar30" identifier = identifier) ;) (labeled_statement "LAB_000a7234:\n    iStack_5d8 = *(int *)(pcVar37 + 0x352924) + 0x10f4;" statement_identifier : (expression_statement "iStack_5d8 = *(int *)(pcVar37 + 0x352924) + 0x10f4;" (assignment_expression "iStack_5d8 = *(int *)(pcVar37 + 0x352924) + 0x10f4" identifier = (binary_expression "*(int *)(pcVar37 + 0x352924) + 0x10f4" (pointer_expression "*(int *)(pcVar37 + 0x352924)" * (cast_expression "(int *)(pcVar37 + 0x352924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x352924)" ( (binary_expression "pcVar37 + 0x352924" identifier + number_literal) )))) + number_literal)) ;)) (expression_statement "(**(code **)(pcVar37 + 0x353238))\n              (0x8000,*(int *)(pcVar37 + 0x352924) + 0x69c0,*(int *)(pcVar37 + 0x352924) + 0x7904,\n               0x39c);" (call_expression "(**(code **)(pcVar37 + 0x353238))\n              (0x8000,*(int *)(pcVar37 + 0x352924) + 0x69c0,*(int *)(pcVar37 + 0x352924) + 0x7904,\n               0x39c)" (parenthesized_expression "(**(code **)(pcVar37 + 0x353238))" ( (pointer_expression "**(code **)(pcVar37 + 0x353238)" * (pointer_expression "*(code **)(pcVar37 + 0x353238)" * (cast_expression "(code **)(pcVar37 + 0x353238)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x353238)" ( (binary_expression "pcVar37 + 0x353238" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(pcVar37 + 0x352924) + 0x69c0,*(int *)(pcVar37 + 0x352924) + 0x7904,\n               0x39c)" ( number_literal , (binary_expression "*(int *)(pcVar37 + 0x352924) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + 0x352924)" * (cast_expression "(int *)(pcVar37 + 0x352924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x352924)" ( (binary_expression "pcVar37 + 0x352924" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar37 + 0x352924) + 0x7904" (pointer_expression "*(int *)(pcVar37 + 0x352924)" * (cast_expression "(int *)(pcVar37 + 0x352924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x352924)" ( (binary_expression "pcVar37 + 0x352924" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) (expression_statement "uVar26 = *(uint *)(pdVar14 + 0x72);" (assignment_expression "uVar26 = *(uint *)(pdVar14 + 0x72)" identifier = (pointer_expression "*(uint *)(pdVar14 + 0x72)" * (cast_expression "(uint *)(pdVar14 + 0x72)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x72)" ( (binary_expression "pdVar14 + 0x72" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    if (*(uint *)((int)pdVar14 + 0x38c) != 0) goto LAB_000a7234;\n    uVar26 = *(uint *)(pdVar14 + 0x72);\n  }" else (compound_statement "{\n    if (*(uint *)((int)pdVar14 + 0x38c) != 0) goto LAB_000a7234;\n    uVar26 = *(uint *)(pdVar14 + 0x72);\n  }" { (if_statement "if (*(uint *)((int)pdVar14 + 0x38c) != 0) goto LAB_000a7234;" if (parenthesized_expression "(*(uint *)((int)pdVar14 + 0x38c) != 0)" ( (binary_expression "*(uint *)((int)pdVar14 + 0x38c) != 0" (pointer_expression "*(uint *)((int)pdVar14 + 0x38c)" * (cast_expression "(uint *)((int)pdVar14 + 0x38c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar14 + 0x38c)" ( (binary_expression "(int)pdVar14 + 0x38c" (cast_expression "(int)pdVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_000a7234;" goto statement_identifier ;)) (expression_statement "uVar26 = *(uint *)(pdVar14 + 0x72);" (assignment_expression "uVar26 = *(uint *)(pdVar14 + 0x72)" identifier = (pointer_expression "*(uint *)(pdVar14 + 0x72)" * (cast_expression "(uint *)(pdVar14 + 0x72)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x72)" ( (binary_expression "pdVar14 + 0x72" identifier + number_literal) ))))) ;) }))) (if_statement "if (uVar26 == 0xabacadab) {\n    if (*(uint *)(pdVar14 + 0x77) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x77) = uVar26;\n    }\n    if (*(uint *)pdVar14 != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)pdVar14 = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x4c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4c) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 4) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x35) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)(pdVar14 + 0x35) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x1ac) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x1ac) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x264) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x264) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x4d) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4d) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x26c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x26c) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x50) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x50) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x52) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x52) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x29c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)((int)pdVar14 + 0x29c) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x54) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x54) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x3e) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x3e) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x2a4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x2a4) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x3ac) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3ac) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x3b4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3b4) = uVar26;\n    }\n    *(uint *)(pdVar14 + 0x72) = 0x54535254;\n    iVar3 = (**(code **)(pcStack_5d0 + -0x78d8))(pdVar14);\n    return iVar3;\n  }" if (parenthesized_expression "(uVar26 == 0xabacadab)" ( (binary_expression "uVar26 == 0xabacadab" identifier == number_literal) )) (compound_statement "{\n    if (*(uint *)(pdVar14 + 0x77) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x77) = uVar26;\n    }\n    if (*(uint *)pdVar14 != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)pdVar14 = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x4c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4c) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 4) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x35) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)(pdVar14 + 0x35) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x1ac) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x1ac) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x264) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x264) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x4d) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4d) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x26c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x26c) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x50) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x50) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x52) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x52) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x29c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)((int)pdVar14 + 0x29c) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x54) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x54) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x3e) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x3e) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x2a4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x2a4) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x3ac) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3ac) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x3b4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3b4) = uVar26;\n    }\n    *(uint *)(pdVar14 + 0x72) = 0x54535254;\n    iVar3 = (**(code **)(pcStack_5d0 + -0x78d8))(pdVar14);\n    return iVar3;\n  }" { (if_statement "if (*(uint *)(pdVar14 + 0x77) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x77) = uVar26;\n    }" if (parenthesized_expression "(*(uint *)(pdVar14 + 0x77) != 0)" ( (binary_expression "*(uint *)(pdVar14 + 0x77) != 0" (pointer_expression "*(uint *)(pdVar14 + 0x77)" * (cast_expression "(uint *)(pdVar14 + 0x77)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x77)" ( (binary_expression "pdVar14 + 0x77" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x77) = uVar26;\n    }" { (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" * (cast_expression "(code **)(pcStack_5d0 + -0x7824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x7824)" ( (binary_expression "pcStack_5d0 + -0x7824" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)(pdVar14 + 0x77) = uVar26;" (assignment_expression "*(uint *)(pdVar14 + 0x77) = uVar26" (pointer_expression "*(uint *)(pdVar14 + 0x77)" * (cast_expression "(uint *)(pdVar14 + 0x77)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x77)" ( (binary_expression "pdVar14 + 0x77" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)pdVar14 != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)pdVar14 = uVar26;\n    }" if (parenthesized_expression "(*(uint *)pdVar14 != 0)" ( (binary_expression "*(uint *)pdVar14 != 0" (pointer_expression "*(uint *)pdVar14" * (cast_expression "(uint *)pdVar14" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)pdVar14 = uVar26;\n    }" { (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" * (cast_expression "(code **)(pcStack_5d0 + -0x7824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x7824)" ( (binary_expression "pcStack_5d0 + -0x7824" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)pdVar14 = uVar26;" (assignment_expression "*(uint *)pdVar14 = uVar26" (pointer_expression "*(uint *)pdVar14" * (cast_expression "(uint *)pdVar14" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) })) (if_statement "if (*(uint *)(pdVar14 + 0x4c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4c) = uVar26;\n    }" if (parenthesized_expression "(*(uint *)(pdVar14 + 0x4c) != 0)" ( (binary_expression "*(uint *)(pdVar14 + 0x4c) != 0" (pointer_expression "*(uint *)(pdVar14 + 0x4c)" * (cast_expression "(uint *)(pdVar14 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x4c)" ( (binary_expression "pdVar14 + 0x4c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4c) = uVar26;\n    }" { (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" * (cast_expression "(code **)(pcStack_5d0 + -0x7824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x7824)" ( (binary_expression "pcStack_5d0 + -0x7824" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)(pdVar14 + 0x4c) = uVar26;" (assignment_expression "*(uint *)(pdVar14 + 0x4c) = uVar26" (pointer_expression "*(uint *)(pdVar14 + 0x4c)" * (cast_expression "(uint *)(pdVar14 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x4c)" ( (binary_expression "pdVar14 + 0x4c" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)((int)pdVar14 + 4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 4) = uVar26;\n    }" if (parenthesized_expression "(*(uint *)((int)pdVar14 + 4) != 0)" ( (binary_expression "*(uint *)((int)pdVar14 + 4) != 0" (pointer_expression "*(uint *)((int)pdVar14 + 4)" * (cast_expression "(uint *)((int)pdVar14 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar14 + 4)" ( (binary_expression "(int)pdVar14 + 4" (cast_expression "(int)pdVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 4) = uVar26;\n    }" { (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" * (cast_expression "(code **)(pcStack_5d0 + -0x7824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x7824)" ( (binary_expression "pcStack_5d0 + -0x7824" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)((int)pdVar14 + 4) = uVar26;" (assignment_expression "*(uint *)((int)pdVar14 + 4) = uVar26" (pointer_expression "*(uint *)((int)pdVar14 + 4)" * (cast_expression "(uint *)((int)pdVar14 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar14 + 4)" ( (binary_expression "(int)pdVar14 + 4" (cast_expression "(int)pdVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)(pdVar14 + 0x35) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)(pdVar14 + 0x35) = uVar26;\n    }" if (parenthesized_expression "(*(uint *)(pdVar14 + 0x35) != 0)" ( (binary_expression "*(uint *)(pdVar14 + 0x35) != 0" (pointer_expression "*(uint *)(pdVar14 + 0x35)" * (cast_expression "(uint *)(pdVar14 + 0x35)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x35)" ( (binary_expression "pdVar14 + 0x35" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)(pdVar14 + 0x35) = uVar26;\n    }" { (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x794c))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x794c))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x794c))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x794c)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x794c)" * (cast_expression "(code **)(pcStack_5d0 + -0x794c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x794c)" ( (binary_expression "pcStack_5d0 + -0x794c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)(pdVar14 + 0x35) = uVar26;" (assignment_expression "*(uint *)(pdVar14 + 0x35) = uVar26" (pointer_expression "*(uint *)(pdVar14 + 0x35)" * (cast_expression "(uint *)(pdVar14 + 0x35)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x35)" ( (binary_expression "pdVar14 + 0x35" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)((int)pdVar14 + 0x1ac) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x1ac) = uVar26;\n    }" if (parenthesized_expression "(*(uint *)((int)pdVar14 + 0x1ac) != 0)" ( (binary_expression "*(uint *)((int)pdVar14 + 0x1ac) != 0" (pointer_expression "*(uint *)((int)pdVar14 + 0x1ac)" * (cast_expression "(uint *)((int)pdVar14 + 0x1ac)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar14 + 0x1ac)" ( (binary_expression "(int)pdVar14 + 0x1ac" (cast_expression "(int)pdVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x1ac) = uVar26;\n    }" { (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x794c))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x794c))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x794c))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x794c)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x794c)" * (cast_expression "(code **)(pcStack_5d0 + -0x794c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x794c)" ( (binary_expression "pcStack_5d0 + -0x794c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)((int)pdVar14 + 0x1ac) = uVar26;" (assignment_expression "*(uint *)((int)pdVar14 + 0x1ac) = uVar26" (pointer_expression "*(uint *)((int)pdVar14 + 0x1ac)" * (cast_expression "(uint *)((int)pdVar14 + 0x1ac)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar14 + 0x1ac)" ( (binary_expression "(int)pdVar14 + 0x1ac" (cast_expression "(int)pdVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)((int)pdVar14 + 0x264) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x264) = uVar26;\n    }" if (parenthesized_expression "(*(uint *)((int)pdVar14 + 0x264) != 0)" ( (binary_expression "*(uint *)((int)pdVar14 + 0x264) != 0" (pointer_expression "*(uint *)((int)pdVar14 + 0x264)" * (cast_expression "(uint *)((int)pdVar14 + 0x264)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar14 + 0x264)" ( (binary_expression "(int)pdVar14 + 0x264" (cast_expression "(int)pdVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x264) = uVar26;\n    }" { (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" * (cast_expression "(code **)(pcStack_5d0 + -0x7824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x7824)" ( (binary_expression "pcStack_5d0 + -0x7824" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)((int)pdVar14 + 0x264) = uVar26;" (assignment_expression "*(uint *)((int)pdVar14 + 0x264) = uVar26" (pointer_expression "*(uint *)((int)pdVar14 + 0x264)" * (cast_expression "(uint *)((int)pdVar14 + 0x264)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar14 + 0x264)" ( (binary_expression "(int)pdVar14 + 0x264" (cast_expression "(int)pdVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)(pdVar14 + 0x4d) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4d) = uVar26;\n    }" if (parenthesized_expression "(*(uint *)(pdVar14 + 0x4d) != 0)" ( (binary_expression "*(uint *)(pdVar14 + 0x4d) != 0" (pointer_expression "*(uint *)(pdVar14 + 0x4d)" * (cast_expression "(uint *)(pdVar14 + 0x4d)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x4d)" ( (binary_expression "pdVar14 + 0x4d" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4d) = uVar26;\n    }" { (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" * (cast_expression "(code **)(pcStack_5d0 + -0x7824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x7824)" ( (binary_expression "pcStack_5d0 + -0x7824" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)(pdVar14 + 0x4d) = uVar26;" (assignment_expression "*(uint *)(pdVar14 + 0x4d) = uVar26" (pointer_expression "*(uint *)(pdVar14 + 0x4d)" * (cast_expression "(uint *)(pdVar14 + 0x4d)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x4d)" ( (binary_expression "pdVar14 + 0x4d" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)((int)pdVar14 + 0x26c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x26c) = uVar26;\n    }" if (parenthesized_expression "(*(uint *)((int)pdVar14 + 0x26c) != 0)" ( (binary_expression "*(uint *)((int)pdVar14 + 0x26c) != 0" (pointer_expression "*(uint *)((int)pdVar14 + 0x26c)" * (cast_expression "(uint *)((int)pdVar14 + 0x26c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar14 + 0x26c)" ( (binary_expression "(int)pdVar14 + 0x26c" (cast_expression "(int)pdVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x26c) = uVar26;\n    }" { (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" * (cast_expression "(code **)(pcStack_5d0 + -0x7824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x7824)" ( (binary_expression "pcStack_5d0 + -0x7824" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)((int)pdVar14 + 0x26c) = uVar26;" (assignment_expression "*(uint *)((int)pdVar14 + 0x26c) = uVar26" (pointer_expression "*(uint *)((int)pdVar14 + 0x26c)" * (cast_expression "(uint *)((int)pdVar14 + 0x26c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar14 + 0x26c)" ( (binary_expression "(int)pdVar14 + 0x26c" (cast_expression "(int)pdVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)(pdVar14 + 0x50) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x50) = uVar26;\n    }" if (parenthesized_expression "(*(uint *)(pdVar14 + 0x50) != 0)" ( (binary_expression "*(uint *)(pdVar14 + 0x50) != 0" (pointer_expression "*(uint *)(pdVar14 + 0x50)" * (cast_expression "(uint *)(pdVar14 + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x50)" ( (binary_expression "pdVar14 + 0x50" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x50) = uVar26;\n    }" { (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" * (cast_expression "(code **)(pcStack_5d0 + -0x7824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x7824)" ( (binary_expression "pcStack_5d0 + -0x7824" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)(pdVar14 + 0x50) = uVar26;" (assignment_expression "*(uint *)(pdVar14 + 0x50) = uVar26" (pointer_expression "*(uint *)(pdVar14 + 0x50)" * (cast_expression "(uint *)(pdVar14 + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x50)" ( (binary_expression "pdVar14 + 0x50" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)(pdVar14 + 0x52) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x52) = uVar26;\n    }" if (parenthesized_expression "(*(uint *)(pdVar14 + 0x52) != 0)" ( (binary_expression "*(uint *)(pdVar14 + 0x52) != 0" (pointer_expression "*(uint *)(pdVar14 + 0x52)" * (cast_expression "(uint *)(pdVar14 + 0x52)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x52)" ( (binary_expression "pdVar14 + 0x52" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x52) = uVar26;\n    }" { (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" * (cast_expression "(code **)(pcStack_5d0 + -0x7824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x7824)" ( (binary_expression "pcStack_5d0 + -0x7824" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)(pdVar14 + 0x52) = uVar26;" (assignment_expression "*(uint *)(pdVar14 + 0x52) = uVar26" (pointer_expression "*(uint *)(pdVar14 + 0x52)" * (cast_expression "(uint *)(pdVar14 + 0x52)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x52)" ( (binary_expression "pdVar14 + 0x52" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)((int)pdVar14 + 0x29c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)((int)pdVar14 + 0x29c) = uVar26;\n    }" if (parenthesized_expression "(*(uint *)((int)pdVar14 + 0x29c) != 0)" ( (binary_expression "*(uint *)((int)pdVar14 + 0x29c) != 0" (pointer_expression "*(uint *)((int)pdVar14 + 0x29c)" * (cast_expression "(uint *)((int)pdVar14 + 0x29c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar14 + 0x29c)" ( (binary_expression "(int)pdVar14 + 0x29c" (cast_expression "(int)pdVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)((int)pdVar14 + 0x29c) = uVar26;\n    }" { (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x78d8))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x78d8))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x78d8)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x78d8)" * (cast_expression "(code **)(pcStack_5d0 + -0x78d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x78d8)" ( (binary_expression "pcStack_5d0 + -0x78d8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)((int)pdVar14 + 0x29c) = uVar26;" (assignment_expression "*(uint *)((int)pdVar14 + 0x29c) = uVar26" (pointer_expression "*(uint *)((int)pdVar14 + 0x29c)" * (cast_expression "(uint *)((int)pdVar14 + 0x29c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar14 + 0x29c)" ( (binary_expression "(int)pdVar14 + 0x29c" (cast_expression "(int)pdVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)(pdVar14 + 0x54) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x54) = uVar26;\n    }" if (parenthesized_expression "(*(uint *)(pdVar14 + 0x54) != 0)" ( (binary_expression "*(uint *)(pdVar14 + 0x54) != 0" (pointer_expression "*(uint *)(pdVar14 + 0x54)" * (cast_expression "(uint *)(pdVar14 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x54)" ( (binary_expression "pdVar14 + 0x54" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x54) = uVar26;\n    }" { (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x78d8))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x78d8))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x78d8)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x78d8)" * (cast_expression "(code **)(pcStack_5d0 + -0x78d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x78d8)" ( (binary_expression "pcStack_5d0 + -0x78d8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)(pdVar14 + 0x54) = uVar26;" (assignment_expression "*(uint *)(pdVar14 + 0x54) = uVar26" (pointer_expression "*(uint *)(pdVar14 + 0x54)" * (cast_expression "(uint *)(pdVar14 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x54)" ( (binary_expression "pdVar14 + 0x54" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)(pdVar14 + 0x3e) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x3e) = uVar26;\n    }" if (parenthesized_expression "(*(uint *)(pdVar14 + 0x3e) != 0)" ( (binary_expression "*(uint *)(pdVar14 + 0x3e) != 0" (pointer_expression "*(uint *)(pdVar14 + 0x3e)" * (cast_expression "(uint *)(pdVar14 + 0x3e)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x3e)" ( (binary_expression "pdVar14 + 0x3e" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x3e) = uVar26;\n    }" { (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x78d8))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x78d8))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x78d8)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x78d8)" * (cast_expression "(code **)(pcStack_5d0 + -0x78d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x78d8)" ( (binary_expression "pcStack_5d0 + -0x78d8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)(pdVar14 + 0x3e) = uVar26;" (assignment_expression "*(uint *)(pdVar14 + 0x3e) = uVar26" (pointer_expression "*(uint *)(pdVar14 + 0x3e)" * (cast_expression "(uint *)(pdVar14 + 0x3e)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x3e)" ( (binary_expression "pdVar14 + 0x3e" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)((int)pdVar14 + 0x2a4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x2a4) = uVar26;\n    }" if (parenthesized_expression "(*(uint *)((int)pdVar14 + 0x2a4) != 0)" ( (binary_expression "*(uint *)((int)pdVar14 + 0x2a4) != 0" (pointer_expression "*(uint *)((int)pdVar14 + 0x2a4)" * (cast_expression "(uint *)((int)pdVar14 + 0x2a4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar14 + 0x2a4)" ( (binary_expression "(int)pdVar14 + 0x2a4" (cast_expression "(int)pdVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x2a4) = uVar26;\n    }" { (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" * (cast_expression "(code **)(pcStack_5d0 + -0x7824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x7824)" ( (binary_expression "pcStack_5d0 + -0x7824" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)((int)pdVar14 + 0x2a4) = uVar26;" (assignment_expression "*(uint *)((int)pdVar14 + 0x2a4) = uVar26" (pointer_expression "*(uint *)((int)pdVar14 + 0x2a4)" * (cast_expression "(uint *)((int)pdVar14 + 0x2a4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar14 + 0x2a4)" ( (binary_expression "(int)pdVar14 + 0x2a4" (cast_expression "(int)pdVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)((int)pdVar14 + 0x3ac) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3ac) = uVar26;\n    }" if (parenthesized_expression "(*(uint *)((int)pdVar14 + 0x3ac) != 0)" ( (binary_expression "*(uint *)((int)pdVar14 + 0x3ac) != 0" (pointer_expression "*(uint *)((int)pdVar14 + 0x3ac)" * (cast_expression "(uint *)((int)pdVar14 + 0x3ac)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar14 + 0x3ac)" ( (binary_expression "(int)pdVar14 + 0x3ac" (cast_expression "(int)pdVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3ac) = uVar26;\n    }" { (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x794c))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x794c))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x794c))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x794c)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x794c)" * (cast_expression "(code **)(pcStack_5d0 + -0x794c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x794c)" ( (binary_expression "pcStack_5d0 + -0x794c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)((int)pdVar14 + 0x3ac) = uVar26;" (assignment_expression "*(uint *)((int)pdVar14 + 0x3ac) = uVar26" (pointer_expression "*(uint *)((int)pdVar14 + 0x3ac)" * (cast_expression "(uint *)((int)pdVar14 + 0x3ac)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar14 + 0x3ac)" ( (binary_expression "(int)pdVar14 + 0x3ac" (cast_expression "(int)pdVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)((int)pdVar14 + 0x3b4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3b4) = uVar26;\n    }" if (parenthesized_expression "(*(uint *)((int)pdVar14 + 0x3b4) != 0)" ( (binary_expression "*(uint *)((int)pdVar14 + 0x3b4) != 0" (pointer_expression "*(uint *)((int)pdVar14 + 0x3b4)" * (cast_expression "(uint *)((int)pdVar14 + 0x3b4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar14 + 0x3b4)" ( (binary_expression "(int)pdVar14 + 0x3b4" (cast_expression "(int)pdVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3b4) = uVar26;\n    }" { (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x794c))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x794c))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x794c))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x794c)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x794c)" * (cast_expression "(code **)(pcStack_5d0 + -0x794c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x794c)" ( (binary_expression "pcStack_5d0 + -0x794c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)((int)pdVar14 + 0x3b4) = uVar26;" (assignment_expression "*(uint *)((int)pdVar14 + 0x3b4) = uVar26" (pointer_expression "*(uint *)((int)pdVar14 + 0x3b4)" * (cast_expression "(uint *)((int)pdVar14 + 0x3b4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar14 + 0x3b4)" ( (binary_expression "(int)pdVar14 + 0x3b4" (cast_expression "(int)pdVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) })) (expression_statement "*(uint *)(pdVar14 + 0x72) = 0x54535254;" (assignment_expression "*(uint *)(pdVar14 + 0x72) = 0x54535254" (pointer_expression "*(uint *)(pdVar14 + 0x72)" * (cast_expression "(uint *)(pdVar14 + 0x72)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x72)" ( (binary_expression "pdVar14 + 0x72" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar3 = (**(code **)(pcStack_5d0 + -0x78d8))(pdVar14);" (assignment_expression "iVar3 = (**(code **)(pcStack_5d0 + -0x78d8))(pdVar14)" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x78d8))(pdVar14)" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x78d8))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x78d8)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x78d8)" * (cast_expression "(code **)(pcStack_5d0 + -0x78d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x78d8)" ( (binary_expression "pcStack_5d0 + -0x78d8" identifier + number_literal) ))))) )) (argument_list "(pdVar14)" ( identifier )))) ;) (return_statement "return iVar3;" return identifier ;) })) (expression_statement "pdVar5 = (double *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x7914);" (assignment_expression "pdVar5 = (double *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x7914)" identifier = (cast_expression "(double *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x7914)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5d0 + -0x7fcc) + 0x7914)" ( (binary_expression "*(int *)(pcStack_5d0 + -0x7fcc) + 0x7914" (pointer_expression "*(int *)(pcStack_5d0 + -0x7fcc)" * (cast_expression "(int *)(pcStack_5d0 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5d0 + -0x7fcc)" ( (binary_expression "pcStack_5d0 + -0x7fcc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pdVar16 = (double *)&DAT_0000039d;" (assignment_expression "pdVar16 = (double *)&DAT_0000039d" identifier = (cast_expression "(double *)&DAT_0000039d" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000039d" & identifier))) ;) (expression_statement "puVar23 = (uint *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x69c0);" (assignment_expression "puVar23 = (uint *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x69c0)" identifier = (cast_expression "(uint *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x69c0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5d0 + -0x7fcc) + 0x69c0)" ( (binary_expression "*(int *)(pcStack_5d0 + -0x7fcc) + 0x69c0" (pointer_expression "*(int *)(pcStack_5d0 + -0x7fcc)" * (cast_expression "(int *)(pcStack_5d0 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5d0 + -0x7fcc)" ( (binary_expression "pcStack_5d0 + -0x7fcc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "piVar2 = (int *)(*(int *)(pcStack_5d0 + -0x7fd0) + 0x4128);" (assignment_expression "piVar2 = (int *)(*(int *)(pcStack_5d0 + -0x7fd0) + 0x4128)" identifier = (cast_expression "(int *)(*(int *)(pcStack_5d0 + -0x7fd0) + 0x4128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5d0 + -0x7fd0) + 0x4128)" ( (binary_expression "*(int *)(pcStack_5d0 + -0x7fd0) + 0x4128" (pointer_expression "*(int *)(pcStack_5d0 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5d0 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5d0 + -0x7fd0)" ( (binary_expression "pcStack_5d0 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pcVar37 = *(code **)(pcStack_5d0 + -0x7290);" (assignment_expression "pcVar37 = *(code **)(pcStack_5d0 + -0x7290)" identifier = (pointer_expression "*(code **)(pcStack_5d0 + -0x7290)" * (cast_expression "(code **)(pcStack_5d0 + -0x7290)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x7290)" ( (binary_expression "pcStack_5d0 + -0x7290" identifier + number_literal) ))))) ;) (expression_statement "pcVar38 = DrawAffineImage;" (assignment_expression "pcVar38 = DrawAffineImage" identifier = identifier) ;) (expression_statement "(*pcVar37)();" (call_expression "(*pcVar37)()" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_758 = pcVar37 + 0x35a61c;" (assignment_expression "pcStack_758 = pcVar37 + 0x35a61c" identifier = (binary_expression "pcVar37 + 0x35a61c" identifier + number_literal)) ;) (expression_statement "uStack_638._4_4_ = **(int **)(pcVar37 + 0x352fb4);" (assignment_expression "uStack_638._4_4_ = **(int **)(pcVar37 + 0x352fb4)" (field_expression "uStack_638._4_4_" identifier . field_identifier) = (pointer_expression "**(int **)(pcVar37 + 0x352fb4)" * (pointer_expression "*(int **)(pcVar37 + 0x352fb4)" * (cast_expression "(int **)(pcVar37 + 0x352fb4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x352fb4)" ( (binary_expression "pcVar37 + 0x352fb4" identifier + number_literal) )))))) ;) (expression_statement "pdStack_62c = pdVar14;" (assignment_expression "pdStack_62c = pdVar14" identifier = identifier) ;) (expression_statement "piStack_628 = piVar48;" (assignment_expression "piStack_628 = piVar48" identifier = identifier) ;) (expression_statement "puStack_624 = puVar32;" (assignment_expression "puStack_624 = puVar32" identifier = identifier) ;) (expression_statement "pdStack_620 = pdVar29;" (assignment_expression "pdStack_620 = pdVar29" identifier = identifier) ;) (expression_statement "iStack_61c = iVar28;" (assignment_expression "iStack_61c = iVar28" identifier = identifier) ;) (expression_statement "puStack_618 = puVar35;" (assignment_expression "puStack_618 = puVar35" identifier = identifier) ;) (expression_statement "pdStack_614 = unaff_s6;" (assignment_expression "pdStack_614 = unaff_s6" identifier = identifier) ;) (expression_statement "uStack_610 = unaff_s7;" (assignment_expression "uStack_610 = unaff_s7" identifier = identifier) ;) (expression_statement "pcStack_60c = pcVar38;" (assignment_expression "pcStack_60c = pcVar38" identifier = identifier) ;) (expression_statement "dStack_608 = in_f20_21;" (assignment_expression "dStack_608 = in_f20_21" identifier = identifier) ;) (expression_statement "dStack_600 = in_f22_23;" (assignment_expression "dStack_600 = in_f22_23" identifier = identifier) ;) (expression_statement "dStack_5f8 = in_f24_25;" (assignment_expression "dStack_5f8 = in_f24_25" identifier = identifier) ;) (expression_statement "dStack_5f0 = in_f26_27;" (assignment_expression "dStack_5f0 = in_f26_27" identifier = identifier) ;) (if_statement "if (piVar2 == (int *)0x0) {\n    (**(code **)(pcVar37 + 0x35338c))\n              (*(int *)(pcVar37 + 0x35264c) + 0x3da0,*(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c0,\n               *(int *)(pcVar37 + 0x352650) + 0x78f4);\n    pdVar16 = pdVar14;\n    piVar2 = piVar48;\n    puVar23 = puVar32;\n    pdVar5 = pdVar29;\nLAB_000a7434:\n    piVar48 = (int *)(**(code **)(pcVar37 + 0x35338c))\n                               (*(int *)(pcVar37 + 0x352650) + -0x784,\n                                *(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar37 + 0x352650) + 0x78f4);\nLAB_000a745c:\n    iStack_760 = *(int *)(pcVar37 + 0x352654) + -0x2f6c;\n    piStack_75c = piVar48;\n    (**(code **)(pcVar37 + 0x352f64))\n              (0x8000,*(int *)(pcVar37 + 0x352650) + 0x69c0,*(int *)(pcVar37 + 0x352650) + 0x78e4,\n               0x4c3);\n  }\n  else {\n    if (piVar2[0xcdb] != -0x54535255) goto LAB_000a7434;\n    piVar48 = piVar2 + 0xd0;\n    if (piVar2[0xcd4] != 0) goto LAB_000a745c;\n  }" if (parenthesized_expression "(piVar2 == (int *)0x0)" ( (binary_expression "piVar2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(pcVar37 + 0x35338c))\n              (*(int *)(pcVar37 + 0x35264c) + 0x3da0,*(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c0,\n               *(int *)(pcVar37 + 0x352650) + 0x78f4);\n    pdVar16 = pdVar14;\n    piVar2 = piVar48;\n    puVar23 = puVar32;\n    pdVar5 = pdVar29;\nLAB_000a7434:\n    piVar48 = (int *)(**(code **)(pcVar37 + 0x35338c))\n                               (*(int *)(pcVar37 + 0x352650) + -0x784,\n                                *(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar37 + 0x352650) + 0x78f4);\nLAB_000a745c:\n    iStack_760 = *(int *)(pcVar37 + 0x352654) + -0x2f6c;\n    piStack_75c = piVar48;\n    (**(code **)(pcVar37 + 0x352f64))\n              (0x8000,*(int *)(pcVar37 + 0x352650) + 0x69c0,*(int *)(pcVar37 + 0x352650) + 0x78e4,\n               0x4c3);\n  }" { (expression_statement "(**(code **)(pcVar37 + 0x35338c))\n              (*(int *)(pcVar37 + 0x35264c) + 0x3da0,*(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c0,\n               *(int *)(pcVar37 + 0x352650) + 0x78f4);" (call_expression "(**(code **)(pcVar37 + 0x35338c))\n              (*(int *)(pcVar37 + 0x35264c) + 0x3da0,*(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c0,\n               *(int *)(pcVar37 + 0x352650) + 0x78f4)" (parenthesized_expression "(**(code **)(pcVar37 + 0x35338c))" ( (pointer_expression "**(code **)(pcVar37 + 0x35338c)" * (pointer_expression "*(code **)(pcVar37 + 0x35338c)" * (cast_expression "(code **)(pcVar37 + 0x35338c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x35338c)" ( (binary_expression "pcVar37 + 0x35338c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar37 + 0x35264c) + 0x3da0,*(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c0,\n               *(int *)(pcVar37 + 0x352650) + 0x78f4)" ( (binary_expression "*(int *)(pcVar37 + 0x35264c) + 0x3da0" (pointer_expression "*(int *)(pcVar37 + 0x35264c)" * (cast_expression "(int *)(pcVar37 + 0x35264c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35264c)" ( (binary_expression "pcVar37 + 0x35264c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar37 + 0x352650) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + 0x352650)" * (cast_expression "(int *)(pcVar37 + 0x352650)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x352650)" ( (binary_expression "pcVar37 + 0x352650" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar37 + 0x352650) + 0x78f4" (pointer_expression "*(int *)(pcVar37 + 0x352650)" * (cast_expression "(int *)(pcVar37 + 0x352650)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x352650)" ( (binary_expression "pcVar37 + 0x352650" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pdVar16 = pdVar14;" (assignment_expression "pdVar16 = pdVar14" identifier = identifier) ;) (expression_statement "piVar2 = piVar48;" (assignment_expression "piVar2 = piVar48" identifier = identifier) ;) (expression_statement "puVar23 = puVar32;" (assignment_expression "puVar23 = puVar32" identifier = identifier) ;) (expression_statement "pdVar5 = pdVar29;" (assignment_expression "pdVar5 = pdVar29" identifier = identifier) ;) (labeled_statement "LAB_000a7434:\n    piVar48 = (int *)(**(code **)(pcVar37 + 0x35338c))\n                               (*(int *)(pcVar37 + 0x352650) + -0x784,\n                                *(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar37 + 0x352650) + 0x78f4);" statement_identifier : (expression_statement "piVar48 = (int *)(**(code **)(pcVar37 + 0x35338c))\n                               (*(int *)(pcVar37 + 0x352650) + -0x784,\n                                *(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar37 + 0x352650) + 0x78f4);" (assignment_expression "piVar48 = (int *)(**(code **)(pcVar37 + 0x35338c))\n                               (*(int *)(pcVar37 + 0x352650) + -0x784,\n                                *(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar37 + 0x352650) + 0x78f4)" identifier = (cast_expression "(int *)(**(code **)(pcVar37 + 0x35338c))\n                               (*(int *)(pcVar37 + 0x352650) + -0x784,\n                                *(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar37 + 0x352650) + 0x78f4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar37 + 0x35338c))\n                               (*(int *)(pcVar37 + 0x352650) + -0x784,\n                                *(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar37 + 0x352650) + 0x78f4)" (parenthesized_expression "(**(code **)(pcVar37 + 0x35338c))" ( (pointer_expression "**(code **)(pcVar37 + 0x35338c)" * (pointer_expression "*(code **)(pcVar37 + 0x35338c)" * (cast_expression "(code **)(pcVar37 + 0x35338c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x35338c)" ( (binary_expression "pcVar37 + 0x35338c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar37 + 0x352650) + -0x784,\n                                *(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar37 + 0x352650) + 0x78f4)" ( (binary_expression "*(int *)(pcVar37 + 0x352650) + -0x784" (pointer_expression "*(int *)(pcVar37 + 0x352650)" * (cast_expression "(int *)(pcVar37 + 0x352650)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x352650)" ( (binary_expression "pcVar37 + 0x352650" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar37 + 0x352650) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + 0x352650)" * (cast_expression "(int *)(pcVar37 + 0x352650)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x352650)" ( (binary_expression "pcVar37 + 0x352650" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar37 + 0x352650) + 0x78f4" (pointer_expression "*(int *)(pcVar37 + 0x352650)" * (cast_expression "(int *)(pcVar37 + 0x352650)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x352650)" ( (binary_expression "pcVar37 + 0x352650" identifier + number_literal) )))) + number_literal) ))))) ;)) (labeled_statement "LAB_000a745c:\n    iStack_760 = *(int *)(pcVar37 + 0x352654) + -0x2f6c;" statement_identifier : (expression_statement "iStack_760 = *(int *)(pcVar37 + 0x352654) + -0x2f6c;" (assignment_expression "iStack_760 = *(int *)(pcVar37 + 0x352654) + -0x2f6c" identifier = (binary_expression "*(int *)(pcVar37 + 0x352654) + -0x2f6c" (pointer_expression "*(int *)(pcVar37 + 0x352654)" * (cast_expression "(int *)(pcVar37 + 0x352654)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x352654)" ( (binary_expression "pcVar37 + 0x352654" identifier + number_literal) )))) + number_literal)) ;)) (expression_statement "piStack_75c = piVar48;" (assignment_expression "piStack_75c = piVar48" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar37 + 0x352f64))\n              (0x8000,*(int *)(pcVar37 + 0x352650) + 0x69c0,*(int *)(pcVar37 + 0x352650) + 0x78e4,\n               0x4c3);" (call_expression "(**(code **)(pcVar37 + 0x352f64))\n              (0x8000,*(int *)(pcVar37 + 0x352650) + 0x69c0,*(int *)(pcVar37 + 0x352650) + 0x78e4,\n               0x4c3)" (parenthesized_expression "(**(code **)(pcVar37 + 0x352f64))" ( (pointer_expression "**(code **)(pcVar37 + 0x352f64)" * (pointer_expression "*(code **)(pcVar37 + 0x352f64)" * (cast_expression "(code **)(pcVar37 + 0x352f64)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x352f64)" ( (binary_expression "pcVar37 + 0x352f64" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(pcVar37 + 0x352650) + 0x69c0,*(int *)(pcVar37 + 0x352650) + 0x78e4,\n               0x4c3)" ( number_literal , (binary_expression "*(int *)(pcVar37 + 0x352650) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + 0x352650)" * (cast_expression "(int *)(pcVar37 + 0x352650)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x352650)" ( (binary_expression "pcVar37 + 0x352650" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar37 + 0x352650) + 0x78e4" (pointer_expression "*(int *)(pcVar37 + 0x352650)" * (cast_expression "(int *)(pcVar37 + 0x352650)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x352650)" ( (binary_expression "pcVar37 + 0x352650" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) }) (else_clause "else {\n    if (piVar2[0xcdb] != -0x54535255) goto LAB_000a7434;\n    piVar48 = piVar2 + 0xd0;\n    if (piVar2[0xcd4] != 0) goto LAB_000a745c;\n  }" else (compound_statement "{\n    if (piVar2[0xcdb] != -0x54535255) goto LAB_000a7434;\n    piVar48 = piVar2 + 0xd0;\n    if (piVar2[0xcd4] != 0) goto LAB_000a745c;\n  }" { (if_statement "if (piVar2[0xcdb] != -0x54535255) goto LAB_000a7434;" if (parenthesized_expression "(piVar2[0xcdb] != -0x54535255)" ( (binary_expression "piVar2[0xcdb] != -0x54535255" (subscript_expression "piVar2[0xcdb]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_000a7434;" goto statement_identifier ;)) (expression_statement "piVar48 = piVar2 + 0xd0;" (assignment_expression "piVar48 = piVar2 + 0xd0" identifier = (binary_expression "piVar2 + 0xd0" identifier + number_literal)) ;) (if_statement "if (piVar2[0xcd4] != 0) goto LAB_000a745c;" if (parenthesized_expression "(piVar2[0xcd4] != 0)" ( (binary_expression "piVar2[0xcd4] != 0" (subscript_expression "piVar2[0xcd4]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_000a745c;" goto statement_identifier ;)) }))) (expression_statement "pcVar37 = pcStack_758;" (assignment_expression "pcVar37 = pcStack_758" identifier = identifier) ;) (if_statement "if (puVar23 == (uint *)0x0) {\n    (**(code **)(pcStack_758 + -0x7290))\n              (*(int *)(pcStack_758 + -0x7fcc) + 0x6a20,*(int *)(pcStack_758 + -0x7fcc) + 0x69c0,\n               0x4c4,*(int *)(pcStack_758 + -0x7fcc) + 0x78f4);\nLAB_000a74c4:\n    (**(code **)(pcVar37 + -0x7290))\n              (*(int *)(pcVar37 + -0x7fcc) + 0x6a40,*(int *)(pcVar37 + -0x7fcc) + 0x69c0);\nLAB_000a74e8:\n    dStack_668 = (double)(**(code **)(pcVar37 + -0x7290))\n                                   (*(int *)(pcVar37 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar37 + -0x7fcc) + 0x69c0);\nLAB_000a750c:\n    dStack_668 = dStack_668 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);\n  }\n  else {\n    if (puVar23[0xcdb] != 0xabacadab) goto LAB_000a74c4;\n    if (pdVar16 == (double *)0x0) goto LAB_000a74e8;\n    uStack_678._4_4_ = 0;\n    uStack_678._0_4_ = 0;\n    uStack_66c = 0;\n    uStack_670 = 0;\n    dStack_668 = (double)(int)puVar23[6];\n    if ((int)puVar23[6] < 0) goto LAB_000a750c;\n  }" if (parenthesized_expression "(puVar23 == (uint *)0x0)" ( (binary_expression "puVar23 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(pcStack_758 + -0x7290))\n              (*(int *)(pcStack_758 + -0x7fcc) + 0x6a20,*(int *)(pcStack_758 + -0x7fcc) + 0x69c0,\n               0x4c4,*(int *)(pcStack_758 + -0x7fcc) + 0x78f4);\nLAB_000a74c4:\n    (**(code **)(pcVar37 + -0x7290))\n              (*(int *)(pcVar37 + -0x7fcc) + 0x6a40,*(int *)(pcVar37 + -0x7fcc) + 0x69c0);\nLAB_000a74e8:\n    dStack_668 = (double)(**(code **)(pcVar37 + -0x7290))\n                                   (*(int *)(pcVar37 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar37 + -0x7fcc) + 0x69c0);\nLAB_000a750c:\n    dStack_668 = dStack_668 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);\n  }" { (expression_statement "(**(code **)(pcStack_758 + -0x7290))\n              (*(int *)(pcStack_758 + -0x7fcc) + 0x6a20,*(int *)(pcStack_758 + -0x7fcc) + 0x69c0,\n               0x4c4,*(int *)(pcStack_758 + -0x7fcc) + 0x78f4);" (call_expression "(**(code **)(pcStack_758 + -0x7290))\n              (*(int *)(pcStack_758 + -0x7fcc) + 0x6a20,*(int *)(pcStack_758 + -0x7fcc) + 0x69c0,\n               0x4c4,*(int *)(pcStack_758 + -0x7fcc) + 0x78f4)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x7290))" ( (pointer_expression "**(code **)(pcStack_758 + -0x7290)" * (pointer_expression "*(code **)(pcStack_758 + -0x7290)" * (cast_expression "(code **)(pcStack_758 + -0x7290)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x7290)" ( (binary_expression "pcStack_758 + -0x7290" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_758 + -0x7fcc) + 0x6a20,*(int *)(pcStack_758 + -0x7fcc) + 0x69c0,\n               0x4c4,*(int *)(pcStack_758 + -0x7fcc) + 0x78f4)" ( (binary_expression "*(int *)(pcStack_758 + -0x7fcc) + 0x6a20" (pointer_expression "*(int *)(pcStack_758 + -0x7fcc)" * (cast_expression "(int *)(pcStack_758 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fcc)" ( (binary_expression "pcStack_758 + -0x7fcc" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcStack_758 + -0x7fcc) + 0x69c0" (pointer_expression "*(int *)(pcStack_758 + -0x7fcc)" * (cast_expression "(int *)(pcStack_758 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fcc)" ( (binary_expression "pcStack_758 + -0x7fcc" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcStack_758 + -0x7fcc) + 0x78f4" (pointer_expression "*(int *)(pcStack_758 + -0x7fcc)" * (cast_expression "(int *)(pcStack_758 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fcc)" ( (binary_expression "pcStack_758 + -0x7fcc" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_000a74c4:\n    (**(code **)(pcVar37 + -0x7290))\n              (*(int *)(pcVar37 + -0x7fcc) + 0x6a40,*(int *)(pcVar37 + -0x7fcc) + 0x69c0);" statement_identifier : (expression_statement "(**(code **)(pcVar37 + -0x7290))\n              (*(int *)(pcVar37 + -0x7fcc) + 0x6a40,*(int *)(pcVar37 + -0x7fcc) + 0x69c0);" (call_expression "(**(code **)(pcVar37 + -0x7290))\n              (*(int *)(pcVar37 + -0x7fcc) + 0x6a40,*(int *)(pcVar37 + -0x7fcc) + 0x69c0)" (parenthesized_expression "(**(code **)(pcVar37 + -0x7290))" ( (pointer_expression "**(code **)(pcVar37 + -0x7290)" * (pointer_expression "*(code **)(pcVar37 + -0x7290)" * (cast_expression "(code **)(pcVar37 + -0x7290)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + -0x7290)" ( (binary_expression "pcVar37 + -0x7290" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar37 + -0x7fcc) + 0x6a40,*(int *)(pcVar37 + -0x7fcc) + 0x69c0)" ( (binary_expression "*(int *)(pcVar37 + -0x7fcc) + 0x6a40" (pointer_expression "*(int *)(pcVar37 + -0x7fcc)" * (cast_expression "(int *)(pcVar37 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + -0x7fcc)" ( (binary_expression "pcVar37 + -0x7fcc" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar37 + -0x7fcc) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + -0x7fcc)" * (cast_expression "(int *)(pcVar37 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + -0x7fcc)" ( (binary_expression "pcVar37 + -0x7fcc" identifier + number_literal) )))) + number_literal) ))) ;)) (labeled_statement "LAB_000a74e8:\n    dStack_668 = (double)(**(code **)(pcVar37 + -0x7290))\n                                   (*(int *)(pcVar37 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar37 + -0x7fcc) + 0x69c0);" statement_identifier : (expression_statement "dStack_668 = (double)(**(code **)(pcVar37 + -0x7290))\n                                   (*(int *)(pcVar37 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar37 + -0x7fcc) + 0x69c0);" (assignment_expression "dStack_668 = (double)(**(code **)(pcVar37 + -0x7290))\n                                   (*(int *)(pcVar37 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar37 + -0x7fcc) + 0x69c0)" identifier = (cast_expression "(double)(**(code **)(pcVar37 + -0x7290))\n                                   (*(int *)(pcVar37 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar37 + -0x7fcc) + 0x69c0)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcVar37 + -0x7290))\n                                   (*(int *)(pcVar37 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar37 + -0x7fcc) + 0x69c0)" (parenthesized_expression "(**(code **)(pcVar37 + -0x7290))" ( (pointer_expression "**(code **)(pcVar37 + -0x7290)" * (pointer_expression "*(code **)(pcVar37 + -0x7290)" * (cast_expression "(code **)(pcVar37 + -0x7290)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + -0x7290)" ( (binary_expression "pcVar37 + -0x7290" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar37 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar37 + -0x7fcc) + 0x69c0)" ( (binary_expression "*(int *)(pcVar37 + -0x7fcc) + 0x6a6c" (pointer_expression "*(int *)(pcVar37 + -0x7fcc)" * (cast_expression "(int *)(pcVar37 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + -0x7fcc)" ( (binary_expression "pcVar37 + -0x7fcc" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar37 + -0x7fcc) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + -0x7fcc)" * (cast_expression "(int *)(pcVar37 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + -0x7fcc)" ( (binary_expression "pcVar37 + -0x7fcc" identifier + number_literal) )))) + number_literal) ))))) ;)) (labeled_statement "LAB_000a750c:\n    dStack_668 = dStack_668 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);" statement_identifier : (expression_statement "dStack_668 = dStack_668 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);" (assignment_expression "dStack_668 = dStack_668 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8)" identifier = (binary_expression "dStack_668 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8)" identifier + (pointer_expression "*(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8)" * (cast_expression "(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar37 + -0x7fd0) + 0x43e8)" ( (binary_expression "*(int *)(pcVar37 + -0x7fd0) + 0x43e8" (pointer_expression "*(int *)(pcVar37 + -0x7fd0)" * (cast_expression "(int *)(pcVar37 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + -0x7fd0)" ( (binary_expression "pcVar37 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;)) }) (else_clause "else {\n    if (puVar23[0xcdb] != 0xabacadab) goto LAB_000a74c4;\n    if (pdVar16 == (double *)0x0) goto LAB_000a74e8;\n    uStack_678._4_4_ = 0;\n    uStack_678._0_4_ = 0;\n    uStack_66c = 0;\n    uStack_670 = 0;\n    dStack_668 = (double)(int)puVar23[6];\n    if ((int)puVar23[6] < 0) goto LAB_000a750c;\n  }" else (compound_statement "{\n    if (puVar23[0xcdb] != 0xabacadab) goto LAB_000a74c4;\n    if (pdVar16 == (double *)0x0) goto LAB_000a74e8;\n    uStack_678._4_4_ = 0;\n    uStack_678._0_4_ = 0;\n    uStack_66c = 0;\n    uStack_670 = 0;\n    dStack_668 = (double)(int)puVar23[6];\n    if ((int)puVar23[6] < 0) goto LAB_000a750c;\n  }" { (if_statement "if (puVar23[0xcdb] != 0xabacadab) goto LAB_000a74c4;" if (parenthesized_expression "(puVar23[0xcdb] != 0xabacadab)" ( (binary_expression "puVar23[0xcdb] != 0xabacadab" (subscript_expression "puVar23[0xcdb]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_000a74c4;" goto statement_identifier ;)) (if_statement "if (pdVar16 == (double *)0x0) goto LAB_000a74e8;" if (parenthesized_expression "(pdVar16 == (double *)0x0)" ( (binary_expression "pdVar16 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000a74e8;" goto statement_identifier ;)) (expression_statement "uStack_678._4_4_ = 0;" (assignment_expression "uStack_678._4_4_ = 0" (field_expression "uStack_678._4_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "uStack_678._0_4_ = 0;" (assignment_expression "uStack_678._0_4_ = 0" (field_expression "uStack_678._0_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "uStack_66c = 0;" (assignment_expression "uStack_66c = 0" identifier = number_literal) ;) (expression_statement "uStack_670 = 0;" (assignment_expression "uStack_670 = 0" identifier = number_literal) ;) (expression_statement "dStack_668 = (double)(int)puVar23[6];" (assignment_expression "dStack_668 = (double)(int)puVar23[6]" identifier = (cast_expression "(double)(int)puVar23[6]" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar23[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar23[6]" identifier [ number_literal ])))) ;) (if_statement "if ((int)puVar23[6] < 0) goto LAB_000a750c;" if (parenthesized_expression "((int)puVar23[6] < 0)" ( (binary_expression "(int)puVar23[6] < 0" (cast_expression "(int)puVar23[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar23[6]" identifier [ number_literal ])) < number_literal) )) (goto_statement "goto LAB_000a750c;" goto statement_identifier ;)) }))) (expression_statement "dStack_668 = dStack_668 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408);" (assignment_expression "dStack_668 = dStack_668 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408)" identifier = (binary_expression "dStack_668 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408)" identifier - (pointer_expression "*(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar37 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcVar37 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcVar37 + -0x7fd0)" * (cast_expression "(int *)(pcVar37 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + -0x7fd0)" ( (binary_expression "pcVar37 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "uStack_65c = 0;" (assignment_expression "uStack_65c = 0" identifier = number_literal) ;) (expression_statement "uStack_660 = 0;" (assignment_expression "uStack_660 = 0" identifier = number_literal) ;) (expression_statement "dStack_658 = dStack_668;" (assignment_expression "dStack_658 = dStack_668" identifier = identifier) ;) (expression_statement "dStack_650 = (double)(int)puVar23[7];" (assignment_expression "dStack_650 = (double)(int)puVar23[7]" identifier = (cast_expression "(double)(int)puVar23[7]" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar23[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar23[7]" identifier [ number_literal ])))) ;) (if_statement "if ((int)puVar23[7] < 0) {\n    dStack_650 = dStack_650 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);\n  }" if (parenthesized_expression "((int)puVar23[7] < 0)" ( (binary_expression "(int)puVar23[7] < 0" (cast_expression "(int)puVar23[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar23[7]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n    dStack_650 = dStack_650 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);\n  }" { (expression_statement "dStack_650 = dStack_650 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);" (assignment_expression "dStack_650 = dStack_650 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8)" identifier = (binary_expression "dStack_650 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8)" identifier + (pointer_expression "*(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8)" * (cast_expression "(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar37 + -0x7fd0) + 0x43e8)" ( (binary_expression "*(int *)(pcVar37 + -0x7fd0) + 0x43e8" (pointer_expression "*(int *)(pcVar37 + -0x7fd0)" * (cast_expression "(int *)(pcVar37 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + -0x7fd0)" ( (binary_expression "pcVar37 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dStack_650 = dStack_650 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408);" (assignment_expression "dStack_650 = dStack_650 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408)" identifier = (binary_expression "dStack_650 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408)" identifier - (pointer_expression "*(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar37 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcVar37 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcVar37 + -0x7fd0)" * (cast_expression "(int *)(pcVar37 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + -0x7fd0)" ( (binary_expression "pcVar37 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "uStack_644 = 0;" (assignment_expression "uStack_644 = 0" identifier = number_literal) ;) (expression_statement "uStack_648 = 0;" (assignment_expression "uStack_648 = 0" identifier = number_literal) ;) (expression_statement "dStack_640 = dStack_650;" (assignment_expression "dStack_640 = dStack_650" identifier = identifier) ;) (expression_statement "dVar45 = *pdVar16;" (assignment_expression "dVar45 = *pdVar16" identifier = (pointer_expression "*pdVar16" * identifier)) ;) (expression_statement "dVar44 = pdVar16[2];" (assignment_expression "dVar44 = pdVar16[2]" identifier = (subscript_expression "pdVar16[2]" identifier [ number_literal ])) ;) (expression_statement "dVar47 = pdVar16[4];" (assignment_expression "dVar47 = pdVar16[4]" identifier = (subscript_expression "pdVar16[4]" identifier [ number_literal ])) ;) (expression_statement "dVar40 = pdVar16[1];" (assignment_expression "dVar40 = pdVar16[1]" identifier = (subscript_expression "pdVar16[1]" identifier [ number_literal ])) ;) (expression_statement "dVar41 = pdVar16[3];" (assignment_expression "dVar41 = pdVar16[3]" identifier = (subscript_expression "pdVar16[3]" identifier [ number_literal ])) ;) (expression_statement "dVar39 = pdVar16[5];" (assignment_expression "dVar39 = pdVar16[5]" identifier = (subscript_expression "pdVar16[5]" identifier [ number_literal ])) ;) (expression_statement "pdVar14 = (double *)&uStack_678;" (assignment_expression "pdVar14 = (double *)&uStack_678" identifier = (cast_expression "(double *)&uStack_678" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&uStack_678" & identifier))) ;) (expression_statement "pdVar29 = pdVar14;" (assignment_expression "pdVar29 = pdVar14" identifier = identifier) ;) (do_statement "do {\n    dVar42 = *pdVar29;\n    *pdVar29 = dVar45 * dVar42 + dVar44 * pdVar29[1] + dVar47;\n    pdVar29[1] = dVar40 * dVar42 + dVar41 * pdVar29[1] + dVar39;\n    pdVar29 = pdVar29 + 2;\n  } while (pdVar29 != (double *)&uStack_638);" do (compound_statement "{\n    dVar42 = *pdVar29;\n    *pdVar29 = dVar45 * dVar42 + dVar44 * pdVar29[1] + dVar47;\n    pdVar29[1] = dVar40 * dVar42 + dVar41 * pdVar29[1] + dVar39;\n    pdVar29 = pdVar29 + 2;\n  }" { (expression_statement "dVar42 = *pdVar29;" (assignment_expression "dVar42 = *pdVar29" identifier = (pointer_expression "*pdVar29" * identifier)) ;) (expression_statement "*pdVar29 = dVar45 * dVar42 + dVar44 * pdVar29[1] + dVar47;" (assignment_expression "*pdVar29 = dVar45 * dVar42 + dVar44 * pdVar29[1] + dVar47" (pointer_expression "*pdVar29" * identifier) = (binary_expression "dVar45 * dVar42 + dVar44 * pdVar29[1] + dVar47" (binary_expression "dVar45 * dVar42 + dVar44 * pdVar29[1]" (binary_expression "dVar45 * dVar42" identifier * identifier) + (binary_expression "dVar44 * pdVar29[1]" identifier * (subscript_expression "pdVar29[1]" identifier [ number_literal ]))) + identifier)) ;) (expression_statement "pdVar29[1] = dVar40 * dVar42 + dVar41 * pdVar29[1] + dVar39;" (assignment_expression "pdVar29[1] = dVar40 * dVar42 + dVar41 * pdVar29[1] + dVar39" (subscript_expression "pdVar29[1]" identifier [ number_literal ]) = (binary_expression "dVar40 * dVar42 + dVar41 * pdVar29[1] + dVar39" (binary_expression "dVar40 * dVar42 + dVar41 * pdVar29[1]" (binary_expression "dVar40 * dVar42" identifier * identifier) + (binary_expression "dVar41 * pdVar29[1]" identifier * (subscript_expression "pdVar29[1]" identifier [ number_literal ]))) + identifier)) ;) (expression_statement "pdVar29 = pdVar29 + 2;" (assignment_expression "pdVar29 = pdVar29 + 2" identifier = (binary_expression "pdVar29 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(pdVar29 != (double *)&uStack_638)" ( (binary_expression "pdVar29 != (double *)&uStack_638" identifier != (cast_expression "(double *)&uStack_638" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&uStack_638" & identifier))) )) ;) (expression_statement "dVar39 = (double)CONCAT44(uStack_670,uStack_66c);" (assignment_expression "dVar39 = (double)CONCAT44(uStack_670,uStack_66c)" identifier = (cast_expression "(double)CONCAT44(uStack_670,uStack_66c)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_670,uStack_66c)" identifier (argument_list "(uStack_670,uStack_66c)" ( identifier , identifier ))))) ;) (expression_statement "dVar41 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_);" (assignment_expression "dVar41 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_)" identifier = (cast_expression "(double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_678._0_4_,uStack_678._4_4_)" identifier (argument_list "(uStack_678._0_4_,uStack_678._4_4_)" ( (field_expression "uStack_678._0_4_" identifier . field_identifier) , (field_expression "uStack_678._4_4_" identifier . field_identifier) ))))) ;) (expression_statement "dVar40 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_);" (assignment_expression "dVar40 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_)" identifier = (cast_expression "(double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_678._0_4_,uStack_678._4_4_)" identifier (argument_list "(uStack_678._0_4_,uStack_678._4_4_)" ( (field_expression "uStack_678._0_4_" identifier . field_identifier) , (field_expression "uStack_678._4_4_" identifier . field_identifier) ))))) ;) (expression_statement "dVar47 = (double)CONCAT44(uStack_670,uStack_66c);" (assignment_expression "dVar47 = (double)CONCAT44(uStack_670,uStack_66c)" identifier = (cast_expression "(double)CONCAT44(uStack_670,uStack_66c)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_670,uStack_66c)" identifier (argument_list "(uStack_670,uStack_66c)" ( identifier , identifier ))))) ;) (do_statement "do {\n    dVar45 = pdVar14[2];\n    dVar44 = dVar45;\n    if (dVar41 <= dVar45) {\n      dVar44 = dVar41;\n    }\n    dVar42 = pdVar14[3];\n    dVar46 = dVar42;\n    if (dVar47 <= dVar42) {\n      dVar46 = dVar47;\n    }\n    if (dVar45 <= dVar40) {\n      dVar45 = dVar40;\n    }\n    if (dVar42 <= dVar39) {\n      dVar42 = dVar39;\n    }\n    pdVar14 = pdVar14 + 2;\n    dVar39 = dVar42;\n    dVar41 = dVar44;\n    dVar40 = dVar45;\n    dVar47 = dVar46;\n  } while ((double *)&uStack_648 != pdVar14);" do (compound_statement "{\n    dVar45 = pdVar14[2];\n    dVar44 = dVar45;\n    if (dVar41 <= dVar45) {\n      dVar44 = dVar41;\n    }\n    dVar42 = pdVar14[3];\n    dVar46 = dVar42;\n    if (dVar47 <= dVar42) {\n      dVar46 = dVar47;\n    }\n    if (dVar45 <= dVar40) {\n      dVar45 = dVar40;\n    }\n    if (dVar42 <= dVar39) {\n      dVar42 = dVar39;\n    }\n    pdVar14 = pdVar14 + 2;\n    dVar39 = dVar42;\n    dVar41 = dVar44;\n    dVar40 = dVar45;\n    dVar47 = dVar46;\n  }" { (expression_statement "dVar45 = pdVar14[2];" (assignment_expression "dVar45 = pdVar14[2]" identifier = (subscript_expression "pdVar14[2]" identifier [ number_literal ])) ;) (expression_statement "dVar44 = dVar45;" (assignment_expression "dVar44 = dVar45" identifier = identifier) ;) (if_statement "if (dVar41 <= dVar45) {\n      dVar44 = dVar41;\n    }" if (parenthesized_expression "(dVar41 <= dVar45)" ( (binary_expression "dVar41 <= dVar45" identifier <= identifier) )) (compound_statement "{\n      dVar44 = dVar41;\n    }" { (expression_statement "dVar44 = dVar41;" (assignment_expression "dVar44 = dVar41" identifier = identifier) ;) })) (expression_statement "dVar42 = pdVar14[3];" (assignment_expression "dVar42 = pdVar14[3]" identifier = (subscript_expression "pdVar14[3]" identifier [ number_literal ])) ;) (expression_statement "dVar46 = dVar42;" (assignment_expression "dVar46 = dVar42" identifier = identifier) ;) (if_statement "if (dVar47 <= dVar42) {\n      dVar46 = dVar47;\n    }" if (parenthesized_expression "(dVar47 <= dVar42)" ( (binary_expression "dVar47 <= dVar42" identifier <= identifier) )) (compound_statement "{\n      dVar46 = dVar47;\n    }" { (expression_statement "dVar46 = dVar47;" (assignment_expression "dVar46 = dVar47" identifier = identifier) ;) })) (if_statement "if (dVar45 <= dVar40) {\n      dVar45 = dVar40;\n    }" if (parenthesized_expression "(dVar45 <= dVar40)" ( (binary_expression "dVar45 <= dVar40" identifier <= identifier) )) (compound_statement "{\n      dVar45 = dVar40;\n    }" { (expression_statement "dVar45 = dVar40;" (assignment_expression "dVar45 = dVar40" identifier = identifier) ;) })) (if_statement "if (dVar42 <= dVar39) {\n      dVar42 = dVar39;\n    }" if (parenthesized_expression "(dVar42 <= dVar39)" ( (binary_expression "dVar42 <= dVar39" identifier <= identifier) )) (compound_statement "{\n      dVar42 = dVar39;\n    }" { (expression_statement "dVar42 = dVar39;" (assignment_expression "dVar42 = dVar39" identifier = identifier) ;) })) (expression_statement "pdVar14 = pdVar14 + 2;" (assignment_expression "pdVar14 = pdVar14 + 2" identifier = (binary_expression "pdVar14 + 2" identifier + number_literal)) ;) (expression_statement "dVar39 = dVar42;" (assignment_expression "dVar39 = dVar42" identifier = identifier) ;) (expression_statement "dVar41 = dVar44;" (assignment_expression "dVar41 = dVar44" identifier = identifier) ;) (expression_statement "dVar40 = dVar45;" (assignment_expression "dVar40 = dVar45" identifier = identifier) ;) (expression_statement "dVar47 = dVar46;" (assignment_expression "dVar47 = dVar46" identifier = identifier) ;) }) while (parenthesized_expression "((double *)&uStack_648 != pdVar14)" ( (binary_expression "(double *)&uStack_648 != pdVar14" (cast_expression "(double *)&uStack_648" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&uStack_648" & identifier)) != identifier) )) ;) (expression_statement "ppiVar24 = (int **)0x1;" (assignment_expression "ppiVar24 = (int **)0x1" identifier = (cast_expression "(int **)0x1" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pdVar29 = pdVar5;" (assignment_expression "pdVar29 = pdVar5" identifier = identifier) ;) (expression_statement "iVar3 = (**(code **)(pcVar37 + -0x7074))(piVar2);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + -0x7074))(piVar2)" identifier = (call_expression "(**(code **)(pcVar37 + -0x7074))(piVar2)" (parenthesized_expression "(**(code **)(pcVar37 + -0x7074))" ( (pointer_expression "**(code **)(pcVar37 + -0x7074)" * (pointer_expression "*(code **)(pcVar37 + -0x7074)" * (cast_expression "(code **)(pcVar37 + -0x7074)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + -0x7074)" ( (binary_expression "pcVar37 + -0x7074" identifier + number_literal) ))))) )) (argument_list "(piVar2)" ( identifier )))) ;) (if_statement "if (iVar3 != 0) {\n    dStack_750 = dVar44;\n    if (dVar44 <= 0.0) {\n      dStack_750 = 0.0;\n    }\n    dStack_748 = dVar46;\n    if (dVar46 <= 0.0) {\n      dStack_748 = 0.0;\n    }\n    dStack_740 = (double)piVar2[6];\n    if (piVar2[6] < 0) {\n      dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_740 = dStack_740 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar45 < dStack_740) {\n      dStack_740 = dVar45;\n    }\n    dStack_738 = (double)piVar2[7];\n    if (piVar2[7] < 0) {\n      dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_738 = dStack_738 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar42 < dStack_738) {\n      dStack_738 = dVar42;\n    }\n    dStack_6e8 = *pdVar16 * pdVar16[3] - pdVar16[1] * pdVar16[2];\n    if (0.0 <= dStack_6e8) {\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    }\n    else {\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);\n    }\n    if (dStack_6e8 * dVar39 < *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)) {\n      dStack_6e8 = dVar39 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8);\n    }\n    else {\n      dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;\n    }\n    dStack_700 = pdVar16[3] * dStack_6e8;\n    dStack_6f8 = -pdVar16[1] * dStack_6e8;\n    dStack_6f0 = -pdVar16[2] * dStack_6e8;\n    dStack_6e8 = *pdVar16 * dStack_6e8;\n    dStack_6e0 = dStack_700 * -pdVar16[4] - dStack_6f0 * pdVar16[5];\n    dStack_6d8 = dStack_6f8 * -pdVar16[4] - dStack_6e8 * pdVar16[5];\n    (**(code **)(pcStack_758 + -0x75e4))(piVar2,auStack_6d0);\n    dVar42 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0);\n    dVar39 = (double)(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar42);\n    dVar41 = (double)(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar42);\n    uVar4 = (**(code **)(pcStack_758 + -0x7144))(puVar23,pdVar5);\n    puVar35 = (undefined1 *)(**(code **)(pcStack_758 + -0x79c4))(piVar2,pdVar5);\n    iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23);\n    if (((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23), iVar3 == 3)) &&\n       ((iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 4 ||\n        (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3)))) {\n      (**(code **)(pcStack_758 + -0x775c))(7);\n      iVar10 = (int)dVar41 - (int)dVar39;\n      iVar3 = iVar10;\n      if (iVar10 < 0) {\n        iVar3 = iVar10 + 0x3f;\n      }\n      pdVar16 = (double *)(iVar3 >> 6);\n      if (extraout_v1 < (int)pdVar16) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        bVar1 = extraout_v1_01 < 2;\n      }\n      else {\n        bVar1 = iVar10 < 0x80;\n      }\n      pdVar29 = (double *)0x1;\n      if (((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16)\n         ) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_03;\n        pdVar16 = extraout_v1_03;\n      }\n    }\n    else {\n      uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar51 < 2) {\n          pdVar29 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }\n      else {\nLAB_000a77f8:\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n      }\n      uVar51 = (*pcVar37)(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_00;\n      }\n      else {\n        pdVar29 = (double *)0x2;\n      }\n    }\nLAB_000a7818:\n    pdStack_720 = &dStack_700;\n    puStack_714 = auStack_6d0;\n    pdStack_710 = &dStack_750;\n    iStack_704 = 1;\n    ppiVar24 = &piStack_72c;\n    piStack_72c = piVar2;\n    puStack_728 = puVar23;\n    pdStack_724 = pdVar5;\n    puStack_71c = puVar35;\n    uStack_718 = uVar4;\n    iStack_70c = (int)dVar39;\n    iStack_708 = (int)dVar41;\n    (**(code **)(pcStack_758 + -0x7700))\n              (*(int *)(pcStack_758 + -0x7ea0) + 0x34c4,ppiVar24,pdVar29,0);\n    iVar3 = iStack_704;\n    (**(code **)(pcStack_758 + -0x79a4))(uVar4);\n    (**(code **)(pcStack_758 + -0x79a4))(puVar35);\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    dStack_750 = dVar44;\n    if (dVar44 <= 0.0) {\n      dStack_750 = 0.0;\n    }\n    dStack_748 = dVar46;\n    if (dVar46 <= 0.0) {\n      dStack_748 = 0.0;\n    }\n    dStack_740 = (double)piVar2[6];\n    if (piVar2[6] < 0) {\n      dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_740 = dStack_740 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar45 < dStack_740) {\n      dStack_740 = dVar45;\n    }\n    dStack_738 = (double)piVar2[7];\n    if (piVar2[7] < 0) {\n      dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_738 = dStack_738 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar42 < dStack_738) {\n      dStack_738 = dVar42;\n    }\n    dStack_6e8 = *pdVar16 * pdVar16[3] - pdVar16[1] * pdVar16[2];\n    if (0.0 <= dStack_6e8) {\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    }\n    else {\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);\n    }\n    if (dStack_6e8 * dVar39 < *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)) {\n      dStack_6e8 = dVar39 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8);\n    }\n    else {\n      dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;\n    }\n    dStack_700 = pdVar16[3] * dStack_6e8;\n    dStack_6f8 = -pdVar16[1] * dStack_6e8;\n    dStack_6f0 = -pdVar16[2] * dStack_6e8;\n    dStack_6e8 = *pdVar16 * dStack_6e8;\n    dStack_6e0 = dStack_700 * -pdVar16[4] - dStack_6f0 * pdVar16[5];\n    dStack_6d8 = dStack_6f8 * -pdVar16[4] - dStack_6e8 * pdVar16[5];\n    (**(code **)(pcStack_758 + -0x75e4))(piVar2,auStack_6d0);\n    dVar42 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0);\n    dVar39 = (double)(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar42);\n    dVar41 = (double)(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar42);\n    uVar4 = (**(code **)(pcStack_758 + -0x7144))(puVar23,pdVar5);\n    puVar35 = (undefined1 *)(**(code **)(pcStack_758 + -0x79c4))(piVar2,pdVar5);\n    iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23);\n    if (((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23), iVar3 == 3)) &&\n       ((iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 4 ||\n        (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3)))) {\n      (**(code **)(pcStack_758 + -0x775c))(7);\n      iVar10 = (int)dVar41 - (int)dVar39;\n      iVar3 = iVar10;\n      if (iVar10 < 0) {\n        iVar3 = iVar10 + 0x3f;\n      }\n      pdVar16 = (double *)(iVar3 >> 6);\n      if (extraout_v1 < (int)pdVar16) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        bVar1 = extraout_v1_01 < 2;\n      }\n      else {\n        bVar1 = iVar10 < 0x80;\n      }\n      pdVar29 = (double *)0x1;\n      if (((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16)\n         ) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_03;\n        pdVar16 = extraout_v1_03;\n      }\n    }\n    else {\n      uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar51 < 2) {\n          pdVar29 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }\n      else {\nLAB_000a77f8:\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n      }\n      uVar51 = (*pcVar37)(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_00;\n      }\n      else {\n        pdVar29 = (double *)0x2;\n      }\n    }\nLAB_000a7818:\n    pdStack_720 = &dStack_700;\n    puStack_714 = auStack_6d0;\n    pdStack_710 = &dStack_750;\n    iStack_704 = 1;\n    ppiVar24 = &piStack_72c;\n    piStack_72c = piVar2;\n    puStack_728 = puVar23;\n    pdStack_724 = pdVar5;\n    puStack_71c = puVar35;\n    uStack_718 = uVar4;\n    iStack_70c = (int)dVar39;\n    iStack_708 = (int)dVar41;\n    (**(code **)(pcStack_758 + -0x7700))\n              (*(int *)(pcStack_758 + -0x7ea0) + 0x34c4,ppiVar24,pdVar29,0);\n    iVar3 = iStack_704;\n    (**(code **)(pcStack_758 + -0x79a4))(uVar4);\n    (**(code **)(pcStack_758 + -0x79a4))(puVar35);\n  }" { (expression_statement "dStack_750 = dVar44;" (assignment_expression "dStack_750 = dVar44" identifier = identifier) ;) (if_statement "if (dVar44 <= 0.0) {\n      dStack_750 = 0.0;\n    }" if (parenthesized_expression "(dVar44 <= 0.0)" ( (binary_expression "dVar44 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n      dStack_750 = 0.0;\n    }" { (expression_statement "dStack_750 = 0.0;" (assignment_expression "dStack_750 = 0.0" identifier = number_literal) ;) })) (expression_statement "dStack_748 = dVar46;" (assignment_expression "dStack_748 = dVar46" identifier = identifier) ;) (if_statement "if (dVar46 <= 0.0) {\n      dStack_748 = 0.0;\n    }" if (parenthesized_expression "(dVar46 <= 0.0)" ( (binary_expression "dVar46 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n      dStack_748 = 0.0;\n    }" { (expression_statement "dStack_748 = 0.0;" (assignment_expression "dStack_748 = 0.0" identifier = number_literal) ;) })) (expression_statement "dStack_740 = (double)piVar2[6];" (assignment_expression "dStack_740 = (double)piVar2[6]" identifier = (cast_expression "(double)piVar2[6]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar2[6]" identifier [ number_literal ]))) ;) (if_statement "if (piVar2[6] < 0) {\n      dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }" if (parenthesized_expression "(piVar2[6] < 0)" ( (binary_expression "piVar2[6] < 0" (subscript_expression "piVar2[6]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n      dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }" { (expression_statement "dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);" (assignment_expression "dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" identifier = (binary_expression "dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" identifier + (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" * (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" ( (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x43e8" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" * (cast_expression "(int *)(pcStack_758 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fd0)" ( (binary_expression "pcStack_758 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dStack_740 = dStack_740 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);" (assignment_expression "dStack_740 = dStack_740 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" identifier = (binary_expression "dStack_740 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" identifier - (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" * (cast_expression "(int *)(pcStack_758 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fd0)" ( (binary_expression "pcStack_758 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) (if_statement "if (dVar45 < dStack_740) {\n      dStack_740 = dVar45;\n    }" if (parenthesized_expression "(dVar45 < dStack_740)" ( (binary_expression "dVar45 < dStack_740" identifier < identifier) )) (compound_statement "{\n      dStack_740 = dVar45;\n    }" { (expression_statement "dStack_740 = dVar45;" (assignment_expression "dStack_740 = dVar45" identifier = identifier) ;) })) (expression_statement "dStack_738 = (double)piVar2[7];" (assignment_expression "dStack_738 = (double)piVar2[7]" identifier = (cast_expression "(double)piVar2[7]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar2[7]" identifier [ number_literal ]))) ;) (if_statement "if (piVar2[7] < 0) {\n      dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }" if (parenthesized_expression "(piVar2[7] < 0)" ( (binary_expression "piVar2[7] < 0" (subscript_expression "piVar2[7]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n      dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }" { (expression_statement "dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);" (assignment_expression "dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" identifier = (binary_expression "dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" identifier + (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" * (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" ( (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x43e8" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" * (cast_expression "(int *)(pcStack_758 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fd0)" ( (binary_expression "pcStack_758 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dStack_738 = dStack_738 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);" (assignment_expression "dStack_738 = dStack_738 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" identifier = (binary_expression "dStack_738 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" identifier - (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" * (cast_expression "(int *)(pcStack_758 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fd0)" ( (binary_expression "pcStack_758 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) (if_statement "if (dVar42 < dStack_738) {\n      dStack_738 = dVar42;\n    }" if (parenthesized_expression "(dVar42 < dStack_738)" ( (binary_expression "dVar42 < dStack_738" identifier < identifier) )) (compound_statement "{\n      dStack_738 = dVar42;\n    }" { (expression_statement "dStack_738 = dVar42;" (assignment_expression "dStack_738 = dVar42" identifier = identifier) ;) })) (expression_statement "dStack_6e8 = *pdVar16 * pdVar16[3] - pdVar16[1] * pdVar16[2];" (assignment_expression "dStack_6e8 = *pdVar16 * pdVar16[3] - pdVar16[1] * pdVar16[2]" identifier = (binary_expression "*pdVar16 * pdVar16[3] - pdVar16[1] * pdVar16[2]" (binary_expression "*pdVar16 * pdVar16[3]" (pointer_expression "*pdVar16" * identifier) * (subscript_expression "pdVar16[3]" identifier [ number_literal ])) - (binary_expression "pdVar16[1] * pdVar16[2]" (subscript_expression "pdVar16[1]" identifier [ number_literal ]) * (subscript_expression "pdVar16[2]" identifier [ number_literal ])))) ;) (if_statement "if (0.0 <= dStack_6e8) {\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    }\n    else {\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);\n    }" if (parenthesized_expression "(0.0 <= dStack_6e8)" ( (binary_expression "0.0 <= dStack_6e8" number_literal <= identifier) )) (compound_statement "{\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    }" { (expression_statement "dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);" (assignment_expression "dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" * (cast_expression "(int *)(pcStack_758 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fd0)" ( (binary_expression "pcStack_758 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);\n    }" else (compound_statement "{\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);\n    }" { (expression_statement "dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);" (assignment_expression "dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" * (cast_expression "(int *)(pcStack_758 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fd0)" ( (binary_expression "pcStack_758 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (dStack_6e8 * dVar39 < *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)) {\n      dStack_6e8 = dVar39 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8);\n    }\n    else {\n      dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;\n    }" if (parenthesized_expression "(dStack_6e8 * dVar39 < *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8))" ( (binary_expression "dStack_6e8 * dVar39 < *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)" (binary_expression "dStack_6e8 * dVar39" identifier * identifier) < (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)" * (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)" ( (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x43c8" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" * (cast_expression "(int *)(pcStack_758 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fd0)" ( (binary_expression "pcStack_758 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) )) (compound_statement "{\n      dStack_6e8 = dVar39 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8);\n    }" { (expression_statement "dStack_6e8 = dVar39 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8);" (assignment_expression "dStack_6e8 = dVar39 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)" identifier = (binary_expression "dVar39 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)" identifier / (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)" * (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)" ( (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x43c8" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" * (cast_expression "(int *)(pcStack_758 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fd0)" ( (binary_expression "pcStack_758 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) }) (else_clause "else {\n      dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;\n    }" else (compound_statement "{\n      dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;\n    }" { (expression_statement "dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;" (assignment_expression "dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8" identifier = (binary_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8" (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" * (cast_expression "(int *)(pcStack_758 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fd0)" ( (binary_expression "pcStack_758 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))) / identifier)) ;) }))) (expression_statement "dStack_700 = pdVar16[3] * dStack_6e8;" (assignment_expression "dStack_700 = pdVar16[3] * dStack_6e8" identifier = (binary_expression "pdVar16[3] * dStack_6e8" (subscript_expression "pdVar16[3]" identifier [ number_literal ]) * identifier)) ;) (expression_statement "dStack_6f8 = -pdVar16[1] * dStack_6e8;" (assignment_expression "dStack_6f8 = -pdVar16[1] * dStack_6e8" identifier = (binary_expression "-pdVar16[1] * dStack_6e8" (unary_expression "-pdVar16[1]" - (subscript_expression "pdVar16[1]" identifier [ number_literal ])) * identifier)) ;) (expression_statement "dStack_6f0 = -pdVar16[2] * dStack_6e8;" (assignment_expression "dStack_6f0 = -pdVar16[2] * dStack_6e8" identifier = (binary_expression "-pdVar16[2] * dStack_6e8" (unary_expression "-pdVar16[2]" - (subscript_expression "pdVar16[2]" identifier [ number_literal ])) * identifier)) ;) (expression_statement "dStack_6e8 = *pdVar16 * dStack_6e8;" (assignment_expression "dStack_6e8 = *pdVar16 * dStack_6e8" identifier = (binary_expression "*pdVar16 * dStack_6e8" (pointer_expression "*pdVar16" * identifier) * identifier)) ;) (expression_statement "dStack_6e0 = dStack_700 * -pdVar16[4] - dStack_6f0 * pdVar16[5];" (assignment_expression "dStack_6e0 = dStack_700 * -pdVar16[4] - dStack_6f0 * pdVar16[5]" identifier = (binary_expression "dStack_700 * -pdVar16[4] - dStack_6f0 * pdVar16[5]" (binary_expression "dStack_700 * -pdVar16[4]" identifier * (unary_expression "-pdVar16[4]" - (subscript_expression "pdVar16[4]" identifier [ number_literal ]))) - (binary_expression "dStack_6f0 * pdVar16[5]" identifier * (subscript_expression "pdVar16[5]" identifier [ number_literal ])))) ;) (expression_statement "dStack_6d8 = dStack_6f8 * -pdVar16[4] - dStack_6e8 * pdVar16[5];" (assignment_expression "dStack_6d8 = dStack_6f8 * -pdVar16[4] - dStack_6e8 * pdVar16[5]" identifier = (binary_expression "dStack_6f8 * -pdVar16[4] - dStack_6e8 * pdVar16[5]" (binary_expression "dStack_6f8 * -pdVar16[4]" identifier * (unary_expression "-pdVar16[4]" - (subscript_expression "pdVar16[4]" identifier [ number_literal ]))) - (binary_expression "dStack_6e8 * pdVar16[5]" identifier * (subscript_expression "pdVar16[5]" identifier [ number_literal ])))) ;) (expression_statement "(**(code **)(pcStack_758 + -0x75e4))(piVar2,auStack_6d0);" (call_expression "(**(code **)(pcStack_758 + -0x75e4))(piVar2,auStack_6d0)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x75e4))" ( (pointer_expression "**(code **)(pcStack_758 + -0x75e4)" * (pointer_expression "*(code **)(pcStack_758 + -0x75e4)" * (cast_expression "(code **)(pcStack_758 + -0x75e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x75e4)" ( (binary_expression "pcStack_758 + -0x75e4" identifier + number_literal) ))))) )) (argument_list "(piVar2,auStack_6d0)" ( identifier , identifier ))) ;) (expression_statement "dVar42 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0);" (assignment_expression "dVar42 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0)" * (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0)" ( (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x43d0" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" * (cast_expression "(int *)(pcStack_758 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fd0)" ( (binary_expression "pcStack_758 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "dVar39 = (double)(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar42);" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar42)" identifier = (cast_expression "(double)(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar42)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar42)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x7c78))" ( (pointer_expression "**(code **)(pcStack_758 + -0x7c78)" * (pointer_expression "*(code **)(pcStack_758 + -0x7c78)" * (cast_expression "(code **)(pcStack_758 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x7c78)" ( (binary_expression "pcStack_758 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(dStack_748 - dVar42)" ( (binary_expression "dStack_748 - dVar42" identifier - identifier) ))))) ;) (expression_statement "dVar41 = (double)(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar42);" (assignment_expression "dVar41 = (double)(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar42)" identifier = (cast_expression "(double)(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar42)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar42)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x7228))" ( (pointer_expression "**(code **)(pcStack_758 + -0x7228)" * (pointer_expression "*(code **)(pcStack_758 + -0x7228)" * (cast_expression "(code **)(pcStack_758 + -0x7228)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x7228)" ( (binary_expression "pcStack_758 + -0x7228" identifier + number_literal) ))))) )) (argument_list "(dStack_738 + dVar42)" ( (binary_expression "dStack_738 + dVar42" identifier + identifier) ))))) ;) (expression_statement "uVar4 = (**(code **)(pcStack_758 + -0x7144))(puVar23,pdVar5);" (assignment_expression "uVar4 = (**(code **)(pcStack_758 + -0x7144))(puVar23,pdVar5)" identifier = (call_expression "(**(code **)(pcStack_758 + -0x7144))(puVar23,pdVar5)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x7144))" ( (pointer_expression "**(code **)(pcStack_758 + -0x7144)" * (pointer_expression "*(code **)(pcStack_758 + -0x7144)" * (cast_expression "(code **)(pcStack_758 + -0x7144)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x7144)" ( (binary_expression "pcStack_758 + -0x7144" identifier + number_literal) ))))) )) (argument_list "(puVar23,pdVar5)" ( identifier , identifier )))) ;) (expression_statement "puVar35 = (undefined1 *)(**(code **)(pcStack_758 + -0x79c4))(piVar2,pdVar5);" (assignment_expression "puVar35 = (undefined1 *)(**(code **)(pcStack_758 + -0x79c4))(piVar2,pdVar5)" identifier = (cast_expression "(undefined1 *)(**(code **)(pcStack_758 + -0x79c4))(piVar2,pdVar5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_758 + -0x79c4))(piVar2,pdVar5)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x79c4))" ( (pointer_expression "**(code **)(pcStack_758 + -0x79c4)" * (pointer_expression "*(code **)(pcStack_758 + -0x79c4)" * (cast_expression "(code **)(pcStack_758 + -0x79c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x79c4)" ( (binary_expression "pcStack_758 + -0x79c4" identifier + number_literal) ))))) )) (argument_list "(piVar2,pdVar5)" ( identifier , identifier ))))) ;) (expression_statement "iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23);" (assignment_expression "iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23)" identifier = (call_expression "(**(code **)(pcStack_758 + -0x73e4))(puVar23)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x73e4))" ( (pointer_expression "**(code **)(pcStack_758 + -0x73e4)" * (pointer_expression "*(code **)(pcStack_758 + -0x73e4)" * (cast_expression "(code **)(pcStack_758 + -0x73e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x73e4)" ( (binary_expression "pcStack_758 + -0x73e4" identifier + number_literal) ))))) )) (argument_list "(puVar23)" ( identifier )))) ;) (if_statement "if (((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23), iVar3 == 3)) &&\n       ((iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 4 ||\n        (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3)))) {\n      (**(code **)(pcStack_758 + -0x775c))(7);\n      iVar10 = (int)dVar41 - (int)dVar39;\n      iVar3 = iVar10;\n      if (iVar10 < 0) {\n        iVar3 = iVar10 + 0x3f;\n      }\n      pdVar16 = (double *)(iVar3 >> 6);\n      if (extraout_v1 < (int)pdVar16) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        bVar1 = extraout_v1_01 < 2;\n      }\n      else {\n        bVar1 = iVar10 < 0x80;\n      }\n      pdVar29 = (double *)0x1;\n      if (((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16)\n         ) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_03;\n        pdVar16 = extraout_v1_03;\n      }\n    }\n    else {\n      uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar51 < 2) {\n          pdVar29 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }\n      else {\nLAB_000a77f8:\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n      }\n      uVar51 = (*pcVar37)(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_00;\n      }\n      else {\n        pdVar29 = (double *)0x2;\n      }\n    }" if (parenthesized_expression "(((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23), iVar3 == 3)) &&\n       ((iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 4 ||\n        (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3))))" ( (binary_expression "((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23), iVar3 == 3)) &&\n       ((iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 4 ||\n        (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3)))" (parenthesized_expression "((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23), iVar3 == 3))" ( (binary_expression "(iVar3 == 4) || (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23), iVar3 == 3)" (parenthesized_expression "(iVar3 == 4)" ( (binary_expression "iVar3 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23), iVar3 == 3)" ( (comma_expression "iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23), iVar3 == 3" (assignment_expression "iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23)" identifier = (call_expression "(**(code **)(pcStack_758 + -0x73e4))(puVar23)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x73e4))" ( (pointer_expression "**(code **)(pcStack_758 + -0x73e4)" * (pointer_expression "*(code **)(pcStack_758 + -0x73e4)" * (cast_expression "(code **)(pcStack_758 + -0x73e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x73e4)" ( (binary_expression "pcStack_758 + -0x73e4" identifier + number_literal) ))))) )) (argument_list "(puVar23)" ( identifier )))) , (binary_expression "iVar3 == 3" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 4 ||\n        (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3)))" ( (parenthesized_expression "(iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 4 ||\n        (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3))" ( (comma_expression "iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 4 ||\n        (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3)" (assignment_expression "iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2)" identifier = (call_expression "(**(code **)(pcStack_758 + -0x73e4))(piVar2)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x73e4))" ( (pointer_expression "**(code **)(pcStack_758 + -0x73e4)" * (pointer_expression "*(code **)(pcStack_758 + -0x73e4)" * (cast_expression "(code **)(pcStack_758 + -0x73e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x73e4)" ( (binary_expression "pcStack_758 + -0x73e4" identifier + number_literal) ))))) )) (argument_list "(piVar2)" ( identifier )))) , (binary_expression "iVar3 == 4 ||\n        (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3)" (binary_expression "iVar3 == 4" identifier == number_literal) || (parenthesized_expression "(iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3)" ( (comma_expression "iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3" (assignment_expression "iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2)" identifier = (call_expression "(**(code **)(pcStack_758 + -0x73e4))(piVar2)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x73e4))" ( (pointer_expression "**(code **)(pcStack_758 + -0x73e4)" * (pointer_expression "*(code **)(pcStack_758 + -0x73e4)" * (cast_expression "(code **)(pcStack_758 + -0x73e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x73e4)" ( (binary_expression "pcStack_758 + -0x73e4" identifier + number_literal) ))))) )) (argument_list "(piVar2)" ( identifier )))) , (binary_expression "iVar3 == 3" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n      (**(code **)(pcStack_758 + -0x775c))(7);\n      iVar10 = (int)dVar41 - (int)dVar39;\n      iVar3 = iVar10;\n      if (iVar10 < 0) {\n        iVar3 = iVar10 + 0x3f;\n      }\n      pdVar16 = (double *)(iVar3 >> 6);\n      if (extraout_v1 < (int)pdVar16) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        bVar1 = extraout_v1_01 < 2;\n      }\n      else {\n        bVar1 = iVar10 < 0x80;\n      }\n      pdVar29 = (double *)0x1;\n      if (((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16)\n         ) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_03;\n        pdVar16 = extraout_v1_03;\n      }\n    }" { (expression_statement "(**(code **)(pcStack_758 + -0x775c))(7);" (call_expression "(**(code **)(pcStack_758 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_758 + -0x775c)" * (pointer_expression "*(code **)(pcStack_758 + -0x775c)" * (cast_expression "(code **)(pcStack_758 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x775c)" ( (binary_expression "pcStack_758 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "iVar10 = (int)dVar41 - (int)dVar39;" (assignment_expression "iVar10 = (int)dVar41 - (int)dVar39" identifier = (binary_expression "(int)dVar41 - (int)dVar39" (cast_expression "(int)dVar41" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)dVar39" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar3 = iVar10;" (assignment_expression "iVar3 = iVar10" identifier = identifier) ;) (if_statement "if (iVar10 < 0) {\n        iVar3 = iVar10 + 0x3f;\n      }" if (parenthesized_expression "(iVar10 < 0)" ( (binary_expression "iVar10 < 0" identifier < number_literal) )) (compound_statement "{\n        iVar3 = iVar10 + 0x3f;\n      }" { (expression_statement "iVar3 = iVar10 + 0x3f;" (assignment_expression "iVar3 = iVar10 + 0x3f" identifier = (binary_expression "iVar10 + 0x3f" identifier + number_literal)) ;) })) (expression_statement "pdVar16 = (double *)(iVar3 >> 6);" (assignment_expression "pdVar16 = (double *)(iVar3 >> 6)" identifier = (cast_expression "(double *)(iVar3 >> 6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 >> 6)" ( (binary_expression "iVar3 >> 6" identifier >> number_literal) )))) ;) (if_statement "if (extraout_v1 < (int)pdVar16) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        bVar1 = extraout_v1_01 < 2;\n      }\n      else {\n        bVar1 = iVar10 < 0x80;\n      }" if (parenthesized_expression "(extraout_v1 < (int)pdVar16)" ( (binary_expression "extraout_v1 < (int)pdVar16" identifier < (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        bVar1 = extraout_v1_01 < 2;\n      }" { (expression_statement "(**(code **)(pcStack_758 + -0x775c))(7);" (call_expression "(**(code **)(pcStack_758 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_758 + -0x775c)" * (pointer_expression "*(code **)(pcStack_758 + -0x775c)" * (cast_expression "(code **)(pcStack_758 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x775c)" ( (binary_expression "pcStack_758 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "bVar1 = extraout_v1_01 < 2;" (assignment_expression "bVar1 = extraout_v1_01 < 2" identifier = (binary_expression "extraout_v1_01 < 2" identifier < number_literal)) ;) }) (else_clause "else {\n        bVar1 = iVar10 < 0x80;\n      }" else (compound_statement "{\n        bVar1 = iVar10 < 0x80;\n      }" { (expression_statement "bVar1 = iVar10 < 0x80;" (assignment_expression "bVar1 = iVar10 < 0x80" identifier = (binary_expression "iVar10 < 0x80" identifier < number_literal)) ;) }))) (expression_statement "pdVar29 = (double *)0x1;" (assignment_expression "pdVar29 = (double *)0x1" identifier = (cast_expression "(double *)0x1" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16)\n         ) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_03;\n        pdVar16 = extraout_v1_03;\n      }" if (parenthesized_expression "(((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16)\n         )" ( (binary_expression "((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16)" (parenthesized_expression "((bool)(bVar1 ^ 1))" ( (cast_expression "(bool)(bVar1 ^ 1)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar1 ^ 1)" ( (binary_expression "bVar1 ^ 1" identifier ^ number_literal) ))) )) && (parenthesized_expression "((**(code **)(pcStack_758 + -0x775c))(7), pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16)" ( (comma_expression "(**(code **)(pcStack_758 + -0x775c))(7), pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16" (call_expression "(**(code **)(pcStack_758 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_758 + -0x775c)" * (pointer_expression "*(code **)(pcStack_758 + -0x775c)" * (cast_expression "(code **)(pcStack_758 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x775c)" ( (binary_expression "pcStack_758 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) , (comma_expression "pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16" (assignment_expression "pdVar29 = pdVar16" identifier = identifier) , (binary_expression "extraout_v1_02 < (int)pdVar16" identifier < (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier)))) ))) )) (compound_statement "{\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_03;\n        pdVar16 = extraout_v1_03;\n      }" { (expression_statement "(**(code **)(pcStack_758 + -0x775c))(7);" (call_expression "(**(code **)(pcStack_758 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_758 + -0x775c)" * (pointer_expression "*(code **)(pcStack_758 + -0x775c)" * (cast_expression "(code **)(pcStack_758 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x775c)" ( (binary_expression "pcStack_758 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "pdVar29 = extraout_v1_03;" (assignment_expression "pdVar29 = extraout_v1_03" identifier = identifier) ;) (expression_statement "pdVar16 = extraout_v1_03;" (assignment_expression "pdVar16 = extraout_v1_03" identifier = identifier) ;) })) }) (else_clause "else {\n      uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar51 < 2) {\n          pdVar29 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }\n      else {\nLAB_000a77f8:\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n      }\n      uVar51 = (*pcVar37)(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_00;\n      }\n      else {\n        pdVar29 = (double *)0x2;\n      }\n    }" else (compound_statement "{\n      uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar51 < 2) {\n          pdVar29 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }\n      else {\nLAB_000a77f8:\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n      }\n      uVar51 = (*pcVar37)(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_00;\n      }\n      else {\n        pdVar29 = (double *)0x2;\n      }\n    }" { (expression_statement "uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);" (assignment_expression "uVar51 = (**(code **)(pcStack_758 + -0x775c))(7)" identifier = (call_expression "(**(code **)(pcStack_758 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_758 + -0x775c)" * (pointer_expression "*(code **)(pcStack_758 + -0x775c)" * (cast_expression "(code **)(pcStack_758 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x775c)" ( (binary_expression "pcStack_758 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar51 < 2) {\n          pdVar29 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }\n      else {\nLAB_000a77f8:\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n      }" if (parenthesized_expression "(((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2))" ( (binary_expression "((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)" (parenthesized_expression "((int)((ulonglong)uVar51 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar51 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar51 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar51 >> 0x20)" ( (binary_expression "(ulonglong)uVar51 >> 0x20" (cast_expression "(ulonglong)uVar51" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "((uint)uVar51 < 2)" ( (binary_expression "(uint)uVar51 < 2" (cast_expression "(uint)uVar51" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) ))) )) (compound_statement "{\n        uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar51 < 2) {\n          pdVar29 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }" { (expression_statement "uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);" (assignment_expression "uVar51 = (**(code **)(pcStack_758 + -0x775c))(7)" identifier = (call_expression "(**(code **)(pcStack_758 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_758 + -0x775c)" * (pointer_expression "*(code **)(pcStack_758 + -0x775c)" * (cast_expression "(code **)(pcStack_758 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x775c)" ( (binary_expression "pcStack_758 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a77f8;" if (parenthesized_expression "((int)((ulonglong)uVar51 >> 0x20) != 0)" ( (binary_expression "(int)((ulonglong)uVar51 >> 0x20) != 0" (cast_expression "(int)((ulonglong)uVar51 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar51 >> 0x20)" ( (binary_expression "(ulonglong)uVar51 >> 0x20" (cast_expression "(ulonglong)uVar51" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) != number_literal) )) (goto_statement "goto LAB_000a77f8;" goto statement_identifier ;)) (expression_statement "pcVar37 = *(code **)(pcStack_758 + -0x775c);" (assignment_expression "pcVar37 = *(code **)(pcStack_758 + -0x775c)" identifier = (pointer_expression "*(code **)(pcStack_758 + -0x775c)" * (cast_expression "(code **)(pcStack_758 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x775c)" ( (binary_expression "pcStack_758 + -0x775c" identifier + number_literal) ))))) ;) (if_statement "if ((uint)uVar51 < 2) {\n          pdVar29 = (double *)0x1;\n          goto LAB_000a7818;\n        }" if (parenthesized_expression "((uint)uVar51 < 2)" ( (binary_expression "(uint)uVar51 < 2" (cast_expression "(uint)uVar51" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n          pdVar29 = (double *)0x1;\n          goto LAB_000a7818;\n        }" { (expression_statement "pdVar29 = (double *)0x1;" (assignment_expression "pdVar29 = (double *)0x1" identifier = (cast_expression "(double *)0x1" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000a7818;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_000a77f8:\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n      }" else (compound_statement "{\nLAB_000a77f8:\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n      }" { (labeled_statement "LAB_000a77f8:\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);" statement_identifier : (expression_statement "pcVar37 = *(code **)(pcStack_758 + -0x775c);" (assignment_expression "pcVar37 = *(code **)(pcStack_758 + -0x775c)" identifier = (pointer_expression "*(code **)(pcStack_758 + -0x775c)" * (cast_expression "(code **)(pcStack_758 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x775c)" ( (binary_expression "pcStack_758 + -0x775c" identifier + number_literal) ))))) ;)) }))) (expression_statement "uVar51 = (*pcVar37)(7);" (assignment_expression "uVar51 = (*pcVar37)(7)" identifier = (call_expression "(*pcVar37)(7)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_00;\n      }\n      else {\n        pdVar29 = (double *)0x2;\n      }" if (parenthesized_expression "(((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2))" ( (binary_expression "((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)" (parenthesized_expression "((int)((ulonglong)uVar51 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar51 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar51 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar51 >> 0x20)" ( (binary_expression "(ulonglong)uVar51 >> 0x20" (cast_expression "(ulonglong)uVar51" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "((uint)uVar51 < 2)" ( (binary_expression "(uint)uVar51 < 2" (cast_expression "(uint)uVar51" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) ))) )) (compound_statement "{\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_00;\n      }" { (expression_statement "(**(code **)(pcStack_758 + -0x775c))(7);" (call_expression "(**(code **)(pcStack_758 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_758 + -0x775c)" * (pointer_expression "*(code **)(pcStack_758 + -0x775c)" * (cast_expression "(code **)(pcStack_758 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x775c)" ( (binary_expression "pcStack_758 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "pdVar29 = extraout_v1_00;" (assignment_expression "pdVar29 = extraout_v1_00" identifier = identifier) ;) }) (else_clause "else {\n        pdVar29 = (double *)0x2;\n      }" else (compound_statement "{\n        pdVar29 = (double *)0x2;\n      }" { (expression_statement "pdVar29 = (double *)0x2;" (assignment_expression "pdVar29 = (double *)0x2" identifier = (cast_expression "(double *)0x2" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }))) (labeled_statement "LAB_000a7818:\n    pdStack_720 = &dStack_700;" statement_identifier : (expression_statement "pdStack_720 = &dStack_700;" (assignment_expression "pdStack_720 = &dStack_700" identifier = (pointer_expression "&dStack_700" & identifier)) ;)) (expression_statement "puStack_714 = auStack_6d0;" (assignment_expression "puStack_714 = auStack_6d0" identifier = identifier) ;) (expression_statement "pdStack_710 = &dStack_750;" (assignment_expression "pdStack_710 = &dStack_750" identifier = (pointer_expression "&dStack_750" & identifier)) ;) (expression_statement "iStack_704 = 1;" (assignment_expression "iStack_704 = 1" identifier = number_literal) ;) (expression_statement "ppiVar24 = &piStack_72c;" (assignment_expression "ppiVar24 = &piStack_72c" identifier = (pointer_expression "&piStack_72c" & identifier)) ;) (expression_statement "piStack_72c = piVar2;" (assignment_expression "piStack_72c = piVar2" identifier = identifier) ;) (expression_statement "puStack_728 = puVar23;" (assignment_expression "puStack_728 = puVar23" identifier = identifier) ;) (expression_statement "pdStack_724 = pdVar5;" (assignment_expression "pdStack_724 = pdVar5" identifier = identifier) ;) (expression_statement "puStack_71c = puVar35;" (assignment_expression "puStack_71c = puVar35" identifier = identifier) ;) (expression_statement "uStack_718 = uVar4;" (assignment_expression "uStack_718 = uVar4" identifier = identifier) ;) (expression_statement "iStack_70c = (int)dVar39;" (assignment_expression "iStack_70c = (int)dVar39" identifier = (cast_expression "(int)dVar39" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iStack_708 = (int)dVar41;" (assignment_expression "iStack_708 = (int)dVar41" identifier = (cast_expression "(int)dVar41" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "(**(code **)(pcStack_758 + -0x7700))\n              (*(int *)(pcStack_758 + -0x7ea0) + 0x34c4,ppiVar24,pdVar29,0);" (call_expression "(**(code **)(pcStack_758 + -0x7700))\n              (*(int *)(pcStack_758 + -0x7ea0) + 0x34c4,ppiVar24,pdVar29,0)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x7700))" ( (pointer_expression "**(code **)(pcStack_758 + -0x7700)" * (pointer_expression "*(code **)(pcStack_758 + -0x7700)" * (cast_expression "(code **)(pcStack_758 + -0x7700)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x7700)" ( (binary_expression "pcStack_758 + -0x7700" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_758 + -0x7ea0) + 0x34c4,ppiVar24,pdVar29,0)" ( (binary_expression "*(int *)(pcStack_758 + -0x7ea0) + 0x34c4" (pointer_expression "*(int *)(pcStack_758 + -0x7ea0)" * (cast_expression "(int *)(pcStack_758 + -0x7ea0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7ea0)" ( (binary_expression "pcStack_758 + -0x7ea0" identifier + number_literal) )))) + number_literal) , identifier , identifier , number_literal ))) ;) (expression_statement "iVar3 = iStack_704;" (assignment_expression "iVar3 = iStack_704" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_758 + -0x79a4))(uVar4);" (call_expression "(**(code **)(pcStack_758 + -0x79a4))(uVar4)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x79a4))" ( (pointer_expression "**(code **)(pcStack_758 + -0x79a4)" * (pointer_expression "*(code **)(pcStack_758 + -0x79a4)" * (cast_expression "(code **)(pcStack_758 + -0x79a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x79a4)" ( (binary_expression "pcStack_758 + -0x79a4" identifier + number_literal) ))))) )) (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "(**(code **)(pcStack_758 + -0x79a4))(puVar35);" (call_expression "(**(code **)(pcStack_758 + -0x79a4))(puVar35)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x79a4))" ( (pointer_expression "**(code **)(pcStack_758 + -0x79a4)" * (pointer_expression "*(code **)(pcStack_758 + -0x79a4)" * (cast_expression "(code **)(pcStack_758 + -0x79a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x79a4)" ( (binary_expression "pcStack_758 + -0x79a4" identifier + number_literal) ))))) )) (argument_list "(puVar35)" ( identifier ))) ;) })) (if_statement "if (uStack_638._4_4_ == **(int **)(pcStack_758 + -0x7668)) {\n    return iVar3;\n  }" if (parenthesized_expression "(uStack_638._4_4_ == **(int **)(pcStack_758 + -0x7668))" ( (binary_expression "uStack_638._4_4_ == **(int **)(pcStack_758 + -0x7668)" (field_expression "uStack_638._4_4_" identifier . field_identifier) == (pointer_expression "**(int **)(pcStack_758 + -0x7668)" * (pointer_expression "*(int **)(pcStack_758 + -0x7668)" * (cast_expression "(int **)(pcStack_758 + -0x7668)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x7668)" ( (binary_expression "pcStack_758 + -0x7668" identifier + number_literal) )))))) )) (compound_statement "{\n    return iVar3;\n  }" { (return_statement "return iVar3;" return identifier ;) })) (expression_statement "pcVar37 = *(code **)(pcStack_758 + -0x7834);" (assignment_expression "pcVar37 = *(code **)(pcStack_758 + -0x7834)" identifier = (pointer_expression "*(code **)(pcStack_758 + -0x7834)" * (cast_expression "(code **)(pcStack_758 + -0x7834)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x7834)" ( (binary_expression "pcStack_758 + -0x7834" identifier + number_literal) ))))) ;) (expression_statement "pcVar38 = DrawGradientImage;" (assignment_expression "pcVar38 = DrawGradientImage" identifier = identifier) ;) (expression_statement "iVar10 = uStack_638._4_4_;" (assignment_expression "iVar10 = uStack_638._4_4_" identifier = (field_expression "uStack_638._4_4_" identifier . field_identifier)) ;) (expression_statement "(*pcVar37)();" (call_expression "(*pcVar37)()" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_830 = pcVar37 + 0x359e18;" (assignment_expression "pcStack_830 = pcVar37 + 0x359e18" identifier = (binary_expression "pcVar37 + 0x359e18" identifier + number_literal)) ;) (expression_statement "puStack_794 = (undefined8 *)**(undefined4 **)(pcVar37 + 0x3527b0);" (assignment_expression "puStack_794 = (undefined8 *)**(undefined4 **)(pcVar37 + 0x3527b0)" identifier = (cast_expression "(undefined8 *)**(undefined4 **)(pcVar37 + 0x3527b0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar37 + 0x3527b0)" * (pointer_expression "*(undefined4 **)(pcVar37 + 0x3527b0)" * (cast_expression "(undefined4 **)(pcVar37 + 0x3527b0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3527b0)" ( (binary_expression "pcVar37 + 0x3527b0" identifier + number_literal) ))))))) ;) (expression_statement "pdStack_790 = pdVar16;" (assignment_expression "pdStack_790 = pdVar16" identifier = identifier) ;) (expression_statement "piStack_78c = piVar2;" (assignment_expression "piStack_78c = piVar2" identifier = identifier) ;) (expression_statement "puStack_788 = puVar23;" (assignment_expression "puStack_788 = puVar23" identifier = identifier) ;) (expression_statement "pdStack_784 = pdVar5;" (assignment_expression "pdStack_784 = pdVar5" identifier = identifier) ;) (expression_statement "iStack_780 = iVar3;" (assignment_expression "iStack_780 = iVar3" identifier = identifier) ;) (expression_statement "pcStack_77c = pcVar38;" (assignment_expression "pcStack_77c = pcVar38" identifier = identifier) ;) (expression_statement "dStack_778 = dVar42;" (assignment_expression "dStack_778 = dVar42" identifier = identifier) ;) (if_statement "if (iVar10 == 0) {\n    iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e48) + 0x3da0,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80a,*(int *)(pcVar37 + 0x351e4c) + 0x7818);\n    return iVar3;\n  }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e48) + 0x3da0,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80a,*(int *)(pcVar37 + 0x351e4c) + 0x7818);\n    return iVar3;\n  }" { (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e48) + 0x3da0,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80a,*(int *)(pcVar37 + 0x351e4c) + 0x7818);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e48) + 0x3da0,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80a,*(int *)(pcVar37 + 0x351e4c) + 0x7818)" identifier = (call_expression "(**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e48) + 0x3da0,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80a,*(int *)(pcVar37 + 0x351e4c) + 0x7818)" (parenthesized_expression "(**(code **)(pcVar37 + 0x352b88))" ( (pointer_expression "**(code **)(pcVar37 + 0x352b88)" * (pointer_expression "*(code **)(pcVar37 + 0x352b88)" * (cast_expression "(code **)(pcVar37 + 0x352b88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x352b88)" ( (binary_expression "pcVar37 + 0x352b88" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar37 + 0x351e48) + 0x3da0,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80a,*(int *)(pcVar37 + 0x351e4c) + 0x7818)" ( (binary_expression "*(int *)(pcVar37 + 0x351e48) + 0x3da0" (pointer_expression "*(int *)(pcVar37 + 0x351e48)" * (cast_expression "(int *)(pcVar37 + 0x351e48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x351e48)" ( (binary_expression "pcVar37 + 0x351e48" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar37 + 0x351e4c) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + 0x351e4c)" * (cast_expression "(int *)(pcVar37 + 0x351e4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x351e4c)" ( (binary_expression "pcVar37 + 0x351e4c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar37 + 0x351e4c) + 0x7818" (pointer_expression "*(int *)(pcVar37 + 0x351e4c)" * (cast_expression "(int *)(pcVar37 + 0x351e4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x351e4c)" ( (binary_expression "pcVar37 + 0x351e4c" identifier + number_literal) )))) + number_literal) )))) ;) (return_statement "return iVar3;" return identifier ;) })) (if_statement "if (*(int *)(iVar10 + 0x336c) != -0x54535255) {\n    iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e4c) + -0x784,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80b,*(int *)(pcVar37 + 0x351e4c) + 0x7818);\n    return iVar3;\n  }" if (parenthesized_expression "(*(int *)(iVar10 + 0x336c) != -0x54535255)" ( (binary_expression "*(int *)(iVar10 + 0x336c) != -0x54535255" (pointer_expression "*(int *)(iVar10 + 0x336c)" * (cast_expression "(int *)(iVar10 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x336c)" ( (binary_expression "iVar10 + 0x336c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e4c) + -0x784,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80b,*(int *)(pcVar37 + 0x351e4c) + 0x7818);\n    return iVar3;\n  }" { (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e4c) + -0x784,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80b,*(int *)(pcVar37 + 0x351e4c) + 0x7818);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e4c) + -0x784,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80b,*(int *)(pcVar37 + 0x351e4c) + 0x7818)" identifier = (call_expression "(**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e4c) + -0x784,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80b,*(int *)(pcVar37 + 0x351e4c) + 0x7818)" (parenthesized_expression "(**(code **)(pcVar37 + 0x352b88))" ( (pointer_expression "**(code **)(pcVar37 + 0x352b88)" * (pointer_expression "*(code **)(pcVar37 + 0x352b88)" * (cast_expression "(code **)(pcVar37 + 0x352b88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x352b88)" ( (binary_expression "pcVar37 + 0x352b88" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar37 + 0x351e4c) + -0x784,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80b,*(int *)(pcVar37 + 0x351e4c) + 0x7818)" ( (binary_expression "*(int *)(pcVar37 + 0x351e4c) + -0x784" (pointer_expression "*(int *)(pcVar37 + 0x351e4c)" * (cast_expression "(int *)(pcVar37 + 0x351e4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x351e4c)" ( (binary_expression "pcVar37 + 0x351e4c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar37 + 0x351e4c) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + 0x351e4c)" * (cast_expression "(int *)(pcVar37 + 0x351e4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x351e4c)" ( (binary_expression "pcVar37 + 0x351e4c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar37 + 0x351e4c) + 0x7818" (pointer_expression "*(int *)(pcVar37 + 0x351e4c)" * (cast_expression "(int *)(pcVar37 + 0x351e4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x351e4c)" ( (binary_expression "pcVar37 + 0x351e4c" identifier + number_literal) )))) + number_literal) )))) ;) (return_statement "return iVar3;" return identifier ;) })) (if_statement "if (*(int *)(iVar10 + 0x3350) != 0) {\n    iStack_838 = *(int *)(pcVar37 + 0x351e50) + -0x2f6c;\n    iStack_834 = iVar10 + 0x340;\n    (**(code **)(pcVar37 + 0x352760))\n              (0x8000,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,*(int *)(pcVar37 + 0x351e4c) + 0x7804,\n               0x80d);\n  }" if (parenthesized_expression "(*(int *)(iVar10 + 0x3350) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x3350) != 0" (pointer_expression "*(int *)(iVar10 + 0x3350)" * (cast_expression "(int *)(iVar10 + 0x3350)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x3350)" ( (binary_expression "iVar10 + 0x3350" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iStack_838 = *(int *)(pcVar37 + 0x351e50) + -0x2f6c;\n    iStack_834 = iVar10 + 0x340;\n    (**(code **)(pcVar37 + 0x352760))\n              (0x8000,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,*(int *)(pcVar37 + 0x351e4c) + 0x7804,\n               0x80d);\n  }" { (expression_statement "iStack_838 = *(int *)(pcVar37 + 0x351e50) + -0x2f6c;" (assignment_expression "iStack_838 = *(int *)(pcVar37 + 0x351e50) + -0x2f6c" identifier = (binary_expression "*(int *)(pcVar37 + 0x351e50) + -0x2f6c" (pointer_expression "*(int *)(pcVar37 + 0x351e50)" * (cast_expression "(int *)(pcVar37 + 0x351e50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x351e50)" ( (binary_expression "pcVar37 + 0x351e50" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iStack_834 = iVar10 + 0x340;" (assignment_expression "iStack_834 = iVar10 + 0x340" identifier = (binary_expression "iVar10 + 0x340" identifier + number_literal)) ;) (expression_statement "(**(code **)(pcVar37 + 0x352760))\n              (0x8000,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,*(int *)(pcVar37 + 0x351e4c) + 0x7804,\n               0x80d);" (call_expression "(**(code **)(pcVar37 + 0x352760))\n              (0x8000,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,*(int *)(pcVar37 + 0x351e4c) + 0x7804,\n               0x80d)" (parenthesized_expression "(**(code **)(pcVar37 + 0x352760))" ( (pointer_expression "**(code **)(pcVar37 + 0x352760)" * (pointer_expression "*(code **)(pcVar37 + 0x352760)" * (cast_expression "(code **)(pcVar37 + 0x352760)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x352760)" ( (binary_expression "pcVar37 + 0x352760" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,*(int *)(pcVar37 + 0x351e4c) + 0x7804,\n               0x80d)" ( number_literal , (binary_expression "*(int *)(pcVar37 + 0x351e4c) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + 0x351e4c)" * (cast_expression "(int *)(pcVar37 + 0x351e4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x351e4c)" ( (binary_expression "pcVar37 + 0x351e4c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar37 + 0x351e4c) + 0x7804" (pointer_expression "*(int *)(pcVar37 + 0x351e4c)" * (cast_expression "(int *)(pcVar37 + 0x351e4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x351e4c)" ( (binary_expression "pcVar37 + 0x351e4c" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) })) (if_statement "if (ppiVar24 == (int **)0x0) {\n    iVar3 = (**(code **)(pcStack_830 + -0x7290))\n                      (*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x69c0,0x80e,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x7818);\n    return iVar3;\n  }" if (parenthesized_expression "(ppiVar24 == (int **)0x0)" ( (binary_expression "ppiVar24 == (int **)0x0" identifier == (cast_expression "(int **)0x0" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n    iVar3 = (**(code **)(pcStack_830 + -0x7290))\n                      (*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x69c0,0x80e,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x7818);\n    return iVar3;\n  }" { (expression_statement "iVar3 = (**(code **)(pcStack_830 + -0x7290))\n                      (*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x69c0,0x80e,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x7818);" (assignment_expression "iVar3 = (**(code **)(pcStack_830 + -0x7290))\n                      (*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x69c0,0x80e,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x7818)" identifier = (call_expression "(**(code **)(pcStack_830 + -0x7290))\n                      (*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x69c0,0x80e,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x7818)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x7290))" ( (pointer_expression "**(code **)(pcStack_830 + -0x7290)" * (pointer_expression "*(code **)(pcStack_830 + -0x7290)" * (cast_expression "(code **)(pcStack_830 + -0x7290)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x7290)" ( (binary_expression "pcStack_830 + -0x7290" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x69c0,0x80e,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x7818)" ( (binary_expression "*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c" (pointer_expression "*(int *)(pcStack_830 + -0x7fcc)" * (cast_expression "(int *)(pcStack_830 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_830 + -0x7fcc)" ( (binary_expression "pcStack_830 + -0x7fcc" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcStack_830 + -0x7fcc) + 0x69c0" (pointer_expression "*(int *)(pcStack_830 + -0x7fcc)" * (cast_expression "(int *)(pcStack_830 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_830 + -0x7fcc)" ( (binary_expression "pcStack_830 + -0x7fcc" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcStack_830 + -0x7fcc) + 0x7818" (pointer_expression "*(int *)(pcStack_830 + -0x7fcc)" * (cast_expression "(int *)(pcStack_830 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_830 + -0x7fcc)" ( (binary_expression "pcStack_830 + -0x7fcc" identifier + number_literal) )))) + number_literal) )))) ;) (return_statement "return iVar3;" return identifier ;) })) (expression_statement "ppiVar33 = ppiVar24 + 0x6e;" (assignment_expression "ppiVar33 = ppiVar24 + 0x6e" identifier = (binary_expression "ppiVar24 + 0x6e" identifier + number_literal)) ;) (expression_statement "(**(code **)(pcStack_830 + -0x6fc4))\n            (ppiVar24[0x7c],ppiVar24[0x7d],0x60,*(int *)(pcStack_830 + -0x7ea0) + 0x224c);" (call_expression "(**(code **)(pcStack_830 + -0x6fc4))\n            (ppiVar24[0x7c],ppiVar24[0x7d],0x60,*(int *)(pcStack_830 + -0x7ea0) + 0x224c)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x6fc4))" ( (pointer_expression "**(code **)(pcStack_830 + -0x6fc4)" * (pointer_expression "*(code **)(pcStack_830 + -0x6fc4)" * (cast_expression "(code **)(pcStack_830 + -0x6fc4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x6fc4)" ( (binary_expression "pcStack_830 + -0x6fc4" identifier + number_literal) ))))) )) (argument_list "(ppiVar24[0x7c],ppiVar24[0x7d],0x60,*(int *)(pcStack_830 + -0x7ea0) + 0x224c)" ( (subscript_expression "ppiVar24[0x7c]" identifier [ number_literal ]) , (subscript_expression "ppiVar24[0x7d]" identifier [ number_literal ]) , number_literal , (binary_expression "*(int *)(pcStack_830 + -0x7ea0) + 0x224c" (pointer_expression "*(int *)(pcStack_830 + -0x7ea0)" * (cast_expression "(int *)(pcStack_830 + -0x7ea0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_830 + -0x7ea0)" ( (binary_expression "pcStack_830 + -0x7ea0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "ppiVar34 = ppiVar24 + 0x74;" (assignment_expression "ppiVar34 = ppiVar24 + 0x74" identifier = (binary_expression "ppiVar24 + 0x74" identifier + number_literal)) ;) (expression_statement "dVar39 = (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) *\n           (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) +\n           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76)) *\n           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76));" (assignment_expression "dVar39 = (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) *\n           (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) +\n           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76)) *\n           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76))" identifier = (binary_expression "(*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) *\n           (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) +\n           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76)) *\n           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76))" (binary_expression "(*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) *\n           (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74))" (parenthesized_expression "(*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74))" ( (binary_expression "*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)" (pointer_expression "*(double *)(ppiVar24 + 0x78)" * (cast_expression "(double *)(ppiVar24 + 0x78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar24 + 0x78)" ( (binary_expression "ppiVar24 + 0x78" identifier + number_literal) )))) - (pointer_expression "*(double *)(ppiVar24 + 0x74)" * (cast_expression "(double *)(ppiVar24 + 0x74)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar24 + 0x74)" ( (binary_expression "ppiVar24 + 0x74" identifier + number_literal) ))))) )) * (parenthesized_expression "(*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74))" ( (binary_expression "*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)" (pointer_expression "*(double *)(ppiVar24 + 0x78)" * (cast_expression "(double *)(ppiVar24 + 0x78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar24 + 0x78)" ( (binary_expression "ppiVar24 + 0x78" identifier + number_literal) )))) - (pointer_expression "*(double *)(ppiVar24 + 0x74)" * (cast_expression "(double *)(ppiVar24 + 0x74)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar24 + 0x74)" ( (binary_expression "ppiVar24 + 0x74" identifier + number_literal) ))))) ))) + (binary_expression "(*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76)) *\n           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76))" (parenthesized_expression "(*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76))" ( (binary_expression "*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76)" (pointer_expression "*(double *)(ppiVar24 + 0x7a)" * (cast_expression "(double *)(ppiVar24 + 0x7a)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar24 + 0x7a)" ( (binary_expression "ppiVar24 + 0x7a" identifier + number_literal) )))) - (pointer_expression "*(double *)(ppiVar24 + 0x76)" * (cast_expression "(double *)(ppiVar24 + 0x76)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar24 + 0x76)" ( (binary_expression "ppiVar24 + 0x76" identifier + number_literal) ))))) )) * (parenthesized_expression "(*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76))" ( (binary_expression "*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76)" (pointer_expression "*(double *)(ppiVar24 + 0x7a)" * (cast_expression "(double *)(ppiVar24 + 0x7a)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar24 + 0x7a)" ( (binary_expression "ppiVar24 + 0x7a" identifier + number_literal) )))) - (pointer_expression "*(double *)(ppiVar24 + 0x76)" * (cast_expression "(double *)(ppiVar24 + 0x76)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar24 + 0x76)" ( (binary_expression "ppiVar24 + 0x76" identifier + number_literal) ))))) ))))) ;) (expression_statement "dVar41 = SQRT(dVar39);" (assignment_expression "dVar41 = SQRT(dVar39)" identifier = (call_expression "SQRT(dVar39)" identifier (argument_list "(dVar39)" ( identifier )))) ;) (if_statement "if (0.0 <= dVar39) {\n    piStack_828 = ppiVar24[0x6f];\n  }\n  else {\n    (**(code **)(pcStack_830 + -0x7418))();\n    piStack_828 = ppiVar24[0x6f];\n  }" if (parenthesized_expression "(0.0 <= dVar39)" ( (binary_expression "0.0 <= dVar39" number_literal <= identifier) )) (compound_statement "{\n    piStack_828 = ppiVar24[0x6f];\n  }" { (expression_statement "piStack_828 = ppiVar24[0x6f];" (assignment_expression "piStack_828 = ppiVar24[0x6f]" identifier = (subscript_expression "ppiVar24[0x6f]" identifier [ number_literal ])) ;) }) (else_clause "else {\n    (**(code **)(pcStack_830 + -0x7418))();\n    piStack_828 = ppiVar24[0x6f];\n  }" else (compound_statement "{\n    (**(code **)(pcStack_830 + -0x7418))();\n    piStack_828 = ppiVar24[0x6f];\n  }" { (expression_statement "(**(code **)(pcStack_830 + -0x7418))();" (call_expression "(**(code **)(pcStack_830 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_830 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_830 + -0x7418)" * (pointer_expression "*(code **)(pcStack_830 + -0x7418)" * (cast_expression "(code **)(pcStack_830 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x7418)" ( (binary_expression "pcStack_830 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "piStack_828 = ppiVar24[0x6f];" (assignment_expression "piStack_828 = ppiVar24[0x6f]" identifier = (subscript_expression "ppiVar24[0x6f]" identifier [ number_literal ])) ;) }))) (expression_statement "piStack_824 = ppiVar24[0x70];" (assignment_expression "piStack_824 = ppiVar24[0x70]" identifier = (subscript_expression "ppiVar24[0x70]" identifier [ number_literal ])) ;) (expression_statement "piStack_820 = ppiVar24[0x71];" (assignment_expression "piStack_820 = ppiVar24[0x71]" identifier = (subscript_expression "ppiVar24[0x71]" identifier [ number_literal ])) ;) (expression_statement "piStack_81c = ppiVar24[0x72];" (assignment_expression "piStack_81c = ppiVar24[0x72]" identifier = (subscript_expression "ppiVar24[0x72]" identifier [ number_literal ])) ;) (expression_statement "(**(code **)(pcStack_830 + -0x75e4))(iVar10,auStack_7f0);" (call_expression "(**(code **)(pcStack_830 + -0x75e4))(iVar10,auStack_7f0)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x75e4))" ( (pointer_expression "**(code **)(pcStack_830 + -0x75e4)" * (pointer_expression "*(code **)(pcStack_830 + -0x75e4)" * (cast_expression "(code **)(pcStack_830 + -0x75e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x75e4)" ( (binary_expression "pcStack_830 + -0x75e4" identifier + number_literal) ))))) )) (argument_list "(iVar10,auStack_7f0)" ( identifier , identifier ))) ;) (expression_statement "uVar4 = (**(code **)(pcStack_830 + -0x79c4))(iVar10,pdVar29);" (assignment_expression "uVar4 = (**(code **)(pcStack_830 + -0x79c4))(iVar10,pdVar29)" identifier = (call_expression "(**(code **)(pcStack_830 + -0x79c4))(iVar10,pdVar29)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x79c4))" ( (pointer_expression "**(code **)(pcStack_830 + -0x79c4)" * (pointer_expression "*(code **)(pcStack_830 + -0x79c4)" * (cast_expression "(code **)(pcStack_830 + -0x79c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x79c4)" ( (binary_expression "pcStack_830 + -0x79c4" identifier + number_literal) ))))) )) (argument_list "(iVar10,pdVar29)" ( identifier , identifier )))) ;) (expression_statement "iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10);" (assignment_expression "iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10)" identifier = (call_expression "(**(code **)(pcStack_830 + -0x73e4))(iVar10)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x73e4))" ( (pointer_expression "**(code **)(pcStack_830 + -0x73e4)" * (pointer_expression "*(code **)(pcStack_830 + -0x73e4)" * (cast_expression "(code **)(pcStack_830 + -0x73e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x73e4)" ( (binary_expression "pcStack_830 + -0x73e4" identifier + number_literal) ))))) )) (argument_list "(iVar10)" ( identifier )))) ;) (if_statement "if ((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 == 3)) {\n    iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10);\n    if ((iVar3 != 4) && (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 != 3))\n    goto LAB_000a7bf4;\n    (**(code **)(pcStack_830 + -0x775c))(7);\n    iVar49 = (int)piStack_824 - (int)piStack_81c;\n    iVar3 = iVar49;\n    if (iVar49 < 0) {\n      iVar3 = iVar49 + 0x3f;\n    }\n    if (extraout_v1_04 < iVar3 >> 6) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = iVar49 < 0x80;\n    }\n    iVar3 = 1;\n    dStack_818 = dVar41;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = (int)piStack_824 - (int)piStack_81c;\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      iVar3 = iVar3 >> 6;\n      dStack_818 = dVar41;\n      if (extraout_v1_07 < iVar3) {\n        (**(code **)(pcStack_830 + -0x775c))(7);\n        iVar3 = extraout_v1_08;\n        dStack_818 = dVar41;\n      }\n    }\n  }\n  else {\nLAB_000a7bf4:\n    uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n      if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a7c10;\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n      if ((uint)uVar51 < 2) {\n        iVar3 = 1;\n        dStack_818 = dVar41;\n        goto LAB_000a7c30;\n      }\n    }\n    else {\nLAB_000a7c10:\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n    }\n    uVar51 = (*pcVar37)(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = extraout_v1_05;\n      dStack_818 = dVar41;\n    }\n    else {\n      iVar3 = 2;\n      dStack_818 = dVar41;\n    }\n  }" if (parenthesized_expression "((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 == 3))" ( (binary_expression "(iVar3 == 4) || (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 == 3)" (parenthesized_expression "(iVar3 == 4)" ( (binary_expression "iVar3 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 == 3)" ( (comma_expression "iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 == 3" (assignment_expression "iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10)" identifier = (call_expression "(**(code **)(pcStack_830 + -0x73e4))(iVar10)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x73e4))" ( (pointer_expression "**(code **)(pcStack_830 + -0x73e4)" * (pointer_expression "*(code **)(pcStack_830 + -0x73e4)" * (cast_expression "(code **)(pcStack_830 + -0x73e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x73e4)" ( (binary_expression "pcStack_830 + -0x73e4" identifier + number_literal) ))))) )) (argument_list "(iVar10)" ( identifier )))) , (binary_expression "iVar3 == 3" identifier == number_literal)) ))) )) (compound_statement "{\n    iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10);\n    if ((iVar3 != 4) && (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 != 3))\n    goto LAB_000a7bf4;\n    (**(code **)(pcStack_830 + -0x775c))(7);\n    iVar49 = (int)piStack_824 - (int)piStack_81c;\n    iVar3 = iVar49;\n    if (iVar49 < 0) {\n      iVar3 = iVar49 + 0x3f;\n    }\n    if (extraout_v1_04 < iVar3 >> 6) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = iVar49 < 0x80;\n    }\n    iVar3 = 1;\n    dStack_818 = dVar41;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = (int)piStack_824 - (int)piStack_81c;\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      iVar3 = iVar3 >> 6;\n      dStack_818 = dVar41;\n      if (extraout_v1_07 < iVar3) {\n        (**(code **)(pcStack_830 + -0x775c))(7);\n        iVar3 = extraout_v1_08;\n        dStack_818 = dVar41;\n      }\n    }\n  }" { (expression_statement "iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10);" (assignment_expression "iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10)" identifier = (call_expression "(**(code **)(pcStack_830 + -0x73e4))(iVar10)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x73e4))" ( (pointer_expression "**(code **)(pcStack_830 + -0x73e4)" * (pointer_expression "*(code **)(pcStack_830 + -0x73e4)" * (cast_expression "(code **)(pcStack_830 + -0x73e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x73e4)" ( (binary_expression "pcStack_830 + -0x73e4" identifier + number_literal) ))))) )) (argument_list "(iVar10)" ( identifier )))) ;) (if_statement "if ((iVar3 != 4) && (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 != 3))\n    goto LAB_000a7bf4;" if (parenthesized_expression "((iVar3 != 4) && (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 != 3))" ( (binary_expression "(iVar3 != 4) && (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 != 3)" (parenthesized_expression "(iVar3 != 4)" ( (binary_expression "iVar3 != 4" identifier != number_literal) )) && (parenthesized_expression "(iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 != 3)" ( (comma_expression "iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 != 3" (assignment_expression "iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10)" identifier = (call_expression "(**(code **)(pcStack_830 + -0x73e4))(iVar10)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x73e4))" ( (pointer_expression "**(code **)(pcStack_830 + -0x73e4)" * (pointer_expression "*(code **)(pcStack_830 + -0x73e4)" * (cast_expression "(code **)(pcStack_830 + -0x73e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x73e4)" ( (binary_expression "pcStack_830 + -0x73e4" identifier + number_literal) ))))) )) (argument_list "(iVar10)" ( identifier )))) , (binary_expression "iVar3 != 3" identifier != number_literal)) ))) )) (goto_statement "goto LAB_000a7bf4;" goto statement_identifier ;)) (expression_statement "(**(code **)(pcStack_830 + -0x775c))(7);" (call_expression "(**(code **)(pcStack_830 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_830 + -0x775c)" * (pointer_expression "*(code **)(pcStack_830 + -0x775c)" * (cast_expression "(code **)(pcStack_830 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x775c)" ( (binary_expression "pcStack_830 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "iVar49 = (int)piStack_824 - (int)piStack_81c;" (assignment_expression "iVar49 = (int)piStack_824 - (int)piStack_81c" identifier = (binary_expression "(int)piStack_824 - (int)piStack_81c" (cast_expression "(int)piStack_824" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piStack_81c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar3 = iVar49;" (assignment_expression "iVar3 = iVar49" identifier = identifier) ;) (if_statement "if (iVar49 < 0) {\n      iVar3 = iVar49 + 0x3f;\n    }" if (parenthesized_expression "(iVar49 < 0)" ( (binary_expression "iVar49 < 0" identifier < number_literal) )) (compound_statement "{\n      iVar3 = iVar49 + 0x3f;\n    }" { (expression_statement "iVar3 = iVar49 + 0x3f;" (assignment_expression "iVar3 = iVar49 + 0x3f" identifier = (binary_expression "iVar49 + 0x3f" identifier + number_literal)) ;) })) (if_statement "if (extraout_v1_04 < iVar3 >> 6) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = iVar49 < 0x80;\n    }" if (parenthesized_expression "(extraout_v1_04 < iVar3 >> 6)" ( (binary_expression "extraout_v1_04 < iVar3 >> 6" identifier < (binary_expression "iVar3 >> 6" identifier >> number_literal)) )) (compound_statement "{\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }" { (expression_statement "(**(code **)(pcStack_830 + -0x775c))(7);" (call_expression "(**(code **)(pcStack_830 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_830 + -0x775c)" * (pointer_expression "*(code **)(pcStack_830 + -0x775c)" * (cast_expression "(code **)(pcStack_830 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x775c)" ( (binary_expression "pcStack_830 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "bVar1 = extraout_v1_06 < 2;" (assignment_expression "bVar1 = extraout_v1_06 < 2" identifier = (binary_expression "extraout_v1_06 < 2" identifier < number_literal)) ;) }) (else_clause "else {\n      bVar1 = iVar49 < 0x80;\n    }" else (compound_statement "{\n      bVar1 = iVar49 < 0x80;\n    }" { (expression_statement "bVar1 = iVar49 < 0x80;" (assignment_expression "bVar1 = iVar49 < 0x80" identifier = (binary_expression "iVar49 < 0x80" identifier < number_literal)) ;) }))) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (expression_statement "dStack_818 = dVar41;" (assignment_expression "dStack_818 = dVar41" identifier = identifier) ;) (if_statement "if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = (int)piStack_824 - (int)piStack_81c;\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      iVar3 = iVar3 >> 6;\n      dStack_818 = dVar41;\n      if (extraout_v1_07 < iVar3) {\n        (**(code **)(pcStack_830 + -0x775c))(7);\n        iVar3 = extraout_v1_08;\n        dStack_818 = dVar41;\n      }\n    }" if (parenthesized_expression "((bool)(bVar1 ^ 1))" ( (cast_expression "(bool)(bVar1 ^ 1)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar1 ^ 1)" ( (binary_expression "bVar1 ^ 1" identifier ^ number_literal) ))) )) (compound_statement "{\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = (int)piStack_824 - (int)piStack_81c;\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      iVar3 = iVar3 >> 6;\n      dStack_818 = dVar41;\n      if (extraout_v1_07 < iVar3) {\n        (**(code **)(pcStack_830 + -0x775c))(7);\n        iVar3 = extraout_v1_08;\n        dStack_818 = dVar41;\n      }\n    }" { (expression_statement "(**(code **)(pcStack_830 + -0x775c))(7);" (call_expression "(**(code **)(pcStack_830 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_830 + -0x775c)" * (pointer_expression "*(code **)(pcStack_830 + -0x775c)" * (cast_expression "(code **)(pcStack_830 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x775c)" ( (binary_expression "pcStack_830 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "iVar3 = (int)piStack_824 - (int)piStack_81c;" (assignment_expression "iVar3 = (int)piStack_824 - (int)piStack_81c" identifier = (binary_expression "(int)piStack_824 - (int)piStack_81c" (cast_expression "(int)piStack_824" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piStack_81c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n        iVar3 = iVar3 + 0x3f;\n      }" { (expression_statement "iVar3 = iVar3 + 0x3f;" (assignment_expression "iVar3 = iVar3 + 0x3f" identifier = (binary_expression "iVar3 + 0x3f" identifier + number_literal)) ;) })) (expression_statement "iVar3 = iVar3 >> 6;" (assignment_expression "iVar3 = iVar3 >> 6" identifier = (binary_expression "iVar3 >> 6" identifier >> number_literal)) ;) (expression_statement "dStack_818 = dVar41;" (assignment_expression "dStack_818 = dVar41" identifier = identifier) ;) (if_statement "if (extraout_v1_07 < iVar3) {\n        (**(code **)(pcStack_830 + -0x775c))(7);\n        iVar3 = extraout_v1_08;\n        dStack_818 = dVar41;\n      }" if (parenthesized_expression "(extraout_v1_07 < iVar3)" ( (binary_expression "extraout_v1_07 < iVar3" identifier < identifier) )) (compound_statement "{\n        (**(code **)(pcStack_830 + -0x775c))(7);\n        iVar3 = extraout_v1_08;\n        dStack_818 = dVar41;\n      }" { (expression_statement "(**(code **)(pcStack_830 + -0x775c))(7);" (call_expression "(**(code **)(pcStack_830 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_830 + -0x775c)" * (pointer_expression "*(code **)(pcStack_830 + -0x775c)" * (cast_expression "(code **)(pcStack_830 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x775c)" ( (binary_expression "pcStack_830 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "iVar3 = extraout_v1_08;" (assignment_expression "iVar3 = extraout_v1_08" identifier = identifier) ;) (expression_statement "dStack_818 = dVar41;" (assignment_expression "dStack_818 = dVar41" identifier = identifier) ;) })) })) }) (else_clause "else {\nLAB_000a7bf4:\n    uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n      if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a7c10;\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n      if ((uint)uVar51 < 2) {\n        iVar3 = 1;\n        dStack_818 = dVar41;\n        goto LAB_000a7c30;\n      }\n    }\n    else {\nLAB_000a7c10:\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n    }\n    uVar51 = (*pcVar37)(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = extraout_v1_05;\n      dStack_818 = dVar41;\n    }\n    else {\n      iVar3 = 2;\n      dStack_818 = dVar41;\n    }\n  }" else (compound_statement "{\nLAB_000a7bf4:\n    uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n      if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a7c10;\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n      if ((uint)uVar51 < 2) {\n        iVar3 = 1;\n        dStack_818 = dVar41;\n        goto LAB_000a7c30;\n      }\n    }\n    else {\nLAB_000a7c10:\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n    }\n    uVar51 = (*pcVar37)(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = extraout_v1_05;\n      dStack_818 = dVar41;\n    }\n    else {\n      iVar3 = 2;\n      dStack_818 = dVar41;\n    }\n  }" { (labeled_statement "LAB_000a7bf4:\n    uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);" statement_identifier : (expression_statement "uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);" (assignment_expression "uVar51 = (**(code **)(pcStack_830 + -0x775c))(7)" identifier = (call_expression "(**(code **)(pcStack_830 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_830 + -0x775c)" * (pointer_expression "*(code **)(pcStack_830 + -0x775c)" * (cast_expression "(code **)(pcStack_830 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x775c)" ( (binary_expression "pcStack_830 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal )))) ;)) (if_statement "if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n      if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a7c10;\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n      if ((uint)uVar51 < 2) {\n        iVar3 = 1;\n        dStack_818 = dVar41;\n        goto LAB_000a7c30;\n      }\n    }\n    else {\nLAB_000a7c10:\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n    }" if (parenthesized_expression "(((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2))" ( (binary_expression "((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)" (parenthesized_expression "((int)((ulonglong)uVar51 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar51 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar51 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar51 >> 0x20)" ( (binary_expression "(ulonglong)uVar51 >> 0x20" (cast_expression "(ulonglong)uVar51" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "((uint)uVar51 < 2)" ( (binary_expression "(uint)uVar51 < 2" (cast_expression "(uint)uVar51" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) ))) )) (compound_statement "{\n      uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n      if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a7c10;\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n      if ((uint)uVar51 < 2) {\n        iVar3 = 1;\n        dStack_818 = dVar41;\n        goto LAB_000a7c30;\n      }\n    }" { (expression_statement "uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);" (assignment_expression "uVar51 = (**(code **)(pcStack_830 + -0x775c))(7)" identifier = (call_expression "(**(code **)(pcStack_830 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_830 + -0x775c)" * (pointer_expression "*(code **)(pcStack_830 + -0x775c)" * (cast_expression "(code **)(pcStack_830 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x775c)" ( (binary_expression "pcStack_830 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a7c10;" if (parenthesized_expression "((int)((ulonglong)uVar51 >> 0x20) != 0)" ( (binary_expression "(int)((ulonglong)uVar51 >> 0x20) != 0" (cast_expression "(int)((ulonglong)uVar51 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar51 >> 0x20)" ( (binary_expression "(ulonglong)uVar51 >> 0x20" (cast_expression "(ulonglong)uVar51" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) != number_literal) )) (goto_statement "goto LAB_000a7c10;" goto statement_identifier ;)) (expression_statement "pcVar37 = *(code **)(pcStack_830 + -0x775c);" (assignment_expression "pcVar37 = *(code **)(pcStack_830 + -0x775c)" identifier = (pointer_expression "*(code **)(pcStack_830 + -0x775c)" * (cast_expression "(code **)(pcStack_830 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x775c)" ( (binary_expression "pcStack_830 + -0x775c" identifier + number_literal) ))))) ;) (if_statement "if ((uint)uVar51 < 2) {\n        iVar3 = 1;\n        dStack_818 = dVar41;\n        goto LAB_000a7c30;\n      }" if (parenthesized_expression "((uint)uVar51 < 2)" ( (binary_expression "(uint)uVar51 < 2" (cast_expression "(uint)uVar51" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n        iVar3 = 1;\n        dStack_818 = dVar41;\n        goto LAB_000a7c30;\n      }" { (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (expression_statement "dStack_818 = dVar41;" (assignment_expression "dStack_818 = dVar41" identifier = identifier) ;) (goto_statement "goto LAB_000a7c30;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_000a7c10:\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n    }" else (compound_statement "{\nLAB_000a7c10:\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n    }" { (labeled_statement "LAB_000a7c10:\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);" statement_identifier : (expression_statement "pcVar37 = *(code **)(pcStack_830 + -0x775c);" (assignment_expression "pcVar37 = *(code **)(pcStack_830 + -0x775c)" identifier = (pointer_expression "*(code **)(pcStack_830 + -0x775c)" * (cast_expression "(code **)(pcStack_830 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x775c)" ( (binary_expression "pcStack_830 + -0x775c" identifier + number_literal) ))))) ;)) }))) (expression_statement "uVar51 = (*pcVar37)(7);" (assignment_expression "uVar51 = (*pcVar37)(7)" identifier = (call_expression "(*pcVar37)(7)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = extraout_v1_05;\n      dStack_818 = dVar41;\n    }\n    else {\n      iVar3 = 2;\n      dStack_818 = dVar41;\n    }" if (parenthesized_expression "(((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2))" ( (binary_expression "((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)" (parenthesized_expression "((int)((ulonglong)uVar51 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar51 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar51 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar51 >> 0x20)" ( (binary_expression "(ulonglong)uVar51 >> 0x20" (cast_expression "(ulonglong)uVar51" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "((uint)uVar51 < 2)" ( (binary_expression "(uint)uVar51 < 2" (cast_expression "(uint)uVar51" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) ))) )) (compound_statement "{\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = extraout_v1_05;\n      dStack_818 = dVar41;\n    }" { (expression_statement "(**(code **)(pcStack_830 + -0x775c))(7);" (call_expression "(**(code **)(pcStack_830 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_830 + -0x775c)" * (pointer_expression "*(code **)(pcStack_830 + -0x775c)" * (cast_expression "(code **)(pcStack_830 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x775c)" ( (binary_expression "pcStack_830 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "iVar3 = extraout_v1_05;" (assignment_expression "iVar3 = extraout_v1_05" identifier = identifier) ;) (expression_statement "dStack_818 = dVar41;" (assignment_expression "dStack_818 = dVar41" identifier = identifier) ;) }) (else_clause "else {\n      iVar3 = 2;\n      dStack_818 = dVar41;\n    }" else (compound_statement "{\n      iVar3 = 2;\n      dStack_818 = dVar41;\n    }" { (expression_statement "iVar3 = 2;" (assignment_expression "iVar3 = 2" identifier = number_literal) ;) (expression_statement "dStack_818 = dVar41;" (assignment_expression "dStack_818 = dVar41" identifier = identifier) ;) }))) }))) (labeled_statement "LAB_000a7c30:\n  puStack_7fc = auStack_7f0;" statement_identifier : (expression_statement "puStack_7fc = auStack_7f0;" (assignment_expression "puStack_7fc = auStack_7f0" identifier = identifier) ;)) (expression_statement "ppiStack_7f8 = &piStack_828;" (assignment_expression "ppiStack_7f8 = &piStack_828" identifier = (pointer_expression "&piStack_828" & identifier)) ;) (expression_statement "iStack_7f4 = 1;" (assignment_expression "iStack_7f4 = 1" identifier = number_literal) ;) (expression_statement "iStack_810 = iVar10;" (assignment_expression "iStack_810 = iVar10" identifier = identifier) ;) (expression_statement "pdStack_80c = pdVar29;" (assignment_expression "pdStack_80c = pdVar29" identifier = identifier) ;) (expression_statement "uStack_808 = uVar4;" (assignment_expression "uStack_808 = uVar4" identifier = identifier) ;) (expression_statement "ppiStack_804 = ppiVar33;" (assignment_expression "ppiStack_804 = ppiVar33" identifier = identifier) ;) (expression_statement "ppiStack_800 = ppiVar34;" (assignment_expression "ppiStack_800 = ppiVar34" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_830 + -0x7700))(*(int *)(pcStack_830 + -0x7ea0) + 0x549c,&dStack_818,iVar3,0)\n  ;" (call_expression "(**(code **)(pcStack_830 + -0x7700))(*(int *)(pcStack_830 + -0x7ea0) + 0x549c,&dStack_818,iVar3,0)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x7700))" ( (pointer_expression "**(code **)(pcStack_830 + -0x7700)" * (pointer_expression "*(code **)(pcStack_830 + -0x7700)" * (cast_expression "(code **)(pcStack_830 + -0x7700)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x7700)" ( (binary_expression "pcStack_830 + -0x7700" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_830 + -0x7ea0) + 0x549c,&dStack_818,iVar3,0)" ( (binary_expression "*(int *)(pcStack_830 + -0x7ea0) + 0x549c" (pointer_expression "*(int *)(pcStack_830 + -0x7ea0)" * (cast_expression "(int *)(pcStack_830 + -0x7ea0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_830 + -0x7ea0)" ( (binary_expression "pcStack_830 + -0x7ea0" identifier + number_literal) )))) + number_literal) , (pointer_expression "&dStack_818" & identifier) , identifier , number_literal ))) ;) (expression_statement "iVar3 = iStack_7f4;" (assignment_expression "iVar3 = iStack_7f4" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_830 + -0x79a4))(uVar4);" (call_expression "(**(code **)(pcStack_830 + -0x79a4))(uVar4)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x79a4))" ( (pointer_expression "**(code **)(pcStack_830 + -0x79a4)" * (pointer_expression "*(code **)(pcStack_830 + -0x79a4)" * (cast_expression "(code **)(pcStack_830 + -0x79a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x79a4)" ( (binary_expression "pcStack_830 + -0x79a4" identifier + number_literal) ))))) )) (argument_list "(uVar4)" ( identifier ))) ;) (if_statement "if (puStack_794 == (undefined8 *)**(int **)(pcStack_830 + -0x7668)) {\n    return iVar3;\n  }" if (parenthesized_expression "(puStack_794 == (undefined8 *)**(int **)(pcStack_830 + -0x7668))" ( (binary_expression "puStack_794 == (undefined8 *)**(int **)(pcStack_830 + -0x7668)" identifier == (cast_expression "(undefined8 *)**(int **)(pcStack_830 + -0x7668)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pcStack_830 + -0x7668)" * (pointer_expression "*(int **)(pcStack_830 + -0x7668)" * (cast_expression "(int **)(pcStack_830 + -0x7668)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x7668)" ( (binary_expression "pcStack_830 + -0x7668" identifier + number_literal) ))))))) )) (compound_statement "{\n    return iVar3;\n  }" { (return_statement "return iVar3;" return identifier ;) })) (expression_statement "pcVar37 = *(code **)(pcStack_830 + -0x7834);" (assignment_expression "pcVar37 = *(code **)(pcStack_830 + -0x7834)" identifier = (pointer_expression "*(code **)(pcStack_830 + -0x7834)" * (cast_expression "(code **)(pcStack_830 + -0x7834)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x7834)" ( (binary_expression "pcStack_830 + -0x7834" identifier + number_literal) ))))) ;) (expression_statement "pcVar38 = GetAffineMatrix;" (assignment_expression "pcVar38 = GetAffineMatrix" identifier = identifier) ;) (expression_statement "puVar20 = puStack_794;" (assignment_expression "puVar20 = puStack_794" identifier = identifier) ;) (expression_statement "(*pcVar37)();" (call_expression "(*pcVar37)()" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_858 = pcVar37 + 0x359994;" (assignment_expression "pcStack_858 = pcVar37 + 0x359994" identifier = (binary_expression "pcVar37 + 0x359994" identifier + number_literal)) ;) (expression_statement "iStack_860 = *(int *)(pcVar37 + 0x3519c8) + 0x10f4;" (assignment_expression "iStack_860 = *(int *)(pcVar37 + 0x3519c8) + 0x10f4" identifier = (binary_expression "*(int *)(pcVar37 + 0x3519c8) + 0x10f4" (pointer_expression "*(int *)(pcVar37 + 0x3519c8)" * (cast_expression "(int *)(pcVar37 + 0x3519c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x3519c8)" ( (binary_expression "pcVar37 + 0x3519c8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "uStack_850 = uVar4;" (assignment_expression "uStack_850 = uVar4" identifier = identifier) ;) (expression_statement "pcStack_84c = pcVar38;" (assignment_expression "pcStack_84c = pcVar38" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar37 + 0x3522dc))\n            (0x8000,*(int *)(pcVar37 + 0x3519c8) + 0x69c0,*(int *)(pcVar37 + 0x3519c8) + 0x76b0,\n             0x16d2);" (call_expression "(**(code **)(pcVar37 + 0x3522dc))\n            (0x8000,*(int *)(pcVar37 + 0x3519c8) + 0x69c0,*(int *)(pcVar37 + 0x3519c8) + 0x76b0,\n             0x16d2)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3522dc))" ( (pointer_expression "**(code **)(pcVar37 + 0x3522dc)" * (pointer_expression "*(code **)(pcVar37 + 0x3522dc)" * (cast_expression "(code **)(pcVar37 + 0x3522dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3522dc)" ( (binary_expression "pcVar37 + 0x3522dc" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(pcVar37 + 0x3519c8) + 0x69c0,*(int *)(pcVar37 + 0x3519c8) + 0x76b0,\n             0x16d2)" ( number_literal , (binary_expression "*(int *)(pcVar37 + 0x3519c8) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + 0x3519c8)" * (cast_expression "(int *)(pcVar37 + 0x3519c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x3519c8)" ( (binary_expression "pcVar37 + 0x3519c8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar37 + 0x3519c8) + 0x76b0" (pointer_expression "*(int *)(pcVar37 + 0x3519c8)" * (cast_expression "(int *)(pcVar37 + 0x3519c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x3519c8)" ( (binary_expression "pcVar37 + 0x3519c8" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) (if_statement "if (puVar20 != (undefined8 *)0x0) {\n    (**(code **)(pcStack_858 + -0x71c4))(puVar20 + 1,0,0x28);\n    iVar3 = *(int *)(pcStack_858 + -0x7fd0);\n    uVar51 = *(undefined8 *)(iVar3 + 0x4408);\n    *puVar20 = uVar51;\n    puVar20[3] = uVar51;\n    return iVar3;\n  }" if (parenthesized_expression "(puVar20 != (undefined8 *)0x0)" ( (binary_expression "puVar20 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(pcStack_858 + -0x71c4))(puVar20 + 1,0,0x28);\n    iVar3 = *(int *)(pcStack_858 + -0x7fd0);\n    uVar51 = *(undefined8 *)(iVar3 + 0x4408);\n    *puVar20 = uVar51;\n    puVar20[3] = uVar51;\n    return iVar3;\n  }" { (expression_statement "(**(code **)(pcStack_858 + -0x71c4))(puVar20 + 1,0,0x28);" (call_expression "(**(code **)(pcStack_858 + -0x71c4))(puVar20 + 1,0,0x28)" (parenthesized_expression "(**(code **)(pcStack_858 + -0x71c4))" ( (pointer_expression "**(code **)(pcStack_858 + -0x71c4)" * (pointer_expression "*(code **)(pcStack_858 + -0x71c4)" * (cast_expression "(code **)(pcStack_858 + -0x71c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_858 + -0x71c4)" ( (binary_expression "pcStack_858 + -0x71c4" identifier + number_literal) ))))) )) (argument_list "(puVar20 + 1,0,0x28)" ( (binary_expression "puVar20 + 1" identifier + number_literal) , number_literal , number_literal ))) ;) (expression_statement "iVar3 = *(int *)(pcStack_858 + -0x7fd0);" (assignment_expression "iVar3 = *(int *)(pcStack_858 + -0x7fd0)" identifier = (pointer_expression "*(int *)(pcStack_858 + -0x7fd0)" * (cast_expression "(int *)(pcStack_858 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_858 + -0x7fd0)" ( (binary_expression "pcStack_858 + -0x7fd0" identifier + number_literal) ))))) ;) (expression_statement "uVar51 = *(undefined8 *)(iVar3 + 0x4408);" (assignment_expression "uVar51 = *(undefined8 *)(iVar3 + 0x4408)" identifier = (pointer_expression "*(undefined8 *)(iVar3 + 0x4408)" * (cast_expression "(undefined8 *)(iVar3 + 0x4408)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x4408)" ( (binary_expression "iVar3 + 0x4408" identifier + number_literal) ))))) ;) (expression_statement "*puVar20 = uVar51;" (assignment_expression "*puVar20 = uVar51" (pointer_expression "*puVar20" * identifier) = identifier) ;) (expression_statement "puVar20[3] = uVar51;" (assignment_expression "puVar20[3] = uVar51" (subscript_expression "puVar20[3]" identifier [ number_literal ]) = identifier) ;) (return_statement "return iVar3;" return identifier ;) })) (expression_statement "iVar49 = *(int *)(pcStack_858 + -0x7fcc) + 0x69c0;" (assignment_expression "iVar49 = *(int *)(pcStack_858 + -0x7fcc) + 0x69c0" identifier = (binary_expression "*(int *)(pcStack_858 + -0x7fcc) + 0x69c0" (pointer_expression "*(int *)(pcStack_858 + -0x7fcc)" * (cast_expression "(int *)(pcStack_858 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_858 + -0x7fcc)" ( (binary_expression "pcStack_858 + -0x7fcc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar10 = *(int *)(pcStack_858 + -0x7fcc) + 0x6368;" (assignment_expression "iVar10 = *(int *)(pcStack_858 + -0x7fcc) + 0x6368" identifier = (binary_expression "*(int *)(pcStack_858 + -0x7fcc) + 0x6368" (pointer_expression "*(int *)(pcStack_858 + -0x7fcc)" * (cast_expression "(int *)(pcStack_858 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_858 + -0x7fcc)" ( (binary_expression "pcStack_858 + -0x7fcc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pcVar37 = *(code **)(pcStack_858 + -0x7290);" (assignment_expression "pcVar37 = *(code **)(pcStack_858 + -0x7290)" identifier = (pointer_expression "*(code **)(pcStack_858 + -0x7290)" * (cast_expression "(code **)(pcStack_858 + -0x7290)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_858 + -0x7290)" ( (binary_expression "pcStack_858 + -0x7290" identifier + number_literal) ))))) ;) (expression_statement "pcVar38 = GetDrawInfo;" (assignment_expression "pcVar38 = GetDrawInfo" identifier = identifier) ;) (expression_statement "(*pcVar37)(iVar10,iVar49,0x16d3,*(int *)(pcStack_858 + -0x7fcc) + 0x76a0);" (call_expression "(*pcVar37)(iVar10,iVar49,0x16d3,*(int *)(pcStack_858 + -0x7fcc) + 0x76a0)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(iVar10,iVar49,0x16d3,*(int *)(pcStack_858 + -0x7fcc) + 0x76a0)" ( identifier , identifier , number_literal , (binary_expression "*(int *)(pcStack_858 + -0x7fcc) + 0x76a0" (pointer_expression "*(int *)(pcStack_858 + -0x7fcc)" * (cast_expression "(int *)(pcStack_858 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_858 + -0x7fcc)" ( (binary_expression "pcStack_858 + -0x7fcc" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iStack_888 = iVar3;" (assignment_expression "iStack_888 = iVar3" identifier = identifier) ;) (expression_statement "iStack_894 = **(int **)(pcVar37 + 0x352270);" (assignment_expression "iStack_894 = **(int **)(pcVar37 + 0x352270)" identifier = (pointer_expression "**(int **)(pcVar37 + 0x352270)" * (pointer_expression "*(int **)(pcVar37 + 0x352270)" * (cast_expression "(int **)(pcVar37 + 0x352270)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x352270)" ( (binary_expression "pcVar37 + 0x352270" identifier + number_literal) )))))) ;) (expression_statement "puStack_88c = puVar20;" (assignment_expression "puStack_88c = puVar20" identifier = identifier) ;) (expression_statement "pdStack_884 = pdVar29;" (assignment_expression "pdStack_884 = pdVar29" identifier = identifier) ;) (expression_statement "ppiStack_880 = ppiVar33;" (assignment_expression "ppiStack_880 = ppiVar33" identifier = identifier) ;) (expression_statement "ppiStack_87c = ppiVar34;" (assignment_expression "ppiStack_87c = ppiVar34" identifier = identifier) ;) (expression_statement "puStack_878 = puVar35;" (assignment_expression "puStack_878 = puVar35" identifier = identifier) ;) (expression_statement "pcStack_874 = pcVar38;" (assignment_expression "pcStack_874 = pcVar38" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar37 + 0x352220))\n            (0x8000,*(int *)(pcVar37 + 0x35190c) + 0x69c0,*(int *)(pcVar37 + 0x35190c) + 0x7694,\n             0x1702,*(int *)(pcVar37 + 0x35190c) + 0x10f4);" (call_expression "(**(code **)(pcVar37 + 0x352220))\n            (0x8000,*(int *)(pcVar37 + 0x35190c) + 0x69c0,*(int *)(pcVar37 + 0x35190c) + 0x7694,\n             0x1702,*(int *)(pcVar37 + 0x35190c) + 0x10f4)" (parenthesized_expression "(**(code **)(pcVar37 + 0x352220))" ( (pointer_expression "**(code **)(pcVar37 + 0x352220)" * (pointer_expression "*(code **)(pcVar37 + 0x352220)" * (cast_expression "(code **)(pcVar37 + 0x352220)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x352220)" ( (binary_expression "pcVar37 + 0x352220" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(pcVar37 + 0x35190c) + 0x69c0,*(int *)(pcVar37 + 0x35190c) + 0x7694,\n             0x1702,*(int *)(pcVar37 + 0x35190c) + 0x10f4)" ( number_literal , (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x7694" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x10f4" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (iVar49 == 0) {\n    (**(code **)(pcVar37 + 0x352648))\n              (*(int *)(pcVar37 + 0x351908) + 0x40e4,*(int *)(pcVar37 + 0x35190c) + 0x69c0,0x1703,\n               *(int *)(pcVar37 + 0x35190c) + 0x7688);\n  }\n  else {\n    (**(code **)(pcVar37 + 0x352714))(iVar49,0,0x3c0);\n    iVar10 = (**(code **)(pcVar37 + 0x3521dc))(iVar10);\n    (**(code **)(pcVar37 + 0x351e5c))(iVar49 + 0x18);\n    pdVar29 = (double *)(**(code **)(pcVar37 + 0x351f2c))();\n    ppiVar34 = (int **)(iVar49 + 0x48);\n    (**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar34,pdVar29);\n    ppiVar33 = (int **)(iVar49 + 0xa0);\n    (**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar33,pdVar29);\n    *(undefined4 *)(iVar49 + 0x238) = *(undefined4 *)(iVar10 + 0x14);\n    *(undefined8 *)(iVar49 + 0x1b0) = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4408);\n    *(undefined4 *)(iVar49 + 0x240) = 1;\n    *(undefined4 *)(iVar49 + 0x2cc) = *(undefined4 *)(*(int *)(pcVar37 + 0x351908) + 0x4aa8);\n    uVar51 = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4a48);\n    *(undefined8 *)(iVar49 + 0x398) = uVar51;\n    *(undefined8 *)(iVar49 + 0x3a0) = uVar51;\n    *(undefined4 *)(iVar49 + 0x244) = 1;\n    *(undefined4 *)(iVar49 + 0x248) = 1;\n    *(undefined4 *)(iVar49 + 0x24c) = 10;\n    *(undefined4 *)(iVar49 + 600) = 1;\n    *(undefined8 *)(iVar49 + 0x288) = *(undefined8 *)(*(int *)(pcVar37 + 0x35190c) + 0x7970);\n    *(undefined4 *)(iVar49 + 0x144) = 0;\n    *(undefined4 *)(iVar49 + 0x140) = 0;\n    *(undefined4 *)(iVar49 + 0x25c) = 0x36;\n    *(undefined4 *)(iVar49 + 0x2d0) = 1;\n    *(undefined4 *)(iVar49 + 0x3a8) = 0;\n    uVar4 = (**(code **)(pcVar37 + 0x3527e8))();\n    *(undefined4 *)(iVar49 + 0x38c) = uVar4;\n    if (*(int *)(iVar10 + 0x4c) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x264) = uVar4;\n    }\n    if (*(int *)(iVar10 + 0x54) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x290) = uVar4;\n    }\n    *(undefined4 *)(iVar49 + 0x23c) = *(undefined4 *)(iVar10 + 0x14);\n    uVar4 = *(undefined4 *)(iVar10 + 0x58);\n    if (*(double *)(*(int *)(pcVar37 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar10 + 0x58))) {\n      *(undefined4 *)(iVar49 + 0x28c) = *(undefined4 *)(iVar10 + 0x5c);\n      *(undefined4 *)(iVar49 + 0x288) = uVar4;\n    }\n    puVar13 = (undefined4 *)(iVar10 + 0x118);\n    puVar21 = (undefined4 *)(iVar49 + 0x150);\n    do {\n      puVar15 = puVar21;\n      puVar9 = puVar13;\n      uVar27 = puVar9[1];\n      uVar25 = puVar9[2];\n      uVar4 = puVar9[3];\n      *puVar15 = *puVar9;\n      puVar15[1] = uVar27;\n      puVar15[2] = uVar25;\n      puVar15[3] = uVar4;\n      puVar13 = puVar9 + 4;\n      puVar21 = puVar15 + 4;\n    } while (puVar13 != (undefined4 *)(iVar10 + 0x168));\n    uVar4 = puVar9[5];\n    puVar15[4] = *puVar13;\n    puVar15[5] = uVar4;\n    if (*(int *)(iVar10 + 0x48) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x29c) = uVar4;\n    }\n    iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ac4);\n    if (iVar3 != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x14,0,iVar3);\n      *(undefined4 *)(iVar49 + 0x388) = uVar4;\n      goto LAB_000a8298;\n    }\n  }" if (parenthesized_expression "(iVar49 == 0)" ( (binary_expression "iVar49 == 0" identifier == number_literal) )) (compound_statement "{\n    (**(code **)(pcVar37 + 0x352648))\n              (*(int *)(pcVar37 + 0x351908) + 0x40e4,*(int *)(pcVar37 + 0x35190c) + 0x69c0,0x1703,\n               *(int *)(pcVar37 + 0x35190c) + 0x7688);\n  }" { (expression_statement "(**(code **)(pcVar37 + 0x352648))\n              (*(int *)(pcVar37 + 0x351908) + 0x40e4,*(int *)(pcVar37 + 0x35190c) + 0x69c0,0x1703,\n               *(int *)(pcVar37 + 0x35190c) + 0x7688);" (call_expression "(**(code **)(pcVar37 + 0x352648))\n              (*(int *)(pcVar37 + 0x351908) + 0x40e4,*(int *)(pcVar37 + 0x35190c) + 0x69c0,0x1703,\n               *(int *)(pcVar37 + 0x35190c) + 0x7688)" (parenthesized_expression "(**(code **)(pcVar37 + 0x352648))" ( (pointer_expression "**(code **)(pcVar37 + 0x352648)" * (pointer_expression "*(code **)(pcVar37 + 0x352648)" * (cast_expression "(code **)(pcVar37 + 0x352648)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x352648)" ( (binary_expression "pcVar37 + 0x352648" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar37 + 0x351908) + 0x40e4,*(int *)(pcVar37 + 0x35190c) + 0x69c0,0x1703,\n               *(int *)(pcVar37 + 0x35190c) + 0x7688)" ( (binary_expression "*(int *)(pcVar37 + 0x351908) + 0x40e4" (pointer_expression "*(int *)(pcVar37 + 0x351908)" * (cast_expression "(int *)(pcVar37 + 0x351908)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x351908)" ( (binary_expression "pcVar37 + 0x351908" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x7688" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) ))) ;) }) (else_clause "else {\n    (**(code **)(pcVar37 + 0x352714))(iVar49,0,0x3c0);\n    iVar10 = (**(code **)(pcVar37 + 0x3521dc))(iVar10);\n    (**(code **)(pcVar37 + 0x351e5c))(iVar49 + 0x18);\n    pdVar29 = (double *)(**(code **)(pcVar37 + 0x351f2c))();\n    ppiVar34 = (int **)(iVar49 + 0x48);\n    (**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar34,pdVar29);\n    ppiVar33 = (int **)(iVar49 + 0xa0);\n    (**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar33,pdVar29);\n    *(undefined4 *)(iVar49 + 0x238) = *(undefined4 *)(iVar10 + 0x14);\n    *(undefined8 *)(iVar49 + 0x1b0) = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4408);\n    *(undefined4 *)(iVar49 + 0x240) = 1;\n    *(undefined4 *)(iVar49 + 0x2cc) = *(undefined4 *)(*(int *)(pcVar37 + 0x351908) + 0x4aa8);\n    uVar51 = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4a48);\n    *(undefined8 *)(iVar49 + 0x398) = uVar51;\n    *(undefined8 *)(iVar49 + 0x3a0) = uVar51;\n    *(undefined4 *)(iVar49 + 0x244) = 1;\n    *(undefined4 *)(iVar49 + 0x248) = 1;\n    *(undefined4 *)(iVar49 + 0x24c) = 10;\n    *(undefined4 *)(iVar49 + 600) = 1;\n    *(undefined8 *)(iVar49 + 0x288) = *(undefined8 *)(*(int *)(pcVar37 + 0x35190c) + 0x7970);\n    *(undefined4 *)(iVar49 + 0x144) = 0;\n    *(undefined4 *)(iVar49 + 0x140) = 0;\n    *(undefined4 *)(iVar49 + 0x25c) = 0x36;\n    *(undefined4 *)(iVar49 + 0x2d0) = 1;\n    *(undefined4 *)(iVar49 + 0x3a8) = 0;\n    uVar4 = (**(code **)(pcVar37 + 0x3527e8))();\n    *(undefined4 *)(iVar49 + 0x38c) = uVar4;\n    if (*(int *)(iVar10 + 0x4c) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x264) = uVar4;\n    }\n    if (*(int *)(iVar10 + 0x54) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x290) = uVar4;\n    }\n    *(undefined4 *)(iVar49 + 0x23c) = *(undefined4 *)(iVar10 + 0x14);\n    uVar4 = *(undefined4 *)(iVar10 + 0x58);\n    if (*(double *)(*(int *)(pcVar37 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar10 + 0x58))) {\n      *(undefined4 *)(iVar49 + 0x28c) = *(undefined4 *)(iVar10 + 0x5c);\n      *(undefined4 *)(iVar49 + 0x288) = uVar4;\n    }\n    puVar13 = (undefined4 *)(iVar10 + 0x118);\n    puVar21 = (undefined4 *)(iVar49 + 0x150);\n    do {\n      puVar15 = puVar21;\n      puVar9 = puVar13;\n      uVar27 = puVar9[1];\n      uVar25 = puVar9[2];\n      uVar4 = puVar9[3];\n      *puVar15 = *puVar9;\n      puVar15[1] = uVar27;\n      puVar15[2] = uVar25;\n      puVar15[3] = uVar4;\n      puVar13 = puVar9 + 4;\n      puVar21 = puVar15 + 4;\n    } while (puVar13 != (undefined4 *)(iVar10 + 0x168));\n    uVar4 = puVar9[5];\n    puVar15[4] = *puVar13;\n    puVar15[5] = uVar4;\n    if (*(int *)(iVar10 + 0x48) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x29c) = uVar4;\n    }\n    iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ac4);\n    if (iVar3 != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x14,0,iVar3);\n      *(undefined4 *)(iVar49 + 0x388) = uVar4;\n      goto LAB_000a8298;\n    }\n  }" else (compound_statement "{\n    (**(code **)(pcVar37 + 0x352714))(iVar49,0,0x3c0);\n    iVar10 = (**(code **)(pcVar37 + 0x3521dc))(iVar10);\n    (**(code **)(pcVar37 + 0x351e5c))(iVar49 + 0x18);\n    pdVar29 = (double *)(**(code **)(pcVar37 + 0x351f2c))();\n    ppiVar34 = (int **)(iVar49 + 0x48);\n    (**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar34,pdVar29);\n    ppiVar33 = (int **)(iVar49 + 0xa0);\n    (**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar33,pdVar29);\n    *(undefined4 *)(iVar49 + 0x238) = *(undefined4 *)(iVar10 + 0x14);\n    *(undefined8 *)(iVar49 + 0x1b0) = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4408);\n    *(undefined4 *)(iVar49 + 0x240) = 1;\n    *(undefined4 *)(iVar49 + 0x2cc) = *(undefined4 *)(*(int *)(pcVar37 + 0x351908) + 0x4aa8);\n    uVar51 = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4a48);\n    *(undefined8 *)(iVar49 + 0x398) = uVar51;\n    *(undefined8 *)(iVar49 + 0x3a0) = uVar51;\n    *(undefined4 *)(iVar49 + 0x244) = 1;\n    *(undefined4 *)(iVar49 + 0x248) = 1;\n    *(undefined4 *)(iVar49 + 0x24c) = 10;\n    *(undefined4 *)(iVar49 + 600) = 1;\n    *(undefined8 *)(iVar49 + 0x288) = *(undefined8 *)(*(int *)(pcVar37 + 0x35190c) + 0x7970);\n    *(undefined4 *)(iVar49 + 0x144) = 0;\n    *(undefined4 *)(iVar49 + 0x140) = 0;\n    *(undefined4 *)(iVar49 + 0x25c) = 0x36;\n    *(undefined4 *)(iVar49 + 0x2d0) = 1;\n    *(undefined4 *)(iVar49 + 0x3a8) = 0;\n    uVar4 = (**(code **)(pcVar37 + 0x3527e8))();\n    *(undefined4 *)(iVar49 + 0x38c) = uVar4;\n    if (*(int *)(iVar10 + 0x4c) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x264) = uVar4;\n    }\n    if (*(int *)(iVar10 + 0x54) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x290) = uVar4;\n    }\n    *(undefined4 *)(iVar49 + 0x23c) = *(undefined4 *)(iVar10 + 0x14);\n    uVar4 = *(undefined4 *)(iVar10 + 0x58);\n    if (*(double *)(*(int *)(pcVar37 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar10 + 0x58))) {\n      *(undefined4 *)(iVar49 + 0x28c) = *(undefined4 *)(iVar10 + 0x5c);\n      *(undefined4 *)(iVar49 + 0x288) = uVar4;\n    }\n    puVar13 = (undefined4 *)(iVar10 + 0x118);\n    puVar21 = (undefined4 *)(iVar49 + 0x150);\n    do {\n      puVar15 = puVar21;\n      puVar9 = puVar13;\n      uVar27 = puVar9[1];\n      uVar25 = puVar9[2];\n      uVar4 = puVar9[3];\n      *puVar15 = *puVar9;\n      puVar15[1] = uVar27;\n      puVar15[2] = uVar25;\n      puVar15[3] = uVar4;\n      puVar13 = puVar9 + 4;\n      puVar21 = puVar15 + 4;\n    } while (puVar13 != (undefined4 *)(iVar10 + 0x168));\n    uVar4 = puVar9[5];\n    puVar15[4] = *puVar13;\n    puVar15[5] = uVar4;\n    if (*(int *)(iVar10 + 0x48) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x29c) = uVar4;\n    }\n    iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ac4);\n    if (iVar3 != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x14,0,iVar3);\n      *(undefined4 *)(iVar49 + 0x388) = uVar4;\n      goto LAB_000a8298;\n    }\n  }" { (expression_statement "(**(code **)(pcVar37 + 0x352714))(iVar49,0,0x3c0);" (call_expression "(**(code **)(pcVar37 + 0x352714))(iVar49,0,0x3c0)" (parenthesized_expression "(**(code **)(pcVar37 + 0x352714))" ( (pointer_expression "**(code **)(pcVar37 + 0x352714)" * (pointer_expression "*(code **)(pcVar37 + 0x352714)" * (cast_expression "(code **)(pcVar37 + 0x352714)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x352714)" ( (binary_expression "pcVar37 + 0x352714" identifier + number_literal) ))))) )) (argument_list "(iVar49,0,0x3c0)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "iVar10 = (**(code **)(pcVar37 + 0x3521dc))(iVar10);" (assignment_expression "iVar10 = (**(code **)(pcVar37 + 0x3521dc))(iVar10)" identifier = (call_expression "(**(code **)(pcVar37 + 0x3521dc))(iVar10)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521dc))" ( (pointer_expression "**(code **)(pcVar37 + 0x3521dc)" * (pointer_expression "*(code **)(pcVar37 + 0x3521dc)" * (cast_expression "(code **)(pcVar37 + 0x3521dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3521dc)" ( (binary_expression "pcVar37 + 0x3521dc" identifier + number_literal) ))))) )) (argument_list "(iVar10)" ( identifier )))) ;) (expression_statement "(**(code **)(pcVar37 + 0x351e5c))(iVar49 + 0x18);" (call_expression "(**(code **)(pcVar37 + 0x351e5c))(iVar49 + 0x18)" (parenthesized_expression "(**(code **)(pcVar37 + 0x351e5c))" ( (pointer_expression "**(code **)(pcVar37 + 0x351e5c)" * (pointer_expression "*(code **)(pcVar37 + 0x351e5c)" * (cast_expression "(code **)(pcVar37 + 0x351e5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x351e5c)" ( (binary_expression "pcVar37 + 0x351e5c" identifier + number_literal) ))))) )) (argument_list "(iVar49 + 0x18)" ( (binary_expression "iVar49 + 0x18" identifier + number_literal) ))) ;) (expression_statement "pdVar29 = (double *)(**(code **)(pcVar37 + 0x351f2c))();" (assignment_expression "pdVar29 = (double *)(**(code **)(pcVar37 + 0x351f2c))()" identifier = (cast_expression "(double *)(**(code **)(pcVar37 + 0x351f2c))()" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar37 + 0x351f2c))()" (parenthesized_expression "(**(code **)(pcVar37 + 0x351f2c))" ( (pointer_expression "**(code **)(pcVar37 + 0x351f2c)" * (pointer_expression "*(code **)(pcVar37 + 0x351f2c)" * (cast_expression "(code **)(pcVar37 + 0x351f2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x351f2c)" ( (binary_expression "pcVar37 + 0x351f2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "ppiVar34 = (int **)(iVar49 + 0x48);" (assignment_expression "ppiVar34 = (int **)(iVar49 + 0x48)" identifier = (cast_expression "(int **)(iVar49 + 0x48)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar49 + 0x48)" ( (binary_expression "iVar49 + 0x48" identifier + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar34,pdVar29);" (call_expression "(**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar34,pdVar29)" (parenthesized_expression "(**(code **)(pcVar37 + 0x351e54))" ( (pointer_expression "**(code **)(pcVar37 + 0x351e54)" * (pointer_expression "*(code **)(pcVar37 + 0x351e54)" * (cast_expression "(code **)(pcVar37 + 0x351e54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x351e54)" ( (binary_expression "pcVar37 + 0x351e54" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar37 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar34,pdVar29)" ( (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6ab4" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) , number_literal , identifier , identifier ))) ;) (expression_statement "ppiVar33 = (int **)(iVar49 + 0xa0);" (assignment_expression "ppiVar33 = (int **)(iVar49 + 0xa0)" identifier = (cast_expression "(int **)(iVar49 + 0xa0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar49 + 0xa0)" ( (binary_expression "iVar49 + 0xa0" identifier + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar33,pdVar29);" (call_expression "(**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar33,pdVar29)" (parenthesized_expression "(**(code **)(pcVar37 + 0x351e54))" ( (pointer_expression "**(code **)(pcVar37 + 0x351e54)" * (pointer_expression "*(code **)(pcVar37 + 0x351e54)" * (cast_expression "(code **)(pcVar37 + 0x351e54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x351e54)" ( (binary_expression "pcVar37 + 0x351e54" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar37 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar33,pdVar29)" ( (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6abc" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) , number_literal , identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x238) = *(undefined4 *)(iVar10 + 0x14);" (assignment_expression "*(undefined4 *)(iVar49 + 0x238) = *(undefined4 *)(iVar10 + 0x14)" (pointer_expression "*(undefined4 *)(iVar49 + 0x238)" * (cast_expression "(undefined4 *)(iVar49 + 0x238)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x238)" ( (binary_expression "iVar49 + 0x238" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar10 + 0x14)" * (cast_expression "(undefined4 *)(iVar10 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(iVar49 + 0x1b0) = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4408);" (assignment_expression "*(undefined8 *)(iVar49 + 0x1b0) = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4408)" (pointer_expression "*(undefined8 *)(iVar49 + 0x1b0)" * (cast_expression "(undefined8 *)(iVar49 + 0x1b0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x1b0)" ( (binary_expression "iVar49 + 0x1b0" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4408)" * (cast_expression "(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4408)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar37 + 0x351908) + 0x4408)" ( (binary_expression "*(int *)(pcVar37 + 0x351908) + 0x4408" (pointer_expression "*(int *)(pcVar37 + 0x351908)" * (cast_expression "(int *)(pcVar37 + 0x351908)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x351908)" ( (binary_expression "pcVar37 + 0x351908" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x240) = 1;" (assignment_expression "*(undefined4 *)(iVar49 + 0x240) = 1" (pointer_expression "*(undefined4 *)(iVar49 + 0x240)" * (cast_expression "(undefined4 *)(iVar49 + 0x240)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x240)" ( (binary_expression "iVar49 + 0x240" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x2cc) = *(undefined4 *)(*(int *)(pcVar37 + 0x351908) + 0x4aa8);" (assignment_expression "*(undefined4 *)(iVar49 + 0x2cc) = *(undefined4 *)(*(int *)(pcVar37 + 0x351908) + 0x4aa8)" (pointer_expression "*(undefined4 *)(iVar49 + 0x2cc)" * (cast_expression "(undefined4 *)(iVar49 + 0x2cc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x2cc)" ( (binary_expression "iVar49 + 0x2cc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(*(int *)(pcVar37 + 0x351908) + 0x4aa8)" * (cast_expression "(undefined4 *)(*(int *)(pcVar37 + 0x351908) + 0x4aa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar37 + 0x351908) + 0x4aa8)" ( (binary_expression "*(int *)(pcVar37 + 0x351908) + 0x4aa8" (pointer_expression "*(int *)(pcVar37 + 0x351908)" * (cast_expression "(int *)(pcVar37 + 0x351908)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x351908)" ( (binary_expression "pcVar37 + 0x351908" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar51 = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4a48);" (assignment_expression "uVar51 = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4a48)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4a48)" * (cast_expression "(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4a48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar37 + 0x351908) + 0x4a48)" ( (binary_expression "*(int *)(pcVar37 + 0x351908) + 0x4a48" (pointer_expression "*(int *)(pcVar37 + 0x351908)" * (cast_expression "(int *)(pcVar37 + 0x351908)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x351908)" ( (binary_expression "pcVar37 + 0x351908" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(iVar49 + 0x398) = uVar51;" (assignment_expression "*(undefined8 *)(iVar49 + 0x398) = uVar51" (pointer_expression "*(undefined8 *)(iVar49 + 0x398)" * (cast_expression "(undefined8 *)(iVar49 + 0x398)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x398)" ( (binary_expression "iVar49 + 0x398" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined8 *)(iVar49 + 0x3a0) = uVar51;" (assignment_expression "*(undefined8 *)(iVar49 + 0x3a0) = uVar51" (pointer_expression "*(undefined8 *)(iVar49 + 0x3a0)" * (cast_expression "(undefined8 *)(iVar49 + 0x3a0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x3a0)" ( (binary_expression "iVar49 + 0x3a0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x244) = 1;" (assignment_expression "*(undefined4 *)(iVar49 + 0x244) = 1" (pointer_expression "*(undefined4 *)(iVar49 + 0x244)" * (cast_expression "(undefined4 *)(iVar49 + 0x244)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x244)" ( (binary_expression "iVar49 + 0x244" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x248) = 1;" (assignment_expression "*(undefined4 *)(iVar49 + 0x248) = 1" (pointer_expression "*(undefined4 *)(iVar49 + 0x248)" * (cast_expression "(undefined4 *)(iVar49 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x248)" ( (binary_expression "iVar49 + 0x248" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x24c) = 10;" (assignment_expression "*(undefined4 *)(iVar49 + 0x24c) = 10" (pointer_expression "*(undefined4 *)(iVar49 + 0x24c)" * (cast_expression "(undefined4 *)(iVar49 + 0x24c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x24c)" ( (binary_expression "iVar49 + 0x24c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar49 + 600) = 1;" (assignment_expression "*(undefined4 *)(iVar49 + 600) = 1" (pointer_expression "*(undefined4 *)(iVar49 + 600)" * (cast_expression "(undefined4 *)(iVar49 + 600)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 600)" ( (binary_expression "iVar49 + 600" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 *)(iVar49 + 0x288) = *(undefined8 *)(*(int *)(pcVar37 + 0x35190c) + 0x7970);" (assignment_expression "*(undefined8 *)(iVar49 + 0x288) = *(undefined8 *)(*(int *)(pcVar37 + 0x35190c) + 0x7970)" (pointer_expression "*(undefined8 *)(iVar49 + 0x288)" * (cast_expression "(undefined8 *)(iVar49 + 0x288)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x288)" ( (binary_expression "iVar49 + 0x288" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(*(int *)(pcVar37 + 0x35190c) + 0x7970)" * (cast_expression "(undefined8 *)(*(int *)(pcVar37 + 0x35190c) + 0x7970)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar37 + 0x35190c) + 0x7970)" ( (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x7970" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x144) = 0;" (assignment_expression "*(undefined4 *)(iVar49 + 0x144) = 0" (pointer_expression "*(undefined4 *)(iVar49 + 0x144)" * (cast_expression "(undefined4 *)(iVar49 + 0x144)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x144)" ( (binary_expression "iVar49 + 0x144" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x140) = 0;" (assignment_expression "*(undefined4 *)(iVar49 + 0x140) = 0" (pointer_expression "*(undefined4 *)(iVar49 + 0x140)" * (cast_expression "(undefined4 *)(iVar49 + 0x140)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x140)" ( (binary_expression "iVar49 + 0x140" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x25c) = 0x36;" (assignment_expression "*(undefined4 *)(iVar49 + 0x25c) = 0x36" (pointer_expression "*(undefined4 *)(iVar49 + 0x25c)" * (cast_expression "(undefined4 *)(iVar49 + 0x25c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x25c)" ( (binary_expression "iVar49 + 0x25c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x2d0) = 1;" (assignment_expression "*(undefined4 *)(iVar49 + 0x2d0) = 1" (pointer_expression "*(undefined4 *)(iVar49 + 0x2d0)" * (cast_expression "(undefined4 *)(iVar49 + 0x2d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x2d0)" ( (binary_expression "iVar49 + 0x2d0" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x3a8) = 0;" (assignment_expression "*(undefined4 *)(iVar49 + 0x3a8) = 0" (pointer_expression "*(undefined4 *)(iVar49 + 0x3a8)" * (cast_expression "(undefined4 *)(iVar49 + 0x3a8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x3a8)" ( (binary_expression "iVar49 + 0x3a8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar4 = (**(code **)(pcVar37 + 0x3527e8))();" (assignment_expression "uVar4 = (**(code **)(pcVar37 + 0x3527e8))()" identifier = (call_expression "(**(code **)(pcVar37 + 0x3527e8))()" (parenthesized_expression "(**(code **)(pcVar37 + 0x3527e8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3527e8)" * (pointer_expression "*(code **)(pcVar37 + 0x3527e8)" * (cast_expression "(code **)(pcVar37 + 0x3527e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3527e8)" ( (binary_expression "pcVar37 + 0x3527e8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x38c) = uVar4;" (assignment_expression "*(undefined4 *)(iVar49 + 0x38c) = uVar4" (pointer_expression "*(undefined4 *)(iVar49 + 0x38c)" * (cast_expression "(undefined4 *)(iVar49 + 0x38c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x38c)" ( (binary_expression "iVar49 + 0x38c" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*(int *)(iVar10 + 0x4c) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x264) = uVar4;\n    }" if (parenthesized_expression "(*(int *)(iVar10 + 0x4c) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x4c) != 0" (pointer_expression "*(int *)(iVar10 + 0x4c)" * (cast_expression "(int *)(iVar10 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x4c)" ( (binary_expression "iVar10 + 0x4c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x264) = uVar4;\n    }" { (expression_statement "uVar4 = (**(code **)(pcVar37 + 0x352854))();" (assignment_expression "uVar4 = (**(code **)(pcVar37 + 0x352854))()" identifier = (call_expression "(**(code **)(pcVar37 + 0x352854))()" (parenthesized_expression "(**(code **)(pcVar37 + 0x352854))" ( (pointer_expression "**(code **)(pcVar37 + 0x352854)" * (pointer_expression "*(code **)(pcVar37 + 0x352854)" * (cast_expression "(code **)(pcVar37 + 0x352854)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x352854)" ( (binary_expression "pcVar37 + 0x352854" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x264) = uVar4;" (assignment_expression "*(undefined4 *)(iVar49 + 0x264) = uVar4" (pointer_expression "*(undefined4 *)(iVar49 + 0x264)" * (cast_expression "(undefined4 *)(iVar49 + 0x264)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x264)" ( (binary_expression "iVar49 + 0x264" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(int *)(iVar10 + 0x54) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x290) = uVar4;\n    }" if (parenthesized_expression "(*(int *)(iVar10 + 0x54) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x54) != 0" (pointer_expression "*(int *)(iVar10 + 0x54)" * (cast_expression "(int *)(iVar10 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x54)" ( (binary_expression "iVar10 + 0x54" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x290) = uVar4;\n    }" { (expression_statement "uVar4 = (**(code **)(pcVar37 + 0x352854))();" (assignment_expression "uVar4 = (**(code **)(pcVar37 + 0x352854))()" identifier = (call_expression "(**(code **)(pcVar37 + 0x352854))()" (parenthesized_expression "(**(code **)(pcVar37 + 0x352854))" ( (pointer_expression "**(code **)(pcVar37 + 0x352854)" * (pointer_expression "*(code **)(pcVar37 + 0x352854)" * (cast_expression "(code **)(pcVar37 + 0x352854)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x352854)" ( (binary_expression "pcVar37 + 0x352854" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x290) = uVar4;" (assignment_expression "*(undefined4 *)(iVar49 + 0x290) = uVar4" (pointer_expression "*(undefined4 *)(iVar49 + 0x290)" * (cast_expression "(undefined4 *)(iVar49 + 0x290)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x290)" ( (binary_expression "iVar49 + 0x290" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "*(undefined4 *)(iVar49 + 0x23c) = *(undefined4 *)(iVar10 + 0x14);" (assignment_expression "*(undefined4 *)(iVar49 + 0x23c) = *(undefined4 *)(iVar10 + 0x14)" (pointer_expression "*(undefined4 *)(iVar49 + 0x23c)" * (cast_expression "(undefined4 *)(iVar49 + 0x23c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x23c)" ( (binary_expression "iVar49 + 0x23c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar10 + 0x14)" * (cast_expression "(undefined4 *)(iVar10 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined4 *)(iVar10 + 0x58);" (assignment_expression "uVar4 = *(undefined4 *)(iVar10 + 0x58)" identifier = (pointer_expression "*(undefined4 *)(iVar10 + 0x58)" * (cast_expression "(undefined4 *)(iVar10 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x58)" ( (binary_expression "iVar10 + 0x58" identifier + number_literal) ))))) ;) (if_statement "if (*(double *)(*(int *)(pcVar37 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar10 + 0x58))) {\n      *(undefined4 *)(iVar49 + 0x28c) = *(undefined4 *)(iVar10 + 0x5c);\n      *(undefined4 *)(iVar49 + 0x288) = uVar4;\n    }" if (parenthesized_expression "(*(double *)(*(int *)(pcVar37 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar10 + 0x58)))" ( (binary_expression "*(double *)(*(int *)(pcVar37 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar10 + 0x58))" (pointer_expression "*(double *)(*(int *)(pcVar37 + 0x351908) + 0x43c8)" * (cast_expression "(double *)(*(int *)(pcVar37 + 0x351908) + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar37 + 0x351908) + 0x43c8)" ( (binary_expression "*(int *)(pcVar37 + 0x351908) + 0x43c8" (pointer_expression "*(int *)(pcVar37 + 0x351908)" * (cast_expression "(int *)(pcVar37 + 0x351908)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x351908)" ( (binary_expression "pcVar37 + 0x351908" identifier + number_literal) )))) + number_literal) )))) <= (call_expression "ABS(*(double *)(iVar10 + 0x58))" identifier (argument_list "(*(double *)(iVar10 + 0x58))" ( (pointer_expression "*(double *)(iVar10 + 0x58)" * (cast_expression "(double *)(iVar10 + 0x58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x58)" ( (binary_expression "iVar10 + 0x58" identifier + number_literal) )))) )))) )) (compound_statement "{\n      *(undefined4 *)(iVar49 + 0x28c) = *(undefined4 *)(iVar10 + 0x5c);\n      *(undefined4 *)(iVar49 + 0x288) = uVar4;\n    }" { (expression_statement "*(undefined4 *)(iVar49 + 0x28c) = *(undefined4 *)(iVar10 + 0x5c);" (assignment_expression "*(undefined4 *)(iVar49 + 0x28c) = *(undefined4 *)(iVar10 + 0x5c)" (pointer_expression "*(undefined4 *)(iVar49 + 0x28c)" * (cast_expression "(undefined4 *)(iVar49 + 0x28c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x28c)" ( (binary_expression "iVar49 + 0x28c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar10 + 0x5c)" * (cast_expression "(undefined4 *)(iVar10 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x5c)" ( (binary_expression "iVar10 + 0x5c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x288) = uVar4;" (assignment_expression "*(undefined4 *)(iVar49 + 0x288) = uVar4" (pointer_expression "*(undefined4 *)(iVar49 + 0x288)" * (cast_expression "(undefined4 *)(iVar49 + 0x288)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x288)" ( (binary_expression "iVar49 + 0x288" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "puVar13 = (undefined4 *)(iVar10 + 0x118);" (assignment_expression "puVar13 = (undefined4 *)(iVar10 + 0x118)" identifier = (cast_expression "(undefined4 *)(iVar10 + 0x118)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x118)" ( (binary_expression "iVar10 + 0x118" identifier + number_literal) )))) ;) (expression_statement "puVar21 = (undefined4 *)(iVar49 + 0x150);" (assignment_expression "puVar21 = (undefined4 *)(iVar49 + 0x150)" identifier = (cast_expression "(undefined4 *)(iVar49 + 0x150)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x150)" ( (binary_expression "iVar49 + 0x150" identifier + number_literal) )))) ;) (do_statement "do {\n      puVar15 = puVar21;\n      puVar9 = puVar13;\n      uVar27 = puVar9[1];\n      uVar25 = puVar9[2];\n      uVar4 = puVar9[3];\n      *puVar15 = *puVar9;\n      puVar15[1] = uVar27;\n      puVar15[2] = uVar25;\n      puVar15[3] = uVar4;\n      puVar13 = puVar9 + 4;\n      puVar21 = puVar15 + 4;\n    } while (puVar13 != (undefined4 *)(iVar10 + 0x168));" do (compound_statement "{\n      puVar15 = puVar21;\n      puVar9 = puVar13;\n      uVar27 = puVar9[1];\n      uVar25 = puVar9[2];\n      uVar4 = puVar9[3];\n      *puVar15 = *puVar9;\n      puVar15[1] = uVar27;\n      puVar15[2] = uVar25;\n      puVar15[3] = uVar4;\n      puVar13 = puVar9 + 4;\n      puVar21 = puVar15 + 4;\n    }" { (expression_statement "puVar15 = puVar21;" (assignment_expression "puVar15 = puVar21" identifier = identifier) ;) (expression_statement "puVar9 = puVar13;" (assignment_expression "puVar9 = puVar13" identifier = identifier) ;) (expression_statement "uVar27 = puVar9[1];" (assignment_expression "uVar27 = puVar9[1]" identifier = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "uVar25 = puVar9[2];" (assignment_expression "uVar25 = puVar9[2]" identifier = (subscript_expression "puVar9[2]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = puVar9[3];" (assignment_expression "uVar4 = puVar9[3]" identifier = (subscript_expression "puVar9[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar15 = *puVar9;" (assignment_expression "*puVar15 = *puVar9" (pointer_expression "*puVar15" * identifier) = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar15[1] = uVar27;" (assignment_expression "puVar15[1] = uVar27" (subscript_expression "puVar15[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[2] = uVar25;" (assignment_expression "puVar15[2] = uVar25" (subscript_expression "puVar15[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[3] = uVar4;" (assignment_expression "puVar15[3] = uVar4" (subscript_expression "puVar15[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13 = puVar9 + 4;" (assignment_expression "puVar13 = puVar9 + 4" identifier = (binary_expression "puVar9 + 4" identifier + number_literal)) ;) (expression_statement "puVar21 = puVar15 + 4;" (assignment_expression "puVar21 = puVar15 + 4" identifier = (binary_expression "puVar15 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar13 != (undefined4 *)(iVar10 + 0x168))" ( (binary_expression "puVar13 != (undefined4 *)(iVar10 + 0x168)" identifier != (cast_expression "(undefined4 *)(iVar10 + 0x168)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x168)" ( (binary_expression "iVar10 + 0x168" identifier + number_literal) )))) )) ;) (expression_statement "uVar4 = puVar9[5];" (assignment_expression "uVar4 = puVar9[5]" identifier = (subscript_expression "puVar9[5]" identifier [ number_literal ])) ;) (expression_statement "puVar15[4] = *puVar13;" (assignment_expression "puVar15[4] = *puVar13" (subscript_expression "puVar15[4]" identifier [ number_literal ]) = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "puVar15[5] = uVar4;" (assignment_expression "puVar15[5] = uVar4" (subscript_expression "puVar15[5]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (*(int *)(iVar10 + 0x48) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x29c) = uVar4;\n    }" if (parenthesized_expression "(*(int *)(iVar10 + 0x48) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x48) != 0" (pointer_expression "*(int *)(iVar10 + 0x48)" * (cast_expression "(int *)(iVar10 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x48)" ( (binary_expression "iVar10 + 0x48" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x29c) = uVar4;\n    }" { (expression_statement "uVar4 = (**(code **)(pcVar37 + 0x352854))();" (assignment_expression "uVar4 = (**(code **)(pcVar37 + 0x352854))()" identifier = (call_expression "(**(code **)(pcVar37 + 0x352854))()" (parenthesized_expression "(**(code **)(pcVar37 + 0x352854))" ( (pointer_expression "**(code **)(pcVar37 + 0x352854)" * (pointer_expression "*(code **)(pcVar37 + 0x352854)" * (cast_expression "(code **)(pcVar37 + 0x352854)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x352854)" ( (binary_expression "pcVar37 + 0x352854" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x29c) = uVar4;" (assignment_expression "*(undefined4 *)(iVar49 + 0x29c) = uVar4" (pointer_expression "*(undefined4 *)(iVar49 + 0x29c)" * (cast_expression "(undefined4 *)(iVar49 + 0x29c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x29c)" ( (binary_expression "iVar49 + 0x29c" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ac4);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ac4)" identifier = (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ac4)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" * (cast_expression "(code **)(pcVar37 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3521a8)" ( (binary_expression "pcVar37 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ac4)" ( identifier , (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6ac4" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar3 != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x14,0,iVar3);\n      *(undefined4 *)(iVar49 + 0x388) = uVar4;\n      goto LAB_000a8298;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x14,0,iVar3);\n      *(undefined4 *)(iVar49 + 0x388) = uVar4;\n      goto LAB_000a8298;\n    }" { (expression_statement "uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x14,0,iVar3);" (assignment_expression "uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x14,0,iVar3)" identifier = (call_expression "(**(code **)(pcVar37 + 0x3526d4))(0x14,0,iVar3)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3526d4))" ( (pointer_expression "**(code **)(pcVar37 + 0x3526d4)" * (pointer_expression "*(code **)(pcVar37 + 0x3526d4)" * (cast_expression "(code **)(pcVar37 + 0x3526d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3526d4)" ( (binary_expression "pcVar37 + 0x3526d4" identifier + number_literal) ))))) )) (argument_list "(0x14,0,iVar3)" ( number_literal , number_literal , identifier )))) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x388) = uVar4;" (assignment_expression "*(undefined4 *)(iVar49 + 0x388) = uVar4" (pointer_expression "*(undefined4 *)(iVar49 + 0x388)" * (cast_expression "(undefined4 *)(iVar49 + 0x388)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x388)" ( (binary_expression "iVar49 + 0x388" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_000a8298;" goto statement_identifier ;) })) }))) (expression_statement "*(undefined4 *)(iVar49 + 0x388) = 0;" (assignment_expression "*(undefined4 *)(iVar49 + 0x388) = 0" (pointer_expression "*(undefined4 *)(iVar49 + 0x388)" * (cast_expression "(undefined4 *)(iVar49 + 0x388)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x388)" ( (binary_expression "iVar49 + 0x388" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_000a8298:\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ad0);" statement_identifier : (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ad0);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ad0)" identifier = (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ad0)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" * (cast_expression "(code **)(pcVar37 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3521a8)" ( (binary_expression "pcVar37 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ad0)" ( identifier , (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6ad0" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) ;)) (if_statement "if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x280,iVar3);\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    (**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x280,iVar3);\n  }" { (expression_statement "(**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x280,iVar3);" (call_expression "(**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x280,iVar3)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3524c8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3524c8)" * (pointer_expression "*(code **)(pcVar37 + 0x3524c8)" * (cast_expression "(code **)(pcVar37 + 0x3524c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3524c8)" ( (binary_expression "pcVar37 + 0x3524c8" identifier + number_literal) ))))) )) (argument_list "(iVar49 + 0x280,iVar3)" ( (binary_expression "iVar49 + 0x280" identifier + number_literal) , identifier ))) ;) })) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6adc);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6adc)" identifier = (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6adc)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" * (cast_expression "(code **)(pcVar37 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3521a8)" ( (binary_expression "pcVar37 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6adc)" ( identifier , (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6adc" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x26c,iVar3);\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    (**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x26c,iVar3);\n  }" { (expression_statement "(**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x26c,iVar3);" (call_expression "(**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x26c,iVar3)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3524c8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3524c8)" * (pointer_expression "*(code **)(pcVar37 + 0x3524c8)" * (cast_expression "(code **)(pcVar37 + 0x3524c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3524c8)" ( (binary_expression "pcVar37 + 0x3524c8" identifier + number_literal) ))))) )) (argument_list "(iVar49 + 0x26c,iVar3)" ( (binary_expression "iVar49 + 0x26c" identifier + number_literal) , identifier ))) ;) })) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ae4);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ae4)" identifier = (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ae4)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" * (cast_expression "(code **)(pcVar37 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3521a8)" ( (binary_expression "pcVar37 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ae4)" ( identifier , (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6ae4" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar34,pdVar29);\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar34,pdVar29);\n  }" { (expression_statement "(**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar34,pdVar29);" (call_expression "(**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar34,pdVar29)" (parenthesized_expression "(**(code **)(pcVar37 + 0x351e54))" ( (pointer_expression "**(code **)(pcVar37 + 0x351e54)" * (pointer_expression "*(code **)(pcVar37 + 0x351e54)" * (cast_expression "(code **)(pcVar37 + 0x351e54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x351e54)" ( (binary_expression "pcVar37 + 0x351e54" identifier + number_literal) ))))) )) (argument_list "(iVar3,0x7fffffff,ppiVar34,pdVar29)" ( identifier , number_literal , identifier , identifier ))) ;) })) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6aec);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6aec)" identifier = (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6aec)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" * (cast_expression "(code **)(pcVar37 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3521a8)" ( (binary_expression "pcVar37 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6aec)" ( identifier , (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6aec" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar3 != 0) {\n    uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x21,0,iVar3);\n    *(undefined4 *)(iVar49 + 0x298) = uVar4;\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x21,0,iVar3);\n    *(undefined4 *)(iVar49 + 0x298) = uVar4;\n  }" { (expression_statement "uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x21,0,iVar3);" (assignment_expression "uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x21,0,iVar3)" identifier = (call_expression "(**(code **)(pcVar37 + 0x3526d4))(0x21,0,iVar3)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3526d4))" ( (pointer_expression "**(code **)(pcVar37 + 0x3526d4)" * (pointer_expression "*(code **)(pcVar37 + 0x3526d4)" * (cast_expression "(code **)(pcVar37 + 0x3526d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3526d4)" ( (binary_expression "pcVar37 + 0x3526d4" identifier + number_literal) ))))) )) (argument_list "(0x21,0,iVar3)" ( number_literal , number_literal , identifier )))) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x298) = uVar4;" (assignment_expression "*(undefined4 *)(iVar49 + 0x298) = uVar4" (pointer_expression "*(undefined4 *)(iVar49 + 0x298)" * (cast_expression "(undefined4 *)(iVar49 + 0x298)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x298)" ( (binary_expression "iVar49 + 0x298" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6af4);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6af4)" identifier = (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6af4)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" * (cast_expression "(code **)(pcVar37 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3521a8)" ( (binary_expression "pcVar37 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6af4)" ( identifier , (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6af4" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x380) = dVar39;\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x380) = dVar39;\n  }" { (expression_statement "dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);" (assignment_expression "dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898)" identifier = (cast_expression "(double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3527a8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3527a8)" * (pointer_expression "*(code **)(pcVar37 + 0x3527a8)" * (cast_expression "(code **)(pcVar37 + 0x3527a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3527a8)" ( (binary_expression "pcVar37 + 0x3527a8" identifier + number_literal) ))))) )) (argument_list "(iVar3,auStack_898)" ( identifier , identifier ))))) ;) (if_statement "if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }" if (parenthesized_expression "(NAN(dVar39))" ( (call_expression "NAN(dVar39)" identifier (argument_list "(dVar39)" ( identifier ))) )) (compound_statement "{\n      dVar39 = 0.0;\n    }" { (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" identifier = number_literal) ;) }) (else_clause "else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }" else (if_statement "if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }" if (parenthesized_expression "(*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39)" ( (binary_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39" (pointer_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960)" * (cast_expression "(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar37 + 0x35190c) + 0x7960)" ( (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x7960" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) <= identifier) )) (compound_statement "{\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }" { (if_statement "if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }" if (parenthesized_expression "(*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39)" ( (binary_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39" (pointer_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968)" * (cast_expression "(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar37 + 0x35190c) + 0x7968)" ( (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x7968" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) < identifier) )) (compound_statement "{\n        dVar39 = 0.0;\n      }" { (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" identifier = number_literal) ;) })) }) (else_clause "else {\n      dVar39 = 0.0;\n    }" else (compound_statement "{\n      dVar39 = 0.0;\n    }" { (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" identifier = number_literal) ;) }))))) (expression_statement "*(double *)(iVar49 + 0x380) = dVar39;" (assignment_expression "*(double *)(iVar49 + 0x380) = dVar39" (pointer_expression "*(double *)(iVar49 + 0x380)" * (cast_expression "(double *)(iVar49 + 0x380)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x380)" ( (binary_expression "iVar49 + 0x380" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b08);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b08)" identifier = (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b08)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" * (cast_expression "(code **)(pcVar37 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3521a8)" ( (binary_expression "pcVar37 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b08)" ( identifier , (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6b08" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x378) = dVar39;\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x378) = dVar39;\n  }" { (expression_statement "dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);" (assignment_expression "dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898)" identifier = (cast_expression "(double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3527a8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3527a8)" * (pointer_expression "*(code **)(pcVar37 + 0x3527a8)" * (cast_expression "(code **)(pcVar37 + 0x3527a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3527a8)" ( (binary_expression "pcVar37 + 0x3527a8" identifier + number_literal) ))))) )) (argument_list "(iVar3,auStack_898)" ( identifier , identifier ))))) ;) (if_statement "if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }" if (parenthesized_expression "(NAN(dVar39))" ( (call_expression "NAN(dVar39)" identifier (argument_list "(dVar39)" ( identifier ))) )) (compound_statement "{\n      dVar39 = 0.0;\n    }" { (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" identifier = number_literal) ;) }) (else_clause "else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }" else (if_statement "if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }" if (parenthesized_expression "(*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39)" ( (binary_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39" (pointer_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960)" * (cast_expression "(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar37 + 0x35190c) + 0x7960)" ( (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x7960" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) <= identifier) )) (compound_statement "{\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }" { (if_statement "if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }" if (parenthesized_expression "(*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39)" ( (binary_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39" (pointer_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968)" * (cast_expression "(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar37 + 0x35190c) + 0x7968)" ( (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x7968" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) < identifier) )) (compound_statement "{\n        dVar39 = 0.0;\n      }" { (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" identifier = number_literal) ;) })) }) (else_clause "else {\n      dVar39 = 0.0;\n    }" else (compound_statement "{\n      dVar39 = 0.0;\n    }" { (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" identifier = number_literal) ;) }))))) (expression_statement "*(double *)(iVar49 + 0x378) = dVar39;" (assignment_expression "*(double *)(iVar49 + 0x378) = dVar39" (pointer_expression "*(double *)(iVar49 + 0x378)" * (cast_expression "(double *)(iVar49 + 0x378)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x378)" ( (binary_expression "iVar49 + 0x378" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b1c);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b1c)" identifier = (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b1c)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" * (cast_expression "(code **)(pcVar37 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3521a8)" ( (binary_expression "pcVar37 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b1c)" ( identifier , (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6b1c" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x370) = dVar39;\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x370) = dVar39;\n  }" { (expression_statement "dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);" (assignment_expression "dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898)" identifier = (cast_expression "(double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3527a8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3527a8)" * (pointer_expression "*(code **)(pcVar37 + 0x3527a8)" * (cast_expression "(code **)(pcVar37 + 0x3527a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3527a8)" ( (binary_expression "pcVar37 + 0x3527a8" identifier + number_literal) ))))) )) (argument_list "(iVar3,auStack_898)" ( identifier , identifier ))))) ;) (if_statement "if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }" if (parenthesized_expression "(NAN(dVar39))" ( (call_expression "NAN(dVar39)" identifier (argument_list "(dVar39)" ( identifier ))) )) (compound_statement "{\n      dVar39 = 0.0;\n    }" { (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" identifier = number_literal) ;) }) (else_clause "else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }" else (if_statement "if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }" if (parenthesized_expression "(*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39)" ( (binary_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39" (pointer_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960)" * (cast_expression "(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar37 + 0x35190c) + 0x7960)" ( (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x7960" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) <= identifier) )) (compound_statement "{\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }" { (if_statement "if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }" if (parenthesized_expression "(*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39)" ( (binary_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39" (pointer_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968)" * (cast_expression "(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar37 + 0x35190c) + 0x7968)" ( (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x7968" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) < identifier) )) (compound_statement "{\n        dVar39 = 0.0;\n      }" { (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" identifier = number_literal) ;) })) }) (else_clause "else {\n      dVar39 = 0.0;\n    }" else (compound_statement "{\n      dVar39 = 0.0;\n    }" { (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" identifier = number_literal) ;) }))))) (expression_statement "*(double *)(iVar49 + 0x370) = dVar39;" (assignment_expression "*(double *)(iVar49 + 0x370) = dVar39" (pointer_expression "*(double *)(iVar49 + 0x370)" * (cast_expression "(double *)(iVar49 + 0x370)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x370)" ( (binary_expression "iVar49 + 0x370" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b24);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b24)" identifier = (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b24)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" * (cast_expression "(code **)(pcVar37 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3521a8)" ( (binary_expression "pcVar37 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b24)" ( identifier , (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6b24" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar33,pdVar29);\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar33,pdVar29);\n  }" { (expression_statement "(**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar33,pdVar29);" (call_expression "(**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar33,pdVar29)" (parenthesized_expression "(**(code **)(pcVar37 + 0x351e54))" ( (pointer_expression "**(code **)(pcVar37 + 0x351e54)" * (pointer_expression "*(code **)(pcVar37 + 0x351e54)" * (cast_expression "(code **)(pcVar37 + 0x351e54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x351e54)" ( (binary_expression "pcVar37 + 0x351e54" identifier + number_literal) ))))) )) (argument_list "(iVar3,0x7fffffff,ppiVar33,pdVar29)" ( identifier , number_literal , identifier , identifier ))) ;) })) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b2c);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b2c)" identifier = (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b2c)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" * (cast_expression "(code **)(pcVar37 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3521a8)" ( (binary_expression "pcVar37 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b2c)" ( identifier , (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6b2c" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x1b0) = dVar39;\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x1b0) = dVar39;\n  }" { (expression_statement "dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);" (assignment_expression "dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898)" identifier = (cast_expression "(double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3527a8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3527a8)" * (pointer_expression "*(code **)(pcVar37 + 0x3527a8)" * (cast_expression "(code **)(pcVar37 + 0x3527a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3527a8)" ( (binary_expression "pcVar37 + 0x3527a8" identifier + number_literal) ))))) )) (argument_list "(iVar3,auStack_898)" ( identifier , identifier ))))) ;) (if_statement "if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }" if (parenthesized_expression "(NAN(dVar39))" ( (call_expression "NAN(dVar39)" identifier (argument_list "(dVar39)" ( identifier ))) )) (compound_statement "{\n      dVar39 = 0.0;\n    }" { (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" identifier = number_literal) ;) }) (else_clause "else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }" else (if_statement "if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }" if (parenthesized_expression "(*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39)" ( (binary_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39" (pointer_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960)" * (cast_expression "(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar37 + 0x35190c) + 0x7960)" ( (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x7960" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) <= identifier) )) (compound_statement "{\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }" { (if_statement "if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }" if (parenthesized_expression "(*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39)" ( (binary_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39" (pointer_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968)" * (cast_expression "(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar37 + 0x35190c) + 0x7968)" ( (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x7968" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) < identifier) )) (compound_statement "{\n        dVar39 = 0.0;\n      }" { (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" identifier = number_literal) ;) })) }) (else_clause "else {\n      dVar39 = 0.0;\n    }" else (compound_statement "{\n      dVar39 = 0.0;\n    }" { (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" identifier = number_literal) ;) }))))) (expression_statement "*(double *)(iVar49 + 0x1b0) = dVar39;" (assignment_expression "*(double *)(iVar49 + 0x1b0) = dVar39" (pointer_expression "*(double *)(iVar49 + 0x1b0)" * (cast_expression "(double *)(iVar49 + 0x1b0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x1b0)" ( (binary_expression "iVar49 + 0x1b0" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b38);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b38)" identifier = (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b38)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" * (cast_expression "(code **)(pcVar37 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3521a8)" ( (binary_expression "pcVar37 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b38)" ( identifier , (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6b38" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar3 != 0) {\n    uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x47,0,iVar3);\n    *(undefined4 *)(iVar49 + 0x274) = uVar4;\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x47,0,iVar3);\n    *(undefined4 *)(iVar49 + 0x274) = uVar4;\n  }" { (expression_statement "uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x47,0,iVar3);" (assignment_expression "uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x47,0,iVar3)" identifier = (call_expression "(**(code **)(pcVar37 + 0x3526d4))(0x47,0,iVar3)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3526d4))" ( (pointer_expression "**(code **)(pcVar37 + 0x3526d4)" * (pointer_expression "*(code **)(pcVar37 + 0x3526d4)" * (cast_expression "(code **)(pcVar37 + 0x3526d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3526d4)" ( (binary_expression "pcVar37 + 0x3526d4" identifier + number_literal) ))))) )) (argument_list "(0x47,0,iVar3)" ( number_literal , number_literal , identifier )))) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x274) = uVar4;" (assignment_expression "*(undefined4 *)(iVar49 + 0x274) = uVar4" (pointer_expression "*(undefined4 *)(iVar49 + 0x274)" * (cast_expression "(undefined4 *)(iVar49 + 0x274)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x274)" ( (binary_expression "iVar49 + 0x274" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b40);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b40)" identifier = (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b40)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" * (cast_expression "(code **)(pcVar37 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3521a8)" ( (binary_expression "pcVar37 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b40)" ( identifier , (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6b40" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,iVar49 + 0xf8,pdVar29);\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,iVar49 + 0xf8,pdVar29);\n  }" { (expression_statement "(**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,iVar49 + 0xf8,pdVar29);" (call_expression "(**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,iVar49 + 0xf8,pdVar29)" (parenthesized_expression "(**(code **)(pcVar37 + 0x351e54))" ( (pointer_expression "**(code **)(pcVar37 + 0x351e54)" * (pointer_expression "*(code **)(pcVar37 + 0x351e54)" * (cast_expression "(code **)(pcVar37 + 0x351e54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x351e54)" ( (binary_expression "pcVar37 + 0x351e54" identifier + number_literal) ))))) )) (argument_list "(iVar3,0x7fffffff,iVar49 + 0xf8,pdVar29)" ( identifier , number_literal , (binary_expression "iVar49 + 0xf8" identifier + number_literal) , identifier ))) ;) })) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x351920) + -0x3000);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x351920) + -0x3000)" identifier = (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x351920) + -0x3000)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" * (cast_expression "(code **)(pcVar37 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3521a8)" ( (binary_expression "pcVar37 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar10,*(int *)(pcVar37 + 0x351920) + -0x3000)" ( identifier , (binary_expression "*(int *)(pcVar37 + 0x351920) + -0x3000" (pointer_expression "*(int *)(pcVar37 + 0x351920)" * (cast_expression "(int *)(pcVar37 + 0x351920)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x351920)" ( (binary_expression "pcVar37 + 0x351920" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar3 != 0) {\n    iVar28 = (**(code **)(pcVar37 + 0x3526d4))(0x4c,0,iVar3);\n    if (iVar28 == -1) {\n      uVar4 = (**(code **)(pcVar37 + 0x352380))(iVar3,0,10);\n      *(undefined4 *)(iVar49 + 0x27c) = uVar4;\n    }\n    else {\n      *(int *)(iVar49 + 0x27c) = iVar28;\n    }\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar28 = (**(code **)(pcVar37 + 0x3526d4))(0x4c,0,iVar3);\n    if (iVar28 == -1) {\n      uVar4 = (**(code **)(pcVar37 + 0x352380))(iVar3,0,10);\n      *(undefined4 *)(iVar49 + 0x27c) = uVar4;\n    }\n    else {\n      *(int *)(iVar49 + 0x27c) = iVar28;\n    }\n  }" { (expression_statement "iVar28 = (**(code **)(pcVar37 + 0x3526d4))(0x4c,0,iVar3);" (assignment_expression "iVar28 = (**(code **)(pcVar37 + 0x3526d4))(0x4c,0,iVar3)" identifier = (call_expression "(**(code **)(pcVar37 + 0x3526d4))(0x4c,0,iVar3)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3526d4))" ( (pointer_expression "**(code **)(pcVar37 + 0x3526d4)" * (pointer_expression "*(code **)(pcVar37 + 0x3526d4)" * (cast_expression "(code **)(pcVar37 + 0x3526d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3526d4)" ( (binary_expression "pcVar37 + 0x3526d4" identifier + number_literal) ))))) )) (argument_list "(0x4c,0,iVar3)" ( number_literal , number_literal , identifier )))) ;) (if_statement "if (iVar28 == -1) {\n      uVar4 = (**(code **)(pcVar37 + 0x352380))(iVar3,0,10);\n      *(undefined4 *)(iVar49 + 0x27c) = uVar4;\n    }\n    else {\n      *(int *)(iVar49 + 0x27c) = iVar28;\n    }" if (parenthesized_expression "(iVar28 == -1)" ( (binary_expression "iVar28 == -1" identifier == number_literal) )) (compound_statement "{\n      uVar4 = (**(code **)(pcVar37 + 0x352380))(iVar3,0,10);\n      *(undefined4 *)(iVar49 + 0x27c) = uVar4;\n    }" { (expression_statement "uVar4 = (**(code **)(pcVar37 + 0x352380))(iVar3,0,10);" (assignment_expression "uVar4 = (**(code **)(pcVar37 + 0x352380))(iVar3,0,10)" identifier = (call_expression "(**(code **)(pcVar37 + 0x352380))(iVar3,0,10)" (parenthesized_expression "(**(code **)(pcVar37 + 0x352380))" ( (pointer_expression "**(code **)(pcVar37 + 0x352380)" * (pointer_expression "*(code **)(pcVar37 + 0x352380)" * (cast_expression "(code **)(pcVar37 + 0x352380)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x352380)" ( (binary_expression "pcVar37 + 0x352380" identifier + number_literal) ))))) )) (argument_list "(iVar3,0,10)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x27c) = uVar4;" (assignment_expression "*(undefined4 *)(iVar49 + 0x27c) = uVar4" (pointer_expression "*(undefined4 *)(iVar49 + 0x27c)" * (cast_expression "(undefined4 *)(iVar49 + 0x27c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x27c)" ( (binary_expression "iVar49 + 0x27c" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n      *(int *)(iVar49 + 0x27c) = iVar28;\n    }" else (compound_statement "{\n      *(int *)(iVar49 + 0x27c) = iVar28;\n    }" { (expression_statement "*(int *)(iVar49 + 0x27c) = iVar28;" (assignment_expression "*(int *)(iVar49 + 0x27c) = iVar28" (pointer_expression "*(int *)(iVar49 + 0x27c)" * (cast_expression "(int *)(iVar49 + 0x27c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x27c)" ( (binary_expression "iVar49 + 0x27c" identifier + number_literal) )))) = identifier) ;) }))) })) (expression_statement "(**(code **)(pcVar37 + 0x351d90))(pdVar29);" (call_expression "(**(code **)(pcVar37 + 0x351d90))(pdVar29)" (parenthesized_expression "(**(code **)(pcVar37 + 0x351d90))" ( (pointer_expression "**(code **)(pcVar37 + 0x351d90)" * (pointer_expression "*(code **)(pcVar37 + 0x351d90)" * (cast_expression "(code **)(pcVar37 + 0x351d90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x351d90)" ( (binary_expression "pcVar37 + 0x351d90" identifier + number_literal) ))))) )) (argument_list "(pdVar29)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x390) = 0xabacadab;" (assignment_expression "*(undefined4 *)(iVar49 + 0x390) = 0xabacadab" (pointer_expression "*(undefined4 *)(iVar49 + 0x390)" * (cast_expression "(undefined4 *)(iVar49 + 0x390)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x390)" ( (binary_expression "iVar49 + 0x390" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(pcVar37 + 0x352628))(iVar10);" (call_expression "(**(code **)(pcVar37 + 0x352628))(iVar10)" (parenthesized_expression "(**(code **)(pcVar37 + 0x352628))" ( (pointer_expression "**(code **)(pcVar37 + 0x352628)" * (pointer_expression "*(code **)(pcVar37 + 0x352628)" * (cast_expression "(code **)(pcVar37 + 0x352628)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x352628)" ( (binary_expression "pcVar37 + 0x352628" identifier + number_literal) ))))) )) (argument_list "(iVar10)" ( identifier ))) ;) (if_statement "if (iStack_894 == **(int **)(pcVar37 + 0x352270)) {\n    return **(int **)(pcVar37 + 0x352270);\n  }" if (parenthesized_expression "(iStack_894 == **(int **)(pcVar37 + 0x352270))" ( (binary_expression "iStack_894 == **(int **)(pcVar37 + 0x352270)" identifier == (pointer_expression "**(int **)(pcVar37 + 0x352270)" * (pointer_expression "*(int **)(pcVar37 + 0x352270)" * (cast_expression "(int **)(pcVar37 + 0x352270)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x352270)" ( (binary_expression "pcVar37 + 0x352270" identifier + number_literal) )))))) )) (compound_statement "{\n    return **(int **)(pcVar37 + 0x352270);\n  }" { (return_statement "return **(int **)(pcVar37 + 0x352270);" return (pointer_expression "**(int **)(pcVar37 + 0x352270)" * (pointer_expression "*(int **)(pcVar37 + 0x352270)" * (cast_expression "(int **)(pcVar37 + 0x352270)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x352270)" ( (binary_expression "pcVar37 + 0x352270" identifier + number_literal) ))))) ;) })) (expression_statement "pcVar37 = *(code **)(pcVar37 + 0x3520a4);" (assignment_expression "pcVar37 = *(code **)(pcVar37 + 0x3520a4)" identifier = (pointer_expression "*(code **)(pcVar37 + 0x3520a4)" * (cast_expression "(code **)(pcVar37 + 0x3520a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3520a4)" ( (binary_expression "pcVar37 + 0x3520a4" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar37)();" (call_expression "(*pcVar37)()" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x351be4))(0x3c0);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x351be4))(0x3c0)" identifier = (call_expression "(**(code **)(pcVar37 + 0x351be4))(0x3c0)" (parenthesized_expression "(**(code **)(pcVar37 + 0x351be4))" ( (pointer_expression "**(code **)(pcVar37 + 0x351be4)" * (pointer_expression "*(code **)(pcVar37 + 0x351be4)" * (cast_expression "(code **)(pcVar37 + 0x351be4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x351be4)" ( (binary_expression "pcVar37 + 0x351be4" identifier + number_literal) ))))) )) (argument_list "(0x3c0)" ( number_literal )))) ;) (expression_statement "(**(code **)(pcVar37 + 0x3518b4))(0,iVar3);" (call_expression "(**(code **)(pcVar37 + 0x3518b4))(0,iVar3)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3518b4))" ( (pointer_expression "**(code **)(pcVar37 + 0x3518b4)" * (pointer_expression "*(code **)(pcVar37 + 0x3518b4)" * (cast_expression "(code **)(pcVar37 + 0x3518b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3518b4)" ( (binary_expression "pcVar37 + 0x3518b4" identifier + number_literal) ))))) )) (argument_list "(0,iVar3)" ( number_literal , identifier ))) ;) (return_statement "return iVar3;" return identifier ;) })))
(translation_unit "/* WARNING: Enum "GravityType": Some values do not have unique names */\n/* WARNING: Enum "DisposeType": Some values do not have unique names */\n/* WARNING: Enum "ChannelType": Some values do not have unique names */\n/* WARNING: Enum "PixelChannel": Some values do not have unique names */\n/* WARNING: Enum "ComplianceType": Some values do not have unique names */\n/* WARNING: Enum "ExceptionType": Some values do not have unique names */\n/* DWARF original prototype: void DrawAffineImage._omp_fn.0(anon_struct_44_11_f125fec2 * param_0) */\n\nvoid __thiscall DrawAffineImage__omp_fn_0(void *this)\n\n{\n  bool bVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  int iVar4;\n  undefined4 uVar5;\n  double *pdVar6;\n  undefined *puVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined4 *puVar10;\n  undefined4 *puVar11;\n  int iVar12;\n  int *piVar13;\n  int iVar14;\n  void *pvVar15;\n  double *pdVar16;\n  int extraout_v1;\n  double *extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  double *extraout_v1_03;\n  int extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int extraout_v1_07;\n  int extraout_v1_08;\n  undefined4 *puVar17;\n  double *pdVar18;\n  int *piVar19;\n  uint uVar20;\n  int *piVar21;\n  undefined8 *puVar22;\n  void *pvVar23;\n  uint uVar24;\n  uint *puVar25;\n  int **ppiVar26;\n  undefined4 uVar27;\n  uint uVar28;\n  undefined4 uVar29;\n  int iVar30;\n  double *pdVar31;\n  double *pdVar32;\n  int unaff_s2;\n  int iVar33;\n  uint *puVar34;\n  double *unaff_s3;\n  int **ppiVar35;\n  int *unaff_s4;\n  int **ppiVar36;\n  undefined1 *puVar37;\n  double *unaff_s6;\n  uint unaff_s7;\n  undefined *puVar38;\n  code *pcVar39;\n  code *pcVar40;\n  double dVar41;\n  double dVar42;\n  double dVar43;\n  float fVar45;\n  double dVar44;\n  double dVar46;\n  double dVar47;\n  double dVar48;\n  double in_f20_21;\n  double dVar49;\n  double in_f22_23;\n  double in_f24_25;\n  double in_f26_27;\n  double in_f28_29;\n  double in_f30_31;\n  int *piVar50;\n  int iVar51;\n  int iVar52;\n  undefined8 uVar53;\n  undefined1 auStack_898 [4];\n  int iStack_894;\n  undefined8 *puStack_88c;\n  undefined4 uStack_888;\n  double *pdStack_884;\n  int **ppiStack_880;\n  int **ppiStack_87c;\n  undefined1 *puStack_878;\n  code *pcStack_874;\n  int iStack_860;\n  code *pcStack_858;\n  undefined4 uStack_850;\n  code *pcStack_84c;\n  int iStack_838;\n  int iStack_834;\n  code *pcStack_830;\n  int *piStack_828;\n  int *piStack_824;\n  int *piStack_820;\n  int *piStack_81c;\n  double dStack_818;\n  int iStack_810;\n  double *pdStack_80c;\n  undefined4 uStack_808;\n  int **ppiStack_804;\n  int **ppiStack_800;\n  undefined1 *puStack_7fc;\n  int **ppiStack_7f8;\n  undefined4 uStack_7f4;\n  undefined1 auStack_7f0 [92];\n  undefined8 *puStack_794;\n  double *pdStack_790;\n  int *piStack_78c;\n  uint *puStack_788;\n  double *pdStack_784;\n  int iStack_780;\n  code *pcStack_77c;\n  double dStack_778;\n  int iStack_760;\n  int *piStack_75c;\n  code *pcStack_758;\n  double dStack_750;\n  double dStack_748;\n  double dStack_740;\n  double dStack_738;\n  int *piStack_72c;\n  uint *puStack_728;\n  double *pdStack_724;\n  double *pdStack_720;\n  undefined1 *puStack_71c;\n  undefined4 uStack_718;\n  undefined1 *puStack_714;\n  double *pdStack_710;\n  int iStack_70c;\n  int iStack_708;\n  int iStack_704;\n  double dStack_700;\n  double dStack_6f8;\n  double dStack_6f0;\n  double dStack_6e8;\n  double dStack_6e0;\n  double dStack_6d8;\n  undefined1 auStack_6d0 [88];\n  undefined8 uStack_678;\n  undefined4 uStack_670;\n  undefined4 uStack_66c;\n  double dStack_668;\n  undefined4 uStack_660;\n  undefined4 uStack_65c;\n  double dStack_658;\n  double dStack_650;\n  undefined4 uStack_648;\n  undefined4 uStack_644;\n  double dStack_640;\n  undefined8 uStack_638;\n  double *pdStack_62c;\n  int *piStack_628;\n  uint *puStack_624;\n  double *pdStack_620;\n  int iStack_61c;\n  undefined1 *puStack_618;\n  double *pdStack_614;\n  uint uStack_610;\n  code *pcStack_60c;\n  double dStack_608;\n  double dStack_600;\n  double dStack_5f8;\n  double dStack_5f0;\n  int iStack_5d8;\n  code *pcStack_5d0;\n  double *pdStack_5c8;\n  code *pcStack_5c4;\n  undefined4 uStack_5b0;\n  uint uStack_5ac;\n  code *pcStack_5a8;\n  undefined8 uStack_5a0;\n  double dStack_598;\n  double dStack_590;\n  double *pdStack_588;\n  int iStack_584;\n  double dStack_580;\n  double dStack_578;\n  int iStack_570;\n  undefined1 *puStack_56c;\n  double *pdStack_568;\n  uint uStack_564;\n  double dStack_560;\n  double dStack_558;\n  uint uStack_550;\n  undefined4 uStack_54c;\n  double dStack_548;\n  double dStack_540;\n  uint uStack_538;\n  undefined4 uStack_534;\n  double dStack_530;\n  uint uStack_528;\n  undefined4 uStack_524;\n  double dStack_520;\n  double dStack_518;\n  int aiStack_510 [4];\n  undefined8 uStack_500;\n  int iStack_4f8;\n  double dStack_4e8;\n  double dStack_4e0;\n  double dStack_4d8;\n  double dStack_4d0;\n  double dStack_4c8;\n  double dStack_4c0;\n  int iStack_4b4;\n  uint uStack_4b0;\n  int iStack_4ac;\n  double *pdStack_4a8;\n  double *pdStack_4a4;\n  int iStack_4a0;\n  void *pvStack_49c;\n  double *pdStack_498;\n  uint uStack_494;\n  int iStack_490;\n  code *pcStack_48c;\n  double dStack_488;\n  double dStack_480;\n  double dStack_478;\n  double dStack_470;\n  double dStack_468;\n  double dStack_460;\n  int *piStack_448;\n  uint uStack_444;\n  code *pcStack_440;\n  uint uStack_434;\n  uint uStack_430;\n  double *pdStack_42c;\n  uint uStack_428;\n  uint uStack_424;\n  uint uStack_420;\n  undefined4 uStack_41c;\n  int aiStack_418 [10];\n  double dStack_3f0;\n  double dStack_3e8;\n  double dStack_3e0;\n  double dStack_3d8;\n  double dStack_3d0;\n  int iStack_3bc;\n  int iStack_3b8;\n  uint uStack_3b4;\n  double *pdStack_3b0;\n  double *pdStack_3ac;\n  int *piStack_3a8;\n  void *pvStack_3a4;\n  double *pdStack_3a0;\n  uint uStack_39c;\n  int iStack_398;\n  code *pcStack_394;\n  double dStack_390;\n  double dStack_388;\n  double dStack_380;\n  double dStack_378;\n  double dStack_370;\n  undefined4 *puStack_358;\n  undefined4 uStack_354;\n  undefined *puStack_350;\n  undefined8 uStack_348;\n  double dStack_340;\n  double dStack_338;\n  double dStack_330;\n  uint uStack_328;\n  int iStack_324;\n  double dStack_320;\n  double dStack_318;\n  uint uStack_310;\n  undefined4 uStack_30c;\n  int iStack_308;\n  int *piStack_304;\n  double dStack_300;\n  uint uStack_2f8;\n  int iStack_2f4;\n  int iStack_2f0;\n  double *pdStack_2ec;\n  uint uStack_2e8;\n  undefined4 uStack_2e4;\n  uint uStack_2e0;\n  undefined4 uStack_2dc;\n  double *pdStack_2d8;\n  uint uStack_2d4;\n  undefined4 uStack_2d0;\n  double *pdStack_2cc;\n  uint uStack_2c8;\n  undefined4 uStack_2c4;\n  int iStack_2c0;\n  undefined4 *puStack_2bc;\n  double dStack_2b8;\n  uint uStack_2b0;\n  undefined4 uStack_2ac;\n  double *pdStack_2a8;\n  undefined1 *puStack_2a4;\n  double *pdStack_2a0;\n  int iStack_29c;\n  undefined4 auStack_298 [18];\n  double dStack_250;\n  undefined4 auStack_240 [18];\n  double dStack_1f8;\n  int iStack_1e4;\n  double *pdStack_1e0;\n  int *piStack_1dc;\n  int iStack_1d8;\n  double *pdStack_1d4;\n  int *piStack_1d0;\n  void *pvStack_1cc;\n  double *pdStack_1c8;\n  uint uStack_1c4;\n  int iStack_1c0;\n  code *pcStack_1bc;\n  double dStack_1b8;\n  double dStack_1b0;\n  double dStack_1a8;\n  double dStack_1a0;\n  double dStack_198;\n  double dStack_190;\n  undefined8 local_178;\n  double local_170;\n  int *local_168;\n  int *local_164;\n  int local_110 [4];\n  undefined8 local_100;\n  int local_f8;\n  double local_e8;\n  double local_e0;\n  double local_d8;\n  double local_d0;\n  double local_c8;\n  double local_c0;\n  int local_b8 [10];\n  double local_90;\n  double local_88;\n  double local_80;\n  double local_78;\n  double local_70;\n  int local_5c;\n  \n  local_5c = *(int *)PTR___stack_chk_guard_003fa248;\n  pdVar31 = *(double **)((int)this + 0x20);\n  piVar3 = (int *)(*(code *)PTR_omp_get_num_threads_003fa924)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n  puVar38 = PTR_LAB_003f98e0;\n  iVar12 = (*(int *)((int)this + 0x24) + 1) - (int)pdVar31;\n  if (piVar3 == (int *)0x0) {\n    trap(7);\n  }\n  iVar51 = iVar12 / (int)piVar3;\n  iVar12 = iVar12 % (int)piVar3;\n  if (iVar4 < iVar12) {\n    iVar51 = iVar51 + 1;\n    iVar12 = 0;\n  }\n  iVar12 = iVar51 * iVar4 + iVar12;\n  pdVar18 = (double *)(iVar51 + iVar12);\n  iVar4 = (int)pdVar31 + iVar12;\n  if (iVar12 < (int)pdVar18) {\n    uVar5 = *(undefined4 *)((int)this + 0x14);\n    pdVar6 = *(double **)((int)this + 0x10);\n    unaff_s4 = *(int **)((int)this + 8);\n    unaff_s7 = *(uint *)((int)this + 4);\n                    /* WARNING: Load size is inaccurate */\n    piVar3 = *this;\n    puVar7 = (undefined *)((int)pdVar31 + (int)pdVar18);\n    dVar41 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    in_f26_27 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    in_f30_31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n    do {\n      in_f24_25 = (double)iVar4;\n      pdVar31 = *(double **)((int)this + 0xc);\n      in_f20_21 = **(double **)((int)this + 0x1c);\n      in_f28_29 = (*(double **)((int)this + 0x1c))[2];\n      dVar42 = in_f24_25 * pdVar31[2] + pdVar31[4];\n      dVar49 = *pdVar31;\n      dVar43 = in_f28_29;\n      if (dVar41 <= dVar49) {\n        in_f22_23 = -dVar42 / dVar49;\n        if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }\n        dVar46 = (double)*(int *)(unaff_s7 + 0x18);\n        if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }\n        dVar49 = (dVar46 - dVar42) / dVar49;\n        if (dVar49 < in_f28_29) {\n          dVar43 = dVar49;\n        }\nLAB_000a3890:\n        dVar42 = in_f24_25 * pdVar31[3] + pdVar31[5];\n        dVar49 = pdVar31[1];\n        if (*(double *)(puVar38 + 0x43c8) <= dVar49) {\n          dVar46 = -dVar42 / dVar49;\n          if (-dVar42 / dVar49 <= in_f22_23) {\n            dVar46 = in_f22_23;\n          }\n          in_f22_23 = dVar46;\n          pdVar18 = *(double **)(unaff_s7 + 0x1c);\n          dVar46 = (double)(int)pdVar18;\n          if ((int)pdVar18 < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar18 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar46 - dVar42) / dVar49;\n          if (dVar43 <= in_f20_21) {\n            in_f20_21 = dVar43;\n          }\n        }\n        else if (dVar49 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar46 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar46 = (dVar46 - dVar42) / dVar49;\n          if (dVar46 <= in_f22_23) {\n            dVar46 = in_f22_23;\n          }\n          in_f22_23 = dVar46;\n          pdVar18 = (double *)((uint)((ulonglong)dVar42 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar42 / dVar49;\n          if (dVar43 <= -dVar42 / dVar49) {\n            in_f20_21 = dVar43;\n          }\n        }\n        else {\n          pdVar18 = (double *)puVar38;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar42) {\n            dVar42 = (double)(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0));\n            if (dVar42 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar28 = (uint)dVar42;\n            }\n            else {\n              uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar43;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar28) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }\n        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;\n      }\n      else {\n        if (dVar49 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar46 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar46 - dVar42) / dVar49;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar42 / dVar49 < in_f28_29) {\n            dVar43 = -dVar42 / dVar49;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar42) {\n          dVar42 = (double)(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0));\n          if (dVar42 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar28 = (uint)dVar42;\n          }\n          else {\n            uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar43;\n          if (uVar28 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar38 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar43 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar43;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar43 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar42 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar43 = (dVar43 - dVar42) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar43 < in_f20_21) {\n          uVar28 = (uint)dVar43;\n        }\n        else {\n          uVar28 = (int)(dVar43 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar18 = pdVar6;\n        pdVar31 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar6,unaff_s2,iVar4,uVar28);\n        if (pdVar31 != (double *)0x0) {\n          piVar19 = *(int **)((int)this + 0x18);\n          piVar50 = piVar19;\n          piVar21 = local_b8;\n          do {\n            piVar13 = piVar21;\n            piVar8 = piVar50;\n            iVar30 = piVar8[1];\n            iVar51 = piVar8[2];\n            iVar12 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar30;\n            piVar13[2] = iVar51;\n            piVar13[3] = iVar12;\n            piVar50 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar50 != piVar19 + 0x14);\n          iVar12 = piVar8[5];\n          piVar13[4] = *piVar50;\n          piVar13[5] = iVar12;\n          piVar50 = piVar19;\n          piVar21 = local_110;\n          do {\n            piVar13 = piVar21;\n            piVar8 = piVar50;\n            iVar30 = piVar8[1];\n            iVar51 = piVar8[2];\n            iVar12 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar30;\n            piVar13[2] = iVar51;\n            piVar13[3] = iVar12;\n            piVar50 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar50 != piVar19 + 0x14);\n          iVar12 = piVar8[5];\n          piVar13[4] = *piVar50;\n          piVar13[5] = iVar12;\n          dVar43 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar43; unaff_s2 = unaff_s2 + 1) {\n            pdVar18 = *(double **)((int)this + 0xc);\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar18[1] + in_f24_25 * pdVar18[3] + pdVar18[5];\n            local_178 = (double)unaff_s2 * *pdVar18 + in_f24_25 * pdVar18[2] + pdVar18[4];\n            local_164 = unaff_s4;\n            iVar12 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar5,0);\n            *(int *)((int)this + 0x28) = iVar12;\n            if (iVar12 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar3 != (int *)0x0) {\n              local_110[0] = *piVar3;\n              local_110[1] = piVar3[1];\n              local_100 = *(undefined8 *)(piVar3 + 0x92);\n              local_f8 = piVar3[8];\n              local_110[2] = piVar3[0xaf];\n              if (pdVar31 != (double *)0x0) {\n                iVar12 = piVar3[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4);\n                if (*(int *)(iVar12 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar12 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar12 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x44) * 4);\n                }\n              }\n            }\n            dVar42 = local_70 * in_f26_27;\n            dVar49 = local_c8 * in_f26_27;\n            dVar46 = (dVar42 + dVar49) - dVar42 * dVar49;\n            if (0.0 <= dVar46) {\n              local_c8 = dVar46;\n              if (in_f20_21 < dVar46) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar38 + 0x4a48);\n              if (0.0 <= dVar46) {\n                dVar47 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar47 = in_f22_23;\n            }\n            if (*(double *)(puVar38 + 0x43c8) <= dVar46 * dVar47) {\n              dVar47 = *(double *)((int)unaff_s3 + 0x4408) / dVar46;\n            }\n            else {\n              dVar47 = dVar47 / *(double *)(puVar38 + 0x43c8);\n            }\n            dVar46 = *(double *)((int)unaff_s3 + 0x4408) - dVar42;\n            local_e8 = (dVar49 * local_e8 * dVar46 + dVar42 * local_90) * dVar47;\n            local_e0 = (dVar49 * local_e0 * dVar46 + dVar42 * local_88) * dVar47;\n            local_d8 = (dVar49 * local_d8 * dVar46 + dVar42 * local_80) * dVar47;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar49 * local_d0 * dVar46 + dVar42 * local_78) * dVar47;\n            }\n            iVar12 = piVar3[0xb4];\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar12 + 0x28) != 0) {\n              *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar12 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar45 = (float)local_c8;\n              }\n              *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4) = fVar45;\n            }\n            pdVar31 = (double *)((int)pdVar31 + piVar3[0xb0] * 4);\n          }\n          pdVar18 = pdVar6;\n          iVar12 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar6,unaff_s4);\n          if (iVar12 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }\n        }\n      }\n      iVar4 = iVar4 + 1;\n      unaff_s6 = (double *)puVar38;\n    } while (iVar4 < (int)puVar7);\n  }\n  if (local_5c == *(int *)PTR___stack_chk_guard_003fa248) {\n    return;\n  }\n  pcVar39 = DrawPolygonPrimitive__omp_fn_3;\n  puVar38 = PTR___stack_chk_fail_003fa07c;\n  (*(code *)PTR___stack_chk_fail_003fa07c)();\n  puStack_350 = puVar38 + 0x35d9c0;\n  iStack_1e4 = **(int **)(puVar38 + 0x356358);\n  iVar30 = *(int *)((int)pdVar18 + 0x24);\n  pdStack_2a8 = pdVar18;\n  pdStack_1e0 = pdVar31;\n  piStack_1dc = piVar3;\n  iStack_1d8 = unaff_s2;\n  pdStack_1d4 = unaff_s3;\n  piStack_1d0 = unaff_s4;\n  pvStack_1cc = this;\n  pdStack_1c8 = unaff_s6;\n  uStack_1c4 = unaff_s7;\n  iStack_1c0 = iVar4;\n  pcStack_1bc = pcVar39;\n  dStack_1b8 = in_f20_21;\n  dStack_1b0 = in_f22_23;\n  dStack_1a8 = in_f24_25;\n  dStack_1a0 = in_f26_27;\n  dStack_198 = in_f28_29;\n  dStack_190 = in_f30_31;\n  iVar12 = (**(code **)(puVar38 + 0x356a34))();\n  iVar51 = (**(code **)(puStack_350 + -0x7390))();\n  iVar14 = (*(int *)(pdVar18 + 5) + 1) - iVar30;\n  if (iVar12 == 0) {\n    trap(7);\n  }\n  iVar52 = iVar14 / iVar12;\n  iVar14 = iVar14 % iVar12;\n  uVar28 = (uint)(iVar51 < iVar14);\n  if (uVar28 != 0) {\n    iVar52 = iVar52 + 1;\n    iVar14 = 0;\n  }\n  uVar9 = iVar52 * iVar51 + iVar14;\n  pdVar31 = (double *)(iVar52 + uVar9);\n  if ((int)uVar9 < (int)pdVar31) {\n    iStack_29c = *(int *)((int)pdStack_2a8 + 0x1c);\n    in_f28_29 = *pdStack_2a8;\n    iStack_2f4 = *(int *)(pdStack_2a8 + 3);\n    pdStack_2a0 = *(double **)((int)pdStack_2a8 + 0x14);\n    uStack_2d0 = *(undefined4 *)(pdStack_2a8 + 2);\n    iStack_324 = *(int *)((int)pdStack_2a8 + 0xc);\n    unaff_s6 = *(double **)(pdStack_2a8 + 1);\n    iStack_2f0 = iVar30 + uVar9;\n    puStack_2a4 = (undefined1 *)(iVar30 + (int)pdVar31);\n    unaff_s7 = *(uint *)(puStack_350 + -0x7fd0);\n    dStack_320 = *(double *)(unaff_s7 + 0x4408);\n    iVar4 = *(int *)(puStack_350 + -0x7fd0);\n    dStack_2b8 = *(double *)(iVar4 + 0x43c8);\n    uStack_2f8 = uVar9;\n    do {\n      iVar30 = (**(code **)(puStack_350 + -0x7390))();\n      if (*(int *)((int)pdStack_2a8 + 0x2c) != 0) {\n        pdVar31 = *(double **)(pdStack_2a8 + 4);\n        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);\n        dVar41 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar31 - in_f20_21);\n        uStack_2d4 = (uint)dVar41;\n        dVar41 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar31[2] + in_f20_21);\n        uVar28 = uStack_2d4;\n        pdVar18 = (double *)(int)dVar41;\n        uStack_354 = uStack_2d0;\n        puStack_358 = (undefined4 *)0x1;\n        pdVar31 = pdStack_2a0;\n        pdStack_2cc = pdVar18;\n        iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar18 + (1 - uStack_2d4)));\n        if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar30 = iVar30 * 4;\n          puVar38 = puStack_350;\n          if ((int)uVar28 <= (int)pdVar18) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar30);\n            uStack_328 = uStack_2d4;\n            pdVar18 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              pvVar15 = (void *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)pvVar15 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4f34:\n                  pdVar31 = (double *)*unaff_s4;\n                  if (0 < (int)pvVar15) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4ec0:\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar41 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar12 = *(int *)(puVar38 + -0x7fd0);\n                dVar41 = *(double *)(iVar12 + 0x43d0);\n                this = (void *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar41 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar31 = unaff_s3;\n                  dStack_330 = dVar41;\n                  pdStack_2d8 = pdVar18;\n                  do {\n                    pdVar18 = pdStack_2ec;\n                    iVar51 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar31[3] + dVar41) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar31 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar31[2] + *(double *)(iVar12 + 0x43d0))) {\n                        iVar30 = *(int *)(pdVar31 + 7);\n                        dVar43 = (double)iVar30;\n                        if (iVar30 < 0) {\n                          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar43 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar30 = 1;\n                        }\n                        if (iVar30 < *(int *)((int)pdVar31 + 0x2c)) {\n                          iVar14 = *(int *)(pdVar31 + 5);\n                          iVar52 = (iVar30 + 0xfffffff) * 0x10;\n                          pdVar18 = (double *)(iVar14 + iVar52);\n                          dVar43 = *(double *)(iVar12 + 0x43d0);\n                          if ((pdVar18[1] - in_f28_29) - dVar43 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar33 = *(int *)(puVar38 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar33 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar52 = iVar52 + 0x10;\n                              dVar42 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43\n                                 ) {\n                                if (in_f26_27 != pdVar31[4]) {\n                                  pdVar31[4] = in_f26_27;\n                                  *(int *)(pdVar31 + 7) = iVar30;\n                                }\n                                dVar46 = pdVar18[2] - *pdVar18;\n                                dVar44 = pdVar18[3] - pdVar18[1];\n                                dVar49 = in_f22_23 - *pdVar18;\n                                dVar42 = in_f26_27 - pdVar18[1];\n                                dVar47 = dVar46 * dVar49 + dVar44 * dVar42;\n                                if (0.0 < dVar47) {\n                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;\n                                  if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }\n                                dVar42 = dStack_338;\n                                if (*(int *)((int)pdVar31 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar42;\n                                dVar42 = dStack_340;\n                                if (((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar42;\n                              iVar30 = iVar30 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar43;\n                              if (*(int *)((int)pdVar31 + 0x2c) <= iVar30) break;\n                              iVar14 = *(int *)(pdVar31 + 5);\n                              pdVar18 = (double *)(iVar14 + iVar52);\n                            } while ((pdVar18[1] - in_f28_29) - *(double *)(iVar12 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (pvVar15 <= this) {\n                        (**(code **)(puVar38 + -0x7290))\n                                  (*(int *)(puVar38 + -0x7fcc) + 0x69fc,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x69c0,0x3e3,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x773c);\n                        return;\n                      }\n                      iVar51 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar5 = (**(code **)(puVar38 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar31 + iVar51 + 0x28));\n                      *(undefined4 *)((int)pdVar31 + iVar51 + 0x28) = uVar5;\n                      pvVar15 = (void *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)pvVar15;\n                      puVar38 = puStack_350;\n                      if (this < pvVar15) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar31 + (*unaff_s4 - (int)pdVar18)),\n                                   *unaff_s4 + ((int)this + 1) * 0x40,\n                                   ((int)pvVar15 - (int)this) * 0x40);\n                        puVar38 = puStack_350;\n                      }\n                    }\n                    this = (void *)((int)this + 1);\n                    unaff_s3 = pdVar31 + 8;\n                    pvVar15 = (void *)unaff_s4[1];\n                  } while (((int)this < (int)pvVar15) &&\n                          (pdVar18 = pdVar31 + 9, pdVar31 = unaff_s3,\n                          (*pdVar18 - in_f28_29) - *(double *)(iVar12 + 0x43d0) < in_f26_27));\n                  pdVar18 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar31 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar41 = in_f30_31;\nLAB_000a4f3c:\n                dVar43 = (double)iStack_2f0;\n                pvVar23 = (void *)0x0;\n                if (pdVar31[1] < dVar43) {\n                  uVar28 = 0;\n                  do {\n                    if ((dVar43 <= pdVar31[3]) &&\n                       (dVar42 = (double)(int)uStack_328, *pdVar31 < dVar42)) {\n                      iVar12 = -1;\n                      if (dVar42 <= pdVar31[2]) {\n                        iVar12 = *(int *)(pdVar31 + 7);\n                        dVar49 = (double)iVar12;\n                        if (iVar12 < 0) {\n                          dVar49 = dVar49 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar49 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar12 = 1;\n                        }\n                        iVar51 = *(int *)((int)pdVar31 + 0x2c) + -1;\n                        if (iVar12 < iVar51) {\n                          iVar30 = *(int *)(pdVar31 + 5) + iVar12 * 0x10;\n                          dVar49 = *(double *)(iVar30 + 8);\n                          while (dVar49 < dVar43) {\n                            iVar12 = iVar12 + 1;\n                            if (iVar51 <= iVar12) break;\n                            dVar49 = *(double *)(iVar30 + 0x18);\n                            iVar30 = iVar30 + 0x10;\n                          }\n                        }\n                        pdVar6 = (double *)(*(int *)(pdVar31 + 5) + (iVar12 + 0xfffffff) * 0x10);\n                        iVar12 = -1;\n                        if ((pdVar6[2] - *pdVar6) * (dVar43 - pdVar6[1]) <=\n                            (pdVar6[3] - pdVar6[1]) * (dVar42 - *pdVar6)) {\n                          if (*(int *)(pdVar31 + 6) != 0) {\n                            iVar12 = 1;\n                          }\n                          uVar28 = uVar28 + iVar12;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar31 + 6) != 0) {\n                          iVar12 = 1;\n                        }\n                        uVar28 = uVar28 + iVar12;\n                      }\n                    }\n                    pvVar23 = (void *)((int)pvVar23 + 1);\n                  } while ((pvVar23 != pvVar15) &&\n                          (pdVar6 = pdVar31 + 9, pdVar31 = pdVar31 + 8, *pdVar6 < dVar43));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar28 < 0) {\n                      uVar28 = -uVar28;\n                    }\n                    if ((uVar28 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar28 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar12 == 0) {\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar28 = uStack_2f8;\n              iVar30 = uStack_328 - uStack_2d4;\n              iVar12 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar12 == 0) {\n                puVar10 = (undefined4 *)(iStack_324 + 0x48);\n                puVar2 = auStack_298;\n                do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0x98));\n                uVar5 = puVar11[5];\n                puVar17[4] = *puVar10;\n                puVar17[5] = uVar5;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uStack_2f8 + *(int *)(iVar12 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar31 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0) {\n                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }\n              dVar43 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar42 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar43 = (dVar43 + dVar42) - dVar43 * dVar42;\n              in_f30_31 = dVar41;\n              if (0 < *(int *)(pdVar18 + 0x58)) {\n                iVar51 = 0;\n                iVar12 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar51);\n                  uStack_348 = dVar43;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7370 + uVar9 * 4))\n                    )();\n                    return;\n                  }\n                  iVar12 = iVar12 + 1;\n                  iVar51 = iVar51 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar12 < *(int *)(pdVar18 + 0x58));\n              }\n              iVar12 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar12 == 0) {\n                puVar10 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar2 = auStack_240;\n                do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar5 = puVar11[5];\n                puVar17[4] = *puVar10;\n                puVar17[5] = uVar5;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uVar28 + *(int *)(iVar12 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar31 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0) {\n                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar43 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar43) - dVar41 * dVar43;\n              iVar12 = *(int *)(pdVar18 + 0x58);\n              if (0 < iVar12) {\n                iVar14 = 0;\n                iVar51 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar14);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7384 + uVar9 * 4))\n                    )(in_f20_21,*(undefined8 *)(*(int *)(puVar38 + -0x7fd0) + 0x4a48));\n                    return;\n                  }\n                  iVar51 = iVar51 + 1;\n                  iVar12 = *(int *)(pdVar18 + 0x58);\n                  iVar14 = iVar14 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar51 < iVar12);\n              }\n              iStack_308 = iStack_308 + iVar12 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar18;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar31 = pdStack_2a0;\n          iVar12 = (**(code **)(puVar38 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar12 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }\n      }\n      iStack_2f0 = iStack_2f0 + 1;\n      uStack_2f8 = uStack_2f8 + 1;\n    } while (iStack_2f0 < (int)puStack_2a4);\n  }\n  if (iStack_1e4 == **(int **)(puStack_350 + -0x7668)) {\n    return;\n  }\n  pcVar39 = *(code **)(puStack_350 + -0x7834);\n  pcVar40 = DrawPolygonPrimitive__omp_fn_2;\n  (*pcVar39)();\n  pcStack_440 = pcVar39 + 0x35c870;\n  iStack_3bc = **(int **)(pcVar39 + 0x355208);\n  uVar9 = *(uint *)(pdVar31 + 3);\n  pdVar6 = pdVar31;\n  uStack_428 = uVar9;\n  iStack_3b8 = iVar30;\n  uStack_3b4 = uVar28;\n  pdStack_3b0 = pdVar18;\n  pdStack_3ac = unaff_s3;\n  piStack_3a8 = unaff_s4;\n  pvStack_3a4 = this;\n  pdStack_3a0 = unaff_s6;\n  uStack_39c = unaff_s7;\n  iStack_398 = iVar4;\n  pcStack_394 = pcVar40;\n  dStack_390 = in_f20_21;\n  dStack_388 = in_f22_23;\n  dStack_380 = in_f24_25;\n  dStack_378 = in_f26_27;\n  dStack_370 = in_f28_29;\n  iVar4 = (**(code **)(pcVar39 + 0x3558e4))();\n  iVar12 = (**(code **)(pcStack_440 + -0x7390))();\n  iVar51 = (*(uint *)((int)pdVar31 + 0x1c) + 1) - uVar9;\n  if (iVar4 == 0) {\n    trap(7);\n  }\n  iVar30 = iVar51 / iVar4;\n  iVar51 = iVar51 % iVar4;\n  uVar28 = (uint)(iVar12 < iVar51);\n  if (uVar28 != 0) {\n    iVar30 = iVar30 + 1;\n    iVar51 = 0;\n  }\n  iVar51 = iVar30 * iVar12 + iVar51;\n  iVar30 = iVar30 + iVar51;\n  iVar4 = *(int *)(pcStack_440 + -0x7fd0);\n  pcVar39 = pcStack_440;\n  if (iVar51 < iVar30) {\n    pdStack_42c = *(double **)(pdVar31 + 2);\n    uStack_430 = *(uint *)((int)pdVar31 + 0xc);\n    unaff_s6 = *(double **)(pdVar31 + 1);\n    uStack_424 = *(uint *)((int)pdVar31 + 4);\n    unaff_s7 = *(uint *)pdVar31;\n    iVar51 = uStack_428 + iVar51;\n    iVar30 = uStack_428 + iVar30;\n    in_f22_23 = *(double *)(iVar4 + 0x43d0);\n    in_f26_27 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8);\n    in_f28_29 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410);\n    do {\n      in_f20_21 = *(double *)(iVar4 + 0x43d0);\n      if (*(uint *)(pdVar31 + 4) != 0) {\n        pdVar18 = *(double **)((int)pdVar31 + 0x14);\n        dVar41 = (double)(**(code **)(pcVar39 + -0x7c78))(*pdVar18 - in_f20_21);\n        uStack_434 = (uint)dVar41;\n        dVar41 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar18[2] + in_f20_21);\n        uVar28 = uStack_434;\n        this = (void *)(int)dVar41;\n        uStack_444 = uStack_430;\n        piStack_448 = (int *)0x1;\n        pdVar6 = pdStack_42c;\n        pdVar18 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar51,(int)this + (1 - uStack_434));\n        if (pdVar18 == (double *)0x0) {\n          *(uint *)(pdVar31 + 4) = 0;\n          pcVar39 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar28 <= (int)this;\n          uVar28 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar4 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar41 == uVar28) &&\n                 (dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar51 == (int)dVar41)) {\n                iVar12 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar12 == 0) {\n                  piVar3 = (int *)(uStack_424 + 0x48);\n                  piVar50 = aiStack_418;\n                  do {\n                    piVar19 = piVar50;\n                    piVar21 = piVar3;\n                    iVar52 = piVar21[1];\n                    iVar14 = piVar21[2];\n                    iVar12 = piVar21[3];\n                    *piVar19 = *piVar21;\n                    piVar19[1] = iVar52;\n                    piVar19[2] = iVar14;\n                    piVar19[3] = iVar12;\n                    piVar3 = piVar21 + 4;\n                    piVar50 = piVar19 + 4;\n                  } while (piVar3 != (int *)(uStack_424 + 0x98));\n                  iVar12 = piVar21[5];\n                  piVar19[4] = *piVar3;\n                  piVar19[5] = iVar12;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar12,6,(uVar28 - uStack_434) + *(int *)(iVar12 + 0x298),\n                             (iVar51 - uStack_428) + *(int *)(iVar12 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar6 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar6 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar6)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar6 * in_f28_29;\n                  }\n                }\n                iVar12 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar12 + 0x28) != 0) {\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar12 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar45 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar45 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x38) * 4) = fVar45;\n                }\n              }\n              pdVar18 = (double *)((int)pdVar18 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar28 = uVar28 + 1;\n            } while ((int)uVar28 <= (int)this);\n          }\n          pdVar6 = pdStack_42c;\n          iVar12 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar39 = pcStack_440;\n          if (iVar12 == 0) {\n            *(uint *)(pdVar31 + 4) = 0;\n          }\n        }\n      }\n      iVar51 = iVar51 + 1;\n    } while (iVar51 < iVar30);\n  }\n  if (iStack_3bc == **(int **)(pcVar39 + -0x7668)) {\n    return;\n  }\n  pcVar39 = *(code **)(pcVar39 + -0x7834);\n  pcVar40 = DrawGradientImage__omp_fn_1;\n  (*pcVar39)();\n  pcStack_5a8 = pcVar39 + 0x35c414;\n  iStack_4b4 = **(int **)(pcVar39 + 0x354dac);\n  puVar34 = *(uint **)(pdVar6 + 4);\n  pdVar32 = (double *)puVar34[3];\n  pdVar16 = pdVar6;\n  uStack_4b0 = uVar28;\n  iStack_4ac = iVar51;\n  pdStack_4a8 = pdVar18;\n  pdStack_4a4 = pdVar31;\n  iStack_4a0 = iVar30;\n  pvStack_49c = this;\n  pdStack_498 = unaff_s6;\n  uStack_494 = unaff_s7;\n  iStack_490 = iVar4;\n  pcStack_48c = pcVar40;\n  dStack_488 = in_f20_21;\n  dStack_480 = in_f22_23;\n  dStack_478 = in_f24_25;\n  dStack_470 = in_f26_27;\n  dStack_468 = in_f28_29;\n  dStack_460 = in_f30_31;\n  iVar4 = (**(code **)(pcVar39 + 0x355488))();\n  iVar12 = (**(code **)(pcStack_5a8 + -0x7390))();\n  if (iVar4 == 0) {\n    trap(7);\n  }\n  iVar51 = (int)(puVar34[1] - (int)pdVar32) / iVar4;\n  piVar50 = (int *)((int)(puVar34[1] - (int)pdVar32) % iVar4);\n  piVar3 = piVar50;\n  if (iVar12 < (int)piVar50) {\n    iVar51 = iVar51 + 1;\n    piVar3 = (int *)0x0;\n  }\n  piVar3 = (int *)(iVar51 * iVar12 + (int)piVar3);\n  puVar37 = (undefined1 *)((int)pdVar32 + (int)piVar3);\n  pcVar39 = pcStack_5a8;\n  if ((int)piVar3 < iVar51 + (int)piVar3) {\n    dStack_580 = *pdVar6;\n    pdStack_588 = *(double **)(pdVar6 + 3);\n    puVar34 = *(uint **)((int)pdVar6 + 0x14);\n    pdStack_568 = *(double **)(pdVar6 + 2);\n    uStack_564 = *(uint *)((int)pdVar6 + 0xc);\n    piVar50 = *(int **)(pdVar6 + 1);\n    puStack_56c = (undefined1 *)((int)pdVar32 + iVar51 + (int)piVar3);\n    dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n    if (dStack_580 < 0.0) {\n      dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n    }\n    iStack_570 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_598 = *(double *)(iStack_570 + 0x4a48);\n    iStack_584 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_560 = *(double *)(iStack_584 + 0x43d0);\n    unaff_s6 = *(double **)(pcStack_5a8 + -0x7fd0);\n    dStack_548 = unaff_s6[0x879];\n    do {\n      if (*(uint *)((int)pdVar6 + 0x24) != 0) {\n        uStack_5ac = uStack_564;\n        uStack_5b0 = 1;\n        pdVar16 = pdStack_568;\n        pdVar32 = (double *)(**(code **)(pcVar39 + -0x724c))(pdStack_568,0,puVar37,piVar50[6]);\n        if (pdVar32 == (double *)0x0) {\n          *(uint *)((int)pdVar6 + 0x24) = 0;\n          pcVar39 = pcStack_5a8;\n        }\n        else {\n          piVar19 = *(int **)((int)pdVar6 + 0x1c);\n          piVar3 = piVar19;\n          piVar21 = aiStack_510;\n          do {\n            piVar13 = piVar21;\n            piVar8 = piVar3;\n            iVar51 = piVar8[1];\n            iVar12 = piVar8[2];\n            iVar4 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar51;\n            piVar13[2] = iVar12;\n            piVar13[3] = iVar4;\n            piVar3 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar3 != piVar19 + 0x14);\n          iVar12 = *piVar3;\n          iVar4 = piVar8[5];\n          *piVar21 = iVar12;\n          piVar13[5] = iVar4;\n          in_f20_21 = *(double *)(piVar19 + 10);\n          in_f22_23 = *(double *)(piVar19 + 0xc);\n          in_f24_25 = *(double *)(piVar19 + 0xe);\n          dStack_590 = *(double *)(piVar19 + 0x10);\n          dVar41 = *(double *)(piVar19 + 0x12);\n          if (*puVar34 < 2) {\n            uStack_5a0 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n            dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar34 + 6);\n            dStack_530 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n            dVar43 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar43);\n            if (0.0 <= dVar43) {\n              dVar43 = dVar42 * dVar42;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar43 = dVar42 * dVar42;\n            }\n            dVar43 = uStack_5a0 * uStack_5a0 + dVar43;\n            in_f26_27 = SQRT(dVar43);\n            if (dVar43 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar43) {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar43 = dVar43 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar42 * dStack_530) * dVar43 * dStack_558;\nLAB_000a56c0:\n            uVar28 = *puVar34;\nLAB_000a56c4:\n            if (uVar28 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar43 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar43;\n            }\n          }\n          else {\n            if (*puVar34 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar34[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar42 = 0.0 - *(double *)(puVar34 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar34 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar21,iVar12,\n                         &dStack_518,&dStack_520);\n              dVar43 = *(double *)(puVar34 + 0x16);\n              if (in_f26_27 <= dVar43) {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar43 * dVar49) {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }\n              else {\n                dVar49 = dVar49 / unaff_s6[0x879];\n              }\n              dVar49 = (dVar42 * dStack_520 +\n                       ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) * dVar49;\n              dVar43 = *(double *)(puVar34 + 0x18);\n              if (0.0 <= dVar43) {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar43 * dVar46) {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }\n              else {\n                dVar46 = dVar46 / unaff_s6[0x879];\n              }\n              dVar46 = (dVar42 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) * dVar46;\n              dVar43 = dVar49 * dVar49 + dVar46 * dVar46;\n              uStack_5a0 = SQRT(dVar43);\n              if (0.0 <= dVar43) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar28 = *puVar34;\n              goto LAB_000a56c4;\n            }\n            dVar43 = (0.0 - *(double *)(puVar34 + 0x12)) * (0.0 - *(double *)(puVar34 + 0x12)) +\n                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n            uStack_5a0 = SQRT(dVar43);\n            if (dVar43 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar28 = *puVar34;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar30 = (*(int **)(pdVar6 + 4))[2];\n          pdVar31 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar30 < **(int **)(pdVar6 + 4)) {\n            dStack_540 = pdVar31[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar50 != (int *)0x0) {\n                aiStack_510[0] = *piVar50;\n                aiStack_510[1] = piVar50[1];\n                uStack_500 = *(undefined8 *)(piVar50 + 0x92);\n                iStack_4f8 = piVar50[8];\n                aiStack_510[2] = piVar50[0xaf];\n                if (pdVar32 != (double *)0x0) {\n                  iVar4 = piVar50[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4);\n                  if (*(int *)(iVar4 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar4 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar4 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar34[0x10];\n              if (unaff_s7 == 2) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      in_f26_27 = pdVar31[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                      in_f26_27 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar34 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar41 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar41 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar41;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar34 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar41 = *(double *)(puVar34 + 0x16);\n                  if (0.0 <= dVar41) {\n                    dVar49 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                    dVar49 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar49 = dVar49 / unaff_s6[0x879];\n                  }\n                  dVar41 = *(double *)(puVar34 + 0x18);\n                  dVar49 = (dVar42 * dStack_520 +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                           dVar49;\n                  if (0.0 <= dVar41) {\n                    dVar46 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                    dVar46 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar46 = dVar46 / unaff_s6[0x879];\n                  }\n                  dVar46 = (dVar42 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                           dVar46;\n                  dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar34 != 2) goto LAB_000a6378;\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar4 + 0x298));\n                if ((int)dVar41 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar31[0x881]);\n                }\n                else {\n                  dVar41 = pdVar31[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar41);\n                  uStack_5a0 = dVar41 - uStack_5a0;\n                }\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a6248;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar12 + 0x58)) /\n                               (*(double *)(iVar4 + 0x58) - *(double *)(iVar12 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6e58:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) goto LAB_000a6944;\n                if (*puVar34 < 2) {\n                  dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                  dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                  dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                  dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                  dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) {\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  dVar41 = dVar46 * dVar46 + dVar41;\n                  dVar44 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar44 = uStack_5a0 * dVar44;\n                  if (0.0 <= dVar44) {\n                    in_f26_27 = pdVar31[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                    in_f26_27 = pdVar31[0x881] / dVar44;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar28 = *puVar34;\nLAB_000a690c:\n                  if (uVar28 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar41 = pdVar31[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar41 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar41;\n                  }\n                }\n                else {\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar34 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar41 = *(double *)(puVar34 + 0x16);\n                    if (0.0 <= dVar41) {\n                      dVar49 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                      dVar49 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar49 = dVar49 / unaff_s6[0x879];\n                    }\n                    dVar41 = *(double *)(puVar34 + 0x18);\n                    dVar49 = (dVar42 * dStack_520 +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                             dVar49;\n                    if (0.0 <= dVar41) {\n                      dVar46 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                      dVar46 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar46 = dVar46 / unaff_s6[0x879];\n                    }\n                    dVar46 = (dVar42 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                             dVar46;\n                    dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                  dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                           ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                  uStack_5a0 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar41 = pdVar31[0x881];\n                        uVar20 = uVar28;\n                        goto LAB_000a6f20;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar41 = pdVar31[0x881], uVar20 != 0)) {\nLAB_000a6f20:\n                      if ((dVar41 < uStack_5a0) || (uVar28 == uVar20)) {\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar4 = uVar9 + uVar24 * 0x60;\n                      iVar12 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar4 + 0x58)) /\n                               (*(double *)(iVar12 + 0x58) - *(double *)(iVar4 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6740:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar4 + 0x28) +\n                                  dVar42 * *(double *)(iVar12 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar4 + 0x30) +\n                                  dVar42 * *(double *)(iVar12 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar4 + 0x38) +\n                                  dVar42 * *(double *)(iVar12 + 0x38)) * dVar47;\n                      if (*(int *)(iVar12 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar4 + 0x40) +\n                                     dVar42 * *(double *)(iVar12 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\n                  dVar42 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      dVar41 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * dVar41) {\n                      dVar41 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      dVar41 = dVar41 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * dVar41 * uStack_5a0;\nLAB_000a5e90:\n                    uVar28 = *puVar34;\nLAB_000a5e94:\n                    if (uVar28 == 1) {\n                      dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar41;\n                      if (0.0 <= dVar41) {\n                        dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar41,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar42 = dStack_580;\n                        dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580);\n                        dVar42 = dVar42 - dVar41;\n                      }\n                      bVar1 = dVar42 < dStack_580 && dStack_580 < dVar42 + pdVar31[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar31[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar42 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar34 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                             ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                    in_f26_27 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar28 = *puVar34;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  uStack_5a0 = dVar41;\n                  if (0.0 <= dVar41) {\n                    dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  }\n                  else {\n                    dVar42 = *(double *)(puVar34 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar41,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dVar42);\n                    dVar42 = dVar42 - dVar41;\n                  }\n                  bVar1 = *(double *)(puVar34 + 0x1a) < dVar42 + pdVar31[0x881];\n                  uStack_5a0 = dVar42 / *(double *)(puVar34 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a5db0;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      dVar41 = *(double *)(uVar9 + uVar24 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar41 = dStack_580;\n                        if (*puVar34 != 1) {\n                          dVar41 = *(double *)(puVar34 + 0x1a);\n                        }\n                        dVar41 = dVar41 - dVar42;\n                        uVar20 = uVar28 - 1;\n                        uVar24 = 0;\n                      }\n                      else {\n                        dVar41 = (uStack_5a0 - dVar41) /\n                                 (*(double *)(uVar9 + uVar20 * 0x60 + 0x58) - dVar41);\n                      }\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6d30:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\nLAB_000a5af8:\n              dVar46 = dVar41 * dVar43;\n              dVar49 = dStack_4c8 * dVar43;\n              dVar42 = (dVar46 + dVar49) - dVar46 * dVar49;\n              if (0.0 <= dVar42) {\n                dStack_4c8 = pdVar31[0x881];\n                if (dVar42 <= pdVar31[0x881]) {\n                  dStack_4c8 = dVar42;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar42) {\n                  dVar47 = pdVar31[0x881];\n                }\n                else {\n                  dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar42 * dVar47) {\n                dVar47 = pdVar31[0x881] / dVar42;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar42 = pdVar31[0x881] - dVar46;\n              dStack_4e8 = (dVar49 * dStack_4e8 * dVar42 + dVar46 * in_f20_21) * dVar47;\n              dStack_4e0 = (dVar49 * dStack_4e0 * dVar42 + in_f22_23 * dVar46) * dVar47;\n              dStack_4d8 = (dVar49 * dStack_4d8 * dVar42 + dVar46 * in_f24_25) * dVar47;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar49 * dStack_4d0 * dVar42 + dStack_590 * dVar46) * dVar47;\n              }\n              iVar4 = piVar50[0xb4];\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar4 + 0x28) != 0) {\n                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar4 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar45 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar45 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4) = fVar45;\n              }\n              pdVar32 = (double *)((int)pdVar32 + piVar50[0xb0] * 4);\n              iVar30 = iVar30 + 1;\n            } while (iVar30 < **(int **)(pdVar6 + 4));\n          }\n          pdVar16 = pdStack_568;\n          iVar4 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar39 = pcStack_5a8;\n          if (iVar4 == 0) {\n            *(uint *)((int)pdVar6 + 0x24) = 0;\n          }\n        }\n      }\n      puVar37 = puVar37 + 1;\n    } while ((int)puVar37 < (int)puStack_56c);\n  }\n  if (iStack_4b4 == **(int **)(pcVar39 + -0x7668)) {\n    return;\n  }\n  pcVar39 = *(code **)(pcVar39 + -0x7834);\n  pcVar40 = DestroyDrawInfo;\n  (*pcVar39)();\n  pcStack_5d0 = pcVar39 + 0x35a8f0;\n  pdStack_5c8 = pdVar32;\n  pcStack_5c4 = pcVar40;\n  if (pdVar16 == (double *)0x0) {\n    (**(code **)(pcVar39 + 0x353660))\n              (*(int *)(pcVar39 + 0x352920) + 0x40e4,*(int *)(pcVar39 + 0x352924) + 0x69c0,0x39a,\n               *(int *)(pcVar39 + 0x352924) + 0x7914);\n    pdVar16 = pdVar32;\nLAB_000a7234:\n    iStack_5d8 = *(int *)(pcVar39 + 0x352924) + 0x10f4;\n    (**(code **)(pcVar39 + 0x353238))\n              (0x8000,*(int *)(pcVar39 + 0x352924) + 0x69c0,*(int *)(pcVar39 + 0x352924) + 0x7904,\n               0x39c);\n    uVar28 = *(uint *)(pdVar16 + 0x72);\n  }\n  else {\n    if (*(uint *)((int)pdVar16 + 0x38c) != 0) goto LAB_000a7234;\n    uVar28 = *(uint *)(pdVar16 + 0x72);\n  }\n  if (uVar28 == 0xabacadab) {\n    if (*(uint *)(pdVar16 + 0x77) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar16 + 0x77) = uVar28;\n    }\n    if (*(uint *)pdVar16 != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)pdVar16 = uVar28;\n    }\n    if (*(uint *)(pdVar16 + 0x4c) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar16 + 0x4c) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 4) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar16 + 4) = uVar28;\n    }\n    if (*(uint *)(pdVar16 + 0x35) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)(pdVar16 + 0x35) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 0x1ac) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar16 + 0x1ac) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 0x264) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar16 + 0x264) = uVar28;\n    }\n    if (*(uint *)(pdVar16 + 0x4d) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar16 + 0x4d) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 0x26c) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar16 + 0x26c) = uVar28;\n    }\n    if (*(uint *)(pdVar16 + 0x50) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar16 + 0x50) = uVar28;\n    }\n    if (*(uint *)(pdVar16 + 0x52) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar16 + 0x52) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 0x29c) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)((int)pdVar16 + 0x29c) = uVar28;\n    }\n    if (*(uint *)(pdVar16 + 0x54) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar16 + 0x54) = uVar28;\n    }\n    if (*(uint *)(pdVar16 + 0x3e) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar16 + 0x3e) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 0x2a4) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar16 + 0x2a4) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 0x3ac) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar16 + 0x3ac) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 0x3b4) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar16 + 0x3b4) = uVar28;\n    }\n    *(uint *)(pdVar16 + 0x72) = 0x54535254;\n    (**(code **)(pcStack_5d0 + -0x78d8))(pdVar16);\n    return;\n  }\n  pdVar6 = (double *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x7914);\n  pdVar18 = (double *)&DAT_0000039d;\n  puVar25 = (uint *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x69c0);\n  piVar3 = (int *)(*(int *)(pcStack_5d0 + -0x7fd0) + 0x4128);\n  pcVar39 = *(code **)(pcStack_5d0 + -0x7290);\n  pcVar40 = DrawAffineImage;\n  (*pcVar39)();\n  pcStack_758 = pcVar39 + 0x35a61c;\n  uStack_638._4_4_ = **(int **)(pcVar39 + 0x352fb4);\n  pdStack_62c = pdVar16;\n  piStack_628 = piVar50;\n  puStack_624 = puVar34;\n  pdStack_620 = pdVar31;\n  iStack_61c = iVar30;\n  puStack_618 = puVar37;\n  pdStack_614 = unaff_s6;\n  uStack_610 = unaff_s7;\n  pcStack_60c = pcVar40;\n  dStack_608 = in_f20_21;\n  dStack_600 = in_f22_23;\n  dStack_5f8 = in_f24_25;\n  dStack_5f0 = in_f26_27;\n  if (piVar3 == (int *)0x0) {\n    (**(code **)(pcVar39 + 0x35338c))\n              (*(int *)(pcVar39 + 0x35264c) + 0x3da0,*(int *)(pcVar39 + 0x352650) + 0x69c0,0x4c0,\n               *(int *)(pcVar39 + 0x352650) + 0x78f4);\n    pdVar18 = pdVar16;\n    piVar3 = piVar50;\n    puVar25 = puVar34;\n    pdVar6 = pdVar31;\nLAB_000a7434:\n    piVar50 = (int *)(**(code **)(pcVar39 + 0x35338c))\n                               (*(int *)(pcVar39 + 0x352650) + -0x784,\n                                *(int *)(pcVar39 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar39 + 0x352650) + 0x78f4);\nLAB_000a745c:\n    iStack_760 = *(int *)(pcVar39 + 0x352654) + -0x2f6c;\n    piStack_75c = piVar50;\n    (**(code **)(pcVar39 + 0x352f64))\n              (0x8000,*(int *)(pcVar39 + 0x352650) + 0x69c0,*(int *)(pcVar39 + 0x352650) + 0x78e4,\n               0x4c3);\n  }\n  else {\n    if (piVar3[0xcdb] != -0x54535255) goto LAB_000a7434;\n    piVar50 = piVar3 + 0xd0;\n    if (piVar3[0xcd4] != 0) goto LAB_000a745c;\n  }\n  pcVar39 = pcStack_758;\n  if (puVar25 == (uint *)0x0) {\n    (**(code **)(pcStack_758 + -0x7290))\n              (*(int *)(pcStack_758 + -0x7fcc) + 0x6a20,*(int *)(pcStack_758 + -0x7fcc) + 0x69c0,\n               0x4c4,*(int *)(pcStack_758 + -0x7fcc) + 0x78f4);\nLAB_000a74c4:\n    (**(code **)(pcVar39 + -0x7290))\n              (*(int *)(pcVar39 + -0x7fcc) + 0x6a40,*(int *)(pcVar39 + -0x7fcc) + 0x69c0);\nLAB_000a74e8:\n    dStack_668 = (double)(**(code **)(pcVar39 + -0x7290))\n                                   (*(int *)(pcVar39 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar39 + -0x7fcc) + 0x69c0);\nLAB_000a750c:\n    dStack_668 = dStack_668 + *(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x43e8);\n  }\n  else {\n    if (puVar25[0xcdb] != 0xabacadab) goto LAB_000a74c4;\n    if (pdVar18 == (double *)0x0) goto LAB_000a74e8;\n    uStack_678._4_4_ = 0;\n    uStack_678._0_4_ = 0;\n    uStack_66c = 0;\n    uStack_670 = 0;\n    dStack_668 = (double)(int)puVar25[6];\n    if ((int)puVar25[6] < 0) goto LAB_000a750c;\n  }\n  dStack_668 = dStack_668 - *(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x4408);\n  uStack_65c = 0;\n  uStack_660 = 0;\n  dStack_658 = dStack_668;\n  dStack_650 = (double)(int)puVar25[7];\n  if ((int)puVar25[7] < 0) {\n    dStack_650 = dStack_650 + *(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x43e8);\n  }\n  dStack_650 = dStack_650 - *(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x4408);\n  uStack_644 = 0;\n  uStack_648 = 0;\n  dStack_640 = dStack_650;\n  dVar47 = *pdVar18;\n  dVar46 = pdVar18[2];\n  dVar49 = pdVar18[4];\n  dVar42 = pdVar18[1];\n  dVar43 = pdVar18[3];\n  dVar41 = pdVar18[5];\n  pdVar16 = (double *)&uStack_678;\n  pdVar31 = pdVar16;\n  do {\n    dVar44 = *pdVar31;\n    *pdVar31 = dVar47 * dVar44 + dVar46 * pdVar31[1] + dVar49;\n    pdVar31[1] = dVar42 * dVar44 + dVar43 * pdVar31[1] + dVar41;\n    pdVar31 = pdVar31 + 2;\n  } while (pdVar31 != (double *)&uStack_638);\n  dVar41 = (double)CONCAT44(uStack_670,uStack_66c);\n  dVar43 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_);\n  dVar42 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_);\n  dVar49 = (double)CONCAT44(uStack_670,uStack_66c);\n  do {\n    dVar47 = pdVar16[2];\n    dVar46 = dVar47;\n    if (dVar43 <= dVar47) {\n      dVar46 = dVar43;\n    }\n    dVar44 = pdVar16[3];\n    dVar48 = dVar44;\n    if (dVar49 <= dVar44) {\n      dVar48 = dVar49;\n    }\n    if (dVar47 <= dVar42) {\n      dVar47 = dVar42;\n    }\n    if (dVar44 <= dVar41) {\n      dVar44 = dVar41;\n    }\n    pdVar16 = pdVar16 + 2;\n    dVar41 = dVar44;\n    dVar43 = dVar46;\n    dVar42 = dVar47;\n    dVar49 = dVar48;\n  } while ((double *)&uStack_648 != pdVar16);\n  ppiVar26 = (int **)0x1;\n  pdVar31 = pdVar6;\n  iVar4 = (**(code **)(pcVar39 + -0x7074))(piVar3);\n  if (iVar4 != 0) {\n    dStack_750 = dVar46;\n    if (dVar46 <= 0.0) {\n      dStack_750 = 0.0;\n    }\n    dStack_748 = dVar48;\n    if (dVar48 <= 0.0) {\n      dStack_748 = 0.0;\n    }\n    dStack_740 = (double)piVar3[6];\n    if (piVar3[6] < 0) {\n      dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_740 = dStack_740 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar47 < dStack_740) {\n      dStack_740 = dVar47;\n    }\n    dStack_738 = (double)piVar3[7];\n    if (piVar3[7] < 0) {\n      dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_738 = dStack_738 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar44 < dStack_738) {\n      dStack_738 = dVar44;\n    }\n    dStack_6e8 = *pdVar18 * pdVar18[3] - pdVar18[1] * pdVar18[2];\n    if (0.0 <= dStack_6e8) {\n      dVar41 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    }\n    else {\n      dVar41 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);\n    }\n    if (dStack_6e8 * dVar41 < *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)) {\n      dStack_6e8 = dVar41 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8);\n    }\n    else {\n      dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;\n    }\n    dStack_700 = pdVar18[3] * dStack_6e8;\n    dStack_6f8 = -pdVar18[1] * dStack_6e8;\n    dStack_6f0 = -pdVar18[2] * dStack_6e8;\n    dStack_6e8 = *pdVar18 * dStack_6e8;\n    dStack_6e0 = dStack_700 * -pdVar18[4] - dStack_6f0 * pdVar18[5];\n    dStack_6d8 = dStack_6f8 * -pdVar18[4] - dStack_6e8 * pdVar18[5];\n    (**(code **)(pcStack_758 + -0x75e4))(piVar3,auStack_6d0);\n    dVar44 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0);\n    dVar41 = (double)(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar44);\n    dVar43 = (double)(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar44);\n    uVar5 = (**(code **)(pcStack_758 + -0x7144))(puVar25,pdVar6);\n    puVar37 = (undefined1 *)(**(code **)(pcStack_758 + -0x79c4))(piVar3,pdVar6);\n    iVar4 = (**(code **)(pcStack_758 + -0x73e4))(puVar25);\n    if (((iVar4 == 4) || (iVar4 = (**(code **)(pcStack_758 + -0x73e4))(puVar25), iVar4 == 3)) &&\n       ((iVar4 = (**(code **)(pcStack_758 + -0x73e4))(piVar3), iVar4 == 4 ||\n        (iVar4 = (**(code **)(pcStack_758 + -0x73e4))(piVar3), iVar4 == 3)))) {\n      (**(code **)(pcStack_758 + -0x775c))(7);\n      iVar12 = (int)dVar43 - (int)dVar41;\n      iVar4 = iVar12;\n      if (iVar12 < 0) {\n        iVar4 = iVar12 + 0x3f;\n      }\n      pdVar18 = (double *)(iVar4 >> 6);\n      if (extraout_v1 < (int)pdVar18) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        bVar1 = extraout_v1_01 < 2;\n      }\n      else {\n        bVar1 = iVar12 < 0x80;\n      }\n      pdVar31 = (double *)0x1;\n      if (((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar31 = pdVar18, extraout_v1_02 < (int)pdVar18)\n         ) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar31 = extraout_v1_03;\n        pdVar18 = extraout_v1_03;\n      }\n    }\n    else {\n      uVar53 = (**(code **)(pcStack_758 + -0x775c))(7);\n      if (((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)) {\n        uVar53 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar53 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar39 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar53 < 2) {\n          pdVar31 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }\n      else {\nLAB_000a77f8:\n        pcVar39 = *(code **)(pcStack_758 + -0x775c);\n      }\n      uVar53 = (*pcVar39)(7);\n      if (((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar31 = extraout_v1_00;\n      }\n      else {\n        pdVar31 = (double *)0x2;\n      }\n    }\nLAB_000a7818:\n    pdStack_720 = &dStack_700;\n    puStack_714 = auStack_6d0;\n    pdStack_710 = &dStack_750;\n    iStack_704 = 1;\n    ppiVar26 = &piStack_72c;\n    piStack_72c = piVar3;\n    puStack_728 = puVar25;\n    pdStack_724 = pdVar6;\n    puStack_71c = puVar37;\n    uStack_718 = uVar5;\n    iStack_70c = (int)dVar41;\n    iStack_708 = (int)dVar43;\n    (**(code **)(pcStack_758 + -0x7700))\n              (*(int *)(pcStack_758 + -0x7ea0) + 0x34c4,ppiVar26,pdVar31,0);\n    iVar4 = iStack_704;\n    (**(code **)(pcStack_758 + -0x79a4))(uVar5);\n    (**(code **)(pcStack_758 + -0x79a4))(puVar37);\n  }\n  if (uStack_638._4_4_ == **(int **)(pcStack_758 + -0x7668)) {\n    return;\n  }\n  pcVar39 = *(code **)(pcStack_758 + -0x7834);\n  pcVar40 = DrawGradientImage;\n  iVar12 = uStack_638._4_4_;\n  (*pcVar39)();\n  pcStack_830 = pcVar39 + 0x359e18;\n  puStack_794 = (undefined8 *)**(undefined4 **)(pcVar39 + 0x3527b0);\n  pdStack_790 = pdVar18;\n  piStack_78c = piVar3;\n  puStack_788 = puVar25;\n  pdStack_784 = pdVar6;\n  iStack_780 = iVar4;\n  pcStack_77c = pcVar40;\n  dStack_778 = dVar44;\n  if (iVar12 == 0) {\n    (**(code **)(pcVar39 + 0x352b88))\n              (*(int *)(pcVar39 + 0x351e48) + 0x3da0,*(int *)(pcVar39 + 0x351e4c) + 0x69c0,0x80a,\n               *(int *)(pcVar39 + 0x351e4c) + 0x7818);\n    return;\n  }\n  if (*(int *)(iVar12 + 0x336c) != -0x54535255) {\n    (**(code **)(pcVar39 + 0x352b88))\n              (*(int *)(pcVar39 + 0x351e4c) + -0x784,*(int *)(pcVar39 + 0x351e4c) + 0x69c0,0x80b,\n               *(int *)(pcVar39 + 0x351e4c) + 0x7818);\n    return;\n  }\n  if (*(int *)(iVar12 + 0x3350) != 0) {\n    iStack_838 = *(int *)(pcVar39 + 0x351e50) + -0x2f6c;\n    iStack_834 = iVar12 + 0x340;\n    (**(code **)(pcVar39 + 0x352760))\n              (0x8000,*(int *)(pcVar39 + 0x351e4c) + 0x69c0,*(int *)(pcVar39 + 0x351e4c) + 0x7804,\n               0x80d);\n  }\n  if (ppiVar26 == (int **)0x0) {\n    (**(code **)(pcStack_830 + -0x7290))\n              (*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c,*(int *)(pcStack_830 + -0x7fcc) + 0x69c0,\n               0x80e,*(int *)(pcStack_830 + -0x7fcc) + 0x7818);\n    return;\n  }\n  ppiVar35 = ppiVar26 + 0x6e;\n  (**(code **)(pcStack_830 + -0x6fc4))\n            (ppiVar26[0x7c],ppiVar26[0x7d],0x60,*(int *)(pcStack_830 + -0x7ea0) + 0x224c);\n  ppiVar36 = ppiVar26 + 0x74;\n  dVar41 = (*(double *)(ppiVar26 + 0x78) - *(double *)(ppiVar26 + 0x74)) *\n           (*(double *)(ppiVar26 + 0x78) - *(double *)(ppiVar26 + 0x74)) +\n           (*(double *)(ppiVar26 + 0x7a) - *(double *)(ppiVar26 + 0x76)) *\n           (*(double *)(ppiVar26 + 0x7a) - *(double *)(ppiVar26 + 0x76));\n  dVar43 = SQRT(dVar41);\n  if (0.0 <= dVar41) {\n    piStack_828 = ppiVar26[0x6f];\n  }\n  else {\n    (**(code **)(pcStack_830 + -0x7418))();\n    piStack_828 = ppiVar26[0x6f];\n  }\n  piStack_824 = ppiVar26[0x70];\n  piStack_820 = ppiVar26[0x71];\n  piStack_81c = ppiVar26[0x72];\n  (**(code **)(pcStack_830 + -0x75e4))(iVar12,auStack_7f0);\n  uVar5 = (**(code **)(pcStack_830 + -0x79c4))(iVar12,pdVar31);\n  iVar4 = (**(code **)(pcStack_830 + -0x73e4))(iVar12);\n  if ((iVar4 == 4) || (iVar4 = (**(code **)(pcStack_830 + -0x73e4))(iVar12), iVar4 == 3)) {\n    iVar4 = (**(code **)(pcStack_830 + -0x73e4))(iVar12);\n    if ((iVar4 != 4) && (iVar4 = (**(code **)(pcStack_830 + -0x73e4))(iVar12), iVar4 != 3))\n    goto LAB_000a7bf4;\n    (**(code **)(pcStack_830 + -0x775c))(7);\n    iVar51 = (int)piStack_824 - (int)piStack_81c;\n    iVar4 = iVar51;\n    if (iVar51 < 0) {\n      iVar4 = iVar51 + 0x3f;\n    }\n    if (extraout_v1_04 < iVar4 >> 6) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = iVar51 < 0x80;\n    }\n    iVar4 = 1;\n    dStack_818 = dVar43;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar4 = (int)piStack_824 - (int)piStack_81c;\n      if (iVar4 < 0) {\n        iVar4 = iVar4 + 0x3f;\n      }\n      iVar4 = iVar4 >> 6;\n      dStack_818 = dVar43;\n      if (extraout_v1_07 < iVar4) {\n        (**(code **)(pcStack_830 + -0x775c))(7);\n        iVar4 = extraout_v1_08;\n        dStack_818 = dVar43;\n      }\n    }\n  }\n  else {\nLAB_000a7bf4:\n    uVar53 = (**(code **)(pcStack_830 + -0x775c))(7);\n    if (((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)) {\n      uVar53 = (**(code **)(pcStack_830 + -0x775c))(7);\n      if ((int)((ulonglong)uVar53 >> 0x20) != 0) goto LAB_000a7c10;\n      pcVar39 = *(code **)(pcStack_830 + -0x775c);\n      if ((uint)uVar53 < 2) {\n        iVar4 = 1;\n        dStack_818 = dVar43;\n        goto LAB_000a7c30;\n      }\n    }\n    else {\nLAB_000a7c10:\n      pcVar39 = *(code **)(pcStack_830 + -0x775c);\n    }\n    uVar53 = (*pcVar39)(7);\n    if (((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar4 = extraout_v1_05;\n      dStack_818 = dVar43;\n    }\n    else {\n      iVar4 = 2;\n      dStack_818 = dVar43;\n    }\n  }\nLAB_000a7c30:\n  puStack_7fc = auStack_7f0;\n  ppiStack_7f8 = &piStack_828;\n  uStack_7f4 = 1;\n  iStack_810 = iVar12;\n  pdStack_80c = pdVar31;\n  uStack_808 = uVar5;\n  ppiStack_804 = ppiVar35;\n  ppiStack_800 = ppiVar36;\n  (**(code **)(pcStack_830 + -0x7700))(*(int *)(pcStack_830 + -0x7ea0) + 0x549c,&dStack_818,iVar4,0)\n  ;\n  uVar27 = uStack_7f4;\n  (**(code **)(pcStack_830 + -0x79a4))(uVar5);\n  if (puStack_794 == (undefined8 *)**(int **)(pcStack_830 + -0x7668)) {\n    return;\n  }\n  pcVar39 = *(code **)(pcStack_830 + -0x7834);\n  pcVar40 = GetAffineMatrix;\n  puVar22 = puStack_794;\n  (*pcVar39)();\n  pcStack_858 = pcVar39 + 0x359994;\n  iStack_860 = *(int *)(pcVar39 + 0x3519c8) + 0x10f4;\n  uStack_850 = uVar5;\n  pcStack_84c = pcVar40;\n  (**(code **)(pcVar39 + 0x3522dc))\n            (0x8000,*(int *)(pcVar39 + 0x3519c8) + 0x69c0,*(int *)(pcVar39 + 0x3519c8) + 0x76b0,\n             0x16d2);\n  if (puVar22 != (undefined8 *)0x0) {\n    (**(code **)(pcStack_858 + -0x71c4))(puVar22 + 1,0,0x28);\n    uVar53 = *(undefined8 *)(*(int *)(pcStack_858 + -0x7fd0) + 0x4408);\n    *puVar22 = uVar53;\n    puVar22[3] = uVar53;\n    return;\n  }\n  iVar12 = *(int *)(pcStack_858 + -0x7fcc) + 0x69c0;\n  iVar4 = *(int *)(pcStack_858 + -0x7fcc) + 0x6368;\n  pcVar39 = *(code **)(pcStack_858 + -0x7290);\n  pcVar40 = GetDrawInfo;\n  (*pcVar39)(iVar4,iVar12,0x16d3,*(int *)(pcStack_858 + -0x7fcc) + 0x76a0);\n  uStack_888 = uVar27;\n  iStack_894 = **(int **)(pcVar39 + 0x352270);\n  puStack_88c = puVar22;\n  pdStack_884 = pdVar31;\n  ppiStack_880 = ppiVar35;\n  ppiStack_87c = ppiVar36;\n  puStack_878 = puVar37;\n  pcStack_874 = pcVar40;\n  (**(code **)(pcVar39 + 0x352220))\n            (0x8000,*(int *)(pcVar39 + 0x35190c) + 0x69c0,*(int *)(pcVar39 + 0x35190c) + 0x7694,\n             0x1702,*(int *)(pcVar39 + 0x35190c) + 0x10f4);\n  if (iVar12 == 0) {\n    (**(code **)(pcVar39 + 0x352648))\n              (*(int *)(pcVar39 + 0x351908) + 0x40e4,*(int *)(pcVar39 + 0x35190c) + 0x69c0,0x1703,\n               *(int *)(pcVar39 + 0x35190c) + 0x7688);\n  }\n  else {\n    (**(code **)(pcVar39 + 0x352714))(iVar12,0,0x3c0);\n    iVar4 = (**(code **)(pcVar39 + 0x3521dc))(iVar4);\n    (**(code **)(pcVar39 + 0x351e5c))(iVar12 + 0x18);\n    pdVar31 = (double *)(**(code **)(pcVar39 + 0x351f2c))();\n    ppiVar36 = (int **)(iVar12 + 0x48);\n    (**(code **)(pcVar39 + 0x351e54))\n              (*(int *)(pcVar39 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar36,pdVar31);\n    ppiVar35 = (int **)(iVar12 + 0xa0);\n    (**(code **)(pcVar39 + 0x351e54))\n              (*(int *)(pcVar39 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar35,pdVar31);\n    *(undefined4 *)(iVar12 + 0x238) = *(undefined4 *)(iVar4 + 0x14);\n    *(undefined8 *)(iVar12 + 0x1b0) = *(undefined8 *)(*(int *)(pcVar39 + 0x351908) + 0x4408);\n    *(undefined4 *)(iVar12 + 0x240) = 1;\n    *(undefined4 *)(iVar12 + 0x2cc) = *(undefined4 *)(*(int *)(pcVar39 + 0x351908) + 0x4aa8);\n    uVar53 = *(undefined8 *)(*(int *)(pcVar39 + 0x351908) + 0x4a48);\n    *(undefined8 *)(iVar12 + 0x398) = uVar53;\n    *(undefined8 *)(iVar12 + 0x3a0) = uVar53;\n    *(undefined4 *)(iVar12 + 0x244) = 1;\n    *(undefined4 *)(iVar12 + 0x248) = 1;\n    *(undefined4 *)(iVar12 + 0x24c) = 10;\n    *(undefined4 *)(iVar12 + 600) = 1;\n    *(undefined8 *)(iVar12 + 0x288) = *(undefined8 *)(*(int *)(pcVar39 + 0x35190c) + 0x7970);\n    *(undefined4 *)(iVar12 + 0x144) = 0;\n    *(undefined4 *)(iVar12 + 0x140) = 0;\n    *(undefined4 *)(iVar12 + 0x25c) = 0x36;\n    *(undefined4 *)(iVar12 + 0x2d0) = 1;\n    *(undefined4 *)(iVar12 + 0x3a8) = 0;\n    uVar5 = (**(code **)(pcVar39 + 0x3527e8))();\n    *(undefined4 *)(iVar12 + 0x38c) = uVar5;\n    if (*(int *)(iVar4 + 0x4c) != 0) {\n      uVar5 = (**(code **)(pcVar39 + 0x352854))();\n      *(undefined4 *)(iVar12 + 0x264) = uVar5;\n    }\n    if (*(int *)(iVar4 + 0x54) != 0) {\n      uVar5 = (**(code **)(pcVar39 + 0x352854))();\n      *(undefined4 *)(iVar12 + 0x290) = uVar5;\n    }\n    *(undefined4 *)(iVar12 + 0x23c) = *(undefined4 *)(iVar4 + 0x14);\n    uVar5 = *(undefined4 *)(iVar4 + 0x58);\n    if (*(double *)(*(int *)(pcVar39 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar4 + 0x58))) {\n      *(undefined4 *)(iVar12 + 0x28c) = *(undefined4 *)(iVar4 + 0x5c);\n      *(undefined4 *)(iVar12 + 0x288) = uVar5;\n    }\n    puVar10 = (undefined4 *)(iVar4 + 0x118);\n    puVar2 = (undefined4 *)(iVar12 + 0x150);\n    do {\n      puVar17 = puVar2;\n      puVar11 = puVar10;\n      uVar29 = puVar11[1];\n      uVar27 = puVar11[2];\n      uVar5 = puVar11[3];\n      *puVar17 = *puVar11;\n      puVar17[1] = uVar29;\n      puVar17[2] = uVar27;\n      puVar17[3] = uVar5;\n      puVar10 = puVar11 + 4;\n      puVar2 = puVar17 + 4;\n    } while (puVar10 != (undefined4 *)(iVar4 + 0x168));\n    uVar5 = puVar11[5];\n    puVar17[4] = *puVar10;\n    puVar17[5] = uVar5;\n    if (*(int *)(iVar4 + 0x48) != 0) {\n      uVar5 = (**(code **)(pcVar39 + 0x352854))();\n      *(undefined4 *)(iVar12 + 0x29c) = uVar5;\n    }\n    iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6ac4);\n    if (iVar51 != 0) {\n      uVar5 = (**(code **)(pcVar39 + 0x3526d4))(0x14,0,iVar51);\n      *(undefined4 *)(iVar12 + 0x388) = uVar5;\n      goto LAB_000a8298;\n    }\n  }\n  *(undefined4 *)(iVar12 + 0x388) = 0;\nLAB_000a8298:\n  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6ad0);\n  if (iVar51 != 0) {\n    (**(code **)(pcVar39 + 0x3524c8))(iVar12 + 0x280,iVar51);\n  }\n  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6adc);\n  if (iVar51 != 0) {\n    (**(code **)(pcVar39 + 0x3524c8))(iVar12 + 0x26c,iVar51);\n  }\n  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6ae4);\n  if (iVar51 != 0) {\n    (**(code **)(pcVar39 + 0x351e54))(iVar51,0x7fffffff,ppiVar36,pdVar31);\n  }\n  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6aec);\n  if (iVar51 != 0) {\n    uVar5 = (**(code **)(pcVar39 + 0x3526d4))(0x21,0,iVar51);\n    *(undefined4 *)(iVar12 + 0x298) = uVar5;\n  }\n  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6af4);\n  if (iVar51 != 0) {\n    dVar41 = (double)(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898);\n    if (NAN(dVar41)) {\n      dVar41 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41) {\n      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }\n    }\n    else {\n      dVar41 = 0.0;\n    }\n    *(double *)(iVar12 + 0x380) = dVar41;\n  }\n  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b08);\n  if (iVar51 != 0) {\n    dVar41 = (double)(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898);\n    if (NAN(dVar41)) {\n      dVar41 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41) {\n      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }\n    }\n    else {\n      dVar41 = 0.0;\n    }\n    *(double *)(iVar12 + 0x378) = dVar41;\n  }\n  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b1c);\n  if (iVar51 != 0) {\n    dVar41 = (double)(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898);\n    if (NAN(dVar41)) {\n      dVar41 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41) {\n      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }\n    }\n    else {\n      dVar41 = 0.0;\n    }\n    *(double *)(iVar12 + 0x370) = dVar41;\n  }\n  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b24);\n  if (iVar51 != 0) {\n    (**(code **)(pcVar39 + 0x351e54))(iVar51,0x7fffffff,ppiVar35,pdVar31);\n  }\n  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b2c);\n  if (iVar51 != 0) {\n    dVar41 = (double)(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898);\n    if (NAN(dVar41)) {\n      dVar41 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41) {\n      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }\n    }\n    else {\n      dVar41 = 0.0;\n    }\n    *(double *)(iVar12 + 0x1b0) = dVar41;\n  }\n  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b38);\n  if (iVar51 != 0) {\n    uVar5 = (**(code **)(pcVar39 + 0x3526d4))(0x47,0,iVar51);\n    *(undefined4 *)(iVar12 + 0x274) = uVar5;\n  }\n  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b40);\n  if (iVar51 != 0) {\n    (**(code **)(pcVar39 + 0x351e54))(iVar51,0x7fffffff,iVar12 + 0xf8,pdVar31);\n  }\n  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x351920) + -0x3000);\n  if (iVar51 != 0) {\n    iVar30 = (**(code **)(pcVar39 + 0x3526d4))(0x4c,0,iVar51);\n    if (iVar30 == -1) {\n      uVar5 = (**(code **)(pcVar39 + 0x352380))(iVar51,0,10);\n      *(undefined4 *)(iVar12 + 0x27c) = uVar5;\n    }\n    else {\n      *(int *)(iVar12 + 0x27c) = iVar30;\n    }\n  }\n  (**(code **)(pcVar39 + 0x351d90))(pdVar31);\n  *(undefined4 *)(iVar12 + 0x390) = 0xabacadab;\n  (**(code **)(pcVar39 + 0x352628))(iVar4);\n  if (iStack_894 == **(int **)(pcVar39 + 0x352270)) {\n    return;\n  }\n  pcVar39 = *(code **)(pcVar39 + 0x3520a4);\n  (*pcVar39)();\n  uVar5 = (**(code **)(pcVar39 + 0x351be4))(0x3c0);\n  (**(code **)(pcVar39 + 0x3518b4))(0,uVar5);\n  return;\n}\n\n" comment comment comment comment comment comment comment (function_definition "void __thiscall DrawAffineImage__omp_fn_0(void *this)\n\n{\n  bool bVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  int iVar4;\n  undefined4 uVar5;\n  double *pdVar6;\n  undefined *puVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined4 *puVar10;\n  undefined4 *puVar11;\n  int iVar12;\n  int *piVar13;\n  int iVar14;\n  void *pvVar15;\n  double *pdVar16;\n  int extraout_v1;\n  double *extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  double *extraout_v1_03;\n  int extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int extraout_v1_07;\n  int extraout_v1_08;\n  undefined4 *puVar17;\n  double *pdVar18;\n  int *piVar19;\n  uint uVar20;\n  int *piVar21;\n  undefined8 *puVar22;\n  void *pvVar23;\n  uint uVar24;\n  uint *puVar25;\n  int **ppiVar26;\n  undefined4 uVar27;\n  uint uVar28;\n  undefined4 uVar29;\n  int iVar30;\n  double *pdVar31;\n  double *pdVar32;\n  int unaff_s2;\n  int iVar33;\n  uint *puVar34;\n  double *unaff_s3;\n  int **ppiVar35;\n  int *unaff_s4;\n  int **ppiVar36;\n  undefined1 *puVar37;\n  double *unaff_s6;\n  uint unaff_s7;\n  undefined *puVar38;\n  code *pcVar39;\n  code *pcVar40;\n  double dVar41;\n  double dVar42;\n  double dVar43;\n  float fVar45;\n  double dVar44;\n  double dVar46;\n  double dVar47;\n  double dVar48;\n  double in_f20_21;\n  double dVar49;\n  double in_f22_23;\n  double in_f24_25;\n  double in_f26_27;\n  double in_f28_29;\n  double in_f30_31;\n  int *piVar50;\n  int iVar51;\n  int iVar52;\n  undefined8 uVar53;\n  undefined1 auStack_898 [4];\n  int iStack_894;\n  undefined8 *puStack_88c;\n  undefined4 uStack_888;\n  double *pdStack_884;\n  int **ppiStack_880;\n  int **ppiStack_87c;\n  undefined1 *puStack_878;\n  code *pcStack_874;\n  int iStack_860;\n  code *pcStack_858;\n  undefined4 uStack_850;\n  code *pcStack_84c;\n  int iStack_838;\n  int iStack_834;\n  code *pcStack_830;\n  int *piStack_828;\n  int *piStack_824;\n  int *piStack_820;\n  int *piStack_81c;\n  double dStack_818;\n  int iStack_810;\n  double *pdStack_80c;\n  undefined4 uStack_808;\n  int **ppiStack_804;\n  int **ppiStack_800;\n  undefined1 *puStack_7fc;\n  int **ppiStack_7f8;\n  undefined4 uStack_7f4;\n  undefined1 auStack_7f0 [92];\n  undefined8 *puStack_794;\n  double *pdStack_790;\n  int *piStack_78c;\n  uint *puStack_788;\n  double *pdStack_784;\n  int iStack_780;\n  code *pcStack_77c;\n  double dStack_778;\n  int iStack_760;\n  int *piStack_75c;\n  code *pcStack_758;\n  double dStack_750;\n  double dStack_748;\n  double dStack_740;\n  double dStack_738;\n  int *piStack_72c;\n  uint *puStack_728;\n  double *pdStack_724;\n  double *pdStack_720;\n  undefined1 *puStack_71c;\n  undefined4 uStack_718;\n  undefined1 *puStack_714;\n  double *pdStack_710;\n  int iStack_70c;\n  int iStack_708;\n  int iStack_704;\n  double dStack_700;\n  double dStack_6f8;\n  double dStack_6f0;\n  double dStack_6e8;\n  double dStack_6e0;\n  double dStack_6d8;\n  undefined1 auStack_6d0 [88];\n  undefined8 uStack_678;\n  undefined4 uStack_670;\n  undefined4 uStack_66c;\n  double dStack_668;\n  undefined4 uStack_660;\n  undefined4 uStack_65c;\n  double dStack_658;\n  double dStack_650;\n  undefined4 uStack_648;\n  undefined4 uStack_644;\n  double dStack_640;\n  undefined8 uStack_638;\n  double *pdStack_62c;\n  int *piStack_628;\n  uint *puStack_624;\n  double *pdStack_620;\n  int iStack_61c;\n  undefined1 *puStack_618;\n  double *pdStack_614;\n  uint uStack_610;\n  code *pcStack_60c;\n  double dStack_608;\n  double dStack_600;\n  double dStack_5f8;\n  double dStack_5f0;\n  int iStack_5d8;\n  code *pcStack_5d0;\n  double *pdStack_5c8;\n  code *pcStack_5c4;\n  undefined4 uStack_5b0;\n  uint uStack_5ac;\n  code *pcStack_5a8;\n  undefined8 uStack_5a0;\n  double dStack_598;\n  double dStack_590;\n  double *pdStack_588;\n  int iStack_584;\n  double dStack_580;\n  double dStack_578;\n  int iStack_570;\n  undefined1 *puStack_56c;\n  double *pdStack_568;\n  uint uStack_564;\n  double dStack_560;\n  double dStack_558;\n  uint uStack_550;\n  undefined4 uStack_54c;\n  double dStack_548;\n  double dStack_540;\n  uint uStack_538;\n  undefined4 uStack_534;\n  double dStack_530;\n  uint uStack_528;\n  undefined4 uStack_524;\n  double dStack_520;\n  double dStack_518;\n  int aiStack_510 [4];\n  undefined8 uStack_500;\n  int iStack_4f8;\n  double dStack_4e8;\n  double dStack_4e0;\n  double dStack_4d8;\n  double dStack_4d0;\n  double dStack_4c8;\n  double dStack_4c0;\n  int iStack_4b4;\n  uint uStack_4b0;\n  int iStack_4ac;\n  double *pdStack_4a8;\n  double *pdStack_4a4;\n  int iStack_4a0;\n  void *pvStack_49c;\n  double *pdStack_498;\n  uint uStack_494;\n  int iStack_490;\n  code *pcStack_48c;\n  double dStack_488;\n  double dStack_480;\n  double dStack_478;\n  double dStack_470;\n  double dStack_468;\n  double dStack_460;\n  int *piStack_448;\n  uint uStack_444;\n  code *pcStack_440;\n  uint uStack_434;\n  uint uStack_430;\n  double *pdStack_42c;\n  uint uStack_428;\n  uint uStack_424;\n  uint uStack_420;\n  undefined4 uStack_41c;\n  int aiStack_418 [10];\n  double dStack_3f0;\n  double dStack_3e8;\n  double dStack_3e0;\n  double dStack_3d8;\n  double dStack_3d0;\n  int iStack_3bc;\n  int iStack_3b8;\n  uint uStack_3b4;\n  double *pdStack_3b0;\n  double *pdStack_3ac;\n  int *piStack_3a8;\n  void *pvStack_3a4;\n  double *pdStack_3a0;\n  uint uStack_39c;\n  int iStack_398;\n  code *pcStack_394;\n  double dStack_390;\n  double dStack_388;\n  double dStack_380;\n  double dStack_378;\n  double dStack_370;\n  undefined4 *puStack_358;\n  undefined4 uStack_354;\n  undefined *puStack_350;\n  undefined8 uStack_348;\n  double dStack_340;\n  double dStack_338;\n  double dStack_330;\n  uint uStack_328;\n  int iStack_324;\n  double dStack_320;\n  double dStack_318;\n  uint uStack_310;\n  undefined4 uStack_30c;\n  int iStack_308;\n  int *piStack_304;\n  double dStack_300;\n  uint uStack_2f8;\n  int iStack_2f4;\n  int iStack_2f0;\n  double *pdStack_2ec;\n  uint uStack_2e8;\n  undefined4 uStack_2e4;\n  uint uStack_2e0;\n  undefined4 uStack_2dc;\n  double *pdStack_2d8;\n  uint uStack_2d4;\n  undefined4 uStack_2d0;\n  double *pdStack_2cc;\n  uint uStack_2c8;\n  undefined4 uStack_2c4;\n  int iStack_2c0;\n  undefined4 *puStack_2bc;\n  double dStack_2b8;\n  uint uStack_2b0;\n  undefined4 uStack_2ac;\n  double *pdStack_2a8;\n  undefined1 *puStack_2a4;\n  double *pdStack_2a0;\n  int iStack_29c;\n  undefined4 auStack_298 [18];\n  double dStack_250;\n  undefined4 auStack_240 [18];\n  double dStack_1f8;\n  int iStack_1e4;\n  double *pdStack_1e0;\n  int *piStack_1dc;\n  int iStack_1d8;\n  double *pdStack_1d4;\n  int *piStack_1d0;\n  void *pvStack_1cc;\n  double *pdStack_1c8;\n  uint uStack_1c4;\n  int iStack_1c0;\n  code *pcStack_1bc;\n  double dStack_1b8;\n  double dStack_1b0;\n  double dStack_1a8;\n  double dStack_1a0;\n  double dStack_198;\n  double dStack_190;\n  undefined8 local_178;\n  double local_170;\n  int *local_168;\n  int *local_164;\n  int local_110 [4];\n  undefined8 local_100;\n  int local_f8;\n  double local_e8;\n  double local_e0;\n  double local_d8;\n  double local_d0;\n  double local_c8;\n  double local_c0;\n  int local_b8 [10];\n  double local_90;\n  double local_88;\n  double local_80;\n  double local_78;\n  double local_70;\n  int local_5c;\n  \n  local_5c = *(int *)PTR___stack_chk_guard_003fa248;\n  pdVar31 = *(double **)((int)this + 0x20);\n  piVar3 = (int *)(*(code *)PTR_omp_get_num_threads_003fa924)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n  puVar38 = PTR_LAB_003f98e0;\n  iVar12 = (*(int *)((int)this + 0x24) + 1) - (int)pdVar31;\n  if (piVar3 == (int *)0x0) {\n    trap(7);\n  }\n  iVar51 = iVar12 / (int)piVar3;\n  iVar12 = iVar12 % (int)piVar3;\n  if (iVar4 < iVar12) {\n    iVar51 = iVar51 + 1;\n    iVar12 = 0;\n  }\n  iVar12 = iVar51 * iVar4 + iVar12;\n  pdVar18 = (double *)(iVar51 + iVar12);\n  iVar4 = (int)pdVar31 + iVar12;\n  if (iVar12 < (int)pdVar18) {\n    uVar5 = *(undefined4 *)((int)this + 0x14);\n    pdVar6 = *(double **)((int)this + 0x10);\n    unaff_s4 = *(int **)((int)this + 8);\n    unaff_s7 = *(uint *)((int)this + 4);\n                    /* WARNING: Load size is inaccurate */\n    piVar3 = *this;\n    puVar7 = (undefined *)((int)pdVar31 + (int)pdVar18);\n    dVar41 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    in_f26_27 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    in_f30_31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n    do {\n      in_f24_25 = (double)iVar4;\n      pdVar31 = *(double **)((int)this + 0xc);\n      in_f20_21 = **(double **)((int)this + 0x1c);\n      in_f28_29 = (*(double **)((int)this + 0x1c))[2];\n      dVar42 = in_f24_25 * pdVar31[2] + pdVar31[4];\n      dVar49 = *pdVar31;\n      dVar43 = in_f28_29;\n      if (dVar41 <= dVar49) {\n        in_f22_23 = -dVar42 / dVar49;\n        if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }\n        dVar46 = (double)*(int *)(unaff_s7 + 0x18);\n        if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }\n        dVar49 = (dVar46 - dVar42) / dVar49;\n        if (dVar49 < in_f28_29) {\n          dVar43 = dVar49;\n        }\nLAB_000a3890:\n        dVar42 = in_f24_25 * pdVar31[3] + pdVar31[5];\n        dVar49 = pdVar31[1];\n        if (*(double *)(puVar38 + 0x43c8) <= dVar49) {\n          dVar46 = -dVar42 / dVar49;\n          if (-dVar42 / dVar49 <= in_f22_23) {\n            dVar46 = in_f22_23;\n          }\n          in_f22_23 = dVar46;\n          pdVar18 = *(double **)(unaff_s7 + 0x1c);\n          dVar46 = (double)(int)pdVar18;\n          if ((int)pdVar18 < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar18 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar46 - dVar42) / dVar49;\n          if (dVar43 <= in_f20_21) {\n            in_f20_21 = dVar43;\n          }\n        }\n        else if (dVar49 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar46 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar46 = (dVar46 - dVar42) / dVar49;\n          if (dVar46 <= in_f22_23) {\n            dVar46 = in_f22_23;\n          }\n          in_f22_23 = dVar46;\n          pdVar18 = (double *)((uint)((ulonglong)dVar42 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar42 / dVar49;\n          if (dVar43 <= -dVar42 / dVar49) {\n            in_f20_21 = dVar43;\n          }\n        }\n        else {\n          pdVar18 = (double *)puVar38;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar42) {\n            dVar42 = (double)(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0));\n            if (dVar42 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar28 = (uint)dVar42;\n            }\n            else {\n              uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar43;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar28) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }\n        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;\n      }\n      else {\n        if (dVar49 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar46 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar46 - dVar42) / dVar49;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar42 / dVar49 < in_f28_29) {\n            dVar43 = -dVar42 / dVar49;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar42) {\n          dVar42 = (double)(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0));\n          if (dVar42 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar28 = (uint)dVar42;\n          }\n          else {\n            uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar43;\n          if (uVar28 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar38 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar43 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar43;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar43 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar42 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar43 = (dVar43 - dVar42) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar43 < in_f20_21) {\n          uVar28 = (uint)dVar43;\n        }\n        else {\n          uVar28 = (int)(dVar43 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar18 = pdVar6;\n        pdVar31 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar6,unaff_s2,iVar4,uVar28);\n        if (pdVar31 != (double *)0x0) {\n          piVar19 = *(int **)((int)this + 0x18);\n          piVar50 = piVar19;\n          piVar21 = local_b8;\n          do {\n            piVar13 = piVar21;\n            piVar8 = piVar50;\n            iVar30 = piVar8[1];\n            iVar51 = piVar8[2];\n            iVar12 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar30;\n            piVar13[2] = iVar51;\n            piVar13[3] = iVar12;\n            piVar50 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar50 != piVar19 + 0x14);\n          iVar12 = piVar8[5];\n          piVar13[4] = *piVar50;\n          piVar13[5] = iVar12;\n          piVar50 = piVar19;\n          piVar21 = local_110;\n          do {\n            piVar13 = piVar21;\n            piVar8 = piVar50;\n            iVar30 = piVar8[1];\n            iVar51 = piVar8[2];\n            iVar12 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar30;\n            piVar13[2] = iVar51;\n            piVar13[3] = iVar12;\n            piVar50 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar50 != piVar19 + 0x14);\n          iVar12 = piVar8[5];\n          piVar13[4] = *piVar50;\n          piVar13[5] = iVar12;\n          dVar43 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar43; unaff_s2 = unaff_s2 + 1) {\n            pdVar18 = *(double **)((int)this + 0xc);\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar18[1] + in_f24_25 * pdVar18[3] + pdVar18[5];\n            local_178 = (double)unaff_s2 * *pdVar18 + in_f24_25 * pdVar18[2] + pdVar18[4];\n            local_164 = unaff_s4;\n            iVar12 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar5,0);\n            *(int *)((int)this + 0x28) = iVar12;\n            if (iVar12 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar3 != (int *)0x0) {\n              local_110[0] = *piVar3;\n              local_110[1] = piVar3[1];\n              local_100 = *(undefined8 *)(piVar3 + 0x92);\n              local_f8 = piVar3[8];\n              local_110[2] = piVar3[0xaf];\n              if (pdVar31 != (double *)0x0) {\n                iVar12 = piVar3[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4);\n                if (*(int *)(iVar12 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar12 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar12 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x44) * 4);\n                }\n              }\n            }\n            dVar42 = local_70 * in_f26_27;\n            dVar49 = local_c8 * in_f26_27;\n            dVar46 = (dVar42 + dVar49) - dVar42 * dVar49;\n            if (0.0 <= dVar46) {\n              local_c8 = dVar46;\n              if (in_f20_21 < dVar46) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar38 + 0x4a48);\n              if (0.0 <= dVar46) {\n                dVar47 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar47 = in_f22_23;\n            }\n            if (*(double *)(puVar38 + 0x43c8) <= dVar46 * dVar47) {\n              dVar47 = *(double *)((int)unaff_s3 + 0x4408) / dVar46;\n            }\n            else {\n              dVar47 = dVar47 / *(double *)(puVar38 + 0x43c8);\n            }\n            dVar46 = *(double *)((int)unaff_s3 + 0x4408) - dVar42;\n            local_e8 = (dVar49 * local_e8 * dVar46 + dVar42 * local_90) * dVar47;\n            local_e0 = (dVar49 * local_e0 * dVar46 + dVar42 * local_88) * dVar47;\n            local_d8 = (dVar49 * local_d8 * dVar46 + dVar42 * local_80) * dVar47;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar49 * local_d0 * dVar46 + dVar42 * local_78) * dVar47;\n            }\n            iVar12 = piVar3[0xb4];\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar12 + 0x28) != 0) {\n              *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar12 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar45 = (float)local_c8;\n              }\n              *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4) = fVar45;\n            }\n            pdVar31 = (double *)((int)pdVar31 + piVar3[0xb0] * 4);\n          }\n          pdVar18 = pdVar6;\n          iVar12 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar6,unaff_s4);\n          if (iVar12 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }\n        }\n      }\n      iVar4 = iVar4 + 1;\n      unaff_s6 = (double *)puVar38;\n    } while (iVar4 < (int)puVar7);\n  }\n  if (local_5c == *(int *)PTR___stack_chk_guard_003fa248) {\n    return;\n  }\n  pcVar39 = DrawPolygonPrimitive__omp_fn_3;\n  puVar38 = PTR___stack_chk_fail_003fa07c;\n  (*(code *)PTR___stack_chk_fail_003fa07c)();\n  puStack_350 = puVar38 + 0x35d9c0;\n  iStack_1e4 = **(int **)(puVar38 + 0x356358);\n  iVar30 = *(int *)((int)pdVar18 + 0x24);\n  pdStack_2a8 = pdVar18;\n  pdStack_1e0 = pdVar31;\n  piStack_1dc = piVar3;\n  iStack_1d8 = unaff_s2;\n  pdStack_1d4 = unaff_s3;\n  piStack_1d0 = unaff_s4;\n  pvStack_1cc = this;\n  pdStack_1c8 = unaff_s6;\n  uStack_1c4 = unaff_s7;\n  iStack_1c0 = iVar4;\n  pcStack_1bc = pcVar39;\n  dStack_1b8 = in_f20_21;\n  dStack_1b0 = in_f22_23;\n  dStack_1a8 = in_f24_25;\n  dStack_1a0 = in_f26_27;\n  dStack_198 = in_f28_29;\n  dStack_190 = in_f30_31;\n  iVar12 = (**(code **)(puVar38 + 0x356a34))();\n  iVar51 = (**(code **)(puStack_350 + -0x7390))();\n  iVar14 = (*(int *)(pdVar18 + 5) + 1) - iVar30;\n  if (iVar12 == 0) {\n    trap(7);\n  }\n  iVar52 = iVar14 / iVar12;\n  iVar14 = iVar14 % iVar12;\n  uVar28 = (uint)(iVar51 < iVar14);\n  if (uVar28 != 0) {\n    iVar52 = iVar52 + 1;\n    iVar14 = 0;\n  }\n  uVar9 = iVar52 * iVar51 + iVar14;\n  pdVar31 = (double *)(iVar52 + uVar9);\n  if ((int)uVar9 < (int)pdVar31) {\n    iStack_29c = *(int *)((int)pdStack_2a8 + 0x1c);\n    in_f28_29 = *pdStack_2a8;\n    iStack_2f4 = *(int *)(pdStack_2a8 + 3);\n    pdStack_2a0 = *(double **)((int)pdStack_2a8 + 0x14);\n    uStack_2d0 = *(undefined4 *)(pdStack_2a8 + 2);\n    iStack_324 = *(int *)((int)pdStack_2a8 + 0xc);\n    unaff_s6 = *(double **)(pdStack_2a8 + 1);\n    iStack_2f0 = iVar30 + uVar9;\n    puStack_2a4 = (undefined1 *)(iVar30 + (int)pdVar31);\n    unaff_s7 = *(uint *)(puStack_350 + -0x7fd0);\n    dStack_320 = *(double *)(unaff_s7 + 0x4408);\n    iVar4 = *(int *)(puStack_350 + -0x7fd0);\n    dStack_2b8 = *(double *)(iVar4 + 0x43c8);\n    uStack_2f8 = uVar9;\n    do {\n      iVar30 = (**(code **)(puStack_350 + -0x7390))();\n      if (*(int *)((int)pdStack_2a8 + 0x2c) != 0) {\n        pdVar31 = *(double **)(pdStack_2a8 + 4);\n        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);\n        dVar41 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar31 - in_f20_21);\n        uStack_2d4 = (uint)dVar41;\n        dVar41 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar31[2] + in_f20_21);\n        uVar28 = uStack_2d4;\n        pdVar18 = (double *)(int)dVar41;\n        uStack_354 = uStack_2d0;\n        puStack_358 = (undefined4 *)0x1;\n        pdVar31 = pdStack_2a0;\n        pdStack_2cc = pdVar18;\n        iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar18 + (1 - uStack_2d4)));\n        if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar30 = iVar30 * 4;\n          puVar38 = puStack_350;\n          if ((int)uVar28 <= (int)pdVar18) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar30);\n            uStack_328 = uStack_2d4;\n            pdVar18 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              pvVar15 = (void *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)pvVar15 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4f34:\n                  pdVar31 = (double *)*unaff_s4;\n                  if (0 < (int)pvVar15) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4ec0:\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar41 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar12 = *(int *)(puVar38 + -0x7fd0);\n                dVar41 = *(double *)(iVar12 + 0x43d0);\n                this = (void *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar41 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar31 = unaff_s3;\n                  dStack_330 = dVar41;\n                  pdStack_2d8 = pdVar18;\n                  do {\n                    pdVar18 = pdStack_2ec;\n                    iVar51 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar31[3] + dVar41) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar31 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar31[2] + *(double *)(iVar12 + 0x43d0))) {\n                        iVar30 = *(int *)(pdVar31 + 7);\n                        dVar43 = (double)iVar30;\n                        if (iVar30 < 0) {\n                          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar43 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar30 = 1;\n                        }\n                        if (iVar30 < *(int *)((int)pdVar31 + 0x2c)) {\n                          iVar14 = *(int *)(pdVar31 + 5);\n                          iVar52 = (iVar30 + 0xfffffff) * 0x10;\n                          pdVar18 = (double *)(iVar14 + iVar52);\n                          dVar43 = *(double *)(iVar12 + 0x43d0);\n                          if ((pdVar18[1] - in_f28_29) - dVar43 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar33 = *(int *)(puVar38 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar33 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar52 = iVar52 + 0x10;\n                              dVar42 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43\n                                 ) {\n                                if (in_f26_27 != pdVar31[4]) {\n                                  pdVar31[4] = in_f26_27;\n                                  *(int *)(pdVar31 + 7) = iVar30;\n                                }\n                                dVar46 = pdVar18[2] - *pdVar18;\n                                dVar44 = pdVar18[3] - pdVar18[1];\n                                dVar49 = in_f22_23 - *pdVar18;\n                                dVar42 = in_f26_27 - pdVar18[1];\n                                dVar47 = dVar46 * dVar49 + dVar44 * dVar42;\n                                if (0.0 < dVar47) {\n                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;\n                                  if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }\n                                dVar42 = dStack_338;\n                                if (*(int *)((int)pdVar31 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar42;\n                                dVar42 = dStack_340;\n                                if (((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar42;\n                              iVar30 = iVar30 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar43;\n                              if (*(int *)((int)pdVar31 + 0x2c) <= iVar30) break;\n                              iVar14 = *(int *)(pdVar31 + 5);\n                              pdVar18 = (double *)(iVar14 + iVar52);\n                            } while ((pdVar18[1] - in_f28_29) - *(double *)(iVar12 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (pvVar15 <= this) {\n                        (**(code **)(puVar38 + -0x7290))\n                                  (*(int *)(puVar38 + -0x7fcc) + 0x69fc,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x69c0,0x3e3,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x773c);\n                        return;\n                      }\n                      iVar51 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar5 = (**(code **)(puVar38 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar31 + iVar51 + 0x28));\n                      *(undefined4 *)((int)pdVar31 + iVar51 + 0x28) = uVar5;\n                      pvVar15 = (void *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)pvVar15;\n                      puVar38 = puStack_350;\n                      if (this < pvVar15) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar31 + (*unaff_s4 - (int)pdVar18)),\n                                   *unaff_s4 + ((int)this + 1) * 0x40,\n                                   ((int)pvVar15 - (int)this) * 0x40);\n                        puVar38 = puStack_350;\n                      }\n                    }\n                    this = (void *)((int)this + 1);\n                    unaff_s3 = pdVar31 + 8;\n                    pvVar15 = (void *)unaff_s4[1];\n                  } while (((int)this < (int)pvVar15) &&\n                          (pdVar18 = pdVar31 + 9, pdVar31 = unaff_s3,\n                          (*pdVar18 - in_f28_29) - *(double *)(iVar12 + 0x43d0) < in_f26_27));\n                  pdVar18 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar31 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar41 = in_f30_31;\nLAB_000a4f3c:\n                dVar43 = (double)iStack_2f0;\n                pvVar23 = (void *)0x0;\n                if (pdVar31[1] < dVar43) {\n                  uVar28 = 0;\n                  do {\n                    if ((dVar43 <= pdVar31[3]) &&\n                       (dVar42 = (double)(int)uStack_328, *pdVar31 < dVar42)) {\n                      iVar12 = -1;\n                      if (dVar42 <= pdVar31[2]) {\n                        iVar12 = *(int *)(pdVar31 + 7);\n                        dVar49 = (double)iVar12;\n                        if (iVar12 < 0) {\n                          dVar49 = dVar49 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar49 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar12 = 1;\n                        }\n                        iVar51 = *(int *)((int)pdVar31 + 0x2c) + -1;\n                        if (iVar12 < iVar51) {\n                          iVar30 = *(int *)(pdVar31 + 5) + iVar12 * 0x10;\n                          dVar49 = *(double *)(iVar30 + 8);\n                          while (dVar49 < dVar43) {\n                            iVar12 = iVar12 + 1;\n                            if (iVar51 <= iVar12) break;\n                            dVar49 = *(double *)(iVar30 + 0x18);\n                            iVar30 = iVar30 + 0x10;\n                          }\n                        }\n                        pdVar6 = (double *)(*(int *)(pdVar31 + 5) + (iVar12 + 0xfffffff) * 0x10);\n                        iVar12 = -1;\n                        if ((pdVar6[2] - *pdVar6) * (dVar43 - pdVar6[1]) <=\n                            (pdVar6[3] - pdVar6[1]) * (dVar42 - *pdVar6)) {\n                          if (*(int *)(pdVar31 + 6) != 0) {\n                            iVar12 = 1;\n                          }\n                          uVar28 = uVar28 + iVar12;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar31 + 6) != 0) {\n                          iVar12 = 1;\n                        }\n                        uVar28 = uVar28 + iVar12;\n                      }\n                    }\n                    pvVar23 = (void *)((int)pvVar23 + 1);\n                  } while ((pvVar23 != pvVar15) &&\n                          (pdVar6 = pdVar31 + 9, pdVar31 = pdVar31 + 8, *pdVar6 < dVar43));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar28 < 0) {\n                      uVar28 = -uVar28;\n                    }\n                    if ((uVar28 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar28 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar12 == 0) {\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar28 = uStack_2f8;\n              iVar30 = uStack_328 - uStack_2d4;\n              iVar12 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar12 == 0) {\n                puVar10 = (undefined4 *)(iStack_324 + 0x48);\n                puVar2 = auStack_298;\n                do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0x98));\n                uVar5 = puVar11[5];\n                puVar17[4] = *puVar10;\n                puVar17[5] = uVar5;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uStack_2f8 + *(int *)(iVar12 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar31 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0) {\n                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }\n              dVar43 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar42 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar43 = (dVar43 + dVar42) - dVar43 * dVar42;\n              in_f30_31 = dVar41;\n              if (0 < *(int *)(pdVar18 + 0x58)) {\n                iVar51 = 0;\n                iVar12 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar51);\n                  uStack_348 = dVar43;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7370 + uVar9 * 4))\n                    )();\n                    return;\n                  }\n                  iVar12 = iVar12 + 1;\n                  iVar51 = iVar51 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar12 < *(int *)(pdVar18 + 0x58));\n              }\n              iVar12 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar12 == 0) {\n                puVar10 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar2 = auStack_240;\n                do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar5 = puVar11[5];\n                puVar17[4] = *puVar10;\n                puVar17[5] = uVar5;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uVar28 + *(int *)(iVar12 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar31 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0) {\n                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar43 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar43) - dVar41 * dVar43;\n              iVar12 = *(int *)(pdVar18 + 0x58);\n              if (0 < iVar12) {\n                iVar14 = 0;\n                iVar51 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar14);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7384 + uVar9 * 4))\n                    )(in_f20_21,*(undefined8 *)(*(int *)(puVar38 + -0x7fd0) + 0x4a48));\n                    return;\n                  }\n                  iVar51 = iVar51 + 1;\n                  iVar12 = *(int *)(pdVar18 + 0x58);\n                  iVar14 = iVar14 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar51 < iVar12);\n              }\n              iStack_308 = iStack_308 + iVar12 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar18;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar31 = pdStack_2a0;\n          iVar12 = (**(code **)(puVar38 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar12 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }\n      }\n      iStack_2f0 = iStack_2f0 + 1;\n      uStack_2f8 = uStack_2f8 + 1;\n    } while (iStack_2f0 < (int)puStack_2a4);\n  }\n  if (iStack_1e4 == **(int **)(puStack_350 + -0x7668)) {\n    return;\n  }\n  pcVar39 = *(code **)(puStack_350 + -0x7834);\n  pcVar40 = DrawPolygonPrimitive__omp_fn_2;\n  (*pcVar39)();\n  pcStack_440 = pcVar39 + 0x35c870;\n  iStack_3bc = **(int **)(pcVar39 + 0x355208);\n  uVar9 = *(uint *)(pdVar31 + 3);\n  pdVar6 = pdVar31;\n  uStack_428 = uVar9;\n  iStack_3b8 = iVar30;\n  uStack_3b4 = uVar28;\n  pdStack_3b0 = pdVar18;\n  pdStack_3ac = unaff_s3;\n  piStack_3a8 = unaff_s4;\n  pvStack_3a4 = this;\n  pdStack_3a0 = unaff_s6;\n  uStack_39c = unaff_s7;\n  iStack_398 = iVar4;\n  pcStack_394 = pcVar40;\n  dStack_390 = in_f20_21;\n  dStack_388 = in_f22_23;\n  dStack_380 = in_f24_25;\n  dStack_378 = in_f26_27;\n  dStack_370 = in_f28_29;\n  iVar4 = (**(code **)(pcVar39 + 0x3558e4))();\n  iVar12 = (**(code **)(pcStack_440 + -0x7390))();\n  iVar51 = (*(uint *)((int)pdVar31 + 0x1c) + 1) - uVar9;\n  if (iVar4 == 0) {\n    trap(7);\n  }\n  iVar30 = iVar51 / iVar4;\n  iVar51 = iVar51 % iVar4;\n  uVar28 = (uint)(iVar12 < iVar51);\n  if (uVar28 != 0) {\n    iVar30 = iVar30 + 1;\n    iVar51 = 0;\n  }\n  iVar51 = iVar30 * iVar12 + iVar51;\n  iVar30 = iVar30 + iVar51;\n  iVar4 = *(int *)(pcStack_440 + -0x7fd0);\n  pcVar39 = pcStack_440;\n  if (iVar51 < iVar30) {\n    pdStack_42c = *(double **)(pdVar31 + 2);\n    uStack_430 = *(uint *)((int)pdVar31 + 0xc);\n    unaff_s6 = *(double **)(pdVar31 + 1);\n    uStack_424 = *(uint *)((int)pdVar31 + 4);\n    unaff_s7 = *(uint *)pdVar31;\n    iVar51 = uStack_428 + iVar51;\n    iVar30 = uStack_428 + iVar30;\n    in_f22_23 = *(double *)(iVar4 + 0x43d0);\n    in_f26_27 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8);\n    in_f28_29 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410);\n    do {\n      in_f20_21 = *(double *)(iVar4 + 0x43d0);\n      if (*(uint *)(pdVar31 + 4) != 0) {\n        pdVar18 = *(double **)((int)pdVar31 + 0x14);\n        dVar41 = (double)(**(code **)(pcVar39 + -0x7c78))(*pdVar18 - in_f20_21);\n        uStack_434 = (uint)dVar41;\n        dVar41 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar18[2] + in_f20_21);\n        uVar28 = uStack_434;\n        this = (void *)(int)dVar41;\n        uStack_444 = uStack_430;\n        piStack_448 = (int *)0x1;\n        pdVar6 = pdStack_42c;\n        pdVar18 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar51,(int)this + (1 - uStack_434));\n        if (pdVar18 == (double *)0x0) {\n          *(uint *)(pdVar31 + 4) = 0;\n          pcVar39 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar28 <= (int)this;\n          uVar28 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar4 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar41 == uVar28) &&\n                 (dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar51 == (int)dVar41)) {\n                iVar12 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar12 == 0) {\n                  piVar3 = (int *)(uStack_424 + 0x48);\n                  piVar50 = aiStack_418;\n                  do {\n                    piVar19 = piVar50;\n                    piVar21 = piVar3;\n                    iVar52 = piVar21[1];\n                    iVar14 = piVar21[2];\n                    iVar12 = piVar21[3];\n                    *piVar19 = *piVar21;\n                    piVar19[1] = iVar52;\n                    piVar19[2] = iVar14;\n                    piVar19[3] = iVar12;\n                    piVar3 = piVar21 + 4;\n                    piVar50 = piVar19 + 4;\n                  } while (piVar3 != (int *)(uStack_424 + 0x98));\n                  iVar12 = piVar21[5];\n                  piVar19[4] = *piVar3;\n                  piVar19[5] = iVar12;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar12,6,(uVar28 - uStack_434) + *(int *)(iVar12 + 0x298),\n                             (iVar51 - uStack_428) + *(int *)(iVar12 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar6 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar6 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar6)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar6 * in_f28_29;\n                  }\n                }\n                iVar12 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar12 + 0x28) != 0) {\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar12 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar45 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar45 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x38) * 4) = fVar45;\n                }\n              }\n              pdVar18 = (double *)((int)pdVar18 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar28 = uVar28 + 1;\n            } while ((int)uVar28 <= (int)this);\n          }\n          pdVar6 = pdStack_42c;\n          iVar12 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar39 = pcStack_440;\n          if (iVar12 == 0) {\n            *(uint *)(pdVar31 + 4) = 0;\n          }\n        }\n      }\n      iVar51 = iVar51 + 1;\n    } while (iVar51 < iVar30);\n  }\n  if (iStack_3bc == **(int **)(pcVar39 + -0x7668)) {\n    return;\n  }\n  pcVar39 = *(code **)(pcVar39 + -0x7834);\n  pcVar40 = DrawGradientImage__omp_fn_1;\n  (*pcVar39)();\n  pcStack_5a8 = pcVar39 + 0x35c414;\n  iStack_4b4 = **(int **)(pcVar39 + 0x354dac);\n  puVar34 = *(uint **)(pdVar6 + 4);\n  pdVar32 = (double *)puVar34[3];\n  pdVar16 = pdVar6;\n  uStack_4b0 = uVar28;\n  iStack_4ac = iVar51;\n  pdStack_4a8 = pdVar18;\n  pdStack_4a4 = pdVar31;\n  iStack_4a0 = iVar30;\n  pvStack_49c = this;\n  pdStack_498 = unaff_s6;\n  uStack_494 = unaff_s7;\n  iStack_490 = iVar4;\n  pcStack_48c = pcVar40;\n  dStack_488 = in_f20_21;\n  dStack_480 = in_f22_23;\n  dStack_478 = in_f24_25;\n  dStack_470 = in_f26_27;\n  dStack_468 = in_f28_29;\n  dStack_460 = in_f30_31;\n  iVar4 = (**(code **)(pcVar39 + 0x355488))();\n  iVar12 = (**(code **)(pcStack_5a8 + -0x7390))();\n  if (iVar4 == 0) {\n    trap(7);\n  }\n  iVar51 = (int)(puVar34[1] - (int)pdVar32) / iVar4;\n  piVar50 = (int *)((int)(puVar34[1] - (int)pdVar32) % iVar4);\n  piVar3 = piVar50;\n  if (iVar12 < (int)piVar50) {\n    iVar51 = iVar51 + 1;\n    piVar3 = (int *)0x0;\n  }\n  piVar3 = (int *)(iVar51 * iVar12 + (int)piVar3);\n  puVar37 = (undefined1 *)((int)pdVar32 + (int)piVar3);\n  pcVar39 = pcStack_5a8;\n  if ((int)piVar3 < iVar51 + (int)piVar3) {\n    dStack_580 = *pdVar6;\n    pdStack_588 = *(double **)(pdVar6 + 3);\n    puVar34 = *(uint **)((int)pdVar6 + 0x14);\n    pdStack_568 = *(double **)(pdVar6 + 2);\n    uStack_564 = *(uint *)((int)pdVar6 + 0xc);\n    piVar50 = *(int **)(pdVar6 + 1);\n    puStack_56c = (undefined1 *)((int)pdVar32 + iVar51 + (int)piVar3);\n    dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n    if (dStack_580 < 0.0) {\n      dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n    }\n    iStack_570 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_598 = *(double *)(iStack_570 + 0x4a48);\n    iStack_584 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_560 = *(double *)(iStack_584 + 0x43d0);\n    unaff_s6 = *(double **)(pcStack_5a8 + -0x7fd0);\n    dStack_548 = unaff_s6[0x879];\n    do {\n      if (*(uint *)((int)pdVar6 + 0x24) != 0) {\n        uStack_5ac = uStack_564;\n        uStack_5b0 = 1;\n        pdVar16 = pdStack_568;\n        pdVar32 = (double *)(**(code **)(pcVar39 + -0x724c))(pdStack_568,0,puVar37,piVar50[6]);\n        if (pdVar32 == (double *)0x0) {\n          *(uint *)((int)pdVar6 + 0x24) = 0;\n          pcVar39 = pcStack_5a8;\n        }\n        else {\n          piVar19 = *(int **)((int)pdVar6 + 0x1c);\n          piVar3 = piVar19;\n          piVar21 = aiStack_510;\n          do {\n            piVar13 = piVar21;\n            piVar8 = piVar3;\n            iVar51 = piVar8[1];\n            iVar12 = piVar8[2];\n            iVar4 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar51;\n            piVar13[2] = iVar12;\n            piVar13[3] = iVar4;\n            piVar3 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar3 != piVar19 + 0x14);\n          iVar12 = *piVar3;\n          iVar4 = piVar8[5];\n          *piVar21 = iVar12;\n          piVar13[5] = iVar4;\n          in_f20_21 = *(double *)(piVar19 + 10);\n          in_f22_23 = *(double *)(piVar19 + 0xc);\n          in_f24_25 = *(double *)(piVar19 + 0xe);\n          dStack_590 = *(double *)(piVar19 + 0x10);\n          dVar41 = *(double *)(piVar19 + 0x12);\n          if (*puVar34 < 2) {\n            uStack_5a0 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n            dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar34 + 6);\n            dStack_530 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n            dVar43 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar43);\n            if (0.0 <= dVar43) {\n              dVar43 = dVar42 * dVar42;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar43 = dVar42 * dVar42;\n            }\n            dVar43 = uStack_5a0 * uStack_5a0 + dVar43;\n            in_f26_27 = SQRT(dVar43);\n            if (dVar43 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar43) {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar43 = dVar43 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar42 * dStack_530) * dVar43 * dStack_558;\nLAB_000a56c0:\n            uVar28 = *puVar34;\nLAB_000a56c4:\n            if (uVar28 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar43 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar43;\n            }\n          }\n          else {\n            if (*puVar34 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar34[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar42 = 0.0 - *(double *)(puVar34 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar34 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar21,iVar12,\n                         &dStack_518,&dStack_520);\n              dVar43 = *(double *)(puVar34 + 0x16);\n              if (in_f26_27 <= dVar43) {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar43 * dVar49) {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }\n              else {\n                dVar49 = dVar49 / unaff_s6[0x879];\n              }\n              dVar49 = (dVar42 * dStack_520 +\n                       ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) * dVar49;\n              dVar43 = *(double *)(puVar34 + 0x18);\n              if (0.0 <= dVar43) {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar43 * dVar46) {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }\n              else {\n                dVar46 = dVar46 / unaff_s6[0x879];\n              }\n              dVar46 = (dVar42 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) * dVar46;\n              dVar43 = dVar49 * dVar49 + dVar46 * dVar46;\n              uStack_5a0 = SQRT(dVar43);\n              if (0.0 <= dVar43) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar28 = *puVar34;\n              goto LAB_000a56c4;\n            }\n            dVar43 = (0.0 - *(double *)(puVar34 + 0x12)) * (0.0 - *(double *)(puVar34 + 0x12)) +\n                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n            uStack_5a0 = SQRT(dVar43);\n            if (dVar43 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar28 = *puVar34;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar30 = (*(int **)(pdVar6 + 4))[2];\n          pdVar31 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar30 < **(int **)(pdVar6 + 4)) {\n            dStack_540 = pdVar31[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar50 != (int *)0x0) {\n                aiStack_510[0] = *piVar50;\n                aiStack_510[1] = piVar50[1];\n                uStack_500 = *(undefined8 *)(piVar50 + 0x92);\n                iStack_4f8 = piVar50[8];\n                aiStack_510[2] = piVar50[0xaf];\n                if (pdVar32 != (double *)0x0) {\n                  iVar4 = piVar50[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4);\n                  if (*(int *)(iVar4 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar4 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar4 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar34[0x10];\n              if (unaff_s7 == 2) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      in_f26_27 = pdVar31[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                      in_f26_27 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar34 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar41 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar41 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar41;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar34 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar41 = *(double *)(puVar34 + 0x16);\n                  if (0.0 <= dVar41) {\n                    dVar49 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                    dVar49 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar49 = dVar49 / unaff_s6[0x879];\n                  }\n                  dVar41 = *(double *)(puVar34 + 0x18);\n                  dVar49 = (dVar42 * dStack_520 +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                           dVar49;\n                  if (0.0 <= dVar41) {\n                    dVar46 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                    dVar46 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar46 = dVar46 / unaff_s6[0x879];\n                  }\n                  dVar46 = (dVar42 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                           dVar46;\n                  dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar34 != 2) goto LAB_000a6378;\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar4 + 0x298));\n                if ((int)dVar41 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar31[0x881]);\n                }\n                else {\n                  dVar41 = pdVar31[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar41);\n                  uStack_5a0 = dVar41 - uStack_5a0;\n                }\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a6248;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar12 + 0x58)) /\n                               (*(double *)(iVar4 + 0x58) - *(double *)(iVar12 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6e58:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) goto LAB_000a6944;\n                if (*puVar34 < 2) {\n                  dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                  dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                  dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                  dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                  dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) {\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  dVar41 = dVar46 * dVar46 + dVar41;\n                  dVar44 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar44 = uStack_5a0 * dVar44;\n                  if (0.0 <= dVar44) {\n                    in_f26_27 = pdVar31[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                    in_f26_27 = pdVar31[0x881] / dVar44;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar28 = *puVar34;\nLAB_000a690c:\n                  if (uVar28 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar41 = pdVar31[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar41 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar41;\n                  }\n                }\n                else {\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar34 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar41 = *(double *)(puVar34 + 0x16);\n                    if (0.0 <= dVar41) {\n                      dVar49 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                      dVar49 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar49 = dVar49 / unaff_s6[0x879];\n                    }\n                    dVar41 = *(double *)(puVar34 + 0x18);\n                    dVar49 = (dVar42 * dStack_520 +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                             dVar49;\n                    if (0.0 <= dVar41) {\n                      dVar46 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                      dVar46 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar46 = dVar46 / unaff_s6[0x879];\n                    }\n                    dVar46 = (dVar42 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                             dVar46;\n                    dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                  dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                           ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                  uStack_5a0 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar41 = pdVar31[0x881];\n                        uVar20 = uVar28;\n                        goto LAB_000a6f20;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar41 = pdVar31[0x881], uVar20 != 0)) {\nLAB_000a6f20:\n                      if ((dVar41 < uStack_5a0) || (uVar28 == uVar20)) {\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar4 = uVar9 + uVar24 * 0x60;\n                      iVar12 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar4 + 0x58)) /\n                               (*(double *)(iVar12 + 0x58) - *(double *)(iVar4 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6740:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar4 + 0x28) +\n                                  dVar42 * *(double *)(iVar12 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar4 + 0x30) +\n                                  dVar42 * *(double *)(iVar12 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar4 + 0x38) +\n                                  dVar42 * *(double *)(iVar12 + 0x38)) * dVar47;\n                      if (*(int *)(iVar12 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar4 + 0x40) +\n                                     dVar42 * *(double *)(iVar12 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\n                  dVar42 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      dVar41 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * dVar41) {\n                      dVar41 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      dVar41 = dVar41 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * dVar41 * uStack_5a0;\nLAB_000a5e90:\n                    uVar28 = *puVar34;\nLAB_000a5e94:\n                    if (uVar28 == 1) {\n                      dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar41;\n                      if (0.0 <= dVar41) {\n                        dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar41,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar42 = dStack_580;\n                        dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580);\n                        dVar42 = dVar42 - dVar41;\n                      }\n                      bVar1 = dVar42 < dStack_580 && dStack_580 < dVar42 + pdVar31[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar31[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar42 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar34 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                             ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                    in_f26_27 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar28 = *puVar34;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  uStack_5a0 = dVar41;\n                  if (0.0 <= dVar41) {\n                    dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  }\n                  else {\n                    dVar42 = *(double *)(puVar34 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar41,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dVar42);\n                    dVar42 = dVar42 - dVar41;\n                  }\n                  bVar1 = *(double *)(puVar34 + 0x1a) < dVar42 + pdVar31[0x881];\n                  uStack_5a0 = dVar42 / *(double *)(puVar34 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a5db0;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      dVar41 = *(double *)(uVar9 + uVar24 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar41 = dStack_580;\n                        if (*puVar34 != 1) {\n                          dVar41 = *(double *)(puVar34 + 0x1a);\n                        }\n                        dVar41 = dVar41 - dVar42;\n                        uVar20 = uVar28 - 1;\n                        uVar24 = 0;\n                      }\n                      else {\n                        dVar41 = (uStack_5a0 - dVar41) /\n                                 (*(double *)(uVar9 + uVar20 * 0x60 + 0x58) - dVar41);\n                      }\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6d30:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\nLAB_000a5af8:\n              dVar46 = dVar41 * dVar43;\n              dVar49 = dStack_4c8 * dVar43;\n              dVar42 = (dVar46 + dVar49) - dVar46 * dVar49;\n              if (0.0 <= dVar42) {\n                dStack_4c8 = pdVar31[0x881];\n                if (dVar42 <= pdVar31[0x881]) {\n                  dStack_4c8 = dVar42;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar42) {\n                  dVar47 = pdVar31[0x881];\n                }\n                else {\n                  dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar42 * dVar47) {\n                dVar47 = pdVar31[0x881] / dVar42;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar42 = pdVar31[0x881] - dVar46;\n              dStack_4e8 = (dVar49 * dStack_4e8 * dVar42 + dVar46 * in_f20_21) * dVar47;\n              dStack_4e0 = (dVar49 * dStack_4e0 * dVar42 + in_f22_23 * dVar46) * dVar47;\n              dStack_4d8 = (dVar49 * dStack_4d8 * dVar42 + dVar46 * in_f24_25) * dVar47;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar49 * dStack_4d0 * dVar42 + dStack_590 * dVar46) * dVar47;\n              }\n              iVar4 = piVar50[0xb4];\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar4 + 0x28) != 0) {\n                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar4 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar45 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar45 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4) = fVar45;\n              }\n              pdVar32 = (double *)((int)pdVar32 + piVar50[0xb0] * 4);\n              iVar30 = iVar30 + 1;\n            } while (iVar30 < **(int **)(pdVar6 + 4));\n          }\n          pdVar16 = pdStack_568;\n          iVar4 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar39 = pcStack_5a8;\n          if (iVar4 == 0) {\n            *(uint *)((int)pdVar6 + 0x24) = 0;\n          }\n        }\n      }\n      puVar37 = puVar37 + 1;\n    } while ((int)puVar37 < (int)puStack_56c);\n  }\n  if (iStack_4b4 == **(int **)(pcVar39 + -0x7668)) {\n    return;\n  }\n  pcVar39 = *(code **)(pcVar39 + -0x7834);\n  pcVar40 = DestroyDrawInfo;\n  (*pcVar39)();\n  pcStack_5d0 = pcVar39 + 0x35a8f0;\n  pdStack_5c8 = pdVar32;\n  pcStack_5c4 = pcVar40;\n  if (pdVar16 == (double *)0x0) {\n    (**(code **)(pcVar39 + 0x353660))\n              (*(int *)(pcVar39 + 0x352920) + 0x40e4,*(int *)(pcVar39 + 0x352924) + 0x69c0,0x39a,\n               *(int *)(pcVar39 + 0x352924) + 0x7914);\n    pdVar16 = pdVar32;\nLAB_000a7234:\n    iStack_5d8 = *(int *)(pcVar39 + 0x352924) + 0x10f4;\n    (**(code **)(pcVar39 + 0x353238))\n              (0x8000,*(int *)(pcVar39 + 0x352924) + 0x69c0,*(int *)(pcVar39 + 0x352924) + 0x7904,\n               0x39c);\n    uVar28 = *(uint *)(pdVar16 + 0x72);\n  }\n  else {\n    if (*(uint *)((int)pdVar16 + 0x38c) != 0) goto LAB_000a7234;\n    uVar28 = *(uint *)(pdVar16 + 0x72);\n  }\n  if (uVar28 == 0xabacadab) {\n    if (*(uint *)(pdVar16 + 0x77) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar16 + 0x77) = uVar28;\n    }\n    if (*(uint *)pdVar16 != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)pdVar16 = uVar28;\n    }\n    if (*(uint *)(pdVar16 + 0x4c) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar16 + 0x4c) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 4) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar16 + 4) = uVar28;\n    }\n    if (*(uint *)(pdVar16 + 0x35) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)(pdVar16 + 0x35) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 0x1ac) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar16 + 0x1ac) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 0x264) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar16 + 0x264) = uVar28;\n    }\n    if (*(uint *)(pdVar16 + 0x4d) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar16 + 0x4d) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 0x26c) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar16 + 0x26c) = uVar28;\n    }\n    if (*(uint *)(pdVar16 + 0x50) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar16 + 0x50) = uVar28;\n    }\n    if (*(uint *)(pdVar16 + 0x52) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar16 + 0x52) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 0x29c) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)((int)pdVar16 + 0x29c) = uVar28;\n    }\n    if (*(uint *)(pdVar16 + 0x54) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar16 + 0x54) = uVar28;\n    }\n    if (*(uint *)(pdVar16 + 0x3e) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar16 + 0x3e) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 0x2a4) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar16 + 0x2a4) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 0x3ac) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar16 + 0x3ac) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 0x3b4) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar16 + 0x3b4) = uVar28;\n    }\n    *(uint *)(pdVar16 + 0x72) = 0x54535254;\n    (**(code **)(pcStack_5d0 + -0x78d8))(pdVar16);\n    return;\n  }\n  pdVar6 = (double *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x7914);\n  pdVar18 = (double *)&DAT_0000039d;\n  puVar25 = (uint *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x69c0);\n  piVar3 = (int *)(*(int *)(pcStack_5d0 + -0x7fd0) + 0x4128);\n  pcVar39 = *(code **)(pcStack_5d0 + -0x7290);\n  pcVar40 = DrawAffineImage;\n  (*pcVar39)();\n  pcStack_758 = pcVar39 + 0x35a61c;\n  uStack_638._4_4_ = **(int **)(pcVar39 + 0x352fb4);\n  pdStack_62c = pdVar16;\n  piStack_628 = piVar50;\n  puStack_624 = puVar34;\n  pdStack_620 = pdVar31;\n  iStack_61c = iVar30;\n  puStack_618 = puVar37;\n  pdStack_614 = unaff_s6;\n  uStack_610 = unaff_s7;\n  pcStack_60c = pcVar40;\n  dStack_608 = in_f20_21;\n  dStack_600 = in_f22_23;\n  dStack_5f8 = in_f24_25;\n  dStack_5f0 = in_f26_27;\n  if (piVar3 == (int *)0x0) {\n    (**(code **)(pcVar39 + 0x35338c))\n              (*(int *)(pcVar39 + 0x35264c) + 0x3da0,*(int *)(pcVar39 + 0x352650) + 0x69c0,0x4c0,\n               *(int *)(pcVar39 + 0x352650) + 0x78f4);\n    pdVar18 = pdVar16;\n    piVar3 = piVar50;\n    puVar25 = puVar34;\n    pdVar6 = pdVar31;\nLAB_000a7434:\n    piVar50 = (int *)(**(code **)(pcVar39 + 0x35338c))\n                               (*(int *)(pcVar39 + 0x352650) + -0x784,\n                                *(int *)(pcVar39 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar39 + 0x352650) + 0x78f4);\nLAB_000a745c:\n    iStack_760 = *(int *)(pcVar39 + 0x352654) + -0x2f6c;\n    piStack_75c = piVar50;\n    (**(code **)(pcVar39 + 0x352f64))\n              (0x8000,*(int *)(pcVar39 + 0x352650) + 0x69c0,*(int *)(pcVar39 + 0x352650) + 0x78e4,\n               0x4c3);\n  }\n  else {\n    if (piVar3[0xcdb] != -0x54535255) goto LAB_000a7434;\n    piVar50 = piVar3 + 0xd0;\n    if (piVar3[0xcd4] != 0) goto LAB_000a745c;\n  }\n  pcVar39 = pcStack_758;\n  if (puVar25 == (uint *)0x0) {\n    (**(code **)(pcStack_758 + -0x7290))\n              (*(int *)(pcStack_758 + -0x7fcc) + 0x6a20,*(int *)(pcStack_758 + -0x7fcc) + 0x69c0,\n               0x4c4,*(int *)(pcStack_758 + -0x7fcc) + 0x78f4);\nLAB_000a74c4:\n    (**(code **)(pcVar39 + -0x7290))\n              (*(int *)(pcVar39 + -0x7fcc) + 0x6a40,*(int *)(pcVar39 + -0x7fcc) + 0x69c0);\nLAB_000a74e8:\n    dStack_668 = (double)(**(code **)(pcVar39 + -0x7290))\n                                   (*(int *)(pcVar39 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar39 + -0x7fcc) + 0x69c0);\nLAB_000a750c:\n    dStack_668 = dStack_668 + *(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x43e8);\n  }\n  else {\n    if (puVar25[0xcdb] != 0xabacadab) goto LAB_000a74c4;\n    if (pdVar18 == (double *)0x0) goto LAB_000a74e8;\n    uStack_678._4_4_ = 0;\n    uStack_678._0_4_ = 0;\n    uStack_66c = 0;\n    uStack_670 = 0;\n    dStack_668 = (double)(int)puVar25[6];\n    if ((int)puVar25[6] < 0) goto LAB_000a750c;\n  }\n  dStack_668 = dStack_668 - *(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x4408);\n  uStack_65c = 0;\n  uStack_660 = 0;\n  dStack_658 = dStack_668;\n  dStack_650 = (double)(int)puVar25[7];\n  if ((int)puVar25[7] < 0) {\n    dStack_650 = dStack_650 + *(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x43e8);\n  }\n  dStack_650 = dStack_650 - *(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x4408);\n  uStack_644 = 0;\n  uStack_648 = 0;\n  dStack_640 = dStack_650;\n  dVar47 = *pdVar18;\n  dVar46 = pdVar18[2];\n  dVar49 = pdVar18[4];\n  dVar42 = pdVar18[1];\n  dVar43 = pdVar18[3];\n  dVar41 = pdVar18[5];\n  pdVar16 = (double *)&uStack_678;\n  pdVar31 = pdVar16;\n  do {\n    dVar44 = *pdVar31;\n    *pdVar31 = dVar47 * dVar44 + dVar46 * pdVar31[1] + dVar49;\n    pdVar31[1] = dVar42 * dVar44 + dVar43 * pdVar31[1] + dVar41;\n    pdVar31 = pdVar31 + 2;\n  } while (pdVar31 != (double *)&uStack_638);\n  dVar41 = (double)CONCAT44(uStack_670,uStack_66c);\n  dVar43 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_);\n  dVar42 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_);\n  dVar49 = (double)CONCAT44(uStack_670,uStack_66c);\n  do {\n    dVar47 = pdVar16[2];\n    dVar46 = dVar47;\n    if (dVar43 <= dVar47) {\n      dVar46 = dVar43;\n    }\n    dVar44 = pdVar16[3];\n    dVar48 = dVar44;\n    if (dVar49 <= dVar44) {\n      dVar48 = dVar49;\n    }\n    if (dVar47 <= dVar42) {\n      dVar47 = dVar42;\n    }\n    if (dVar44 <= dVar41) {\n      dVar44 = dVar41;\n    }\n    pdVar16 = pdVar16 + 2;\n    dVar41 = dVar44;\n    dVar43 = dVar46;\n    dVar42 = dVar47;\n    dVar49 = dVar48;\n  } while ((double *)&uStack_648 != pdVar16);\n  ppiVar26 = (int **)0x1;\n  pdVar31 = pdVar6;\n  iVar4 = (**(code **)(pcVar39 + -0x7074))(piVar3);\n  if (iVar4 != 0) {\n    dStack_750 = dVar46;\n    if (dVar46 <= 0.0) {\n      dStack_750 = 0.0;\n    }\n    dStack_748 = dVar48;\n    if (dVar48 <= 0.0) {\n      dStack_748 = 0.0;\n    }\n    dStack_740 = (double)piVar3[6];\n    if (piVar3[6] < 0) {\n      dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_740 = dStack_740 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar47 < dStack_740) {\n      dStack_740 = dVar47;\n    }\n    dStack_738 = (double)piVar3[7];\n    if (piVar3[7] < 0) {\n      dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_738 = dStack_738 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar44 < dStack_738) {\n      dStack_738 = dVar44;\n    }\n    dStack_6e8 = *pdVar18 * pdVar18[3] - pdVar18[1] * pdVar18[2];\n    if (0.0 <= dStack_6e8) {\n      dVar41 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    }\n    else {\n      dVar41 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);\n    }\n    if (dStack_6e8 * dVar41 < *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)) {\n      dStack_6e8 = dVar41 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8);\n    }\n    else {\n      dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;\n    }\n    dStack_700 = pdVar18[3] * dStack_6e8;\n    dStack_6f8 = -pdVar18[1] * dStack_6e8;\n    dStack_6f0 = -pdVar18[2] * dStack_6e8;\n    dStack_6e8 = *pdVar18 * dStack_6e8;\n    dStack_6e0 = dStack_700 * -pdVar18[4] - dStack_6f0 * pdVar18[5];\n    dStack_6d8 = dStack_6f8 * -pdVar18[4] - dStack_6e8 * pdVar18[5];\n    (**(code **)(pcStack_758 + -0x75e4))(piVar3,auStack_6d0);\n    dVar44 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0);\n    dVar41 = (double)(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar44);\n    dVar43 = (double)(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar44);\n    uVar5 = (**(code **)(pcStack_758 + -0x7144))(puVar25,pdVar6);\n    puVar37 = (undefined1 *)(**(code **)(pcStack_758 + -0x79c4))(piVar3,pdVar6);\n    iVar4 = (**(code **)(pcStack_758 + -0x73e4))(puVar25);\n    if (((iVar4 == 4) || (iVar4 = (**(code **)(pcStack_758 + -0x73e4))(puVar25), iVar4 == 3)) &&\n       ((iVar4 = (**(code **)(pcStack_758 + -0x73e4))(piVar3), iVar4 == 4 ||\n        (iVar4 = (**(code **)(pcStack_758 + -0x73e4))(piVar3), iVar4 == 3)))) {\n      (**(code **)(pcStack_758 + -0x775c))(7);\n      iVar12 = (int)dVar43 - (int)dVar41;\n      iVar4 = iVar12;\n      if (iVar12 < 0) {\n        iVar4 = iVar12 + 0x3f;\n      }\n      pdVar18 = (double *)(iVar4 >> 6);\n      if (extraout_v1 < (int)pdVar18) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        bVar1 = extraout_v1_01 < 2;\n      }\n      else {\n        bVar1 = iVar12 < 0x80;\n      }\n      pdVar31 = (double *)0x1;\n      if (((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar31 = pdVar18, extraout_v1_02 < (int)pdVar18)\n         ) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar31 = extraout_v1_03;\n        pdVar18 = extraout_v1_03;\n      }\n    }\n    else {\n      uVar53 = (**(code **)(pcStack_758 + -0x775c))(7);\n      if (((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)) {\n        uVar53 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar53 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar39 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar53 < 2) {\n          pdVar31 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }\n      else {\nLAB_000a77f8:\n        pcVar39 = *(code **)(pcStack_758 + -0x775c);\n      }\n      uVar53 = (*pcVar39)(7);\n      if (((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar31 = extraout_v1_00;\n      }\n      else {\n        pdVar31 = (double *)0x2;\n      }\n    }\nLAB_000a7818:\n    pdStack_720 = &dStack_700;\n    puStack_714 = auStack_6d0;\n    pdStack_710 = &dStack_750;\n    iStack_704 = 1;\n    ppiVar26 = &piStack_72c;\n    piStack_72c = piVar3;\n    puStack_728 = puVar25;\n    pdStack_724 = pdVar6;\n    puStack_71c = puVar37;\n    uStack_718 = uVar5;\n    iStack_70c = (int)dVar41;\n    iStack_708 = (int)dVar43;\n    (**(code **)(pcStack_758 + -0x7700))\n              (*(int *)(pcStack_758 + -0x7ea0) + 0x34c4,ppiVar26,pdVar31,0);\n    iVar4 = iStack_704;\n    (**(code **)(pcStack_758 + -0x79a4))(uVar5);\n    (**(code **)(pcStack_758 + -0x79a4))(puVar37);\n  }\n  if (uStack_638._4_4_ == **(int **)(pcStack_758 + -0x7668)) {\n    return;\n  }\n  pcVar39 = *(code **)(pcStack_758 + -0x7834);\n  pcVar40 = DrawGradientImage;\n  iVar12 = uStack_638._4_4_;\n  (*pcVar39)();\n  pcStack_830 = pcVar39 + 0x359e18;\n  puStack_794 = (undefined8 *)**(undefined4 **)(pcVar39 + 0x3527b0);\n  pdStack_790 = pdVar18;\n  piStack_78c = piVar3;\n  puStack_788 = puVar25;\n  pdStack_784 = pdVar6;\n  iStack_780 = iVar4;\n  pcStack_77c = pcVar40;\n  dStack_778 = dVar44;\n  if (iVar12 == 0) {\n    (**(code **)(pcVar39 + 0x352b88))\n              (*(int *)(pcVar39 + 0x351e48) + 0x3da0,*(int *)(pcVar39 + 0x351e4c) + 0x69c0,0x80a,\n               *(int *)(pcVar39 + 0x351e4c) + 0x7818);\n    return;\n  }\n  if (*(int *)(iVar12 + 0x336c) != -0x54535255) {\n    (**(code **)(pcVar39 + 0x352b88))\n              (*(int *)(pcVar39 + 0x351e4c) + -0x784,*(int *)(pcVar39 + 0x351e4c) + 0x69c0,0x80b,\n               *(int *)(pcVar39 + 0x351e4c) + 0x7818);\n    return;\n  }\n  if (*(int *)(iVar12 + 0x3350) != 0) {\n    iStack_838 = *(int *)(pcVar39 + 0x351e50) + -0x2f6c;\n    iStack_834 = iVar12 + 0x340;\n    (**(code **)(pcVar39 + 0x352760))\n              (0x8000,*(int *)(pcVar39 + 0x351e4c) + 0x69c0,*(int *)(pcVar39 + 0x351e4c) + 0x7804,\n               0x80d);\n  }\n  if (ppiVar26 == (int **)0x0) {\n    (**(code **)(pcStack_830 + -0x7290))\n              (*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c,*(int *)(pcStack_830 + -0x7fcc) + 0x69c0,\n               0x80e,*(int *)(pcStack_830 + -0x7fcc) + 0x7818);\n    return;\n  }\n  ppiVar35 = ppiVar26 + 0x6e;\n  (**(code **)(pcStack_830 + -0x6fc4))\n            (ppiVar26[0x7c],ppiVar26[0x7d],0x60,*(int *)(pcStack_830 + -0x7ea0) + 0x224c);\n  ppiVar36 = ppiVar26 + 0x74;\n  dVar41 = (*(double *)(ppiVar26 + 0x78) - *(double *)(ppiVar26 + 0x74)) *\n           (*(double *)(ppiVar26 + 0x78) - *(double *)(ppiVar26 + 0x74)) +\n           (*(double *)(ppiVar26 + 0x7a) - *(double *)(ppiVar26 + 0x76)) *\n           (*(double *)(ppiVar26 + 0x7a) - *(double *)(ppiVar26 + 0x76));\n  dVar43 = SQRT(dVar41);\n  if (0.0 <= dVar41) {\n    piStack_828 = ppiVar26[0x6f];\n  }\n  else {\n    (**(code **)(pcStack_830 + -0x7418))();\n    piStack_828 = ppiVar26[0x6f];\n  }\n  piStack_824 = ppiVar26[0x70];\n  piStack_820 = ppiVar26[0x71];\n  piStack_81c = ppiVar26[0x72];\n  (**(code **)(pcStack_830 + -0x75e4))(iVar12,auStack_7f0);\n  uVar5 = (**(code **)(pcStack_830 + -0x79c4))(iVar12,pdVar31);\n  iVar4 = (**(code **)(pcStack_830 + -0x73e4))(iVar12);\n  if ((iVar4 == 4) || (iVar4 = (**(code **)(pcStack_830 + -0x73e4))(iVar12), iVar4 == 3)) {\n    iVar4 = (**(code **)(pcStack_830 + -0x73e4))(iVar12);\n    if ((iVar4 != 4) && (iVar4 = (**(code **)(pcStack_830 + -0x73e4))(iVar12), iVar4 != 3))\n    goto LAB_000a7bf4;\n    (**(code **)(pcStack_830 + -0x775c))(7);\n    iVar51 = (int)piStack_824 - (int)piStack_81c;\n    iVar4 = iVar51;\n    if (iVar51 < 0) {\n      iVar4 = iVar51 + 0x3f;\n    }\n    if (extraout_v1_04 < iVar4 >> 6) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = iVar51 < 0x80;\n    }\n    iVar4 = 1;\n    dStack_818 = dVar43;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar4 = (int)piStack_824 - (int)piStack_81c;\n      if (iVar4 < 0) {\n        iVar4 = iVar4 + 0x3f;\n      }\n      iVar4 = iVar4 >> 6;\n      dStack_818 = dVar43;\n      if (extraout_v1_07 < iVar4) {\n        (**(code **)(pcStack_830 + -0x775c))(7);\n        iVar4 = extraout_v1_08;\n        dStack_818 = dVar43;\n      }\n    }\n  }\n  else {\nLAB_000a7bf4:\n    uVar53 = (**(code **)(pcStack_830 + -0x775c))(7);\n    if (((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)) {\n      uVar53 = (**(code **)(pcStack_830 + -0x775c))(7);\n      if ((int)((ulonglong)uVar53 >> 0x20) != 0) goto LAB_000a7c10;\n      pcVar39 = *(code **)(pcStack_830 + -0x775c);\n      if ((uint)uVar53 < 2) {\n        iVar4 = 1;\n        dStack_818 = dVar43;\n        goto LAB_000a7c30;\n      }\n    }\n    else {\nLAB_000a7c10:\n      pcVar39 = *(code **)(pcStack_830 + -0x775c);\n    }\n    uVar53 = (*pcVar39)(7);\n    if (((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar4 = extraout_v1_05;\n      dStack_818 = dVar43;\n    }\n    else {\n      iVar4 = 2;\n      dStack_818 = dVar43;\n    }\n  }\nLAB_000a7c30:\n  puStack_7fc = auStack_7f0;\n  ppiStack_7f8 = &piStack_828;\n  uStack_7f4 = 1;\n  iStack_810 = iVar12;\n  pdStack_80c = pdVar31;\n  uStack_808 = uVar5;\n  ppiStack_804 = ppiVar35;\n  ppiStack_800 = ppiVar36;\n  (**(code **)(pcStack_830 + -0x7700))(*(int *)(pcStack_830 + -0x7ea0) + 0x549c,&dStack_818,iVar4,0)\n  ;\n  uVar27 = uStack_7f4;\n  (**(code **)(pcStack_830 + -0x79a4))(uVar5);\n  if (puStack_794 == (undefined8 *)**(int **)(pcStack_830 + -0x7668)) {\n    return;\n  }\n  pcVar39 = *(code **)(pcStack_830 + -0x7834);\n  pcVar40 = GetAffineMatrix;\n  puVar22 = puStack_794;\n  (*pcVar39)();\n  pcStack_858 = pcVar39 + 0x359994;\n  iStack_860 = *(int *)(pcVar39 + 0x3519c8) + 0x10f4;\n  uStack_850 = uVar5;\n  pcStack_84c = pcVar40;\n  (**(code **)(pcVar39 + 0x3522dc))\n            (0x8000,*(int *)(pcVar39 + 0x3519c8) + 0x69c0,*(int *)(pcVar39 + 0x3519c8) + 0x76b0,\n             0x16d2);\n  if (puVar22 != (undefined8 *)0x0) {\n    (**(code **)(pcStack_858 + -0x71c4))(puVar22 + 1,0,0x28);\n    uVar53 = *(undefined8 *)(*(int *)(pcStack_858 + -0x7fd0) + 0x4408);\n    *puVar22 = uVar53;\n    puVar22[3] = uVar53;\n    return;\n  }\n  iVar12 = *(int *)(pcStack_858 + -0x7fcc) + 0x69c0;\n  iVar4 = *(int *)(pcStack_858 + -0x7fcc) + 0x6368;\n  pcVar39 = *(code **)(pcStack_858 + -0x7290);\n  pcVar40 = GetDrawInfo;\n  (*pcVar39)(iVar4,iVar12,0x16d3,*(int *)(pcStack_858 + -0x7fcc) + 0x76a0);\n  uStack_888 = uVar27;\n  iStack_894 = **(int **)(pcVar39 + 0x352270);\n  puStack_88c = puVar22;\n  pdStack_884 = pdVar31;\n  ppiStack_880 = ppiVar35;\n  ppiStack_87c = ppiVar36;\n  puStack_878 = puVar37;\n  pcStack_874 = pcVar40;\n  (**(code **)(pcVar39 + 0x352220))\n            (0x8000,*(int *)(pcVar39 + 0x35190c) + 0x69c0,*(int *)(pcVar39 + 0x35190c) + 0x7694,\n             0x1702,*(int *)(pcVar39 + 0x35190c) + 0x10f4);\n  if (iVar12 == 0) {\n    (**(code **)(pcVar39 + 0x352648))\n              (*(int *)(pcVar39 + 0x351908) + 0x40e4,*(int *)(pcVar39 + 0x35190c) + 0x69c0,0x1703,\n               *(int *)(pcVar39 + 0x35190c) + 0x7688);\n  }\n  else {\n    (**(code **)(pcVar39 + 0x352714))(iVar12,0,0x3c0);\n    iVar4 = (**(code **)(pcVar39 + 0x3521dc))(iVar4);\n    (**(code **)(pcVar39 + 0x351e5c))(iVar12 + 0x18);\n    pdVar31 = (double *)(**(code **)(pcVar39 + 0x351f2c))();\n    ppiVar36 = (int **)(iVar12 + 0x48);\n    (**(code **)(pcVar39 + 0x351e54))\n              (*(int *)(pcVar39 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar36,pdVar31);\n    ppiVar35 = (int **)(iVar12 + 0xa0);\n    (**(code **)(pcVar39 + 0x351e54))\n              (*(int *)(pcVar39 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar35,pdVar31);\n    *(undefined4 *)(iVar12 + 0x238) = *(undefined4 *)(iVar4 + 0x14);\n    *(undefined8 *)(iVar12 + 0x1b0) = *(undefined8 *)(*(int *)(pcVar39 + 0x351908) + 0x4408);\n    *(undefined4 *)(iVar12 + 0x240) = 1;\n    *(undefined4 *)(iVar12 + 0x2cc) = *(undefined4 *)(*(int *)(pcVar39 + 0x351908) + 0x4aa8);\n    uVar53 = *(undefined8 *)(*(int *)(pcVar39 + 0x351908) + 0x4a48);\n    *(undefined8 *)(iVar12 + 0x398) = uVar53;\n    *(undefined8 *)(iVar12 + 0x3a0) = uVar53;\n    *(undefined4 *)(iVar12 + 0x244) = 1;\n    *(undefined4 *)(iVar12 + 0x248) = 1;\n    *(undefined4 *)(iVar12 + 0x24c) = 10;\n    *(undefined4 *)(iVar12 + 600) = 1;\n    *(undefined8 *)(iVar12 + 0x288) = *(undefined8 *)(*(int *)(pcVar39 + 0x35190c) + 0x7970);\n    *(undefined4 *)(iVar12 + 0x144) = 0;\n    *(undefined4 *)(iVar12 + 0x140) = 0;\n    *(undefined4 *)(iVar12 + 0x25c) = 0x36;\n    *(undefined4 *)(iVar12 + 0x2d0) = 1;\n    *(undefined4 *)(iVar12 + 0x3a8) = 0;\n    uVar5 = (**(code **)(pcVar39 + 0x3527e8))();\n    *(undefined4 *)(iVar12 + 0x38c) = uVar5;\n    if (*(int *)(iVar4 + 0x4c) != 0) {\n      uVar5 = (**(code **)(pcVar39 + 0x352854))();\n      *(undefined4 *)(iVar12 + 0x264) = uVar5;\n    }\n    if (*(int *)(iVar4 + 0x54) != 0) {\n      uVar5 = (**(code **)(pcVar39 + 0x352854))();\n      *(undefined4 *)(iVar12 + 0x290) = uVar5;\n    }\n    *(undefined4 *)(iVar12 + 0x23c) = *(undefined4 *)(iVar4 + 0x14);\n    uVar5 = *(undefined4 *)(iVar4 + 0x58);\n    if (*(double *)(*(int *)(pcVar39 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar4 + 0x58))) {\n      *(undefined4 *)(iVar12 + 0x28c) = *(undefined4 *)(iVar4 + 0x5c);\n      *(undefined4 *)(iVar12 + 0x288) = uVar5;\n    }\n    puVar10 = (undefined4 *)(iVar4 + 0x118);\n    puVar2 = (undefined4 *)(iVar12 + 0x150);\n    do {\n      puVar17 = puVar2;\n      puVar11 = puVar10;\n      uVar29 = puVar11[1];\n      uVar27 = puVar11[2];\n      uVar5 = puVar11[3];\n      *puVar17 = *puVar11;\n      puVar17[1] = uVar29;\n      puVar17[2] = uVar27;\n      puVar17[3] = uVar5;\n      puVar10 = puVar11 + 4;\n      puVar2 = puVar17 + 4;\n    } while (puVar10 != (undefined4 *)(iVar4 + 0x168));\n    uVar5 = puVar11[5];\n    puVar17[4] = *puVar10;\n    puVar17[5] = uVar5;\n    if (*(int *)(iVar4 + 0x48) != 0) {\n      uVar5 = (**(code **)(pcVar39 + 0x352854))();\n      *(undefined4 *)(iVar12 + 0x29c) = uVar5;\n    }\n    iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6ac4);\n    if (iVar51 != 0) {\n      uVar5 = (**(code **)(pcVar39 + 0x3526d4))(0x14,0,iVar51);\n      *(undefined4 *)(iVar12 + 0x388) = uVar5;\n      goto LAB_000a8298;\n    }\n  }\n  *(undefined4 *)(iVar12 + 0x388) = 0;\nLAB_000a8298:\n  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6ad0);\n  if (iVar51 != 0) {\n    (**(code **)(pcVar39 + 0x3524c8))(iVar12 + 0x280,iVar51);\n  }\n  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6adc);\n  if (iVar51 != 0) {\n    (**(code **)(pcVar39 + 0x3524c8))(iVar12 + 0x26c,iVar51);\n  }\n  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6ae4);\n  if (iVar51 != 0) {\n    (**(code **)(pcVar39 + 0x351e54))(iVar51,0x7fffffff,ppiVar36,pdVar31);\n  }\n  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6aec);\n  if (iVar51 != 0) {\n    uVar5 = (**(code **)(pcVar39 + 0x3526d4))(0x21,0,iVar51);\n    *(undefined4 *)(iVar12 + 0x298) = uVar5;\n  }\n  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6af4);\n  if (iVar51 != 0) {\n    dVar41 = (double)(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898);\n    if (NAN(dVar41)) {\n      dVar41 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41) {\n      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }\n    }\n    else {\n      dVar41 = 0.0;\n    }\n    *(double *)(iVar12 + 0x380) = dVar41;\n  }\n  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b08);\n  if (iVar51 != 0) {\n    dVar41 = (double)(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898);\n    if (NAN(dVar41)) {\n      dVar41 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41) {\n      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }\n    }\n    else {\n      dVar41 = 0.0;\n    }\n    *(double *)(iVar12 + 0x378) = dVar41;\n  }\n  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b1c);\n  if (iVar51 != 0) {\n    dVar41 = (double)(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898);\n    if (NAN(dVar41)) {\n      dVar41 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41) {\n      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }\n    }\n    else {\n      dVar41 = 0.0;\n    }\n    *(double *)(iVar12 + 0x370) = dVar41;\n  }\n  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b24);\n  if (iVar51 != 0) {\n    (**(code **)(pcVar39 + 0x351e54))(iVar51,0x7fffffff,ppiVar35,pdVar31);\n  }\n  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b2c);\n  if (iVar51 != 0) {\n    dVar41 = (double)(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898);\n    if (NAN(dVar41)) {\n      dVar41 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41) {\n      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }\n    }\n    else {\n      dVar41 = 0.0;\n    }\n    *(double *)(iVar12 + 0x1b0) = dVar41;\n  }\n  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b38);\n  if (iVar51 != 0) {\n    uVar5 = (**(code **)(pcVar39 + 0x3526d4))(0x47,0,iVar51);\n    *(undefined4 *)(iVar12 + 0x274) = uVar5;\n  }\n  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b40);\n  if (iVar51 != 0) {\n    (**(code **)(pcVar39 + 0x351e54))(iVar51,0x7fffffff,iVar12 + 0xf8,pdVar31);\n  }\n  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x351920) + -0x3000);\n  if (iVar51 != 0) {\n    iVar30 = (**(code **)(pcVar39 + 0x3526d4))(0x4c,0,iVar51);\n    if (iVar30 == -1) {\n      uVar5 = (**(code **)(pcVar39 + 0x352380))(iVar51,0,10);\n      *(undefined4 *)(iVar12 + 0x27c) = uVar5;\n    }\n    else {\n      *(int *)(iVar12 + 0x27c) = iVar30;\n    }\n  }\n  (**(code **)(pcVar39 + 0x351d90))(pdVar31);\n  *(undefined4 *)(iVar12 + 0x390) = 0xabacadab;\n  (**(code **)(pcVar39 + 0x352628))(iVar4);\n  if (iStack_894 == **(int **)(pcVar39 + 0x352270)) {\n    return;\n  }\n  pcVar39 = *(code **)(pcVar39 + 0x3520a4);\n  (*pcVar39)();\n  uVar5 = (**(code **)(pcVar39 + 0x351be4))(0x3c0);\n  (**(code **)(pcVar39 + 0x3518b4))(0,uVar5);\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (function_declarator "DrawAffineImage__omp_fn_0(void *this)" identifier (parameter_list "(void *this)" ( (parameter_declaration "void *this" primitive_type (pointer_declarator "*this" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  undefined4 *puVar2;\n  int *piVar3;\n  int iVar4;\n  undefined4 uVar5;\n  double *pdVar6;\n  undefined *puVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined4 *puVar10;\n  undefined4 *puVar11;\n  int iVar12;\n  int *piVar13;\n  int iVar14;\n  void *pvVar15;\n  double *pdVar16;\n  int extraout_v1;\n  double *extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  double *extraout_v1_03;\n  int extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int extraout_v1_07;\n  int extraout_v1_08;\n  undefined4 *puVar17;\n  double *pdVar18;\n  int *piVar19;\n  uint uVar20;\n  int *piVar21;\n  undefined8 *puVar22;\n  void *pvVar23;\n  uint uVar24;\n  uint *puVar25;\n  int **ppiVar26;\n  undefined4 uVar27;\n  uint uVar28;\n  undefined4 uVar29;\n  int iVar30;\n  double *pdVar31;\n  double *pdVar32;\n  int unaff_s2;\n  int iVar33;\n  uint *puVar34;\n  double *unaff_s3;\n  int **ppiVar35;\n  int *unaff_s4;\n  int **ppiVar36;\n  undefined1 *puVar37;\n  double *unaff_s6;\n  uint unaff_s7;\n  undefined *puVar38;\n  code *pcVar39;\n  code *pcVar40;\n  double dVar41;\n  double dVar42;\n  double dVar43;\n  float fVar45;\n  double dVar44;\n  double dVar46;\n  double dVar47;\n  double dVar48;\n  double in_f20_21;\n  double dVar49;\n  double in_f22_23;\n  double in_f24_25;\n  double in_f26_27;\n  double in_f28_29;\n  double in_f30_31;\n  int *piVar50;\n  int iVar51;\n  int iVar52;\n  undefined8 uVar53;\n  undefined1 auStack_898 [4];\n  int iStack_894;\n  undefined8 *puStack_88c;\n  undefined4 uStack_888;\n  double *pdStack_884;\n  int **ppiStack_880;\n  int **ppiStack_87c;\n  undefined1 *puStack_878;\n  code *pcStack_874;\n  int iStack_860;\n  code *pcStack_858;\n  undefined4 uStack_850;\n  code *pcStack_84c;\n  int iStack_838;\n  int iStack_834;\n  code *pcStack_830;\n  int *piStack_828;\n  int *piStack_824;\n  int *piStack_820;\n  int *piStack_81c;\n  double dStack_818;\n  int iStack_810;\n  double *pdStack_80c;\n  undefined4 uStack_808;\n  int **ppiStack_804;\n  int **ppiStack_800;\n  undefined1 *puStack_7fc;\n  int **ppiStack_7f8;\n  undefined4 uStack_7f4;\n  undefined1 auStack_7f0 [92];\n  undefined8 *puStack_794;\n  double *pdStack_790;\n  int *piStack_78c;\n  uint *puStack_788;\n  double *pdStack_784;\n  int iStack_780;\n  code *pcStack_77c;\n  double dStack_778;\n  int iStack_760;\n  int *piStack_75c;\n  code *pcStack_758;\n  double dStack_750;\n  double dStack_748;\n  double dStack_740;\n  double dStack_738;\n  int *piStack_72c;\n  uint *puStack_728;\n  double *pdStack_724;\n  double *pdStack_720;\n  undefined1 *puStack_71c;\n  undefined4 uStack_718;\n  undefined1 *puStack_714;\n  double *pdStack_710;\n  int iStack_70c;\n  int iStack_708;\n  int iStack_704;\n  double dStack_700;\n  double dStack_6f8;\n  double dStack_6f0;\n  double dStack_6e8;\n  double dStack_6e0;\n  double dStack_6d8;\n  undefined1 auStack_6d0 [88];\n  undefined8 uStack_678;\n  undefined4 uStack_670;\n  undefined4 uStack_66c;\n  double dStack_668;\n  undefined4 uStack_660;\n  undefined4 uStack_65c;\n  double dStack_658;\n  double dStack_650;\n  undefined4 uStack_648;\n  undefined4 uStack_644;\n  double dStack_640;\n  undefined8 uStack_638;\n  double *pdStack_62c;\n  int *piStack_628;\n  uint *puStack_624;\n  double *pdStack_620;\n  int iStack_61c;\n  undefined1 *puStack_618;\n  double *pdStack_614;\n  uint uStack_610;\n  code *pcStack_60c;\n  double dStack_608;\n  double dStack_600;\n  double dStack_5f8;\n  double dStack_5f0;\n  int iStack_5d8;\n  code *pcStack_5d0;\n  double *pdStack_5c8;\n  code *pcStack_5c4;\n  undefined4 uStack_5b0;\n  uint uStack_5ac;\n  code *pcStack_5a8;\n  undefined8 uStack_5a0;\n  double dStack_598;\n  double dStack_590;\n  double *pdStack_588;\n  int iStack_584;\n  double dStack_580;\n  double dStack_578;\n  int iStack_570;\n  undefined1 *puStack_56c;\n  double *pdStack_568;\n  uint uStack_564;\n  double dStack_560;\n  double dStack_558;\n  uint uStack_550;\n  undefined4 uStack_54c;\n  double dStack_548;\n  double dStack_540;\n  uint uStack_538;\n  undefined4 uStack_534;\n  double dStack_530;\n  uint uStack_528;\n  undefined4 uStack_524;\n  double dStack_520;\n  double dStack_518;\n  int aiStack_510 [4];\n  undefined8 uStack_500;\n  int iStack_4f8;\n  double dStack_4e8;\n  double dStack_4e0;\n  double dStack_4d8;\n  double dStack_4d0;\n  double dStack_4c8;\n  double dStack_4c0;\n  int iStack_4b4;\n  uint uStack_4b0;\n  int iStack_4ac;\n  double *pdStack_4a8;\n  double *pdStack_4a4;\n  int iStack_4a0;\n  void *pvStack_49c;\n  double *pdStack_498;\n  uint uStack_494;\n  int iStack_490;\n  code *pcStack_48c;\n  double dStack_488;\n  double dStack_480;\n  double dStack_478;\n  double dStack_470;\n  double dStack_468;\n  double dStack_460;\n  int *piStack_448;\n  uint uStack_444;\n  code *pcStack_440;\n  uint uStack_434;\n  uint uStack_430;\n  double *pdStack_42c;\n  uint uStack_428;\n  uint uStack_424;\n  uint uStack_420;\n  undefined4 uStack_41c;\n  int aiStack_418 [10];\n  double dStack_3f0;\n  double dStack_3e8;\n  double dStack_3e0;\n  double dStack_3d8;\n  double dStack_3d0;\n  int iStack_3bc;\n  int iStack_3b8;\n  uint uStack_3b4;\n  double *pdStack_3b0;\n  double *pdStack_3ac;\n  int *piStack_3a8;\n  void *pvStack_3a4;\n  double *pdStack_3a0;\n  uint uStack_39c;\n  int iStack_398;\n  code *pcStack_394;\n  double dStack_390;\n  double dStack_388;\n  double dStack_380;\n  double dStack_378;\n  double dStack_370;\n  undefined4 *puStack_358;\n  undefined4 uStack_354;\n  undefined *puStack_350;\n  undefined8 uStack_348;\n  double dStack_340;\n  double dStack_338;\n  double dStack_330;\n  uint uStack_328;\n  int iStack_324;\n  double dStack_320;\n  double dStack_318;\n  uint uStack_310;\n  undefined4 uStack_30c;\n  int iStack_308;\n  int *piStack_304;\n  double dStack_300;\n  uint uStack_2f8;\n  int iStack_2f4;\n  int iStack_2f0;\n  double *pdStack_2ec;\n  uint uStack_2e8;\n  undefined4 uStack_2e4;\n  uint uStack_2e0;\n  undefined4 uStack_2dc;\n  double *pdStack_2d8;\n  uint uStack_2d4;\n  undefined4 uStack_2d0;\n  double *pdStack_2cc;\n  uint uStack_2c8;\n  undefined4 uStack_2c4;\n  int iStack_2c0;\n  undefined4 *puStack_2bc;\n  double dStack_2b8;\n  uint uStack_2b0;\n  undefined4 uStack_2ac;\n  double *pdStack_2a8;\n  undefined1 *puStack_2a4;\n  double *pdStack_2a0;\n  int iStack_29c;\n  undefined4 auStack_298 [18];\n  double dStack_250;\n  undefined4 auStack_240 [18];\n  double dStack_1f8;\n  int iStack_1e4;\n  double *pdStack_1e0;\n  int *piStack_1dc;\n  int iStack_1d8;\n  double *pdStack_1d4;\n  int *piStack_1d0;\n  void *pvStack_1cc;\n  double *pdStack_1c8;\n  uint uStack_1c4;\n  int iStack_1c0;\n  code *pcStack_1bc;\n  double dStack_1b8;\n  double dStack_1b0;\n  double dStack_1a8;\n  double dStack_1a0;\n  double dStack_198;\n  double dStack_190;\n  undefined8 local_178;\n  double local_170;\n  int *local_168;\n  int *local_164;\n  int local_110 [4];\n  undefined8 local_100;\n  int local_f8;\n  double local_e8;\n  double local_e0;\n  double local_d8;\n  double local_d0;\n  double local_c8;\n  double local_c0;\n  int local_b8 [10];\n  double local_90;\n  double local_88;\n  double local_80;\n  double local_78;\n  double local_70;\n  int local_5c;\n  \n  local_5c = *(int *)PTR___stack_chk_guard_003fa248;\n  pdVar31 = *(double **)((int)this + 0x20);\n  piVar3 = (int *)(*(code *)PTR_omp_get_num_threads_003fa924)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n  puVar38 = PTR_LAB_003f98e0;\n  iVar12 = (*(int *)((int)this + 0x24) + 1) - (int)pdVar31;\n  if (piVar3 == (int *)0x0) {\n    trap(7);\n  }\n  iVar51 = iVar12 / (int)piVar3;\n  iVar12 = iVar12 % (int)piVar3;\n  if (iVar4 < iVar12) {\n    iVar51 = iVar51 + 1;\n    iVar12 = 0;\n  }\n  iVar12 = iVar51 * iVar4 + iVar12;\n  pdVar18 = (double *)(iVar51 + iVar12);\n  iVar4 = (int)pdVar31 + iVar12;\n  if (iVar12 < (int)pdVar18) {\n    uVar5 = *(undefined4 *)((int)this + 0x14);\n    pdVar6 = *(double **)((int)this + 0x10);\n    unaff_s4 = *(int **)((int)this + 8);\n    unaff_s7 = *(uint *)((int)this + 4);\n                    /* WARNING: Load size is inaccurate */\n    piVar3 = *this;\n    puVar7 = (undefined *)((int)pdVar31 + (int)pdVar18);\n    dVar41 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    in_f26_27 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    in_f30_31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n    do {\n      in_f24_25 = (double)iVar4;\n      pdVar31 = *(double **)((int)this + 0xc);\n      in_f20_21 = **(double **)((int)this + 0x1c);\n      in_f28_29 = (*(double **)((int)this + 0x1c))[2];\n      dVar42 = in_f24_25 * pdVar31[2] + pdVar31[4];\n      dVar49 = *pdVar31;\n      dVar43 = in_f28_29;\n      if (dVar41 <= dVar49) {\n        in_f22_23 = -dVar42 / dVar49;\n        if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }\n        dVar46 = (double)*(int *)(unaff_s7 + 0x18);\n        if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }\n        dVar49 = (dVar46 - dVar42) / dVar49;\n        if (dVar49 < in_f28_29) {\n          dVar43 = dVar49;\n        }\nLAB_000a3890:\n        dVar42 = in_f24_25 * pdVar31[3] + pdVar31[5];\n        dVar49 = pdVar31[1];\n        if (*(double *)(puVar38 + 0x43c8) <= dVar49) {\n          dVar46 = -dVar42 / dVar49;\n          if (-dVar42 / dVar49 <= in_f22_23) {\n            dVar46 = in_f22_23;\n          }\n          in_f22_23 = dVar46;\n          pdVar18 = *(double **)(unaff_s7 + 0x1c);\n          dVar46 = (double)(int)pdVar18;\n          if ((int)pdVar18 < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar18 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar46 - dVar42) / dVar49;\n          if (dVar43 <= in_f20_21) {\n            in_f20_21 = dVar43;\n          }\n        }\n        else if (dVar49 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar46 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar46 = (dVar46 - dVar42) / dVar49;\n          if (dVar46 <= in_f22_23) {\n            dVar46 = in_f22_23;\n          }\n          in_f22_23 = dVar46;\n          pdVar18 = (double *)((uint)((ulonglong)dVar42 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar42 / dVar49;\n          if (dVar43 <= -dVar42 / dVar49) {\n            in_f20_21 = dVar43;\n          }\n        }\n        else {\n          pdVar18 = (double *)puVar38;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar42) {\n            dVar42 = (double)(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0));\n            if (dVar42 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar28 = (uint)dVar42;\n            }\n            else {\n              uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar43;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar28) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }\n        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;\n      }\n      else {\n        if (dVar49 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar46 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar46 - dVar42) / dVar49;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar42 / dVar49 < in_f28_29) {\n            dVar43 = -dVar42 / dVar49;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar42) {\n          dVar42 = (double)(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0));\n          if (dVar42 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar28 = (uint)dVar42;\n          }\n          else {\n            uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar43;\n          if (uVar28 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar38 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar43 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar43;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar43 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar42 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar43 = (dVar43 - dVar42) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar43 < in_f20_21) {\n          uVar28 = (uint)dVar43;\n        }\n        else {\n          uVar28 = (int)(dVar43 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar18 = pdVar6;\n        pdVar31 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar6,unaff_s2,iVar4,uVar28);\n        if (pdVar31 != (double *)0x0) {\n          piVar19 = *(int **)((int)this + 0x18);\n          piVar50 = piVar19;\n          piVar21 = local_b8;\n          do {\n            piVar13 = piVar21;\n            piVar8 = piVar50;\n            iVar30 = piVar8[1];\n            iVar51 = piVar8[2];\n            iVar12 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar30;\n            piVar13[2] = iVar51;\n            piVar13[3] = iVar12;\n            piVar50 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar50 != piVar19 + 0x14);\n          iVar12 = piVar8[5];\n          piVar13[4] = *piVar50;\n          piVar13[5] = iVar12;\n          piVar50 = piVar19;\n          piVar21 = local_110;\n          do {\n            piVar13 = piVar21;\n            piVar8 = piVar50;\n            iVar30 = piVar8[1];\n            iVar51 = piVar8[2];\n            iVar12 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar30;\n            piVar13[2] = iVar51;\n            piVar13[3] = iVar12;\n            piVar50 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar50 != piVar19 + 0x14);\n          iVar12 = piVar8[5];\n          piVar13[4] = *piVar50;\n          piVar13[5] = iVar12;\n          dVar43 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar43; unaff_s2 = unaff_s2 + 1) {\n            pdVar18 = *(double **)((int)this + 0xc);\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar18[1] + in_f24_25 * pdVar18[3] + pdVar18[5];\n            local_178 = (double)unaff_s2 * *pdVar18 + in_f24_25 * pdVar18[2] + pdVar18[4];\n            local_164 = unaff_s4;\n            iVar12 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar5,0);\n            *(int *)((int)this + 0x28) = iVar12;\n            if (iVar12 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar3 != (int *)0x0) {\n              local_110[0] = *piVar3;\n              local_110[1] = piVar3[1];\n              local_100 = *(undefined8 *)(piVar3 + 0x92);\n              local_f8 = piVar3[8];\n              local_110[2] = piVar3[0xaf];\n              if (pdVar31 != (double *)0x0) {\n                iVar12 = piVar3[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4);\n                if (*(int *)(iVar12 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar12 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar12 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x44) * 4);\n                }\n              }\n            }\n            dVar42 = local_70 * in_f26_27;\n            dVar49 = local_c8 * in_f26_27;\n            dVar46 = (dVar42 + dVar49) - dVar42 * dVar49;\n            if (0.0 <= dVar46) {\n              local_c8 = dVar46;\n              if (in_f20_21 < dVar46) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar38 + 0x4a48);\n              if (0.0 <= dVar46) {\n                dVar47 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar47 = in_f22_23;\n            }\n            if (*(double *)(puVar38 + 0x43c8) <= dVar46 * dVar47) {\n              dVar47 = *(double *)((int)unaff_s3 + 0x4408) / dVar46;\n            }\n            else {\n              dVar47 = dVar47 / *(double *)(puVar38 + 0x43c8);\n            }\n            dVar46 = *(double *)((int)unaff_s3 + 0x4408) - dVar42;\n            local_e8 = (dVar49 * local_e8 * dVar46 + dVar42 * local_90) * dVar47;\n            local_e0 = (dVar49 * local_e0 * dVar46 + dVar42 * local_88) * dVar47;\n            local_d8 = (dVar49 * local_d8 * dVar46 + dVar42 * local_80) * dVar47;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar49 * local_d0 * dVar46 + dVar42 * local_78) * dVar47;\n            }\n            iVar12 = piVar3[0xb4];\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar12 + 0x28) != 0) {\n              *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar12 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar45 = (float)local_c8;\n              }\n              *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4) = fVar45;\n            }\n            pdVar31 = (double *)((int)pdVar31 + piVar3[0xb0] * 4);\n          }\n          pdVar18 = pdVar6;\n          iVar12 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar6,unaff_s4);\n          if (iVar12 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }\n        }\n      }\n      iVar4 = iVar4 + 1;\n      unaff_s6 = (double *)puVar38;\n    } while (iVar4 < (int)puVar7);\n  }\n  if (local_5c == *(int *)PTR___stack_chk_guard_003fa248) {\n    return;\n  }\n  pcVar39 = DrawPolygonPrimitive__omp_fn_3;\n  puVar38 = PTR___stack_chk_fail_003fa07c;\n  (*(code *)PTR___stack_chk_fail_003fa07c)();\n  puStack_350 = puVar38 + 0x35d9c0;\n  iStack_1e4 = **(int **)(puVar38 + 0x356358);\n  iVar30 = *(int *)((int)pdVar18 + 0x24);\n  pdStack_2a8 = pdVar18;\n  pdStack_1e0 = pdVar31;\n  piStack_1dc = piVar3;\n  iStack_1d8 = unaff_s2;\n  pdStack_1d4 = unaff_s3;\n  piStack_1d0 = unaff_s4;\n  pvStack_1cc = this;\n  pdStack_1c8 = unaff_s6;\n  uStack_1c4 = unaff_s7;\n  iStack_1c0 = iVar4;\n  pcStack_1bc = pcVar39;\n  dStack_1b8 = in_f20_21;\n  dStack_1b0 = in_f22_23;\n  dStack_1a8 = in_f24_25;\n  dStack_1a0 = in_f26_27;\n  dStack_198 = in_f28_29;\n  dStack_190 = in_f30_31;\n  iVar12 = (**(code **)(puVar38 + 0x356a34))();\n  iVar51 = (**(code **)(puStack_350 + -0x7390))();\n  iVar14 = (*(int *)(pdVar18 + 5) + 1) - iVar30;\n  if (iVar12 == 0) {\n    trap(7);\n  }\n  iVar52 = iVar14 / iVar12;\n  iVar14 = iVar14 % iVar12;\n  uVar28 = (uint)(iVar51 < iVar14);\n  if (uVar28 != 0) {\n    iVar52 = iVar52 + 1;\n    iVar14 = 0;\n  }\n  uVar9 = iVar52 * iVar51 + iVar14;\n  pdVar31 = (double *)(iVar52 + uVar9);\n  if ((int)uVar9 < (int)pdVar31) {\n    iStack_29c = *(int *)((int)pdStack_2a8 + 0x1c);\n    in_f28_29 = *pdStack_2a8;\n    iStack_2f4 = *(int *)(pdStack_2a8 + 3);\n    pdStack_2a0 = *(double **)((int)pdStack_2a8 + 0x14);\n    uStack_2d0 = *(undefined4 *)(pdStack_2a8 + 2);\n    iStack_324 = *(int *)((int)pdStack_2a8 + 0xc);\n    unaff_s6 = *(double **)(pdStack_2a8 + 1);\n    iStack_2f0 = iVar30 + uVar9;\n    puStack_2a4 = (undefined1 *)(iVar30 + (int)pdVar31);\n    unaff_s7 = *(uint *)(puStack_350 + -0x7fd0);\n    dStack_320 = *(double *)(unaff_s7 + 0x4408);\n    iVar4 = *(int *)(puStack_350 + -0x7fd0);\n    dStack_2b8 = *(double *)(iVar4 + 0x43c8);\n    uStack_2f8 = uVar9;\n    do {\n      iVar30 = (**(code **)(puStack_350 + -0x7390))();\n      if (*(int *)((int)pdStack_2a8 + 0x2c) != 0) {\n        pdVar31 = *(double **)(pdStack_2a8 + 4);\n        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);\n        dVar41 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar31 - in_f20_21);\n        uStack_2d4 = (uint)dVar41;\n        dVar41 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar31[2] + in_f20_21);\n        uVar28 = uStack_2d4;\n        pdVar18 = (double *)(int)dVar41;\n        uStack_354 = uStack_2d0;\n        puStack_358 = (undefined4 *)0x1;\n        pdVar31 = pdStack_2a0;\n        pdStack_2cc = pdVar18;\n        iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar18 + (1 - uStack_2d4)));\n        if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar30 = iVar30 * 4;\n          puVar38 = puStack_350;\n          if ((int)uVar28 <= (int)pdVar18) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar30);\n            uStack_328 = uStack_2d4;\n            pdVar18 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              pvVar15 = (void *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)pvVar15 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4f34:\n                  pdVar31 = (double *)*unaff_s4;\n                  if (0 < (int)pvVar15) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4ec0:\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar41 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar12 = *(int *)(puVar38 + -0x7fd0);\n                dVar41 = *(double *)(iVar12 + 0x43d0);\n                this = (void *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar41 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar31 = unaff_s3;\n                  dStack_330 = dVar41;\n                  pdStack_2d8 = pdVar18;\n                  do {\n                    pdVar18 = pdStack_2ec;\n                    iVar51 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar31[3] + dVar41) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar31 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar31[2] + *(double *)(iVar12 + 0x43d0))) {\n                        iVar30 = *(int *)(pdVar31 + 7);\n                        dVar43 = (double)iVar30;\n                        if (iVar30 < 0) {\n                          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar43 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar30 = 1;\n                        }\n                        if (iVar30 < *(int *)((int)pdVar31 + 0x2c)) {\n                          iVar14 = *(int *)(pdVar31 + 5);\n                          iVar52 = (iVar30 + 0xfffffff) * 0x10;\n                          pdVar18 = (double *)(iVar14 + iVar52);\n                          dVar43 = *(double *)(iVar12 + 0x43d0);\n                          if ((pdVar18[1] - in_f28_29) - dVar43 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar33 = *(int *)(puVar38 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar33 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar52 = iVar52 + 0x10;\n                              dVar42 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43\n                                 ) {\n                                if (in_f26_27 != pdVar31[4]) {\n                                  pdVar31[4] = in_f26_27;\n                                  *(int *)(pdVar31 + 7) = iVar30;\n                                }\n                                dVar46 = pdVar18[2] - *pdVar18;\n                                dVar44 = pdVar18[3] - pdVar18[1];\n                                dVar49 = in_f22_23 - *pdVar18;\n                                dVar42 = in_f26_27 - pdVar18[1];\n                                dVar47 = dVar46 * dVar49 + dVar44 * dVar42;\n                                if (0.0 < dVar47) {\n                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;\n                                  if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }\n                                dVar42 = dStack_338;\n                                if (*(int *)((int)pdVar31 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar42;\n                                dVar42 = dStack_340;\n                                if (((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar42;\n                              iVar30 = iVar30 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar43;\n                              if (*(int *)((int)pdVar31 + 0x2c) <= iVar30) break;\n                              iVar14 = *(int *)(pdVar31 + 5);\n                              pdVar18 = (double *)(iVar14 + iVar52);\n                            } while ((pdVar18[1] - in_f28_29) - *(double *)(iVar12 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (pvVar15 <= this) {\n                        (**(code **)(puVar38 + -0x7290))\n                                  (*(int *)(puVar38 + -0x7fcc) + 0x69fc,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x69c0,0x3e3,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x773c);\n                        return;\n                      }\n                      iVar51 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar5 = (**(code **)(puVar38 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar31 + iVar51 + 0x28));\n                      *(undefined4 *)((int)pdVar31 + iVar51 + 0x28) = uVar5;\n                      pvVar15 = (void *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)pvVar15;\n                      puVar38 = puStack_350;\n                      if (this < pvVar15) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar31 + (*unaff_s4 - (int)pdVar18)),\n                                   *unaff_s4 + ((int)this + 1) * 0x40,\n                                   ((int)pvVar15 - (int)this) * 0x40);\n                        puVar38 = puStack_350;\n                      }\n                    }\n                    this = (void *)((int)this + 1);\n                    unaff_s3 = pdVar31 + 8;\n                    pvVar15 = (void *)unaff_s4[1];\n                  } while (((int)this < (int)pvVar15) &&\n                          (pdVar18 = pdVar31 + 9, pdVar31 = unaff_s3,\n                          (*pdVar18 - in_f28_29) - *(double *)(iVar12 + 0x43d0) < in_f26_27));\n                  pdVar18 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar31 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar41 = in_f30_31;\nLAB_000a4f3c:\n                dVar43 = (double)iStack_2f0;\n                pvVar23 = (void *)0x0;\n                if (pdVar31[1] < dVar43) {\n                  uVar28 = 0;\n                  do {\n                    if ((dVar43 <= pdVar31[3]) &&\n                       (dVar42 = (double)(int)uStack_328, *pdVar31 < dVar42)) {\n                      iVar12 = -1;\n                      if (dVar42 <= pdVar31[2]) {\n                        iVar12 = *(int *)(pdVar31 + 7);\n                        dVar49 = (double)iVar12;\n                        if (iVar12 < 0) {\n                          dVar49 = dVar49 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar49 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar12 = 1;\n                        }\n                        iVar51 = *(int *)((int)pdVar31 + 0x2c) + -1;\n                        if (iVar12 < iVar51) {\n                          iVar30 = *(int *)(pdVar31 + 5) + iVar12 * 0x10;\n                          dVar49 = *(double *)(iVar30 + 8);\n                          while (dVar49 < dVar43) {\n                            iVar12 = iVar12 + 1;\n                            if (iVar51 <= iVar12) break;\n                            dVar49 = *(double *)(iVar30 + 0x18);\n                            iVar30 = iVar30 + 0x10;\n                          }\n                        }\n                        pdVar6 = (double *)(*(int *)(pdVar31 + 5) + (iVar12 + 0xfffffff) * 0x10);\n                        iVar12 = -1;\n                        if ((pdVar6[2] - *pdVar6) * (dVar43 - pdVar6[1]) <=\n                            (pdVar6[3] - pdVar6[1]) * (dVar42 - *pdVar6)) {\n                          if (*(int *)(pdVar31 + 6) != 0) {\n                            iVar12 = 1;\n                          }\n                          uVar28 = uVar28 + iVar12;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar31 + 6) != 0) {\n                          iVar12 = 1;\n                        }\n                        uVar28 = uVar28 + iVar12;\n                      }\n                    }\n                    pvVar23 = (void *)((int)pvVar23 + 1);\n                  } while ((pvVar23 != pvVar15) &&\n                          (pdVar6 = pdVar31 + 9, pdVar31 = pdVar31 + 8, *pdVar6 < dVar43));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar28 < 0) {\n                      uVar28 = -uVar28;\n                    }\n                    if ((uVar28 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar28 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar12 == 0) {\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar28 = uStack_2f8;\n              iVar30 = uStack_328 - uStack_2d4;\n              iVar12 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar12 == 0) {\n                puVar10 = (undefined4 *)(iStack_324 + 0x48);\n                puVar2 = auStack_298;\n                do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0x98));\n                uVar5 = puVar11[5];\n                puVar17[4] = *puVar10;\n                puVar17[5] = uVar5;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uStack_2f8 + *(int *)(iVar12 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar31 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0) {\n                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }\n              dVar43 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar42 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar43 = (dVar43 + dVar42) - dVar43 * dVar42;\n              in_f30_31 = dVar41;\n              if (0 < *(int *)(pdVar18 + 0x58)) {\n                iVar51 = 0;\n                iVar12 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar51);\n                  uStack_348 = dVar43;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7370 + uVar9 * 4))\n                    )();\n                    return;\n                  }\n                  iVar12 = iVar12 + 1;\n                  iVar51 = iVar51 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar12 < *(int *)(pdVar18 + 0x58));\n              }\n              iVar12 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar12 == 0) {\n                puVar10 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar2 = auStack_240;\n                do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar5 = puVar11[5];\n                puVar17[4] = *puVar10;\n                puVar17[5] = uVar5;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uVar28 + *(int *)(iVar12 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar31 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0) {\n                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar43 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar43) - dVar41 * dVar43;\n              iVar12 = *(int *)(pdVar18 + 0x58);\n              if (0 < iVar12) {\n                iVar14 = 0;\n                iVar51 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar14);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7384 + uVar9 * 4))\n                    )(in_f20_21,*(undefined8 *)(*(int *)(puVar38 + -0x7fd0) + 0x4a48));\n                    return;\n                  }\n                  iVar51 = iVar51 + 1;\n                  iVar12 = *(int *)(pdVar18 + 0x58);\n                  iVar14 = iVar14 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar51 < iVar12);\n              }\n              iStack_308 = iStack_308 + iVar12 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar18;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar31 = pdStack_2a0;\n          iVar12 = (**(code **)(puVar38 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar12 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }\n      }\n      iStack_2f0 = iStack_2f0 + 1;\n      uStack_2f8 = uStack_2f8 + 1;\n    } while (iStack_2f0 < (int)puStack_2a4);\n  }\n  if (iStack_1e4 == **(int **)(puStack_350 + -0x7668)) {\n    return;\n  }\n  pcVar39 = *(code **)(puStack_350 + -0x7834);\n  pcVar40 = DrawPolygonPrimitive__omp_fn_2;\n  (*pcVar39)();\n  pcStack_440 = pcVar39 + 0x35c870;\n  iStack_3bc = **(int **)(pcVar39 + 0x355208);\n  uVar9 = *(uint *)(pdVar31 + 3);\n  pdVar6 = pdVar31;\n  uStack_428 = uVar9;\n  iStack_3b8 = iVar30;\n  uStack_3b4 = uVar28;\n  pdStack_3b0 = pdVar18;\n  pdStack_3ac = unaff_s3;\n  piStack_3a8 = unaff_s4;\n  pvStack_3a4 = this;\n  pdStack_3a0 = unaff_s6;\n  uStack_39c = unaff_s7;\n  iStack_398 = iVar4;\n  pcStack_394 = pcVar40;\n  dStack_390 = in_f20_21;\n  dStack_388 = in_f22_23;\n  dStack_380 = in_f24_25;\n  dStack_378 = in_f26_27;\n  dStack_370 = in_f28_29;\n  iVar4 = (**(code **)(pcVar39 + 0x3558e4))();\n  iVar12 = (**(code **)(pcStack_440 + -0x7390))();\n  iVar51 = (*(uint *)((int)pdVar31 + 0x1c) + 1) - uVar9;\n  if (iVar4 == 0) {\n    trap(7);\n  }\n  iVar30 = iVar51 / iVar4;\n  iVar51 = iVar51 % iVar4;\n  uVar28 = (uint)(iVar12 < iVar51);\n  if (uVar28 != 0) {\n    iVar30 = iVar30 + 1;\n    iVar51 = 0;\n  }\n  iVar51 = iVar30 * iVar12 + iVar51;\n  iVar30 = iVar30 + iVar51;\n  iVar4 = *(int *)(pcStack_440 + -0x7fd0);\n  pcVar39 = pcStack_440;\n  if (iVar51 < iVar30) {\n    pdStack_42c = *(double **)(pdVar31 + 2);\n    uStack_430 = *(uint *)((int)pdVar31 + 0xc);\n    unaff_s6 = *(double **)(pdVar31 + 1);\n    uStack_424 = *(uint *)((int)pdVar31 + 4);\n    unaff_s7 = *(uint *)pdVar31;\n    iVar51 = uStack_428 + iVar51;\n    iVar30 = uStack_428 + iVar30;\n    in_f22_23 = *(double *)(iVar4 + 0x43d0);\n    in_f26_27 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8);\n    in_f28_29 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410);\n    do {\n      in_f20_21 = *(double *)(iVar4 + 0x43d0);\n      if (*(uint *)(pdVar31 + 4) != 0) {\n        pdVar18 = *(double **)((int)pdVar31 + 0x14);\n        dVar41 = (double)(**(code **)(pcVar39 + -0x7c78))(*pdVar18 - in_f20_21);\n        uStack_434 = (uint)dVar41;\n        dVar41 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar18[2] + in_f20_21);\n        uVar28 = uStack_434;\n        this = (void *)(int)dVar41;\n        uStack_444 = uStack_430;\n        piStack_448 = (int *)0x1;\n        pdVar6 = pdStack_42c;\n        pdVar18 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar51,(int)this + (1 - uStack_434));\n        if (pdVar18 == (double *)0x0) {\n          *(uint *)(pdVar31 + 4) = 0;\n          pcVar39 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar28 <= (int)this;\n          uVar28 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar4 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar41 == uVar28) &&\n                 (dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar51 == (int)dVar41)) {\n                iVar12 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar12 == 0) {\n                  piVar3 = (int *)(uStack_424 + 0x48);\n                  piVar50 = aiStack_418;\n                  do {\n                    piVar19 = piVar50;\n                    piVar21 = piVar3;\n                    iVar52 = piVar21[1];\n                    iVar14 = piVar21[2];\n                    iVar12 = piVar21[3];\n                    *piVar19 = *piVar21;\n                    piVar19[1] = iVar52;\n                    piVar19[2] = iVar14;\n                    piVar19[3] = iVar12;\n                    piVar3 = piVar21 + 4;\n                    piVar50 = piVar19 + 4;\n                  } while (piVar3 != (int *)(uStack_424 + 0x98));\n                  iVar12 = piVar21[5];\n                  piVar19[4] = *piVar3;\n                  piVar19[5] = iVar12;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar12,6,(uVar28 - uStack_434) + *(int *)(iVar12 + 0x298),\n                             (iVar51 - uStack_428) + *(int *)(iVar12 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar6 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar6 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar6)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar6 * in_f28_29;\n                  }\n                }\n                iVar12 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar12 + 0x28) != 0) {\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar12 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar45 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar45 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x38) * 4) = fVar45;\n                }\n              }\n              pdVar18 = (double *)((int)pdVar18 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar28 = uVar28 + 1;\n            } while ((int)uVar28 <= (int)this);\n          }\n          pdVar6 = pdStack_42c;\n          iVar12 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar39 = pcStack_440;\n          if (iVar12 == 0) {\n            *(uint *)(pdVar31 + 4) = 0;\n          }\n        }\n      }\n      iVar51 = iVar51 + 1;\n    } while (iVar51 < iVar30);\n  }\n  if (iStack_3bc == **(int **)(pcVar39 + -0x7668)) {\n    return;\n  }\n  pcVar39 = *(code **)(pcVar39 + -0x7834);\n  pcVar40 = DrawGradientImage__omp_fn_1;\n  (*pcVar39)();\n  pcStack_5a8 = pcVar39 + 0x35c414;\n  iStack_4b4 = **(int **)(pcVar39 + 0x354dac);\n  puVar34 = *(uint **)(pdVar6 + 4);\n  pdVar32 = (double *)puVar34[3];\n  pdVar16 = pdVar6;\n  uStack_4b0 = uVar28;\n  iStack_4ac = iVar51;\n  pdStack_4a8 = pdVar18;\n  pdStack_4a4 = pdVar31;\n  iStack_4a0 = iVar30;\n  pvStack_49c = this;\n  pdStack_498 = unaff_s6;\n  uStack_494 = unaff_s7;\n  iStack_490 = iVar4;\n  pcStack_48c = pcVar40;\n  dStack_488 = in_f20_21;\n  dStack_480 = in_f22_23;\n  dStack_478 = in_f24_25;\n  dStack_470 = in_f26_27;\n  dStack_468 = in_f28_29;\n  dStack_460 = in_f30_31;\n  iVar4 = (**(code **)(pcVar39 + 0x355488))();\n  iVar12 = (**(code **)(pcStack_5a8 + -0x7390))();\n  if (iVar4 == 0) {\n    trap(7);\n  }\n  iVar51 = (int)(puVar34[1] - (int)pdVar32) / iVar4;\n  piVar50 = (int *)((int)(puVar34[1] - (int)pdVar32) % iVar4);\n  piVar3 = piVar50;\n  if (iVar12 < (int)piVar50) {\n    iVar51 = iVar51 + 1;\n    piVar3 = (int *)0x0;\n  }\n  piVar3 = (int *)(iVar51 * iVar12 + (int)piVar3);\n  puVar37 = (undefined1 *)((int)pdVar32 + (int)piVar3);\n  pcVar39 = pcStack_5a8;\n  if ((int)piVar3 < iVar51 + (int)piVar3) {\n    dStack_580 = *pdVar6;\n    pdStack_588 = *(double **)(pdVar6 + 3);\n    puVar34 = *(uint **)((int)pdVar6 + 0x14);\n    pdStack_568 = *(double **)(pdVar6 + 2);\n    uStack_564 = *(uint *)((int)pdVar6 + 0xc);\n    piVar50 = *(int **)(pdVar6 + 1);\n    puStack_56c = (undefined1 *)((int)pdVar32 + iVar51 + (int)piVar3);\n    dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n    if (dStack_580 < 0.0) {\n      dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n    }\n    iStack_570 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_598 = *(double *)(iStack_570 + 0x4a48);\n    iStack_584 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_560 = *(double *)(iStack_584 + 0x43d0);\n    unaff_s6 = *(double **)(pcStack_5a8 + -0x7fd0);\n    dStack_548 = unaff_s6[0x879];\n    do {\n      if (*(uint *)((int)pdVar6 + 0x24) != 0) {\n        uStack_5ac = uStack_564;\n        uStack_5b0 = 1;\n        pdVar16 = pdStack_568;\n        pdVar32 = (double *)(**(code **)(pcVar39 + -0x724c))(pdStack_568,0,puVar37,piVar50[6]);\n        if (pdVar32 == (double *)0x0) {\n          *(uint *)((int)pdVar6 + 0x24) = 0;\n          pcVar39 = pcStack_5a8;\n        }\n        else {\n          piVar19 = *(int **)((int)pdVar6 + 0x1c);\n          piVar3 = piVar19;\n          piVar21 = aiStack_510;\n          do {\n            piVar13 = piVar21;\n            piVar8 = piVar3;\n            iVar51 = piVar8[1];\n            iVar12 = piVar8[2];\n            iVar4 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar51;\n            piVar13[2] = iVar12;\n            piVar13[3] = iVar4;\n            piVar3 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar3 != piVar19 + 0x14);\n          iVar12 = *piVar3;\n          iVar4 = piVar8[5];\n          *piVar21 = iVar12;\n          piVar13[5] = iVar4;\n          in_f20_21 = *(double *)(piVar19 + 10);\n          in_f22_23 = *(double *)(piVar19 + 0xc);\n          in_f24_25 = *(double *)(piVar19 + 0xe);\n          dStack_590 = *(double *)(piVar19 + 0x10);\n          dVar41 = *(double *)(piVar19 + 0x12);\n          if (*puVar34 < 2) {\n            uStack_5a0 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n            dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar34 + 6);\n            dStack_530 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n            dVar43 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar43);\n            if (0.0 <= dVar43) {\n              dVar43 = dVar42 * dVar42;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar43 = dVar42 * dVar42;\n            }\n            dVar43 = uStack_5a0 * uStack_5a0 + dVar43;\n            in_f26_27 = SQRT(dVar43);\n            if (dVar43 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar43) {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar43 = dVar43 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar42 * dStack_530) * dVar43 * dStack_558;\nLAB_000a56c0:\n            uVar28 = *puVar34;\nLAB_000a56c4:\n            if (uVar28 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar43 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar43;\n            }\n          }\n          else {\n            if (*puVar34 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar34[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar42 = 0.0 - *(double *)(puVar34 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar34 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar21,iVar12,\n                         &dStack_518,&dStack_520);\n              dVar43 = *(double *)(puVar34 + 0x16);\n              if (in_f26_27 <= dVar43) {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar43 * dVar49) {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }\n              else {\n                dVar49 = dVar49 / unaff_s6[0x879];\n              }\n              dVar49 = (dVar42 * dStack_520 +\n                       ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) * dVar49;\n              dVar43 = *(double *)(puVar34 + 0x18);\n              if (0.0 <= dVar43) {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar43 * dVar46) {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }\n              else {\n                dVar46 = dVar46 / unaff_s6[0x879];\n              }\n              dVar46 = (dVar42 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) * dVar46;\n              dVar43 = dVar49 * dVar49 + dVar46 * dVar46;\n              uStack_5a0 = SQRT(dVar43);\n              if (0.0 <= dVar43) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar28 = *puVar34;\n              goto LAB_000a56c4;\n            }\n            dVar43 = (0.0 - *(double *)(puVar34 + 0x12)) * (0.0 - *(double *)(puVar34 + 0x12)) +\n                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n            uStack_5a0 = SQRT(dVar43);\n            if (dVar43 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar28 = *puVar34;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar30 = (*(int **)(pdVar6 + 4))[2];\n          pdVar31 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar30 < **(int **)(pdVar6 + 4)) {\n            dStack_540 = pdVar31[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar50 != (int *)0x0) {\n                aiStack_510[0] = *piVar50;\n                aiStack_510[1] = piVar50[1];\n                uStack_500 = *(undefined8 *)(piVar50 + 0x92);\n                iStack_4f8 = piVar50[8];\n                aiStack_510[2] = piVar50[0xaf];\n                if (pdVar32 != (double *)0x0) {\n                  iVar4 = piVar50[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4);\n                  if (*(int *)(iVar4 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar4 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar4 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar34[0x10];\n              if (unaff_s7 == 2) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      in_f26_27 = pdVar31[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                      in_f26_27 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar34 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar41 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar41 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar41;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar34 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar41 = *(double *)(puVar34 + 0x16);\n                  if (0.0 <= dVar41) {\n                    dVar49 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                    dVar49 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar49 = dVar49 / unaff_s6[0x879];\n                  }\n                  dVar41 = *(double *)(puVar34 + 0x18);\n                  dVar49 = (dVar42 * dStack_520 +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                           dVar49;\n                  if (0.0 <= dVar41) {\n                    dVar46 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                    dVar46 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar46 = dVar46 / unaff_s6[0x879];\n                  }\n                  dVar46 = (dVar42 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                           dVar46;\n                  dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar34 != 2) goto LAB_000a6378;\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar4 + 0x298));\n                if ((int)dVar41 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar31[0x881]);\n                }\n                else {\n                  dVar41 = pdVar31[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar41);\n                  uStack_5a0 = dVar41 - uStack_5a0;\n                }\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a6248;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar12 + 0x58)) /\n                               (*(double *)(iVar4 + 0x58) - *(double *)(iVar12 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6e58:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) goto LAB_000a6944;\n                if (*puVar34 < 2) {\n                  dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                  dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                  dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                  dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                  dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) {\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  dVar41 = dVar46 * dVar46 + dVar41;\n                  dVar44 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar44 = uStack_5a0 * dVar44;\n                  if (0.0 <= dVar44) {\n                    in_f26_27 = pdVar31[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                    in_f26_27 = pdVar31[0x881] / dVar44;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar28 = *puVar34;\nLAB_000a690c:\n                  if (uVar28 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar41 = pdVar31[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar41 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar41;\n                  }\n                }\n                else {\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar34 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar41 = *(double *)(puVar34 + 0x16);\n                    if (0.0 <= dVar41) {\n                      dVar49 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                      dVar49 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar49 = dVar49 / unaff_s6[0x879];\n                    }\n                    dVar41 = *(double *)(puVar34 + 0x18);\n                    dVar49 = (dVar42 * dStack_520 +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                             dVar49;\n                    if (0.0 <= dVar41) {\n                      dVar46 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                      dVar46 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar46 = dVar46 / unaff_s6[0x879];\n                    }\n                    dVar46 = (dVar42 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                             dVar46;\n                    dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                  dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                           ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                  uStack_5a0 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar41 = pdVar31[0x881];\n                        uVar20 = uVar28;\n                        goto LAB_000a6f20;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar41 = pdVar31[0x881], uVar20 != 0)) {\nLAB_000a6f20:\n                      if ((dVar41 < uStack_5a0) || (uVar28 == uVar20)) {\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar4 = uVar9 + uVar24 * 0x60;\n                      iVar12 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar4 + 0x58)) /\n                               (*(double *)(iVar12 + 0x58) - *(double *)(iVar4 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6740:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar4 + 0x28) +\n                                  dVar42 * *(double *)(iVar12 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar4 + 0x30) +\n                                  dVar42 * *(double *)(iVar12 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar4 + 0x38) +\n                                  dVar42 * *(double *)(iVar12 + 0x38)) * dVar47;\n                      if (*(int *)(iVar12 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar4 + 0x40) +\n                                     dVar42 * *(double *)(iVar12 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\n                  dVar42 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      dVar41 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * dVar41) {\n                      dVar41 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      dVar41 = dVar41 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * dVar41 * uStack_5a0;\nLAB_000a5e90:\n                    uVar28 = *puVar34;\nLAB_000a5e94:\n                    if (uVar28 == 1) {\n                      dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar41;\n                      if (0.0 <= dVar41) {\n                        dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar41,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar42 = dStack_580;\n                        dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580);\n                        dVar42 = dVar42 - dVar41;\n                      }\n                      bVar1 = dVar42 < dStack_580 && dStack_580 < dVar42 + pdVar31[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar31[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar42 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar34 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                             ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                    in_f26_27 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar28 = *puVar34;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  uStack_5a0 = dVar41;\n                  if (0.0 <= dVar41) {\n                    dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  }\n                  else {\n                    dVar42 = *(double *)(puVar34 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar41,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dVar42);\n                    dVar42 = dVar42 - dVar41;\n                  }\n                  bVar1 = *(double *)(puVar34 + 0x1a) < dVar42 + pdVar31[0x881];\n                  uStack_5a0 = dVar42 / *(double *)(puVar34 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a5db0;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      dVar41 = *(double *)(uVar9 + uVar24 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar41 = dStack_580;\n                        if (*puVar34 != 1) {\n                          dVar41 = *(double *)(puVar34 + 0x1a);\n                        }\n                        dVar41 = dVar41 - dVar42;\n                        uVar20 = uVar28 - 1;\n                        uVar24 = 0;\n                      }\n                      else {\n                        dVar41 = (uStack_5a0 - dVar41) /\n                                 (*(double *)(uVar9 + uVar20 * 0x60 + 0x58) - dVar41);\n                      }\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6d30:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\nLAB_000a5af8:\n              dVar46 = dVar41 * dVar43;\n              dVar49 = dStack_4c8 * dVar43;\n              dVar42 = (dVar46 + dVar49) - dVar46 * dVar49;\n              if (0.0 <= dVar42) {\n                dStack_4c8 = pdVar31[0x881];\n                if (dVar42 <= pdVar31[0x881]) {\n                  dStack_4c8 = dVar42;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar42) {\n                  dVar47 = pdVar31[0x881];\n                }\n                else {\n                  dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar42 * dVar47) {\n                dVar47 = pdVar31[0x881] / dVar42;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar42 = pdVar31[0x881] - dVar46;\n              dStack_4e8 = (dVar49 * dStack_4e8 * dVar42 + dVar46 * in_f20_21) * dVar47;\n              dStack_4e0 = (dVar49 * dStack_4e0 * dVar42 + in_f22_23 * dVar46) * dVar47;\n              dStack_4d8 = (dVar49 * dStack_4d8 * dVar42 + dVar46 * in_f24_25) * dVar47;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar49 * dStack_4d0 * dVar42 + dStack_590 * dVar46) * dVar47;\n              }\n              iVar4 = piVar50[0xb4];\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar4 + 0x28) != 0) {\n                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar4 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar45 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar45 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4) = fVar45;\n              }\n              pdVar32 = (double *)((int)pdVar32 + piVar50[0xb0] * 4);\n              iVar30 = iVar30 + 1;\n            } while (iVar30 < **(int **)(pdVar6 + 4));\n          }\n          pdVar16 = pdStack_568;\n          iVar4 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar39 = pcStack_5a8;\n          if (iVar4 == 0) {\n            *(uint *)((int)pdVar6 + 0x24) = 0;\n          }\n        }\n      }\n      puVar37 = puVar37 + 1;\n    } while ((int)puVar37 < (int)puStack_56c);\n  }\n  if (iStack_4b4 == **(int **)(pcVar39 + -0x7668)) {\n    return;\n  }\n  pcVar39 = *(code **)(pcVar39 + -0x7834);\n  pcVar40 = DestroyDrawInfo;\n  (*pcVar39)();\n  pcStack_5d0 = pcVar39 + 0x35a8f0;\n  pdStack_5c8 = pdVar32;\n  pcStack_5c4 = pcVar40;\n  if (pdVar16 == (double *)0x0) {\n    (**(code **)(pcVar39 + 0x353660))\n              (*(int *)(pcVar39 + 0x352920) + 0x40e4,*(int *)(pcVar39 + 0x352924) + 0x69c0,0x39a,\n               *(int *)(pcVar39 + 0x352924) + 0x7914);\n    pdVar16 = pdVar32;\nLAB_000a7234:\n    iStack_5d8 = *(int *)(pcVar39 + 0x352924) + 0x10f4;\n    (**(code **)(pcVar39 + 0x353238))\n              (0x8000,*(int *)(pcVar39 + 0x352924) + 0x69c0,*(int *)(pcVar39 + 0x352924) + 0x7904,\n               0x39c);\n    uVar28 = *(uint *)(pdVar16 + 0x72);\n  }\n  else {\n    if (*(uint *)((int)pdVar16 + 0x38c) != 0) goto LAB_000a7234;\n    uVar28 = *(uint *)(pdVar16 + 0x72);\n  }\n  if (uVar28 == 0xabacadab) {\n    if (*(uint *)(pdVar16 + 0x77) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar16 + 0x77) = uVar28;\n    }\n    if (*(uint *)pdVar16 != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)pdVar16 = uVar28;\n    }\n    if (*(uint *)(pdVar16 + 0x4c) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar16 + 0x4c) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 4) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar16 + 4) = uVar28;\n    }\n    if (*(uint *)(pdVar16 + 0x35) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)(pdVar16 + 0x35) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 0x1ac) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar16 + 0x1ac) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 0x264) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar16 + 0x264) = uVar28;\n    }\n    if (*(uint *)(pdVar16 + 0x4d) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar16 + 0x4d) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 0x26c) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar16 + 0x26c) = uVar28;\n    }\n    if (*(uint *)(pdVar16 + 0x50) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar16 + 0x50) = uVar28;\n    }\n    if (*(uint *)(pdVar16 + 0x52) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar16 + 0x52) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 0x29c) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)((int)pdVar16 + 0x29c) = uVar28;\n    }\n    if (*(uint *)(pdVar16 + 0x54) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar16 + 0x54) = uVar28;\n    }\n    if (*(uint *)(pdVar16 + 0x3e) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar16 + 0x3e) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 0x2a4) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar16 + 0x2a4) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 0x3ac) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar16 + 0x3ac) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 0x3b4) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar16 + 0x3b4) = uVar28;\n    }\n    *(uint *)(pdVar16 + 0x72) = 0x54535254;\n    (**(code **)(pcStack_5d0 + -0x78d8))(pdVar16);\n    return;\n  }\n  pdVar6 = (double *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x7914);\n  pdVar18 = (double *)&DAT_0000039d;\n  puVar25 = (uint *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x69c0);\n  piVar3 = (int *)(*(int *)(pcStack_5d0 + -0x7fd0) + 0x4128);\n  pcVar39 = *(code **)(pcStack_5d0 + -0x7290);\n  pcVar40 = DrawAffineImage;\n  (*pcVar39)();\n  pcStack_758 = pcVar39 + 0x35a61c;\n  uStack_638._4_4_ = **(int **)(pcVar39 + 0x352fb4);\n  pdStack_62c = pdVar16;\n  piStack_628 = piVar50;\n  puStack_624 = puVar34;\n  pdStack_620 = pdVar31;\n  iStack_61c = iVar30;\n  puStack_618 = puVar37;\n  pdStack_614 = unaff_s6;\n  uStack_610 = unaff_s7;\n  pcStack_60c = pcVar40;\n  dStack_608 = in_f20_21;\n  dStack_600 = in_f22_23;\n  dStack_5f8 = in_f24_25;\n  dStack_5f0 = in_f26_27;\n  if (piVar3 == (int *)0x0) {\n    (**(code **)(pcVar39 + 0x35338c))\n              (*(int *)(pcVar39 + 0x35264c) + 0x3da0,*(int *)(pcVar39 + 0x352650) + 0x69c0,0x4c0,\n               *(int *)(pcVar39 + 0x352650) + 0x78f4);\n    pdVar18 = pdVar16;\n    piVar3 = piVar50;\n    puVar25 = puVar34;\n    pdVar6 = pdVar31;\nLAB_000a7434:\n    piVar50 = (int *)(**(code **)(pcVar39 + 0x35338c))\n                               (*(int *)(pcVar39 + 0x352650) + -0x784,\n                                *(int *)(pcVar39 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar39 + 0x352650) + 0x78f4);\nLAB_000a745c:\n    iStack_760 = *(int *)(pcVar39 + 0x352654) + -0x2f6c;\n    piStack_75c = piVar50;\n    (**(code **)(pcVar39 + 0x352f64))\n              (0x8000,*(int *)(pcVar39 + 0x352650) + 0x69c0,*(int *)(pcVar39 + 0x352650) + 0x78e4,\n               0x4c3);\n  }\n  else {\n    if (piVar3[0xcdb] != -0x54535255) goto LAB_000a7434;\n    piVar50 = piVar3 + 0xd0;\n    if (piVar3[0xcd4] != 0) goto LAB_000a745c;\n  }\n  pcVar39 = pcStack_758;\n  if (puVar25 == (uint *)0x0) {\n    (**(code **)(pcStack_758 + -0x7290))\n              (*(int *)(pcStack_758 + -0x7fcc) + 0x6a20,*(int *)(pcStack_758 + -0x7fcc) + 0x69c0,\n               0x4c4,*(int *)(pcStack_758 + -0x7fcc) + 0x78f4);\nLAB_000a74c4:\n    (**(code **)(pcVar39 + -0x7290))\n              (*(int *)(pcVar39 + -0x7fcc) + 0x6a40,*(int *)(pcVar39 + -0x7fcc) + 0x69c0);\nLAB_000a74e8:\n    dStack_668 = (double)(**(code **)(pcVar39 + -0x7290))\n                                   (*(int *)(pcVar39 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar39 + -0x7fcc) + 0x69c0);\nLAB_000a750c:\n    dStack_668 = dStack_668 + *(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x43e8);\n  }\n  else {\n    if (puVar25[0xcdb] != 0xabacadab) goto LAB_000a74c4;\n    if (pdVar18 == (double *)0x0) goto LAB_000a74e8;\n    uStack_678._4_4_ = 0;\n    uStack_678._0_4_ = 0;\n    uStack_66c = 0;\n    uStack_670 = 0;\n    dStack_668 = (double)(int)puVar25[6];\n    if ((int)puVar25[6] < 0) goto LAB_000a750c;\n  }\n  dStack_668 = dStack_668 - *(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x4408);\n  uStack_65c = 0;\n  uStack_660 = 0;\n  dStack_658 = dStack_668;\n  dStack_650 = (double)(int)puVar25[7];\n  if ((int)puVar25[7] < 0) {\n    dStack_650 = dStack_650 + *(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x43e8);\n  }\n  dStack_650 = dStack_650 - *(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x4408);\n  uStack_644 = 0;\n  uStack_648 = 0;\n  dStack_640 = dStack_650;\n  dVar47 = *pdVar18;\n  dVar46 = pdVar18[2];\n  dVar49 = pdVar18[4];\n  dVar42 = pdVar18[1];\n  dVar43 = pdVar18[3];\n  dVar41 = pdVar18[5];\n  pdVar16 = (double *)&uStack_678;\n  pdVar31 = pdVar16;\n  do {\n    dVar44 = *pdVar31;\n    *pdVar31 = dVar47 * dVar44 + dVar46 * pdVar31[1] + dVar49;\n    pdVar31[1] = dVar42 * dVar44 + dVar43 * pdVar31[1] + dVar41;\n    pdVar31 = pdVar31 + 2;\n  } while (pdVar31 != (double *)&uStack_638);\n  dVar41 = (double)CONCAT44(uStack_670,uStack_66c);\n  dVar43 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_);\n  dVar42 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_);\n  dVar49 = (double)CONCAT44(uStack_670,uStack_66c);\n  do {\n    dVar47 = pdVar16[2];\n    dVar46 = dVar47;\n    if (dVar43 <= dVar47) {\n      dVar46 = dVar43;\n    }\n    dVar44 = pdVar16[3];\n    dVar48 = dVar44;\n    if (dVar49 <= dVar44) {\n      dVar48 = dVar49;\n    }\n    if (dVar47 <= dVar42) {\n      dVar47 = dVar42;\n    }\n    if (dVar44 <= dVar41) {\n      dVar44 = dVar41;\n    }\n    pdVar16 = pdVar16 + 2;\n    dVar41 = dVar44;\n    dVar43 = dVar46;\n    dVar42 = dVar47;\n    dVar49 = dVar48;\n  } while ((double *)&uStack_648 != pdVar16);\n  ppiVar26 = (int **)0x1;\n  pdVar31 = pdVar6;\n  iVar4 = (**(code **)(pcVar39 + -0x7074))(piVar3);\n  if (iVar4 != 0) {\n    dStack_750 = dVar46;\n    if (dVar46 <= 0.0) {\n      dStack_750 = 0.0;\n    }\n    dStack_748 = dVar48;\n    if (dVar48 <= 0.0) {\n      dStack_748 = 0.0;\n    }\n    dStack_740 = (double)piVar3[6];\n    if (piVar3[6] < 0) {\n      dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_740 = dStack_740 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar47 < dStack_740) {\n      dStack_740 = dVar47;\n    }\n    dStack_738 = (double)piVar3[7];\n    if (piVar3[7] < 0) {\n      dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_738 = dStack_738 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar44 < dStack_738) {\n      dStack_738 = dVar44;\n    }\n    dStack_6e8 = *pdVar18 * pdVar18[3] - pdVar18[1] * pdVar18[2];\n    if (0.0 <= dStack_6e8) {\n      dVar41 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    }\n    else {\n      dVar41 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);\n    }\n    if (dStack_6e8 * dVar41 < *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)) {\n      dStack_6e8 = dVar41 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8);\n    }\n    else {\n      dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;\n    }\n    dStack_700 = pdVar18[3] * dStack_6e8;\n    dStack_6f8 = -pdVar18[1] * dStack_6e8;\n    dStack_6f0 = -pdVar18[2] * dStack_6e8;\n    dStack_6e8 = *pdVar18 * dStack_6e8;\n    dStack_6e0 = dStack_700 * -pdVar18[4] - dStack_6f0 * pdVar18[5];\n    dStack_6d8 = dStack_6f8 * -pdVar18[4] - dStack_6e8 * pdVar18[5];\n    (**(code **)(pcStack_758 + -0x75e4))(piVar3,auStack_6d0);\n    dVar44 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0);\n    dVar41 = (double)(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar44);\n    dVar43 = (double)(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar44);\n    uVar5 = (**(code **)(pcStack_758 + -0x7144))(puVar25,pdVar6);\n    puVar37 = (undefined1 *)(**(code **)(pcStack_758 + -0x79c4))(piVar3,pdVar6);\n    iVar4 = (**(code **)(pcStack_758 + -0x73e4))(puVar25);\n    if (((iVar4 == 4) || (iVar4 = (**(code **)(pcStack_758 + -0x73e4))(puVar25), iVar4 == 3)) &&\n       ((iVar4 = (**(code **)(pcStack_758 + -0x73e4))(piVar3), iVar4 == 4 ||\n        (iVar4 = (**(code **)(pcStack_758 + -0x73e4))(piVar3), iVar4 == 3)))) {\n      (**(code **)(pcStack_758 + -0x775c))(7);\n      iVar12 = (int)dVar43 - (int)dVar41;\n      iVar4 = iVar12;\n      if (iVar12 < 0) {\n        iVar4 = iVar12 + 0x3f;\n      }\n      pdVar18 = (double *)(iVar4 >> 6);\n      if (extraout_v1 < (int)pdVar18) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        bVar1 = extraout_v1_01 < 2;\n      }\n      else {\n        bVar1 = iVar12 < 0x80;\n      }\n      pdVar31 = (double *)0x1;\n      if (((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar31 = pdVar18, extraout_v1_02 < (int)pdVar18)\n         ) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar31 = extraout_v1_03;\n        pdVar18 = extraout_v1_03;\n      }\n    }\n    else {\n      uVar53 = (**(code **)(pcStack_758 + -0x775c))(7);\n      if (((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)) {\n        uVar53 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar53 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar39 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar53 < 2) {\n          pdVar31 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }\n      else {\nLAB_000a77f8:\n        pcVar39 = *(code **)(pcStack_758 + -0x775c);\n      }\n      uVar53 = (*pcVar39)(7);\n      if (((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar31 = extraout_v1_00;\n      }\n      else {\n        pdVar31 = (double *)0x2;\n      }\n    }\nLAB_000a7818:\n    pdStack_720 = &dStack_700;\n    puStack_714 = auStack_6d0;\n    pdStack_710 = &dStack_750;\n    iStack_704 = 1;\n    ppiVar26 = &piStack_72c;\n    piStack_72c = piVar3;\n    puStack_728 = puVar25;\n    pdStack_724 = pdVar6;\n    puStack_71c = puVar37;\n    uStack_718 = uVar5;\n    iStack_70c = (int)dVar41;\n    iStack_708 = (int)dVar43;\n    (**(code **)(pcStack_758 + -0x7700))\n              (*(int *)(pcStack_758 + -0x7ea0) + 0x34c4,ppiVar26,pdVar31,0);\n    iVar4 = iStack_704;\n    (**(code **)(pcStack_758 + -0x79a4))(uVar5);\n    (**(code **)(pcStack_758 + -0x79a4))(puVar37);\n  }\n  if (uStack_638._4_4_ == **(int **)(pcStack_758 + -0x7668)) {\n    return;\n  }\n  pcVar39 = *(code **)(pcStack_758 + -0x7834);\n  pcVar40 = DrawGradientImage;\n  iVar12 = uStack_638._4_4_;\n  (*pcVar39)();\n  pcStack_830 = pcVar39 + 0x359e18;\n  puStack_794 = (undefined8 *)**(undefined4 **)(pcVar39 + 0x3527b0);\n  pdStack_790 = pdVar18;\n  piStack_78c = piVar3;\n  puStack_788 = puVar25;\n  pdStack_784 = pdVar6;\n  iStack_780 = iVar4;\n  pcStack_77c = pcVar40;\n  dStack_778 = dVar44;\n  if (iVar12 == 0) {\n    (**(code **)(pcVar39 + 0x352b88))\n              (*(int *)(pcVar39 + 0x351e48) + 0x3da0,*(int *)(pcVar39 + 0x351e4c) + 0x69c0,0x80a,\n               *(int *)(pcVar39 + 0x351e4c) + 0x7818);\n    return;\n  }\n  if (*(int *)(iVar12 + 0x336c) != -0x54535255) {\n    (**(code **)(pcVar39 + 0x352b88))\n              (*(int *)(pcVar39 + 0x351e4c) + -0x784,*(int *)(pcVar39 + 0x351e4c) + 0x69c0,0x80b,\n               *(int *)(pcVar39 + 0x351e4c) + 0x7818);\n    return;\n  }\n  if (*(int *)(iVar12 + 0x3350) != 0) {\n    iStack_838 = *(int *)(pcVar39 + 0x351e50) + -0x2f6c;\n    iStack_834 = iVar12 + 0x340;\n    (**(code **)(pcVar39 + 0x352760))\n              (0x8000,*(int *)(pcVar39 + 0x351e4c) + 0x69c0,*(int *)(pcVar39 + 0x351e4c) + 0x7804,\n               0x80d);\n  }\n  if (ppiVar26 == (int **)0x0) {\n    (**(code **)(pcStack_830 + -0x7290))\n              (*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c,*(int *)(pcStack_830 + -0x7fcc) + 0x69c0,\n               0x80e,*(int *)(pcStack_830 + -0x7fcc) + 0x7818);\n    return;\n  }\n  ppiVar35 = ppiVar26 + 0x6e;\n  (**(code **)(pcStack_830 + -0x6fc4))\n            (ppiVar26[0x7c],ppiVar26[0x7d],0x60,*(int *)(pcStack_830 + -0x7ea0) + 0x224c);\n  ppiVar36 = ppiVar26 + 0x74;\n  dVar41 = (*(double *)(ppiVar26 + 0x78) - *(double *)(ppiVar26 + 0x74)) *\n           (*(double *)(ppiVar26 + 0x78) - *(double *)(ppiVar26 + 0x74)) +\n           (*(double *)(ppiVar26 + 0x7a) - *(double *)(ppiVar26 + 0x76)) *\n           (*(double *)(ppiVar26 + 0x7a) - *(double *)(ppiVar26 + 0x76));\n  dVar43 = SQRT(dVar41);\n  if (0.0 <= dVar41) {\n    piStack_828 = ppiVar26[0x6f];\n  }\n  else {\n    (**(code **)(pcStack_830 + -0x7418))();\n    piStack_828 = ppiVar26[0x6f];\n  }\n  piStack_824 = ppiVar26[0x70];\n  piStack_820 = ppiVar26[0x71];\n  piStack_81c = ppiVar26[0x72];\n  (**(code **)(pcStack_830 + -0x75e4))(iVar12,auStack_7f0);\n  uVar5 = (**(code **)(pcStack_830 + -0x79c4))(iVar12,pdVar31);\n  iVar4 = (**(code **)(pcStack_830 + -0x73e4))(iVar12);\n  if ((iVar4 == 4) || (iVar4 = (**(code **)(pcStack_830 + -0x73e4))(iVar12), iVar4 == 3)) {\n    iVar4 = (**(code **)(pcStack_830 + -0x73e4))(iVar12);\n    if ((iVar4 != 4) && (iVar4 = (**(code **)(pcStack_830 + -0x73e4))(iVar12), iVar4 != 3))\n    goto LAB_000a7bf4;\n    (**(code **)(pcStack_830 + -0x775c))(7);\n    iVar51 = (int)piStack_824 - (int)piStack_81c;\n    iVar4 = iVar51;\n    if (iVar51 < 0) {\n      iVar4 = iVar51 + 0x3f;\n    }\n    if (extraout_v1_04 < iVar4 >> 6) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = iVar51 < 0x80;\n    }\n    iVar4 = 1;\n    dStack_818 = dVar43;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar4 = (int)piStack_824 - (int)piStack_81c;\n      if (iVar4 < 0) {\n        iVar4 = iVar4 + 0x3f;\n      }\n      iVar4 = iVar4 >> 6;\n      dStack_818 = dVar43;\n      if (extraout_v1_07 < iVar4) {\n        (**(code **)(pcStack_830 + -0x775c))(7);\n        iVar4 = extraout_v1_08;\n        dStack_818 = dVar43;\n      }\n    }\n  }\n  else {\nLAB_000a7bf4:\n    uVar53 = (**(code **)(pcStack_830 + -0x775c))(7);\n    if (((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)) {\n      uVar53 = (**(code **)(pcStack_830 + -0x775c))(7);\n      if ((int)((ulonglong)uVar53 >> 0x20) != 0) goto LAB_000a7c10;\n      pcVar39 = *(code **)(pcStack_830 + -0x775c);\n      if ((uint)uVar53 < 2) {\n        iVar4 = 1;\n        dStack_818 = dVar43;\n        goto LAB_000a7c30;\n      }\n    }\n    else {\nLAB_000a7c10:\n      pcVar39 = *(code **)(pcStack_830 + -0x775c);\n    }\n    uVar53 = (*pcVar39)(7);\n    if (((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar4 = extraout_v1_05;\n      dStack_818 = dVar43;\n    }\n    else {\n      iVar4 = 2;\n      dStack_818 = dVar43;\n    }\n  }\nLAB_000a7c30:\n  puStack_7fc = auStack_7f0;\n  ppiStack_7f8 = &piStack_828;\n  uStack_7f4 = 1;\n  iStack_810 = iVar12;\n  pdStack_80c = pdVar31;\n  uStack_808 = uVar5;\n  ppiStack_804 = ppiVar35;\n  ppiStack_800 = ppiVar36;\n  (**(code **)(pcStack_830 + -0x7700))(*(int *)(pcStack_830 + -0x7ea0) + 0x549c,&dStack_818,iVar4,0)\n  ;\n  uVar27 = uStack_7f4;\n  (**(code **)(pcStack_830 + -0x79a4))(uVar5);\n  if (puStack_794 == (undefined8 *)**(int **)(pcStack_830 + -0x7668)) {\n    return;\n  }\n  pcVar39 = *(code **)(pcStack_830 + -0x7834);\n  pcVar40 = GetAffineMatrix;\n  puVar22 = puStack_794;\n  (*pcVar39)();\n  pcStack_858 = pcVar39 + 0x359994;\n  iStack_860 = *(int *)(pcVar39 + 0x3519c8) + 0x10f4;\n  uStack_850 = uVar5;\n  pcStack_84c = pcVar40;\n  (**(code **)(pcVar39 + 0x3522dc))\n            (0x8000,*(int *)(pcVar39 + 0x3519c8) + 0x69c0,*(int *)(pcVar39 + 0x3519c8) + 0x76b0,\n             0x16d2);\n  if (puVar22 != (undefined8 *)0x0) {\n    (**(code **)(pcStack_858 + -0x71c4))(puVar22 + 1,0,0x28);\n    uVar53 = *(undefined8 *)(*(int *)(pcStack_858 + -0x7fd0) + 0x4408);\n    *puVar22 = uVar53;\n    puVar22[3] = uVar53;\n    return;\n  }\n  iVar12 = *(int *)(pcStack_858 + -0x7fcc) + 0x69c0;\n  iVar4 = *(int *)(pcStack_858 + -0x7fcc) + 0x6368;\n  pcVar39 = *(code **)(pcStack_858 + -0x7290);\n  pcVar40 = GetDrawInfo;\n  (*pcVar39)(iVar4,iVar12,0x16d3,*(int *)(pcStack_858 + -0x7fcc) + 0x76a0);\n  uStack_888 = uVar27;\n  iStack_894 = **(int **)(pcVar39 + 0x352270);\n  puStack_88c = puVar22;\n  pdStack_884 = pdVar31;\n  ppiStack_880 = ppiVar35;\n  ppiStack_87c = ppiVar36;\n  puStack_878 = puVar37;\n  pcStack_874 = pcVar40;\n  (**(code **)(pcVar39 + 0x352220))\n            (0x8000,*(int *)(pcVar39 + 0x35190c) + 0x69c0,*(int *)(pcVar39 + 0x35190c) + 0x7694,\n             0x1702,*(int *)(pcVar39 + 0x35190c) + 0x10f4);\n  if (iVar12 == 0) {\n    (**(code **)(pcVar39 + 0x352648))\n              (*(int *)(pcVar39 + 0x351908) + 0x40e4,*(int *)(pcVar39 + 0x35190c) + 0x69c0,0x1703,\n               *(int *)(pcVar39 + 0x35190c) + 0x7688);\n  }\n  else {\n    (**(code **)(pcVar39 + 0x352714))(iVar12,0,0x3c0);\n    iVar4 = (**(code **)(pcVar39 + 0x3521dc))(iVar4);\n    (**(code **)(pcVar39 + 0x351e5c))(iVar12 + 0x18);\n    pdVar31 = (double *)(**(code **)(pcVar39 + 0x351f2c))();\n    ppiVar36 = (int **)(iVar12 + 0x48);\n    (**(code **)(pcVar39 + 0x351e54))\n              (*(int *)(pcVar39 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar36,pdVar31);\n    ppiVar35 = (int **)(iVar12 + 0xa0);\n    (**(code **)(pcVar39 + 0x351e54))\n              (*(int *)(pcVar39 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar35,pdVar31);\n    *(undefined4 *)(iVar12 + 0x238) = *(undefined4 *)(iVar4 + 0x14);\n    *(undefined8 *)(iVar12 + 0x1b0) = *(undefined8 *)(*(int *)(pcVar39 + 0x351908) + 0x4408);\n    *(undefined4 *)(iVar12 + 0x240) = 1;\n    *(undefined4 *)(iVar12 + 0x2cc) = *(undefined4 *)(*(int *)(pcVar39 + 0x351908) + 0x4aa8);\n    uVar53 = *(undefined8 *)(*(int *)(pcVar39 + 0x351908) + 0x4a48);\n    *(undefined8 *)(iVar12 + 0x398) = uVar53;\n    *(undefined8 *)(iVar12 + 0x3a0) = uVar53;\n    *(undefined4 *)(iVar12 + 0x244) = 1;\n    *(undefined4 *)(iVar12 + 0x248) = 1;\n    *(undefined4 *)(iVar12 + 0x24c) = 10;\n    *(undefined4 *)(iVar12 + 600) = 1;\n    *(undefined8 *)(iVar12 + 0x288) = *(undefined8 *)(*(int *)(pcVar39 + 0x35190c) + 0x7970);\n    *(undefined4 *)(iVar12 + 0x144) = 0;\n    *(undefined4 *)(iVar12 + 0x140) = 0;\n    *(undefined4 *)(iVar12 + 0x25c) = 0x36;\n    *(undefined4 *)(iVar12 + 0x2d0) = 1;\n    *(undefined4 *)(iVar12 + 0x3a8) = 0;\n    uVar5 = (**(code **)(pcVar39 + 0x3527e8))();\n    *(undefined4 *)(iVar12 + 0x38c) = uVar5;\n    if (*(int *)(iVar4 + 0x4c) != 0) {\n      uVar5 = (**(code **)(pcVar39 + 0x352854))();\n      *(undefined4 *)(iVar12 + 0x264) = uVar5;\n    }\n    if (*(int *)(iVar4 + 0x54) != 0) {\n      uVar5 = (**(code **)(pcVar39 + 0x352854))();\n      *(undefined4 *)(iVar12 + 0x290) = uVar5;\n    }\n    *(undefined4 *)(iVar12 + 0x23c) = *(undefined4 *)(iVar4 + 0x14);\n    uVar5 = *(undefined4 *)(iVar4 + 0x58);\n    if (*(double *)(*(int *)(pcVar39 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar4 + 0x58))) {\n      *(undefined4 *)(iVar12 + 0x28c) = *(undefined4 *)(iVar4 + 0x5c);\n      *(undefined4 *)(iVar12 + 0x288) = uVar5;\n    }\n    puVar10 = (undefined4 *)(iVar4 + 0x118);\n    puVar2 = (undefined4 *)(iVar12 + 0x150);\n    do {\n      puVar17 = puVar2;\n      puVar11 = puVar10;\n      uVar29 = puVar11[1];\n      uVar27 = puVar11[2];\n      uVar5 = puVar11[3];\n      *puVar17 = *puVar11;\n      puVar17[1] = uVar29;\n      puVar17[2] = uVar27;\n      puVar17[3] = uVar5;\n      puVar10 = puVar11 + 4;\n      puVar2 = puVar17 + 4;\n    } while (puVar10 != (undefined4 *)(iVar4 + 0x168));\n    uVar5 = puVar11[5];\n    puVar17[4] = *puVar10;\n    puVar17[5] = uVar5;\n    if (*(int *)(iVar4 + 0x48) != 0) {\n      uVar5 = (**(code **)(pcVar39 + 0x352854))();\n      *(undefined4 *)(iVar12 + 0x29c) = uVar5;\n    }\n    iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6ac4);\n    if (iVar51 != 0) {\n      uVar5 = (**(code **)(pcVar39 + 0x3526d4))(0x14,0,iVar51);\n      *(undefined4 *)(iVar12 + 0x388) = uVar5;\n      goto LAB_000a8298;\n    }\n  }\n  *(undefined4 *)(iVar12 + 0x388) = 0;\nLAB_000a8298:\n  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6ad0);\n  if (iVar51 != 0) {\n    (**(code **)(pcVar39 + 0x3524c8))(iVar12 + 0x280,iVar51);\n  }\n  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6adc);\n  if (iVar51 != 0) {\n    (**(code **)(pcVar39 + 0x3524c8))(iVar12 + 0x26c,iVar51);\n  }\n  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6ae4);\n  if (iVar51 != 0) {\n    (**(code **)(pcVar39 + 0x351e54))(iVar51,0x7fffffff,ppiVar36,pdVar31);\n  }\n  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6aec);\n  if (iVar51 != 0) {\n    uVar5 = (**(code **)(pcVar39 + 0x3526d4))(0x21,0,iVar51);\n    *(undefined4 *)(iVar12 + 0x298) = uVar5;\n  }\n  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6af4);\n  if (iVar51 != 0) {\n    dVar41 = (double)(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898);\n    if (NAN(dVar41)) {\n      dVar41 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41) {\n      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }\n    }\n    else {\n      dVar41 = 0.0;\n    }\n    *(double *)(iVar12 + 0x380) = dVar41;\n  }\n  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b08);\n  if (iVar51 != 0) {\n    dVar41 = (double)(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898);\n    if (NAN(dVar41)) {\n      dVar41 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41) {\n      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }\n    }\n    else {\n      dVar41 = 0.0;\n    }\n    *(double *)(iVar12 + 0x378) = dVar41;\n  }\n  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b1c);\n  if (iVar51 != 0) {\n    dVar41 = (double)(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898);\n    if (NAN(dVar41)) {\n      dVar41 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41) {\n      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }\n    }\n    else {\n      dVar41 = 0.0;\n    }\n    *(double *)(iVar12 + 0x370) = dVar41;\n  }\n  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b24);\n  if (iVar51 != 0) {\n    (**(code **)(pcVar39 + 0x351e54))(iVar51,0x7fffffff,ppiVar35,pdVar31);\n  }\n  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b2c);\n  if (iVar51 != 0) {\n    dVar41 = (double)(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898);\n    if (NAN(dVar41)) {\n      dVar41 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41) {\n      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }\n    }\n    else {\n      dVar41 = 0.0;\n    }\n    *(double *)(iVar12 + 0x1b0) = dVar41;\n  }\n  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b38);\n  if (iVar51 != 0) {\n    uVar5 = (**(code **)(pcVar39 + 0x3526d4))(0x47,0,iVar51);\n    *(undefined4 *)(iVar12 + 0x274) = uVar5;\n  }\n  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b40);\n  if (iVar51 != 0) {\n    (**(code **)(pcVar39 + 0x351e54))(iVar51,0x7fffffff,iVar12 + 0xf8,pdVar31);\n  }\n  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x351920) + -0x3000);\n  if (iVar51 != 0) {\n    iVar30 = (**(code **)(pcVar39 + 0x3526d4))(0x4c,0,iVar51);\n    if (iVar30 == -1) {\n      uVar5 = (**(code **)(pcVar39 + 0x352380))(iVar51,0,10);\n      *(undefined4 *)(iVar12 + 0x27c) = uVar5;\n    }\n    else {\n      *(int *)(iVar12 + 0x27c) = iVar30;\n    }\n  }\n  (**(code **)(pcVar39 + 0x351d90))(pdVar31);\n  *(undefined4 *)(iVar12 + 0x390) = 0xabacadab;\n  (**(code **)(pcVar39 + 0x352628))(iVar4);\n  if (iStack_894 == **(int **)(pcVar39 + 0x352270)) {\n    return;\n  }\n  pcVar39 = *(code **)(pcVar39 + 0x3520a4);\n  (*pcVar39)();\n  uVar5 = (**(code **)(pcVar39 + 0x351be4))(0x3c0);\n  (**(code **)(pcVar39 + 0x3518b4))(0,uVar5);\n  return;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "double *pdVar6;" primitive_type (pointer_declarator "*pdVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "void *pvVar15;" primitive_type (pointer_declarator "*pvVar15" * identifier) ;) (declaration "double *pdVar16;" primitive_type (pointer_declarator "*pdVar16" * identifier) ;) (declaration "int extraout_v1;" primitive_type identifier ;) (declaration "double *extraout_v1_00;" primitive_type (pointer_declarator "*extraout_v1_00" * identifier) ;) (declaration "int extraout_v1_01;" primitive_type identifier ;) (declaration "int extraout_v1_02;" primitive_type identifier ;) (declaration "double *extraout_v1_03;" primitive_type (pointer_declarator "*extraout_v1_03" * identifier) ;) (declaration "int extraout_v1_04;" primitive_type identifier ;) (declaration "int extraout_v1_05;" primitive_type identifier ;) (declaration "int extraout_v1_06;" primitive_type identifier ;) (declaration "int extraout_v1_07;" primitive_type identifier ;) (declaration "int extraout_v1_08;" primitive_type identifier ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "double *pdVar18;" primitive_type (pointer_declarator "*pdVar18" * identifier) ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "int *piVar21;" primitive_type (pointer_declarator "*piVar21" * identifier) ;) (declaration "undefined8 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "void *pvVar23;" primitive_type (pointer_declarator "*pvVar23" * identifier) ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "uint *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "int **ppiVar26;" primitive_type (pointer_declarator "**ppiVar26" * (pointer_declarator "*ppiVar26" * identifier)) ;) (declaration "undefined4 uVar27;" type_identifier identifier ;) (declaration "uint uVar28;" type_identifier identifier ;) (declaration "undefined4 uVar29;" type_identifier identifier ;) (declaration "int iVar30;" primitive_type identifier ;) (declaration "double *pdVar31;" primitive_type (pointer_declarator "*pdVar31" * identifier) ;) (declaration "double *pdVar32;" primitive_type (pointer_declarator "*pdVar32" * identifier) ;) (declaration "int unaff_s2;" primitive_type identifier ;) (declaration "int iVar33;" primitive_type identifier ;) (declaration "uint *puVar34;" type_identifier (pointer_declarator "*puVar34" * identifier) ;) (declaration "double *unaff_s3;" primitive_type (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "int **ppiVar35;" primitive_type (pointer_declarator "**ppiVar35" * (pointer_declarator "*ppiVar35" * identifier)) ;) (declaration "int *unaff_s4;" primitive_type (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "int **ppiVar36;" primitive_type (pointer_declarator "**ppiVar36" * (pointer_declarator "*ppiVar36" * identifier)) ;) (declaration "undefined1 *puVar37;" type_identifier (pointer_declarator "*puVar37" * identifier) ;) (declaration "double *unaff_s6;" primitive_type (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "uint unaff_s7;" type_identifier identifier ;) (declaration "undefined *puVar38;" type_identifier (pointer_declarator "*puVar38" * identifier) ;) (declaration "code *pcVar39;" type_identifier (pointer_declarator "*pcVar39" * identifier) ;) (declaration "code *pcVar40;" type_identifier (pointer_declarator "*pcVar40" * identifier) ;) (declaration "double dVar41;" primitive_type identifier ;) (declaration "double dVar42;" primitive_type identifier ;) (declaration "double dVar43;" primitive_type identifier ;) (declaration "float fVar45;" primitive_type identifier ;) (declaration "double dVar44;" primitive_type identifier ;) (declaration "double dVar46;" primitive_type identifier ;) (declaration "double dVar47;" primitive_type identifier ;) (declaration "double dVar48;" primitive_type identifier ;) (declaration "double in_f20_21;" primitive_type identifier ;) (declaration "double dVar49;" primitive_type identifier ;) (declaration "double in_f22_23;" primitive_type identifier ;) (declaration "double in_f24_25;" primitive_type identifier ;) (declaration "double in_f26_27;" primitive_type identifier ;) (declaration "double in_f28_29;" primitive_type identifier ;) (declaration "double in_f30_31;" primitive_type identifier ;) (declaration "int *piVar50;" primitive_type (pointer_declarator "*piVar50" * identifier) ;) (declaration "int iVar51;" primitive_type identifier ;) (declaration "int iVar52;" primitive_type identifier ;) (declaration "undefined8 uVar53;" type_identifier identifier ;) (declaration "undefined1 auStack_898 [4];" type_identifier (array_declarator "auStack_898 [4]" identifier [ number_literal ]) ;) (declaration "int iStack_894;" primitive_type identifier ;) (declaration "undefined8 *puStack_88c;" type_identifier (pointer_declarator "*puStack_88c" * identifier) ;) (declaration "undefined4 uStack_888;" type_identifier identifier ;) (declaration "double *pdStack_884;" primitive_type (pointer_declarator "*pdStack_884" * identifier) ;) (declaration "int **ppiStack_880;" primitive_type (pointer_declarator "**ppiStack_880" * (pointer_declarator "*ppiStack_880" * identifier)) ;) (declaration "int **ppiStack_87c;" primitive_type (pointer_declarator "**ppiStack_87c" * (pointer_declarator "*ppiStack_87c" * identifier)) ;) (declaration "undefined1 *puStack_878;" type_identifier (pointer_declarator "*puStack_878" * identifier) ;) (declaration "code *pcStack_874;" type_identifier (pointer_declarator "*pcStack_874" * identifier) ;) (declaration "int iStack_860;" primitive_type identifier ;) (declaration "code *pcStack_858;" type_identifier (pointer_declarator "*pcStack_858" * identifier) ;) (declaration "undefined4 uStack_850;" type_identifier identifier ;) (declaration "code *pcStack_84c;" type_identifier (pointer_declarator "*pcStack_84c" * identifier) ;) (declaration "int iStack_838;" primitive_type identifier ;) (declaration "int iStack_834;" primitive_type identifier ;) (declaration "code *pcStack_830;" type_identifier (pointer_declarator "*pcStack_830" * identifier) ;) (declaration "int *piStack_828;" primitive_type (pointer_declarator "*piStack_828" * identifier) ;) (declaration "int *piStack_824;" primitive_type (pointer_declarator "*piStack_824" * identifier) ;) (declaration "int *piStack_820;" primitive_type (pointer_declarator "*piStack_820" * identifier) ;) (declaration "int *piStack_81c;" primitive_type (pointer_declarator "*piStack_81c" * identifier) ;) (declaration "double dStack_818;" primitive_type identifier ;) (declaration "int iStack_810;" primitive_type identifier ;) (declaration "double *pdStack_80c;" primitive_type (pointer_declarator "*pdStack_80c" * identifier) ;) (declaration "undefined4 uStack_808;" type_identifier identifier ;) (declaration "int **ppiStack_804;" primitive_type (pointer_declarator "**ppiStack_804" * (pointer_declarator "*ppiStack_804" * identifier)) ;) (declaration "int **ppiStack_800;" primitive_type (pointer_declarator "**ppiStack_800" * (pointer_declarator "*ppiStack_800" * identifier)) ;) (declaration "undefined1 *puStack_7fc;" type_identifier (pointer_declarator "*puStack_7fc" * identifier) ;) (declaration "int **ppiStack_7f8;" primitive_type (pointer_declarator "**ppiStack_7f8" * (pointer_declarator "*ppiStack_7f8" * identifier)) ;) (declaration "undefined4 uStack_7f4;" type_identifier identifier ;) (declaration "undefined1 auStack_7f0 [92];" type_identifier (array_declarator "auStack_7f0 [92]" identifier [ number_literal ]) ;) (declaration "undefined8 *puStack_794;" type_identifier (pointer_declarator "*puStack_794" * identifier) ;) (declaration "double *pdStack_790;" primitive_type (pointer_declarator "*pdStack_790" * identifier) ;) (declaration "int *piStack_78c;" primitive_type (pointer_declarator "*piStack_78c" * identifier) ;) (declaration "uint *puStack_788;" type_identifier (pointer_declarator "*puStack_788" * identifier) ;) (declaration "double *pdStack_784;" primitive_type (pointer_declarator "*pdStack_784" * identifier) ;) (declaration "int iStack_780;" primitive_type identifier ;) (declaration "code *pcStack_77c;" type_identifier (pointer_declarator "*pcStack_77c" * identifier) ;) (declaration "double dStack_778;" primitive_type identifier ;) (declaration "int iStack_760;" primitive_type identifier ;) (declaration "int *piStack_75c;" primitive_type (pointer_declarator "*piStack_75c" * identifier) ;) (declaration "code *pcStack_758;" type_identifier (pointer_declarator "*pcStack_758" * identifier) ;) (declaration "double dStack_750;" primitive_type identifier ;) (declaration "double dStack_748;" primitive_type identifier ;) (declaration "double dStack_740;" primitive_type identifier ;) (declaration "double dStack_738;" primitive_type identifier ;) (declaration "int *piStack_72c;" primitive_type (pointer_declarator "*piStack_72c" * identifier) ;) (declaration "uint *puStack_728;" type_identifier (pointer_declarator "*puStack_728" * identifier) ;) (declaration "double *pdStack_724;" primitive_type (pointer_declarator "*pdStack_724" * identifier) ;) (declaration "double *pdStack_720;" primitive_type (pointer_declarator "*pdStack_720" * identifier) ;) (declaration "undefined1 *puStack_71c;" type_identifier (pointer_declarator "*puStack_71c" * identifier) ;) (declaration "undefined4 uStack_718;" type_identifier identifier ;) (declaration "undefined1 *puStack_714;" type_identifier (pointer_declarator "*puStack_714" * identifier) ;) (declaration "double *pdStack_710;" primitive_type (pointer_declarator "*pdStack_710" * identifier) ;) (declaration "int iStack_70c;" primitive_type identifier ;) (declaration "int iStack_708;" primitive_type identifier ;) (declaration "int iStack_704;" primitive_type identifier ;) (declaration "double dStack_700;" primitive_type identifier ;) (declaration "double dStack_6f8;" primitive_type identifier ;) (declaration "double dStack_6f0;" primitive_type identifier ;) (declaration "double dStack_6e8;" primitive_type identifier ;) (declaration "double dStack_6e0;" primitive_type identifier ;) (declaration "double dStack_6d8;" primitive_type identifier ;) (declaration "undefined1 auStack_6d0 [88];" type_identifier (array_declarator "auStack_6d0 [88]" identifier [ number_literal ]) ;) (declaration "undefined8 uStack_678;" type_identifier identifier ;) (declaration "undefined4 uStack_670;" type_identifier identifier ;) (declaration "undefined4 uStack_66c;" type_identifier identifier ;) (declaration "double dStack_668;" primitive_type identifier ;) (declaration "undefined4 uStack_660;" type_identifier identifier ;) (declaration "undefined4 uStack_65c;" type_identifier identifier ;) (declaration "double dStack_658;" primitive_type identifier ;) (declaration "double dStack_650;" primitive_type identifier ;) (declaration "undefined4 uStack_648;" type_identifier identifier ;) (declaration "undefined4 uStack_644;" type_identifier identifier ;) (declaration "double dStack_640;" primitive_type identifier ;) (declaration "undefined8 uStack_638;" type_identifier identifier ;) (declaration "double *pdStack_62c;" primitive_type (pointer_declarator "*pdStack_62c" * identifier) ;) (declaration "int *piStack_628;" primitive_type (pointer_declarator "*piStack_628" * identifier) ;) (declaration "uint *puStack_624;" type_identifier (pointer_declarator "*puStack_624" * identifier) ;) (declaration "double *pdStack_620;" primitive_type (pointer_declarator "*pdStack_620" * identifier) ;) (declaration "int iStack_61c;" primitive_type identifier ;) (declaration "undefined1 *puStack_618;" type_identifier (pointer_declarator "*puStack_618" * identifier) ;) (declaration "double *pdStack_614;" primitive_type (pointer_declarator "*pdStack_614" * identifier) ;) (declaration "uint uStack_610;" type_identifier identifier ;) (declaration "code *pcStack_60c;" type_identifier (pointer_declarator "*pcStack_60c" * identifier) ;) (declaration "double dStack_608;" primitive_type identifier ;) (declaration "double dStack_600;" primitive_type identifier ;) (declaration "double dStack_5f8;" primitive_type identifier ;) (declaration "double dStack_5f0;" primitive_type identifier ;) (declaration "int iStack_5d8;" primitive_type identifier ;) (declaration "code *pcStack_5d0;" type_identifier (pointer_declarator "*pcStack_5d0" * identifier) ;) (declaration "double *pdStack_5c8;" primitive_type (pointer_declarator "*pdStack_5c8" * identifier) ;) (declaration "code *pcStack_5c4;" type_identifier (pointer_declarator "*pcStack_5c4" * identifier) ;) (declaration "undefined4 uStack_5b0;" type_identifier identifier ;) (declaration "uint uStack_5ac;" type_identifier identifier ;) (declaration "code *pcStack_5a8;" type_identifier (pointer_declarator "*pcStack_5a8" * identifier) ;) (declaration "undefined8 uStack_5a0;" type_identifier identifier ;) (declaration "double dStack_598;" primitive_type identifier ;) (declaration "double dStack_590;" primitive_type identifier ;) (declaration "double *pdStack_588;" primitive_type (pointer_declarator "*pdStack_588" * identifier) ;) (declaration "int iStack_584;" primitive_type identifier ;) (declaration "double dStack_580;" primitive_type identifier ;) (declaration "double dStack_578;" primitive_type identifier ;) (declaration "int iStack_570;" primitive_type identifier ;) (declaration "undefined1 *puStack_56c;" type_identifier (pointer_declarator "*puStack_56c" * identifier) ;) (declaration "double *pdStack_568;" primitive_type (pointer_declarator "*pdStack_568" * identifier) ;) (declaration "uint uStack_564;" type_identifier identifier ;) (declaration "double dStack_560;" primitive_type identifier ;) (declaration "double dStack_558;" primitive_type identifier ;) (declaration "uint uStack_550;" type_identifier identifier ;) (declaration "undefined4 uStack_54c;" type_identifier identifier ;) (declaration "double dStack_548;" primitive_type identifier ;) (declaration "double dStack_540;" primitive_type identifier ;) (declaration "uint uStack_538;" type_identifier identifier ;) (declaration "undefined4 uStack_534;" type_identifier identifier ;) (declaration "double dStack_530;" primitive_type identifier ;) (declaration "uint uStack_528;" type_identifier identifier ;) (declaration "undefined4 uStack_524;" type_identifier identifier ;) (declaration "double dStack_520;" primitive_type identifier ;) (declaration "double dStack_518;" primitive_type identifier ;) (declaration "int aiStack_510 [4];" primitive_type (array_declarator "aiStack_510 [4]" identifier [ number_literal ]) ;) (declaration "undefined8 uStack_500;" type_identifier identifier ;) (declaration "int iStack_4f8;" primitive_type identifier ;) (declaration "double dStack_4e8;" primitive_type identifier ;) (declaration "double dStack_4e0;" primitive_type identifier ;) (declaration "double dStack_4d8;" primitive_type identifier ;) (declaration "double dStack_4d0;" primitive_type identifier ;) (declaration "double dStack_4c8;" primitive_type identifier ;) (declaration "double dStack_4c0;" primitive_type identifier ;) (declaration "int iStack_4b4;" primitive_type identifier ;) (declaration "uint uStack_4b0;" type_identifier identifier ;) (declaration "int iStack_4ac;" primitive_type identifier ;) (declaration "double *pdStack_4a8;" primitive_type (pointer_declarator "*pdStack_4a8" * identifier) ;) (declaration "double *pdStack_4a4;" primitive_type (pointer_declarator "*pdStack_4a4" * identifier) ;) (declaration "int iStack_4a0;" primitive_type identifier ;) (declaration "void *pvStack_49c;" primitive_type (pointer_declarator "*pvStack_49c" * identifier) ;) (declaration "double *pdStack_498;" primitive_type (pointer_declarator "*pdStack_498" * identifier) ;) (declaration "uint uStack_494;" type_identifier identifier ;) (declaration "int iStack_490;" primitive_type identifier ;) (declaration "code *pcStack_48c;" type_identifier (pointer_declarator "*pcStack_48c" * identifier) ;) (declaration "double dStack_488;" primitive_type identifier ;) (declaration "double dStack_480;" primitive_type identifier ;) (declaration "double dStack_478;" primitive_type identifier ;) (declaration "double dStack_470;" primitive_type identifier ;) (declaration "double dStack_468;" primitive_type identifier ;) (declaration "double dStack_460;" primitive_type identifier ;) (declaration "int *piStack_448;" primitive_type (pointer_declarator "*piStack_448" * identifier) ;) (declaration "uint uStack_444;" type_identifier identifier ;) (declaration "code *pcStack_440;" type_identifier (pointer_declarator "*pcStack_440" * identifier) ;) (declaration "uint uStack_434;" type_identifier identifier ;) (declaration "uint uStack_430;" type_identifier identifier ;) (declaration "double *pdStack_42c;" primitive_type (pointer_declarator "*pdStack_42c" * identifier) ;) (declaration "uint uStack_428;" type_identifier identifier ;) (declaration "uint uStack_424;" type_identifier identifier ;) (declaration "uint uStack_420;" type_identifier identifier ;) (declaration "undefined4 uStack_41c;" type_identifier identifier ;) (declaration "int aiStack_418 [10];" primitive_type (array_declarator "aiStack_418 [10]" identifier [ number_literal ]) ;) (declaration "double dStack_3f0;" primitive_type identifier ;) (declaration "double dStack_3e8;" primitive_type identifier ;) (declaration "double dStack_3e0;" primitive_type identifier ;) (declaration "double dStack_3d8;" primitive_type identifier ;) (declaration "double dStack_3d0;" primitive_type identifier ;) (declaration "int iStack_3bc;" primitive_type identifier ;) (declaration "int iStack_3b8;" primitive_type identifier ;) (declaration "uint uStack_3b4;" type_identifier identifier ;) (declaration "double *pdStack_3b0;" primitive_type (pointer_declarator "*pdStack_3b0" * identifier) ;) (declaration "double *pdStack_3ac;" primitive_type (pointer_declarator "*pdStack_3ac" * identifier) ;) (declaration "int *piStack_3a8;" primitive_type (pointer_declarator "*piStack_3a8" * identifier) ;) (declaration "void *pvStack_3a4;" primitive_type (pointer_declarator "*pvStack_3a4" * identifier) ;) (declaration "double *pdStack_3a0;" primitive_type (pointer_declarator "*pdStack_3a0" * identifier) ;) (declaration "uint uStack_39c;" type_identifier identifier ;) (declaration "int iStack_398;" primitive_type identifier ;) (declaration "code *pcStack_394;" type_identifier (pointer_declarator "*pcStack_394" * identifier) ;) (declaration "double dStack_390;" primitive_type identifier ;) (declaration "double dStack_388;" primitive_type identifier ;) (declaration "double dStack_380;" primitive_type identifier ;) (declaration "double dStack_378;" primitive_type identifier ;) (declaration "double dStack_370;" primitive_type identifier ;) (declaration "undefined4 *puStack_358;" type_identifier (pointer_declarator "*puStack_358" * identifier) ;) (declaration "undefined4 uStack_354;" type_identifier identifier ;) (declaration "undefined *puStack_350;" type_identifier (pointer_declarator "*puStack_350" * identifier) ;) (declaration "undefined8 uStack_348;" type_identifier identifier ;) (declaration "double dStack_340;" primitive_type identifier ;) (declaration "double dStack_338;" primitive_type identifier ;) (declaration "double dStack_330;" primitive_type identifier ;) (declaration "uint uStack_328;" type_identifier identifier ;) (declaration "int iStack_324;" primitive_type identifier ;) (declaration "double dStack_320;" primitive_type identifier ;) (declaration "double dStack_318;" primitive_type identifier ;) (declaration "uint uStack_310;" type_identifier identifier ;) (declaration "undefined4 uStack_30c;" type_identifier identifier ;) (declaration "int iStack_308;" primitive_type identifier ;) (declaration "int *piStack_304;" primitive_type (pointer_declarator "*piStack_304" * identifier) ;) (declaration "double dStack_300;" primitive_type identifier ;) (declaration "uint uStack_2f8;" type_identifier identifier ;) (declaration "int iStack_2f4;" primitive_type identifier ;) (declaration "int iStack_2f0;" primitive_type identifier ;) (declaration "double *pdStack_2ec;" primitive_type (pointer_declarator "*pdStack_2ec" * identifier) ;) (declaration "uint uStack_2e8;" type_identifier identifier ;) (declaration "undefined4 uStack_2e4;" type_identifier identifier ;) (declaration "uint uStack_2e0;" type_identifier identifier ;) (declaration "undefined4 uStack_2dc;" type_identifier identifier ;) (declaration "double *pdStack_2d8;" primitive_type (pointer_declarator "*pdStack_2d8" * identifier) ;) (declaration "uint uStack_2d4;" type_identifier identifier ;) (declaration "undefined4 uStack_2d0;" type_identifier identifier ;) (declaration "double *pdStack_2cc;" primitive_type (pointer_declarator "*pdStack_2cc" * identifier) ;) (declaration "uint uStack_2c8;" type_identifier identifier ;) (declaration "undefined4 uStack_2c4;" type_identifier identifier ;) (declaration "int iStack_2c0;" primitive_type identifier ;) (declaration "undefined4 *puStack_2bc;" type_identifier (pointer_declarator "*puStack_2bc" * identifier) ;) (declaration "double dStack_2b8;" primitive_type identifier ;) (declaration "uint uStack_2b0;" type_identifier identifier ;) (declaration "undefined4 uStack_2ac;" type_identifier identifier ;) (declaration "double *pdStack_2a8;" primitive_type (pointer_declarator "*pdStack_2a8" * identifier) ;) (declaration "undefined1 *puStack_2a4;" type_identifier (pointer_declarator "*puStack_2a4" * identifier) ;) (declaration "double *pdStack_2a0;" primitive_type (pointer_declarator "*pdStack_2a0" * identifier) ;) (declaration "int iStack_29c;" primitive_type identifier ;) (declaration "undefined4 auStack_298 [18];" type_identifier (array_declarator "auStack_298 [18]" identifier [ number_literal ]) ;) (declaration "double dStack_250;" primitive_type identifier ;) (declaration "undefined4 auStack_240 [18];" type_identifier (array_declarator "auStack_240 [18]" identifier [ number_literal ]) ;) (declaration "double dStack_1f8;" primitive_type identifier ;) (declaration "int iStack_1e4;" primitive_type identifier ;) (declaration "double *pdStack_1e0;" primitive_type (pointer_declarator "*pdStack_1e0" * identifier) ;) (declaration "int *piStack_1dc;" primitive_type (pointer_declarator "*piStack_1dc" * identifier) ;) (declaration "int iStack_1d8;" primitive_type identifier ;) (declaration "double *pdStack_1d4;" primitive_type (pointer_declarator "*pdStack_1d4" * identifier) ;) (declaration "int *piStack_1d0;" primitive_type (pointer_declarator "*piStack_1d0" * identifier) ;) (declaration "void *pvStack_1cc;" primitive_type (pointer_declarator "*pvStack_1cc" * identifier) ;) (declaration "double *pdStack_1c8;" primitive_type (pointer_declarator "*pdStack_1c8" * identifier) ;) (declaration "uint uStack_1c4;" type_identifier identifier ;) (declaration "int iStack_1c0;" primitive_type identifier ;) (declaration "code *pcStack_1bc;" type_identifier (pointer_declarator "*pcStack_1bc" * identifier) ;) (declaration "double dStack_1b8;" primitive_type identifier ;) (declaration "double dStack_1b0;" primitive_type identifier ;) (declaration "double dStack_1a8;" primitive_type identifier ;) (declaration "double dStack_1a0;" primitive_type identifier ;) (declaration "double dStack_198;" primitive_type identifier ;) (declaration "double dStack_190;" primitive_type identifier ;) (declaration "undefined8 local_178;" type_identifier identifier ;) (declaration "double local_170;" primitive_type identifier ;) (declaration "int *local_168;" primitive_type (pointer_declarator "*local_168" * identifier) ;) (declaration "int *local_164;" primitive_type (pointer_declarator "*local_164" * identifier) ;) (declaration "int local_110 [4];" primitive_type (array_declarator "local_110 [4]" identifier [ number_literal ]) ;) (declaration "undefined8 local_100;" type_identifier identifier ;) (declaration "int local_f8;" primitive_type identifier ;) (declaration "double local_e8;" primitive_type identifier ;) (declaration "double local_e0;" primitive_type identifier ;) (declaration "double local_d8;" primitive_type identifier ;) (declaration "double local_d0;" primitive_type identifier ;) (declaration "double local_c8;" primitive_type identifier ;) (declaration "double local_c0;" primitive_type identifier ;) (declaration "int local_b8 [10];" primitive_type (array_declarator "local_b8 [10]" identifier [ number_literal ]) ;) (declaration "double local_90;" primitive_type identifier ;) (declaration "double local_88;" primitive_type identifier ;) (declaration "double local_80;" primitive_type identifier ;) (declaration "double local_78;" primitive_type identifier ;) (declaration "double local_70;" primitive_type identifier ;) (declaration "int local_5c;" primitive_type identifier ;) (expression_statement "local_5c = *(int *)PTR___stack_chk_guard_003fa248;" (assignment_expression "local_5c = *(int *)PTR___stack_chk_guard_003fa248" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_003fa248" * (cast_expression "(int *)PTR___stack_chk_guard_003fa248" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pdVar31 = *(double **)((int)this + 0x20);" (assignment_expression "pdVar31 = *(double **)((int)this + 0x20)" identifier = (pointer_expression "*(double **)((int)this + 0x20)" * (cast_expression "(double **)((int)this + 0x20)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)this + 0x20)" ( (binary_expression "(int)this + 0x20" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "piVar3 = (int *)(*(code *)PTR_omp_get_num_threads_003fa924)();" (assignment_expression "piVar3 = (int *)(*(code *)PTR_omp_get_num_threads_003fa924)()" identifier = (cast_expression "(int *)(*(code *)PTR_omp_get_num_threads_003fa924)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_omp_get_num_threads_003fa924)()" (parenthesized_expression "(*(code *)PTR_omp_get_num_threads_003fa924)" ( (pointer_expression "*(code *)PTR_omp_get_num_threads_003fa924" * (cast_expression "(code *)PTR_omp_get_num_threads_003fa924" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)();" (assignment_expression "iVar4 = (*(code *)PTR_omp_get_thread_num_003fa520)()" identifier = (call_expression "(*(code *)PTR_omp_get_thread_num_003fa520)()" (parenthesized_expression "(*(code *)PTR_omp_get_thread_num_003fa520)" ( (pointer_expression "*(code *)PTR_omp_get_thread_num_003fa520" * (cast_expression "(code *)PTR_omp_get_thread_num_003fa520" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "puVar38 = PTR_LAB_003f98e0;" (assignment_expression "puVar38 = PTR_LAB_003f98e0" identifier = identifier) ;) (expression_statement "iVar12 = (*(int *)((int)this + 0x24) + 1) - (int)pdVar31;" (assignment_expression "iVar12 = (*(int *)((int)this + 0x24) + 1) - (int)pdVar31" identifier = (binary_expression "(*(int *)((int)this + 0x24) + 1) - (int)pdVar31" (parenthesized_expression "(*(int *)((int)this + 0x24) + 1)" ( (binary_expression "*(int *)((int)this + 0x24) + 1" (pointer_expression "*(int *)((int)this + 0x24)" * (cast_expression "(int *)((int)this + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 0x24)" ( (binary_expression "(int)this + 0x24" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) )) - (cast_expression "(int)pdVar31" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (piVar3 == (int *)0x0) {\n    trap(7);\n  }" if (parenthesized_expression "(piVar3 == (int *)0x0)" ( (binary_expression "piVar3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "iVar51 = iVar12 / (int)piVar3;" (assignment_expression "iVar51 = iVar12 / (int)piVar3" identifier = (binary_expression "iVar12 / (int)piVar3" identifier / (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar12 = iVar12 % (int)piVar3;" (assignment_expression "iVar12 = iVar12 % (int)piVar3" identifier = (binary_expression "iVar12 % (int)piVar3" identifier % (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (iVar4 < iVar12) {\n    iVar51 = iVar51 + 1;\n    iVar12 = 0;\n  }" if (parenthesized_expression "(iVar4 < iVar12)" ( (binary_expression "iVar4 < iVar12" identifier < identifier) )) (compound_statement "{\n    iVar51 = iVar51 + 1;\n    iVar12 = 0;\n  }" { (expression_statement "iVar51 = iVar51 + 1;" (assignment_expression "iVar51 = iVar51 + 1" identifier = (binary_expression "iVar51 + 1" identifier + number_literal)) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) })) (expression_statement "iVar12 = iVar51 * iVar4 + iVar12;" (assignment_expression "iVar12 = iVar51 * iVar4 + iVar12" identifier = (binary_expression "iVar51 * iVar4 + iVar12" (binary_expression "iVar51 * iVar4" identifier * identifier) + identifier)) ;) (expression_statement "pdVar18 = (double *)(iVar51 + iVar12);" (assignment_expression "pdVar18 = (double *)(iVar51 + iVar12)" identifier = (cast_expression "(double *)(iVar51 + iVar12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar51 + iVar12)" ( (binary_expression "iVar51 + iVar12" identifier + identifier) )))) ;) (expression_statement "iVar4 = (int)pdVar31 + iVar12;" (assignment_expression "iVar4 = (int)pdVar31 + iVar12" identifier = (binary_expression "(int)pdVar31 + iVar12" (cast_expression "(int)pdVar31" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (if_statement "if (iVar12 < (int)pdVar18) {\n    uVar5 = *(undefined4 *)((int)this + 0x14);\n    pdVar6 = *(double **)((int)this + 0x10);\n    unaff_s4 = *(int **)((int)this + 8);\n    unaff_s7 = *(uint *)((int)this + 4);\n                    /* WARNING: Load size is inaccurate */\n    piVar3 = *this;\n    puVar7 = (undefined *)((int)pdVar31 + (int)pdVar18);\n    dVar41 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    in_f26_27 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    in_f30_31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n    do {\n      in_f24_25 = (double)iVar4;\n      pdVar31 = *(double **)((int)this + 0xc);\n      in_f20_21 = **(double **)((int)this + 0x1c);\n      in_f28_29 = (*(double **)((int)this + 0x1c))[2];\n      dVar42 = in_f24_25 * pdVar31[2] + pdVar31[4];\n      dVar49 = *pdVar31;\n      dVar43 = in_f28_29;\n      if (dVar41 <= dVar49) {\n        in_f22_23 = -dVar42 / dVar49;\n        if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }\n        dVar46 = (double)*(int *)(unaff_s7 + 0x18);\n        if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }\n        dVar49 = (dVar46 - dVar42) / dVar49;\n        if (dVar49 < in_f28_29) {\n          dVar43 = dVar49;\n        }\nLAB_000a3890:\n        dVar42 = in_f24_25 * pdVar31[3] + pdVar31[5];\n        dVar49 = pdVar31[1];\n        if (*(double *)(puVar38 + 0x43c8) <= dVar49) {\n          dVar46 = -dVar42 / dVar49;\n          if (-dVar42 / dVar49 <= in_f22_23) {\n            dVar46 = in_f22_23;\n          }\n          in_f22_23 = dVar46;\n          pdVar18 = *(double **)(unaff_s7 + 0x1c);\n          dVar46 = (double)(int)pdVar18;\n          if ((int)pdVar18 < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar18 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar46 - dVar42) / dVar49;\n          if (dVar43 <= in_f20_21) {\n            in_f20_21 = dVar43;\n          }\n        }\n        else if (dVar49 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar46 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar46 = (dVar46 - dVar42) / dVar49;\n          if (dVar46 <= in_f22_23) {\n            dVar46 = in_f22_23;\n          }\n          in_f22_23 = dVar46;\n          pdVar18 = (double *)((uint)((ulonglong)dVar42 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar42 / dVar49;\n          if (dVar43 <= -dVar42 / dVar49) {\n            in_f20_21 = dVar43;\n          }\n        }\n        else {\n          pdVar18 = (double *)puVar38;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar42) {\n            dVar42 = (double)(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0));\n            if (dVar42 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar28 = (uint)dVar42;\n            }\n            else {\n              uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar43;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar28) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }\n        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;\n      }\n      else {\n        if (dVar49 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar46 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar46 - dVar42) / dVar49;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar42 / dVar49 < in_f28_29) {\n            dVar43 = -dVar42 / dVar49;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar42) {\n          dVar42 = (double)(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0));\n          if (dVar42 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar28 = (uint)dVar42;\n          }\n          else {\n            uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar43;\n          if (uVar28 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar38 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar43 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar43;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar43 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar42 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar43 = (dVar43 - dVar42) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar43 < in_f20_21) {\n          uVar28 = (uint)dVar43;\n        }\n        else {\n          uVar28 = (int)(dVar43 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar18 = pdVar6;\n        pdVar31 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar6,unaff_s2,iVar4,uVar28);\n        if (pdVar31 != (double *)0x0) {\n          piVar19 = *(int **)((int)this + 0x18);\n          piVar50 = piVar19;\n          piVar21 = local_b8;\n          do {\n            piVar13 = piVar21;\n            piVar8 = piVar50;\n            iVar30 = piVar8[1];\n            iVar51 = piVar8[2];\n            iVar12 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar30;\n            piVar13[2] = iVar51;\n            piVar13[3] = iVar12;\n            piVar50 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar50 != piVar19 + 0x14);\n          iVar12 = piVar8[5];\n          piVar13[4] = *piVar50;\n          piVar13[5] = iVar12;\n          piVar50 = piVar19;\n          piVar21 = local_110;\n          do {\n            piVar13 = piVar21;\n            piVar8 = piVar50;\n            iVar30 = piVar8[1];\n            iVar51 = piVar8[2];\n            iVar12 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar30;\n            piVar13[2] = iVar51;\n            piVar13[3] = iVar12;\n            piVar50 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar50 != piVar19 + 0x14);\n          iVar12 = piVar8[5];\n          piVar13[4] = *piVar50;\n          piVar13[5] = iVar12;\n          dVar43 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar43; unaff_s2 = unaff_s2 + 1) {\n            pdVar18 = *(double **)((int)this + 0xc);\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar18[1] + in_f24_25 * pdVar18[3] + pdVar18[5];\n            local_178 = (double)unaff_s2 * *pdVar18 + in_f24_25 * pdVar18[2] + pdVar18[4];\n            local_164 = unaff_s4;\n            iVar12 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar5,0);\n            *(int *)((int)this + 0x28) = iVar12;\n            if (iVar12 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar3 != (int *)0x0) {\n              local_110[0] = *piVar3;\n              local_110[1] = piVar3[1];\n              local_100 = *(undefined8 *)(piVar3 + 0x92);\n              local_f8 = piVar3[8];\n              local_110[2] = piVar3[0xaf];\n              if (pdVar31 != (double *)0x0) {\n                iVar12 = piVar3[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4);\n                if (*(int *)(iVar12 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar12 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar12 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x44) * 4);\n                }\n              }\n            }\n            dVar42 = local_70 * in_f26_27;\n            dVar49 = local_c8 * in_f26_27;\n            dVar46 = (dVar42 + dVar49) - dVar42 * dVar49;\n            if (0.0 <= dVar46) {\n              local_c8 = dVar46;\n              if (in_f20_21 < dVar46) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar38 + 0x4a48);\n              if (0.0 <= dVar46) {\n                dVar47 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar47 = in_f22_23;\n            }\n            if (*(double *)(puVar38 + 0x43c8) <= dVar46 * dVar47) {\n              dVar47 = *(double *)((int)unaff_s3 + 0x4408) / dVar46;\n            }\n            else {\n              dVar47 = dVar47 / *(double *)(puVar38 + 0x43c8);\n            }\n            dVar46 = *(double *)((int)unaff_s3 + 0x4408) - dVar42;\n            local_e8 = (dVar49 * local_e8 * dVar46 + dVar42 * local_90) * dVar47;\n            local_e0 = (dVar49 * local_e0 * dVar46 + dVar42 * local_88) * dVar47;\n            local_d8 = (dVar49 * local_d8 * dVar46 + dVar42 * local_80) * dVar47;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar49 * local_d0 * dVar46 + dVar42 * local_78) * dVar47;\n            }\n            iVar12 = piVar3[0xb4];\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar12 + 0x28) != 0) {\n              *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar12 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar45 = (float)local_c8;\n              }\n              *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4) = fVar45;\n            }\n            pdVar31 = (double *)((int)pdVar31 + piVar3[0xb0] * 4);\n          }\n          pdVar18 = pdVar6;\n          iVar12 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar6,unaff_s4);\n          if (iVar12 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }\n        }\n      }\n      iVar4 = iVar4 + 1;\n      unaff_s6 = (double *)puVar38;\n    } while (iVar4 < (int)puVar7);\n  }" if (parenthesized_expression "(iVar12 < (int)pdVar18)" ( (binary_expression "iVar12 < (int)pdVar18" identifier < (cast_expression "(int)pdVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    uVar5 = *(undefined4 *)((int)this + 0x14);\n    pdVar6 = *(double **)((int)this + 0x10);\n    unaff_s4 = *(int **)((int)this + 8);\n    unaff_s7 = *(uint *)((int)this + 4);\n                    /* WARNING: Load size is inaccurate */\n    piVar3 = *this;\n    puVar7 = (undefined *)((int)pdVar31 + (int)pdVar18);\n    dVar41 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    in_f26_27 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    in_f30_31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n    do {\n      in_f24_25 = (double)iVar4;\n      pdVar31 = *(double **)((int)this + 0xc);\n      in_f20_21 = **(double **)((int)this + 0x1c);\n      in_f28_29 = (*(double **)((int)this + 0x1c))[2];\n      dVar42 = in_f24_25 * pdVar31[2] + pdVar31[4];\n      dVar49 = *pdVar31;\n      dVar43 = in_f28_29;\n      if (dVar41 <= dVar49) {\n        in_f22_23 = -dVar42 / dVar49;\n        if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }\n        dVar46 = (double)*(int *)(unaff_s7 + 0x18);\n        if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }\n        dVar49 = (dVar46 - dVar42) / dVar49;\n        if (dVar49 < in_f28_29) {\n          dVar43 = dVar49;\n        }\nLAB_000a3890:\n        dVar42 = in_f24_25 * pdVar31[3] + pdVar31[5];\n        dVar49 = pdVar31[1];\n        if (*(double *)(puVar38 + 0x43c8) <= dVar49) {\n          dVar46 = -dVar42 / dVar49;\n          if (-dVar42 / dVar49 <= in_f22_23) {\n            dVar46 = in_f22_23;\n          }\n          in_f22_23 = dVar46;\n          pdVar18 = *(double **)(unaff_s7 + 0x1c);\n          dVar46 = (double)(int)pdVar18;\n          if ((int)pdVar18 < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar18 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar46 - dVar42) / dVar49;\n          if (dVar43 <= in_f20_21) {\n            in_f20_21 = dVar43;\n          }\n        }\n        else if (dVar49 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar46 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar46 = (dVar46 - dVar42) / dVar49;\n          if (dVar46 <= in_f22_23) {\n            dVar46 = in_f22_23;\n          }\n          in_f22_23 = dVar46;\n          pdVar18 = (double *)((uint)((ulonglong)dVar42 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar42 / dVar49;\n          if (dVar43 <= -dVar42 / dVar49) {\n            in_f20_21 = dVar43;\n          }\n        }\n        else {\n          pdVar18 = (double *)puVar38;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar42) {\n            dVar42 = (double)(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0));\n            if (dVar42 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar28 = (uint)dVar42;\n            }\n            else {\n              uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar43;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar28) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }\n        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;\n      }\n      else {\n        if (dVar49 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar46 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar46 - dVar42) / dVar49;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar42 / dVar49 < in_f28_29) {\n            dVar43 = -dVar42 / dVar49;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar42) {\n          dVar42 = (double)(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0));\n          if (dVar42 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar28 = (uint)dVar42;\n          }\n          else {\n            uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar43;\n          if (uVar28 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar38 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar43 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar43;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar43 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar42 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar43 = (dVar43 - dVar42) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar43 < in_f20_21) {\n          uVar28 = (uint)dVar43;\n        }\n        else {\n          uVar28 = (int)(dVar43 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar18 = pdVar6;\n        pdVar31 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar6,unaff_s2,iVar4,uVar28);\n        if (pdVar31 != (double *)0x0) {\n          piVar19 = *(int **)((int)this + 0x18);\n          piVar50 = piVar19;\n          piVar21 = local_b8;\n          do {\n            piVar13 = piVar21;\n            piVar8 = piVar50;\n            iVar30 = piVar8[1];\n            iVar51 = piVar8[2];\n            iVar12 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar30;\n            piVar13[2] = iVar51;\n            piVar13[3] = iVar12;\n            piVar50 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar50 != piVar19 + 0x14);\n          iVar12 = piVar8[5];\n          piVar13[4] = *piVar50;\n          piVar13[5] = iVar12;\n          piVar50 = piVar19;\n          piVar21 = local_110;\n          do {\n            piVar13 = piVar21;\n            piVar8 = piVar50;\n            iVar30 = piVar8[1];\n            iVar51 = piVar8[2];\n            iVar12 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar30;\n            piVar13[2] = iVar51;\n            piVar13[3] = iVar12;\n            piVar50 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar50 != piVar19 + 0x14);\n          iVar12 = piVar8[5];\n          piVar13[4] = *piVar50;\n          piVar13[5] = iVar12;\n          dVar43 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar43; unaff_s2 = unaff_s2 + 1) {\n            pdVar18 = *(double **)((int)this + 0xc);\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar18[1] + in_f24_25 * pdVar18[3] + pdVar18[5];\n            local_178 = (double)unaff_s2 * *pdVar18 + in_f24_25 * pdVar18[2] + pdVar18[4];\n            local_164 = unaff_s4;\n            iVar12 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar5,0);\n            *(int *)((int)this + 0x28) = iVar12;\n            if (iVar12 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar3 != (int *)0x0) {\n              local_110[0] = *piVar3;\n              local_110[1] = piVar3[1];\n              local_100 = *(undefined8 *)(piVar3 + 0x92);\n              local_f8 = piVar3[8];\n              local_110[2] = piVar3[0xaf];\n              if (pdVar31 != (double *)0x0) {\n                iVar12 = piVar3[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4);\n                if (*(int *)(iVar12 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar12 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar12 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x44) * 4);\n                }\n              }\n            }\n            dVar42 = local_70 * in_f26_27;\n            dVar49 = local_c8 * in_f26_27;\n            dVar46 = (dVar42 + dVar49) - dVar42 * dVar49;\n            if (0.0 <= dVar46) {\n              local_c8 = dVar46;\n              if (in_f20_21 < dVar46) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar38 + 0x4a48);\n              if (0.0 <= dVar46) {\n                dVar47 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar47 = in_f22_23;\n            }\n            if (*(double *)(puVar38 + 0x43c8) <= dVar46 * dVar47) {\n              dVar47 = *(double *)((int)unaff_s3 + 0x4408) / dVar46;\n            }\n            else {\n              dVar47 = dVar47 / *(double *)(puVar38 + 0x43c8);\n            }\n            dVar46 = *(double *)((int)unaff_s3 + 0x4408) - dVar42;\n            local_e8 = (dVar49 * local_e8 * dVar46 + dVar42 * local_90) * dVar47;\n            local_e0 = (dVar49 * local_e0 * dVar46 + dVar42 * local_88) * dVar47;\n            local_d8 = (dVar49 * local_d8 * dVar46 + dVar42 * local_80) * dVar47;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar49 * local_d0 * dVar46 + dVar42 * local_78) * dVar47;\n            }\n            iVar12 = piVar3[0xb4];\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar12 + 0x28) != 0) {\n              *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar12 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar45 = (float)local_c8;\n              }\n              *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4) = fVar45;\n            }\n            pdVar31 = (double *)((int)pdVar31 + piVar3[0xb0] * 4);\n          }\n          pdVar18 = pdVar6;\n          iVar12 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar6,unaff_s4);\n          if (iVar12 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }\n        }\n      }\n      iVar4 = iVar4 + 1;\n      unaff_s6 = (double *)puVar38;\n    } while (iVar4 < (int)puVar7);\n  }" { (expression_statement "uVar5 = *(undefined4 *)((int)this + 0x14);" (assignment_expression "uVar5 = *(undefined4 *)((int)this + 0x14)" identifier = (pointer_expression "*(undefined4 *)((int)this + 0x14)" * (cast_expression "(undefined4 *)((int)this + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 0x14)" ( (binary_expression "(int)this + 0x14" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pdVar6 = *(double **)((int)this + 0x10);" (assignment_expression "pdVar6 = *(double **)((int)this + 0x10)" identifier = (pointer_expression "*(double **)((int)this + 0x10)" * (cast_expression "(double **)((int)this + 0x10)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)this + 0x10)" ( (binary_expression "(int)this + 0x10" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "unaff_s4 = *(int **)((int)this + 8);" (assignment_expression "unaff_s4 = *(int **)((int)this + 8)" identifier = (pointer_expression "*(int **)((int)this + 8)" * (cast_expression "(int **)((int)this + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)this + 8)" ( (binary_expression "(int)this + 8" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "unaff_s7 = *(uint *)((int)this + 4);" (assignment_expression "unaff_s7 = *(uint *)((int)this + 4)" identifier = (pointer_expression "*(uint *)((int)this + 4)" * (cast_expression "(uint *)((int)this + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 4)" ( (binary_expression "(int)this + 4" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) comment (expression_statement "piVar3 = *this;" (assignment_expression "piVar3 = *this" identifier = (pointer_expression "*this" * identifier)) ;) (expression_statement "puVar7 = (undefined *)((int)pdVar31 + (int)pdVar18);" (assignment_expression "puVar7 = (undefined *)((int)pdVar31 + (int)pdVar18)" identifier = (cast_expression "(undefined *)((int)pdVar31 + (int)pdVar18)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar31 + (int)pdVar18)" ( (binary_expression "(int)pdVar31 + (int)pdVar18" (cast_expression "(int)pdVar31" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pdVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "dVar41 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);" (assignment_expression "dVar41 = *(double *)(PTR_LAB_003f98e0 + 0x43c8)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43c8)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43c8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43c8" identifier + number_literal) ))))) ;) (expression_statement "in_f26_27 = *(double *)(PTR_LAB_003f98e0 + 0x4410);" (assignment_expression "in_f26_27 = *(double *)(PTR_LAB_003f98e0 + 0x4410)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4410)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4410)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4410" identifier + number_literal) ))))) ;) (expression_statement "in_f30_31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);" (assignment_expression "in_f30_31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4a48)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4a48)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4a48" identifier + number_literal) ))))) ;) (do_statement "do {\n      in_f24_25 = (double)iVar4;\n      pdVar31 = *(double **)((int)this + 0xc);\n      in_f20_21 = **(double **)((int)this + 0x1c);\n      in_f28_29 = (*(double **)((int)this + 0x1c))[2];\n      dVar42 = in_f24_25 * pdVar31[2] + pdVar31[4];\n      dVar49 = *pdVar31;\n      dVar43 = in_f28_29;\n      if (dVar41 <= dVar49) {\n        in_f22_23 = -dVar42 / dVar49;\n        if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }\n        dVar46 = (double)*(int *)(unaff_s7 + 0x18);\n        if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }\n        dVar49 = (dVar46 - dVar42) / dVar49;\n        if (dVar49 < in_f28_29) {\n          dVar43 = dVar49;\n        }\nLAB_000a3890:\n        dVar42 = in_f24_25 * pdVar31[3] + pdVar31[5];\n        dVar49 = pdVar31[1];\n        if (*(double *)(puVar38 + 0x43c8) <= dVar49) {\n          dVar46 = -dVar42 / dVar49;\n          if (-dVar42 / dVar49 <= in_f22_23) {\n            dVar46 = in_f22_23;\n          }\n          in_f22_23 = dVar46;\n          pdVar18 = *(double **)(unaff_s7 + 0x1c);\n          dVar46 = (double)(int)pdVar18;\n          if ((int)pdVar18 < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar18 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar46 - dVar42) / dVar49;\n          if (dVar43 <= in_f20_21) {\n            in_f20_21 = dVar43;\n          }\n        }\n        else if (dVar49 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar46 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar46 = (dVar46 - dVar42) / dVar49;\n          if (dVar46 <= in_f22_23) {\n            dVar46 = in_f22_23;\n          }\n          in_f22_23 = dVar46;\n          pdVar18 = (double *)((uint)((ulonglong)dVar42 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar42 / dVar49;\n          if (dVar43 <= -dVar42 / dVar49) {\n            in_f20_21 = dVar43;\n          }\n        }\n        else {\n          pdVar18 = (double *)puVar38;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar42) {\n            dVar42 = (double)(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0));\n            if (dVar42 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar28 = (uint)dVar42;\n            }\n            else {\n              uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar43;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar28) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }\n        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;\n      }\n      else {\n        if (dVar49 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar46 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar46 - dVar42) / dVar49;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar42 / dVar49 < in_f28_29) {\n            dVar43 = -dVar42 / dVar49;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar42) {\n          dVar42 = (double)(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0));\n          if (dVar42 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar28 = (uint)dVar42;\n          }\n          else {\n            uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar43;\n          if (uVar28 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar38 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar43 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar43;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar43 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar42 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar43 = (dVar43 - dVar42) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar43 < in_f20_21) {\n          uVar28 = (uint)dVar43;\n        }\n        else {\n          uVar28 = (int)(dVar43 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar18 = pdVar6;\n        pdVar31 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar6,unaff_s2,iVar4,uVar28);\n        if (pdVar31 != (double *)0x0) {\n          piVar19 = *(int **)((int)this + 0x18);\n          piVar50 = piVar19;\n          piVar21 = local_b8;\n          do {\n            piVar13 = piVar21;\n            piVar8 = piVar50;\n            iVar30 = piVar8[1];\n            iVar51 = piVar8[2];\n            iVar12 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar30;\n            piVar13[2] = iVar51;\n            piVar13[3] = iVar12;\n            piVar50 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar50 != piVar19 + 0x14);\n          iVar12 = piVar8[5];\n          piVar13[4] = *piVar50;\n          piVar13[5] = iVar12;\n          piVar50 = piVar19;\n          piVar21 = local_110;\n          do {\n            piVar13 = piVar21;\n            piVar8 = piVar50;\n            iVar30 = piVar8[1];\n            iVar51 = piVar8[2];\n            iVar12 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar30;\n            piVar13[2] = iVar51;\n            piVar13[3] = iVar12;\n            piVar50 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar50 != piVar19 + 0x14);\n          iVar12 = piVar8[5];\n          piVar13[4] = *piVar50;\n          piVar13[5] = iVar12;\n          dVar43 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar43; unaff_s2 = unaff_s2 + 1) {\n            pdVar18 = *(double **)((int)this + 0xc);\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar18[1] + in_f24_25 * pdVar18[3] + pdVar18[5];\n            local_178 = (double)unaff_s2 * *pdVar18 + in_f24_25 * pdVar18[2] + pdVar18[4];\n            local_164 = unaff_s4;\n            iVar12 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar5,0);\n            *(int *)((int)this + 0x28) = iVar12;\n            if (iVar12 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar3 != (int *)0x0) {\n              local_110[0] = *piVar3;\n              local_110[1] = piVar3[1];\n              local_100 = *(undefined8 *)(piVar3 + 0x92);\n              local_f8 = piVar3[8];\n              local_110[2] = piVar3[0xaf];\n              if (pdVar31 != (double *)0x0) {\n                iVar12 = piVar3[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4);\n                if (*(int *)(iVar12 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar12 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar12 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x44) * 4);\n                }\n              }\n            }\n            dVar42 = local_70 * in_f26_27;\n            dVar49 = local_c8 * in_f26_27;\n            dVar46 = (dVar42 + dVar49) - dVar42 * dVar49;\n            if (0.0 <= dVar46) {\n              local_c8 = dVar46;\n              if (in_f20_21 < dVar46) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar38 + 0x4a48);\n              if (0.0 <= dVar46) {\n                dVar47 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar47 = in_f22_23;\n            }\n            if (*(double *)(puVar38 + 0x43c8) <= dVar46 * dVar47) {\n              dVar47 = *(double *)((int)unaff_s3 + 0x4408) / dVar46;\n            }\n            else {\n              dVar47 = dVar47 / *(double *)(puVar38 + 0x43c8);\n            }\n            dVar46 = *(double *)((int)unaff_s3 + 0x4408) - dVar42;\n            local_e8 = (dVar49 * local_e8 * dVar46 + dVar42 * local_90) * dVar47;\n            local_e0 = (dVar49 * local_e0 * dVar46 + dVar42 * local_88) * dVar47;\n            local_d8 = (dVar49 * local_d8 * dVar46 + dVar42 * local_80) * dVar47;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar49 * local_d0 * dVar46 + dVar42 * local_78) * dVar47;\n            }\n            iVar12 = piVar3[0xb4];\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar12 + 0x28) != 0) {\n              *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar12 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar45 = (float)local_c8;\n              }\n              *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4) = fVar45;\n            }\n            pdVar31 = (double *)((int)pdVar31 + piVar3[0xb0] * 4);\n          }\n          pdVar18 = pdVar6;\n          iVar12 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar6,unaff_s4);\n          if (iVar12 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }\n        }\n      }\n      iVar4 = iVar4 + 1;\n      unaff_s6 = (double *)puVar38;\n    } while (iVar4 < (int)puVar7);" do (compound_statement "{\n      in_f24_25 = (double)iVar4;\n      pdVar31 = *(double **)((int)this + 0xc);\n      in_f20_21 = **(double **)((int)this + 0x1c);\n      in_f28_29 = (*(double **)((int)this + 0x1c))[2];\n      dVar42 = in_f24_25 * pdVar31[2] + pdVar31[4];\n      dVar49 = *pdVar31;\n      dVar43 = in_f28_29;\n      if (dVar41 <= dVar49) {\n        in_f22_23 = -dVar42 / dVar49;\n        if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }\n        dVar46 = (double)*(int *)(unaff_s7 + 0x18);\n        if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }\n        dVar49 = (dVar46 - dVar42) / dVar49;\n        if (dVar49 < in_f28_29) {\n          dVar43 = dVar49;\n        }\nLAB_000a3890:\n        dVar42 = in_f24_25 * pdVar31[3] + pdVar31[5];\n        dVar49 = pdVar31[1];\n        if (*(double *)(puVar38 + 0x43c8) <= dVar49) {\n          dVar46 = -dVar42 / dVar49;\n          if (-dVar42 / dVar49 <= in_f22_23) {\n            dVar46 = in_f22_23;\n          }\n          in_f22_23 = dVar46;\n          pdVar18 = *(double **)(unaff_s7 + 0x1c);\n          dVar46 = (double)(int)pdVar18;\n          if ((int)pdVar18 < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar18 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar46 - dVar42) / dVar49;\n          if (dVar43 <= in_f20_21) {\n            in_f20_21 = dVar43;\n          }\n        }\n        else if (dVar49 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar46 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar46 = (dVar46 - dVar42) / dVar49;\n          if (dVar46 <= in_f22_23) {\n            dVar46 = in_f22_23;\n          }\n          in_f22_23 = dVar46;\n          pdVar18 = (double *)((uint)((ulonglong)dVar42 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar42 / dVar49;\n          if (dVar43 <= -dVar42 / dVar49) {\n            in_f20_21 = dVar43;\n          }\n        }\n        else {\n          pdVar18 = (double *)puVar38;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar42) {\n            dVar42 = (double)(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0));\n            if (dVar42 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar28 = (uint)dVar42;\n            }\n            else {\n              uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar43;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar28) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }\n        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;\n      }\n      else {\n        if (dVar49 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar46 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar46 - dVar42) / dVar49;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar42 / dVar49 < in_f28_29) {\n            dVar43 = -dVar42 / dVar49;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar42) {\n          dVar42 = (double)(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0));\n          if (dVar42 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar28 = (uint)dVar42;\n          }\n          else {\n            uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar43;\n          if (uVar28 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar38 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar43 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar43;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar43 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar42 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar43 = (dVar43 - dVar42) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar43 < in_f20_21) {\n          uVar28 = (uint)dVar43;\n        }\n        else {\n          uVar28 = (int)(dVar43 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar18 = pdVar6;\n        pdVar31 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar6,unaff_s2,iVar4,uVar28);\n        if (pdVar31 != (double *)0x0) {\n          piVar19 = *(int **)((int)this + 0x18);\n          piVar50 = piVar19;\n          piVar21 = local_b8;\n          do {\n            piVar13 = piVar21;\n            piVar8 = piVar50;\n            iVar30 = piVar8[1];\n            iVar51 = piVar8[2];\n            iVar12 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar30;\n            piVar13[2] = iVar51;\n            piVar13[3] = iVar12;\n            piVar50 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar50 != piVar19 + 0x14);\n          iVar12 = piVar8[5];\n          piVar13[4] = *piVar50;\n          piVar13[5] = iVar12;\n          piVar50 = piVar19;\n          piVar21 = local_110;\n          do {\n            piVar13 = piVar21;\n            piVar8 = piVar50;\n            iVar30 = piVar8[1];\n            iVar51 = piVar8[2];\n            iVar12 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar30;\n            piVar13[2] = iVar51;\n            piVar13[3] = iVar12;\n            piVar50 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar50 != piVar19 + 0x14);\n          iVar12 = piVar8[5];\n          piVar13[4] = *piVar50;\n          piVar13[5] = iVar12;\n          dVar43 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar43; unaff_s2 = unaff_s2 + 1) {\n            pdVar18 = *(double **)((int)this + 0xc);\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar18[1] + in_f24_25 * pdVar18[3] + pdVar18[5];\n            local_178 = (double)unaff_s2 * *pdVar18 + in_f24_25 * pdVar18[2] + pdVar18[4];\n            local_164 = unaff_s4;\n            iVar12 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar5,0);\n            *(int *)((int)this + 0x28) = iVar12;\n            if (iVar12 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar3 != (int *)0x0) {\n              local_110[0] = *piVar3;\n              local_110[1] = piVar3[1];\n              local_100 = *(undefined8 *)(piVar3 + 0x92);\n              local_f8 = piVar3[8];\n              local_110[2] = piVar3[0xaf];\n              if (pdVar31 != (double *)0x0) {\n                iVar12 = piVar3[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4);\n                if (*(int *)(iVar12 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar12 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar12 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x44) * 4);\n                }\n              }\n            }\n            dVar42 = local_70 * in_f26_27;\n            dVar49 = local_c8 * in_f26_27;\n            dVar46 = (dVar42 + dVar49) - dVar42 * dVar49;\n            if (0.0 <= dVar46) {\n              local_c8 = dVar46;\n              if (in_f20_21 < dVar46) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar38 + 0x4a48);\n              if (0.0 <= dVar46) {\n                dVar47 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar47 = in_f22_23;\n            }\n            if (*(double *)(puVar38 + 0x43c8) <= dVar46 * dVar47) {\n              dVar47 = *(double *)((int)unaff_s3 + 0x4408) / dVar46;\n            }\n            else {\n              dVar47 = dVar47 / *(double *)(puVar38 + 0x43c8);\n            }\n            dVar46 = *(double *)((int)unaff_s3 + 0x4408) - dVar42;\n            local_e8 = (dVar49 * local_e8 * dVar46 + dVar42 * local_90) * dVar47;\n            local_e0 = (dVar49 * local_e0 * dVar46 + dVar42 * local_88) * dVar47;\n            local_d8 = (dVar49 * local_d8 * dVar46 + dVar42 * local_80) * dVar47;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar49 * local_d0 * dVar46 + dVar42 * local_78) * dVar47;\n            }\n            iVar12 = piVar3[0xb4];\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar12 + 0x28) != 0) {\n              *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar12 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar45 = (float)local_c8;\n              }\n              *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4) = fVar45;\n            }\n            pdVar31 = (double *)((int)pdVar31 + piVar3[0xb0] * 4);\n          }\n          pdVar18 = pdVar6;\n          iVar12 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar6,unaff_s4);\n          if (iVar12 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }\n        }\n      }\n      iVar4 = iVar4 + 1;\n      unaff_s6 = (double *)puVar38;\n    }" { (expression_statement "in_f24_25 = (double)iVar4;" (assignment_expression "in_f24_25 = (double)iVar4" identifier = (cast_expression "(double)iVar4" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "pdVar31 = *(double **)((int)this + 0xc);" (assignment_expression "pdVar31 = *(double **)((int)this + 0xc)" identifier = (pointer_expression "*(double **)((int)this + 0xc)" * (cast_expression "(double **)((int)this + 0xc)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)this + 0xc)" ( (binary_expression "(int)this + 0xc" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "in_f20_21 = **(double **)((int)this + 0x1c);" (assignment_expression "in_f20_21 = **(double **)((int)this + 0x1c)" identifier = (pointer_expression "**(double **)((int)this + 0x1c)" * (pointer_expression "*(double **)((int)this + 0x1c)" * (cast_expression "(double **)((int)this + 0x1c)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)this + 0x1c)" ( (binary_expression "(int)this + 0x1c" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (expression_statement "in_f28_29 = (*(double **)((int)this + 0x1c))[2];" (assignment_expression "in_f28_29 = (*(double **)((int)this + 0x1c))[2]" identifier = (subscript_expression "(*(double **)((int)this + 0x1c))[2]" (parenthesized_expression "(*(double **)((int)this + 0x1c))" ( (pointer_expression "*(double **)((int)this + 0x1c)" * (cast_expression "(double **)((int)this + 0x1c)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)this + 0x1c)" ( (binary_expression "(int)this + 0x1c" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )) [ number_literal ])) ;) (expression_statement "dVar42 = in_f24_25 * pdVar31[2] + pdVar31[4];" (assignment_expression "dVar42 = in_f24_25 * pdVar31[2] + pdVar31[4]" identifier = (binary_expression "in_f24_25 * pdVar31[2] + pdVar31[4]" (binary_expression "in_f24_25 * pdVar31[2]" identifier * (subscript_expression "pdVar31[2]" identifier [ number_literal ])) + (subscript_expression "pdVar31[4]" identifier [ number_literal ]))) ;) (expression_statement "dVar49 = *pdVar31;" (assignment_expression "dVar49 = *pdVar31" identifier = (pointer_expression "*pdVar31" * identifier)) ;) (expression_statement "dVar43 = in_f28_29;" (assignment_expression "dVar43 = in_f28_29" identifier = identifier) ;) (if_statement "if (dVar41 <= dVar49) {\n        in_f22_23 = -dVar42 / dVar49;\n        if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }\n        dVar46 = (double)*(int *)(unaff_s7 + 0x18);\n        if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }\n        dVar49 = (dVar46 - dVar42) / dVar49;\n        if (dVar49 < in_f28_29) {\n          dVar43 = dVar49;\n        }\nLAB_000a3890:\n        dVar42 = in_f24_25 * pdVar31[3] + pdVar31[5];\n        dVar49 = pdVar31[1];\n        if (*(double *)(puVar38 + 0x43c8) <= dVar49) {\n          dVar46 = -dVar42 / dVar49;\n          if (-dVar42 / dVar49 <= in_f22_23) {\n            dVar46 = in_f22_23;\n          }\n          in_f22_23 = dVar46;\n          pdVar18 = *(double **)(unaff_s7 + 0x1c);\n          dVar46 = (double)(int)pdVar18;\n          if ((int)pdVar18 < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar18 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar46 - dVar42) / dVar49;\n          if (dVar43 <= in_f20_21) {\n            in_f20_21 = dVar43;\n          }\n        }\n        else if (dVar49 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar46 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar46 = (dVar46 - dVar42) / dVar49;\n          if (dVar46 <= in_f22_23) {\n            dVar46 = in_f22_23;\n          }\n          in_f22_23 = dVar46;\n          pdVar18 = (double *)((uint)((ulonglong)dVar42 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar42 / dVar49;\n          if (dVar43 <= -dVar42 / dVar49) {\n            in_f20_21 = dVar43;\n          }\n        }\n        else {\n          pdVar18 = (double *)puVar38;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar42) {\n            dVar42 = (double)(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0));\n            if (dVar42 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar28 = (uint)dVar42;\n            }\n            else {\n              uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar43;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar28) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }\n        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;\n      }\n      else {\n        if (dVar49 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar46 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar46 - dVar42) / dVar49;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar42 / dVar49 < in_f28_29) {\n            dVar43 = -dVar42 / dVar49;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar42) {\n          dVar42 = (double)(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0));\n          if (dVar42 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar28 = (uint)dVar42;\n          }\n          else {\n            uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar43;\n          if (uVar28 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar38 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar43 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar43;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar43 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar42 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar43 = (dVar43 - dVar42) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar43 < in_f20_21) {\n          uVar28 = (uint)dVar43;\n        }\n        else {\n          uVar28 = (int)(dVar43 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar18 = pdVar6;\n        pdVar31 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar6,unaff_s2,iVar4,uVar28);\n        if (pdVar31 != (double *)0x0) {\n          piVar19 = *(int **)((int)this + 0x18);\n          piVar50 = piVar19;\n          piVar21 = local_b8;\n          do {\n            piVar13 = piVar21;\n            piVar8 = piVar50;\n            iVar30 = piVar8[1];\n            iVar51 = piVar8[2];\n            iVar12 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar30;\n            piVar13[2] = iVar51;\n            piVar13[3] = iVar12;\n            piVar50 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar50 != piVar19 + 0x14);\n          iVar12 = piVar8[5];\n          piVar13[4] = *piVar50;\n          piVar13[5] = iVar12;\n          piVar50 = piVar19;\n          piVar21 = local_110;\n          do {\n            piVar13 = piVar21;\n            piVar8 = piVar50;\n            iVar30 = piVar8[1];\n            iVar51 = piVar8[2];\n            iVar12 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar30;\n            piVar13[2] = iVar51;\n            piVar13[3] = iVar12;\n            piVar50 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar50 != piVar19 + 0x14);\n          iVar12 = piVar8[5];\n          piVar13[4] = *piVar50;\n          piVar13[5] = iVar12;\n          dVar43 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar43; unaff_s2 = unaff_s2 + 1) {\n            pdVar18 = *(double **)((int)this + 0xc);\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar18[1] + in_f24_25 * pdVar18[3] + pdVar18[5];\n            local_178 = (double)unaff_s2 * *pdVar18 + in_f24_25 * pdVar18[2] + pdVar18[4];\n            local_164 = unaff_s4;\n            iVar12 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar5,0);\n            *(int *)((int)this + 0x28) = iVar12;\n            if (iVar12 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar3 != (int *)0x0) {\n              local_110[0] = *piVar3;\n              local_110[1] = piVar3[1];\n              local_100 = *(undefined8 *)(piVar3 + 0x92);\n              local_f8 = piVar3[8];\n              local_110[2] = piVar3[0xaf];\n              if (pdVar31 != (double *)0x0) {\n                iVar12 = piVar3[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4);\n                if (*(int *)(iVar12 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar12 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar12 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x44) * 4);\n                }\n              }\n            }\n            dVar42 = local_70 * in_f26_27;\n            dVar49 = local_c8 * in_f26_27;\n            dVar46 = (dVar42 + dVar49) - dVar42 * dVar49;\n            if (0.0 <= dVar46) {\n              local_c8 = dVar46;\n              if (in_f20_21 < dVar46) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar38 + 0x4a48);\n              if (0.0 <= dVar46) {\n                dVar47 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar47 = in_f22_23;\n            }\n            if (*(double *)(puVar38 + 0x43c8) <= dVar46 * dVar47) {\n              dVar47 = *(double *)((int)unaff_s3 + 0x4408) / dVar46;\n            }\n            else {\n              dVar47 = dVar47 / *(double *)(puVar38 + 0x43c8);\n            }\n            dVar46 = *(double *)((int)unaff_s3 + 0x4408) - dVar42;\n            local_e8 = (dVar49 * local_e8 * dVar46 + dVar42 * local_90) * dVar47;\n            local_e0 = (dVar49 * local_e0 * dVar46 + dVar42 * local_88) * dVar47;\n            local_d8 = (dVar49 * local_d8 * dVar46 + dVar42 * local_80) * dVar47;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar49 * local_d0 * dVar46 + dVar42 * local_78) * dVar47;\n            }\n            iVar12 = piVar3[0xb4];\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar12 + 0x28) != 0) {\n              *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar12 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar45 = (float)local_c8;\n              }\n              *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4) = fVar45;\n            }\n            pdVar31 = (double *)((int)pdVar31 + piVar3[0xb0] * 4);\n          }\n          pdVar18 = pdVar6;\n          iVar12 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar6,unaff_s4);\n          if (iVar12 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }\n        }\n      }" if (parenthesized_expression "(dVar41 <= dVar49)" ( (binary_expression "dVar41 <= dVar49" identifier <= identifier) )) (compound_statement "{\n        in_f22_23 = -dVar42 / dVar49;\n        if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }\n        dVar46 = (double)*(int *)(unaff_s7 + 0x18);\n        if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }\n        dVar49 = (dVar46 - dVar42) / dVar49;\n        if (dVar49 < in_f28_29) {\n          dVar43 = dVar49;\n        }\nLAB_000a3890:\n        dVar42 = in_f24_25 * pdVar31[3] + pdVar31[5];\n        dVar49 = pdVar31[1];\n        if (*(double *)(puVar38 + 0x43c8) <= dVar49) {\n          dVar46 = -dVar42 / dVar49;\n          if (-dVar42 / dVar49 <= in_f22_23) {\n            dVar46 = in_f22_23;\n          }\n          in_f22_23 = dVar46;\n          pdVar18 = *(double **)(unaff_s7 + 0x1c);\n          dVar46 = (double)(int)pdVar18;\n          if ((int)pdVar18 < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar18 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar46 - dVar42) / dVar49;\n          if (dVar43 <= in_f20_21) {\n            in_f20_21 = dVar43;\n          }\n        }\n        else if (dVar49 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar46 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar46 = (dVar46 - dVar42) / dVar49;\n          if (dVar46 <= in_f22_23) {\n            dVar46 = in_f22_23;\n          }\n          in_f22_23 = dVar46;\n          pdVar18 = (double *)((uint)((ulonglong)dVar42 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar42 / dVar49;\n          if (dVar43 <= -dVar42 / dVar49) {\n            in_f20_21 = dVar43;\n          }\n        }\n        else {\n          pdVar18 = (double *)puVar38;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar42) {\n            dVar42 = (double)(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0));\n            if (dVar42 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar28 = (uint)dVar42;\n            }\n            else {\n              uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar43;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar28) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }\n        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;\n      }" { (expression_statement "in_f22_23 = -dVar42 / dVar49;" (assignment_expression "in_f22_23 = -dVar42 / dVar49" identifier = (binary_expression "-dVar42 / dVar49" (unary_expression "-dVar42" - identifier) / identifier)) ;) (if_statement "if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }" if (parenthesized_expression "(in_f22_23 <= in_f20_21)" ( (binary_expression "in_f22_23 <= in_f20_21" identifier <= identifier) )) (compound_statement "{\n          in_f22_23 = in_f20_21;\n        }" { (expression_statement "in_f22_23 = in_f20_21;" (assignment_expression "in_f22_23 = in_f20_21" identifier = identifier) ;) })) (expression_statement "dVar46 = (double)*(int *)(unaff_s7 + 0x18);" (assignment_expression "dVar46 = (double)*(int *)(unaff_s7 + 0x18)" identifier = (cast_expression "(double)*(int *)(unaff_s7 + 0x18)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(unaff_s7 + 0x18)" * (cast_expression "(int *)(unaff_s7 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x18)" ( (binary_expression "unaff_s7 + 0x18" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }" if (parenthesized_expression "(*(int *)(unaff_s7 + 0x18) < 0)" ( (binary_expression "*(int *)(unaff_s7 + 0x18) < 0" (pointer_expression "*(int *)(unaff_s7 + 0x18)" * (cast_expression "(int *)(unaff_s7 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x18)" ( (binary_expression "unaff_s7 + 0x18" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n          dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }" { (expression_statement "dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);" (assignment_expression "dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" identifier = (binary_expression "dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" identifier + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e8)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e8" identifier + number_literal) )))))) ;) })) (expression_statement "dVar49 = (dVar46 - dVar42) / dVar49;" (assignment_expression "dVar49 = (dVar46 - dVar42) / dVar49" identifier = (binary_expression "(dVar46 - dVar42) / dVar49" (parenthesized_expression "(dVar46 - dVar42)" ( (binary_expression "dVar46 - dVar42" identifier - identifier) )) / identifier)) ;) (if_statement "if (dVar49 < in_f28_29) {\n          dVar43 = dVar49;\n        }" if (parenthesized_expression "(dVar49 < in_f28_29)" ( (binary_expression "dVar49 < in_f28_29" identifier < identifier) )) (compound_statement "{\n          dVar43 = dVar49;\n        }" { (expression_statement "dVar43 = dVar49;" (assignment_expression "dVar43 = dVar49" identifier = identifier) ;) })) (labeled_statement "LAB_000a3890:\n        dVar42 = in_f24_25 * pdVar31[3] + pdVar31[5];" statement_identifier : (expression_statement "dVar42 = in_f24_25 * pdVar31[3] + pdVar31[5];" (assignment_expression "dVar42 = in_f24_25 * pdVar31[3] + pdVar31[5]" identifier = (binary_expression "in_f24_25 * pdVar31[3] + pdVar31[5]" (binary_expression "in_f24_25 * pdVar31[3]" identifier * (subscript_expression "pdVar31[3]" identifier [ number_literal ])) + (subscript_expression "pdVar31[5]" identifier [ number_literal ]))) ;)) (expression_statement "dVar49 = pdVar31[1];" (assignment_expression "dVar49 = pdVar31[1]" identifier = (subscript_expression "pdVar31[1]" identifier [ number_literal ])) ;) (if_statement "if (*(double *)(puVar38 + 0x43c8) <= dVar49) {\n          dVar46 = -dVar42 / dVar49;\n          if (-dVar42 / dVar49 <= in_f22_23) {\n            dVar46 = in_f22_23;\n          }\n          in_f22_23 = dVar46;\n          pdVar18 = *(double **)(unaff_s7 + 0x1c);\n          dVar46 = (double)(int)pdVar18;\n          if ((int)pdVar18 < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar18 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar46 - dVar42) / dVar49;\n          if (dVar43 <= in_f20_21) {\n            in_f20_21 = dVar43;\n          }\n        }\n        else if (dVar49 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar46 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar46 = (dVar46 - dVar42) / dVar49;\n          if (dVar46 <= in_f22_23) {\n            dVar46 = in_f22_23;\n          }\n          in_f22_23 = dVar46;\n          pdVar18 = (double *)((uint)((ulonglong)dVar42 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar42 / dVar49;\n          if (dVar43 <= -dVar42 / dVar49) {\n            in_f20_21 = dVar43;\n          }\n        }\n        else {\n          pdVar18 = (double *)puVar38;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar42) {\n            dVar42 = (double)(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0));\n            if (dVar42 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar28 = (uint)dVar42;\n            }\n            else {\n              uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar43;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar28) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }" if (parenthesized_expression "(*(double *)(puVar38 + 0x43c8) <= dVar49)" ( (binary_expression "*(double *)(puVar38 + 0x43c8) <= dVar49" (pointer_expression "*(double *)(puVar38 + 0x43c8)" * (cast_expression "(double *)(puVar38 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x43c8)" ( (binary_expression "puVar38 + 0x43c8" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n          dVar46 = -dVar42 / dVar49;\n          if (-dVar42 / dVar49 <= in_f22_23) {\n            dVar46 = in_f22_23;\n          }\n          in_f22_23 = dVar46;\n          pdVar18 = *(double **)(unaff_s7 + 0x1c);\n          dVar46 = (double)(int)pdVar18;\n          if ((int)pdVar18 < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar18 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar46 - dVar42) / dVar49;\n          if (dVar43 <= in_f20_21) {\n            in_f20_21 = dVar43;\n          }\n        }" { (expression_statement "dVar46 = -dVar42 / dVar49;" (assignment_expression "dVar46 = -dVar42 / dVar49" identifier = (binary_expression "-dVar42 / dVar49" (unary_expression "-dVar42" - identifier) / identifier)) ;) (if_statement "if (-dVar42 / dVar49 <= in_f22_23) {\n            dVar46 = in_f22_23;\n          }" if (parenthesized_expression "(-dVar42 / dVar49 <= in_f22_23)" ( (binary_expression "-dVar42 / dVar49 <= in_f22_23" (binary_expression "-dVar42 / dVar49" (unary_expression "-dVar42" - identifier) / identifier) <= identifier) )) (compound_statement "{\n            dVar46 = in_f22_23;\n          }" { (expression_statement "dVar46 = in_f22_23;" (assignment_expression "dVar46 = in_f22_23" identifier = identifier) ;) })) (expression_statement "in_f22_23 = dVar46;" (assignment_expression "in_f22_23 = dVar46" identifier = identifier) ;) (expression_statement "pdVar18 = *(double **)(unaff_s7 + 0x1c);" (assignment_expression "pdVar18 = *(double **)(unaff_s7 + 0x1c)" identifier = (pointer_expression "*(double **)(unaff_s7 + 0x1c)" * (cast_expression "(double **)(unaff_s7 + 0x1c)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s7 + 0x1c)" ( (binary_expression "unaff_s7 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "dVar46 = (double)(int)pdVar18;" (assignment_expression "dVar46 = (double)(int)pdVar18" identifier = (cast_expression "(double)(int)pdVar18" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pdVar18" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)pdVar18 < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar18 = (double *)PTR_LAB_003f98e0;\n          }" if (parenthesized_expression "((int)pdVar18 < 0)" ( (binary_expression "(int)pdVar18 < 0" (cast_expression "(int)pdVar18" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar18 = (double *)PTR_LAB_003f98e0;\n          }" { (expression_statement "dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);" (assignment_expression "dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" identifier = (binary_expression "dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" identifier + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e8)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e8" identifier + number_literal) )))))) ;) (expression_statement "pdVar18 = (double *)PTR_LAB_003f98e0;" (assignment_expression "pdVar18 = (double *)PTR_LAB_003f98e0" identifier = (cast_expression "(double *)PTR_LAB_003f98e0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "in_f20_21 = (dVar46 - dVar42) / dVar49;" (assignment_expression "in_f20_21 = (dVar46 - dVar42) / dVar49" identifier = (binary_expression "(dVar46 - dVar42) / dVar49" (parenthesized_expression "(dVar46 - dVar42)" ( (binary_expression "dVar46 - dVar42" identifier - identifier) )) / identifier)) ;) (if_statement "if (dVar43 <= in_f20_21) {\n            in_f20_21 = dVar43;\n          }" if (parenthesized_expression "(dVar43 <= in_f20_21)" ( (binary_expression "dVar43 <= in_f20_21" identifier <= identifier) )) (compound_statement "{\n            in_f20_21 = dVar43;\n          }" { (expression_statement "in_f20_21 = dVar43;" (assignment_expression "in_f20_21 = dVar43" identifier = identifier) ;) })) }) (else_clause "else if (dVar49 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar46 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar46 = (dVar46 - dVar42) / dVar49;\n          if (dVar46 <= in_f22_23) {\n            dVar46 = in_f22_23;\n          }\n          in_f22_23 = dVar46;\n          pdVar18 = (double *)((uint)((ulonglong)dVar42 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar42 / dVar49;\n          if (dVar43 <= -dVar42 / dVar49) {\n            in_f20_21 = dVar43;\n          }\n        }\n        else {\n          pdVar18 = (double *)puVar38;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar42) {\n            dVar42 = (double)(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0));\n            if (dVar42 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar28 = (uint)dVar42;\n            }\n            else {\n              uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar43;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar28) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }" else (if_statement "if (dVar49 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar46 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar46 = (dVar46 - dVar42) / dVar49;\n          if (dVar46 <= in_f22_23) {\n            dVar46 = in_f22_23;\n          }\n          in_f22_23 = dVar46;\n          pdVar18 = (double *)((uint)((ulonglong)dVar42 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar42 / dVar49;\n          if (dVar43 <= -dVar42 / dVar49) {\n            in_f20_21 = dVar43;\n          }\n        }\n        else {\n          pdVar18 = (double *)puVar38;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar42) {\n            dVar42 = (double)(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0));\n            if (dVar42 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar28 = (uint)dVar42;\n            }\n            else {\n              uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar43;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar28) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }" if (parenthesized_expression "(dVar49 < *(double *)(PTR_UINT_003f98e4 + 0x65b8))" ( (binary_expression "dVar49 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)" identifier < (pointer_expression "*(double *)(PTR_UINT_003f98e4 + 0x65b8)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + 0x65b8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + 0x65b8)" ( (binary_expression "PTR_UINT_003f98e4 + 0x65b8" identifier + number_literal) ))))) )) (compound_statement "{\n          dVar46 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar46 = (dVar46 - dVar42) / dVar49;\n          if (dVar46 <= in_f22_23) {\n            dVar46 = in_f22_23;\n          }\n          in_f22_23 = dVar46;\n          pdVar18 = (double *)((uint)((ulonglong)dVar42 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar42 / dVar49;\n          if (dVar43 <= -dVar42 / dVar49) {\n            in_f20_21 = dVar43;\n          }\n        }" { (expression_statement "dVar46 = (double)*(int *)(unaff_s7 + 0x1c);" (assignment_expression "dVar46 = (double)*(int *)(unaff_s7 + 0x1c)" identifier = (cast_expression "(double)*(int *)(unaff_s7 + 0x1c)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(unaff_s7 + 0x1c)" * (cast_expression "(int *)(unaff_s7 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x1c)" ( (binary_expression "unaff_s7 + 0x1c" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }" if (parenthesized_expression "(*(int *)(unaff_s7 + 0x1c) < 0)" ( (binary_expression "*(int *)(unaff_s7 + 0x1c) < 0" (pointer_expression "*(int *)(unaff_s7 + 0x1c)" * (cast_expression "(int *)(unaff_s7 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x1c)" ( (binary_expression "unaff_s7 + 0x1c" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }" { (expression_statement "dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);" (assignment_expression "dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" identifier = (binary_expression "dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" identifier + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e8)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e8" identifier + number_literal) )))))) ;) })) (expression_statement "dVar46 = (dVar46 - dVar42) / dVar49;" (assignment_expression "dVar46 = (dVar46 - dVar42) / dVar49" identifier = (binary_expression "(dVar46 - dVar42) / dVar49" (parenthesized_expression "(dVar46 - dVar42)" ( (binary_expression "dVar46 - dVar42" identifier - identifier) )) / identifier)) ;) (if_statement "if (dVar46 <= in_f22_23) {\n            dVar46 = in_f22_23;\n          }" if (parenthesized_expression "(dVar46 <= in_f22_23)" ( (binary_expression "dVar46 <= in_f22_23" identifier <= identifier) )) (compound_statement "{\n            dVar46 = in_f22_23;\n          }" { (expression_statement "dVar46 = in_f22_23;" (assignment_expression "dVar46 = in_f22_23" identifier = identifier) ;) })) (expression_statement "in_f22_23 = dVar46;" (assignment_expression "in_f22_23 = dVar46" identifier = identifier) ;) (expression_statement "pdVar18 = (double *)((uint)((ulonglong)dVar42 >> 0x20) ^ 0x80000000);" (assignment_expression "pdVar18 = (double *)((uint)((ulonglong)dVar42 >> 0x20) ^ 0x80000000)" identifier = (cast_expression "(double *)((uint)((ulonglong)dVar42 >> 0x20) ^ 0x80000000)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)((ulonglong)dVar42 >> 0x20) ^ 0x80000000)" ( (binary_expression "(uint)((ulonglong)dVar42 >> 0x20) ^ 0x80000000" (call_expression "(uint)((ulonglong)dVar42 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)dVar42 >> 0x20)" ( (binary_expression "(ulonglong)dVar42 >> 0x20" (cast_expression "(ulonglong)dVar42" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) ^ number_literal) )))) ;) (expression_statement "in_f20_21 = -dVar42 / dVar49;" (assignment_expression "in_f20_21 = -dVar42 / dVar49" identifier = (binary_expression "-dVar42 / dVar49" (unary_expression "-dVar42" - identifier) / identifier)) ;) (if_statement "if (dVar43 <= -dVar42 / dVar49) {\n            in_f20_21 = dVar43;\n          }" if (parenthesized_expression "(dVar43 <= -dVar42 / dVar49)" ( (binary_expression "dVar43 <= -dVar42 / dVar49" identifier <= (binary_expression "-dVar42 / dVar49" (unary_expression "-dVar42" - identifier) / identifier)) )) (compound_statement "{\n            in_f20_21 = dVar43;\n          }" { (expression_statement "in_f20_21 = dVar43;" (assignment_expression "in_f20_21 = dVar43" identifier = identifier) ;) })) }) (else_clause "else {\n          pdVar18 = (double *)puVar38;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar42) {\n            dVar42 = (double)(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0));\n            if (dVar42 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar28 = (uint)dVar42;\n            }\n            else {\n              uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar43;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar28) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }" else (compound_statement "{\n          pdVar18 = (double *)puVar38;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar42) {\n            dVar42 = (double)(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0));\n            if (dVar42 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar28 = (uint)dVar42;\n            }\n            else {\n              uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar43;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar28) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }" { (expression_statement "pdVar18 = (double *)puVar38;" (assignment_expression "pdVar18 = (double *)puVar38" identifier = (cast_expression "(double *)puVar38" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "in_f20_21 = in_f28_29;" (assignment_expression "in_f20_21 = in_f28_29" identifier = identifier) ;) (if_statement "if (0.0 <= dVar42) {\n            dVar42 = (double)(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0));\n            if (dVar42 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar28 = (uint)dVar42;\n            }\n            else {\n              uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar43;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar28) {\n              in_f20_21 = in_f28_29;\n            }\n          }" if (parenthesized_expression "(0.0 <= dVar42)" ( (binary_expression "0.0 <= dVar42" number_literal <= identifier) )) (compound_statement "{\n            dVar42 = (double)(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0));\n            if (dVar42 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar28 = (uint)dVar42;\n            }\n            else {\n              uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar43;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar28) {\n              in_f20_21 = in_f28_29;\n            }\n          }" { (expression_statement "dVar42 = (double)(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0));" (assignment_expression "dVar42 = (double)(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0))" identifier = (cast_expression "(double)(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0))" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0))" (parenthesized_expression "(*(code *)PTR_floor_003fa688)" ( (pointer_expression "*(code *)PTR_floor_003fa688" * (cast_expression "(code *)PTR_floor_003fa688" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar42 + *(double *)(puVar38 + 0x43d0))" ( (binary_expression "dVar42 + *(double *)(puVar38 + 0x43d0)" identifier + (pointer_expression "*(double *)(puVar38 + 0x43d0)" * (cast_expression "(double *)(puVar38 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x43d0)" ( (binary_expression "puVar38 + 0x43d0" identifier + number_literal) ))))) ))))) ;) (if_statement "if (dVar42 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar28 = (uint)dVar42;\n            }\n            else {\n              uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }" if (parenthesized_expression "(dVar42 < *(double *)(PTR_LAB_003f98e0 + 0x43e0))" ( (binary_expression "dVar42 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier < (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) ))))) )) (compound_statement "{\n              uVar28 = (uint)dVar42;\n            }" { (expression_statement "uVar28 = (uint)dVar42;" (assignment_expression "uVar28 = (uint)dVar42" identifier = (cast_expression "(uint)dVar42" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n              uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }" else (compound_statement "{\n              uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }" { (expression_statement "uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;" (assignment_expression "uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000" identifier = (binary_expression "(int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000" (cast_expression "(int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0))" ( (binary_expression "dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier - (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "in_f20_21 = dVar43;" (assignment_expression "in_f20_21 = dVar43" identifier = identifier) ;) (if_statement "if (*(uint *)(unaff_s7 + 0x1c) <= uVar28) {\n              in_f20_21 = in_f28_29;\n            }" if (parenthesized_expression "(*(uint *)(unaff_s7 + 0x1c) <= uVar28)" ( (binary_expression "*(uint *)(unaff_s7 + 0x1c) <= uVar28" (pointer_expression "*(uint *)(unaff_s7 + 0x1c)" * (cast_expression "(uint *)(unaff_s7 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x1c)" ( (binary_expression "unaff_s7 + 0x1c" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n              in_f20_21 = in_f28_29;\n            }" { (expression_statement "in_f20_21 = in_f28_29;" (assignment_expression "in_f20_21 = in_f28_29" identifier = identifier) ;) })) })) }))))) (if_statement "if (in_f22_23 <= in_f20_21) goto LAB_000a3938;" if (parenthesized_expression "(in_f22_23 <= in_f20_21)" ( (binary_expression "in_f22_23 <= in_f20_21" identifier <= identifier) )) (goto_statement "goto LAB_000a3938;" goto statement_identifier ;)) }) (else_clause "else {\n        if (dVar49 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar46 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar46 - dVar42) / dVar49;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar42 / dVar49 < in_f28_29) {\n            dVar43 = -dVar42 / dVar49;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar42) {\n          dVar42 = (double)(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0));\n          if (dVar42 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar28 = (uint)dVar42;\n          }\n          else {\n            uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar43;\n          if (uVar28 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar38 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar43 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar43;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar43 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar42 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar43 = (dVar43 - dVar42) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar43 < in_f20_21) {\n          uVar28 = (uint)dVar43;\n        }\n        else {\n          uVar28 = (int)(dVar43 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar18 = pdVar6;\n        pdVar31 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar6,unaff_s2,iVar4,uVar28);\n        if (pdVar31 != (double *)0x0) {\n          piVar19 = *(int **)((int)this + 0x18);\n          piVar50 = piVar19;\n          piVar21 = local_b8;\n          do {\n            piVar13 = piVar21;\n            piVar8 = piVar50;\n            iVar30 = piVar8[1];\n            iVar51 = piVar8[2];\n            iVar12 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar30;\n            piVar13[2] = iVar51;\n            piVar13[3] = iVar12;\n            piVar50 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar50 != piVar19 + 0x14);\n          iVar12 = piVar8[5];\n          piVar13[4] = *piVar50;\n          piVar13[5] = iVar12;\n          piVar50 = piVar19;\n          piVar21 = local_110;\n          do {\n            piVar13 = piVar21;\n            piVar8 = piVar50;\n            iVar30 = piVar8[1];\n            iVar51 = piVar8[2];\n            iVar12 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar30;\n            piVar13[2] = iVar51;\n            piVar13[3] = iVar12;\n            piVar50 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar50 != piVar19 + 0x14);\n          iVar12 = piVar8[5];\n          piVar13[4] = *piVar50;\n          piVar13[5] = iVar12;\n          dVar43 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar43; unaff_s2 = unaff_s2 + 1) {\n            pdVar18 = *(double **)((int)this + 0xc);\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar18[1] + in_f24_25 * pdVar18[3] + pdVar18[5];\n            local_178 = (double)unaff_s2 * *pdVar18 + in_f24_25 * pdVar18[2] + pdVar18[4];\n            local_164 = unaff_s4;\n            iVar12 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar5,0);\n            *(int *)((int)this + 0x28) = iVar12;\n            if (iVar12 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar3 != (int *)0x0) {\n              local_110[0] = *piVar3;\n              local_110[1] = piVar3[1];\n              local_100 = *(undefined8 *)(piVar3 + 0x92);\n              local_f8 = piVar3[8];\n              local_110[2] = piVar3[0xaf];\n              if (pdVar31 != (double *)0x0) {\n                iVar12 = piVar3[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4);\n                if (*(int *)(iVar12 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar12 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar12 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x44) * 4);\n                }\n              }\n            }\n            dVar42 = local_70 * in_f26_27;\n            dVar49 = local_c8 * in_f26_27;\n            dVar46 = (dVar42 + dVar49) - dVar42 * dVar49;\n            if (0.0 <= dVar46) {\n              local_c8 = dVar46;\n              if (in_f20_21 < dVar46) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar38 + 0x4a48);\n              if (0.0 <= dVar46) {\n                dVar47 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar47 = in_f22_23;\n            }\n            if (*(double *)(puVar38 + 0x43c8) <= dVar46 * dVar47) {\n              dVar47 = *(double *)((int)unaff_s3 + 0x4408) / dVar46;\n            }\n            else {\n              dVar47 = dVar47 / *(double *)(puVar38 + 0x43c8);\n            }\n            dVar46 = *(double *)((int)unaff_s3 + 0x4408) - dVar42;\n            local_e8 = (dVar49 * local_e8 * dVar46 + dVar42 * local_90) * dVar47;\n            local_e0 = (dVar49 * local_e0 * dVar46 + dVar42 * local_88) * dVar47;\n            local_d8 = (dVar49 * local_d8 * dVar46 + dVar42 * local_80) * dVar47;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar49 * local_d0 * dVar46 + dVar42 * local_78) * dVar47;\n            }\n            iVar12 = piVar3[0xb4];\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar12 + 0x28) != 0) {\n              *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar12 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar45 = (float)local_c8;\n              }\n              *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4) = fVar45;\n            }\n            pdVar31 = (double *)((int)pdVar31 + piVar3[0xb0] * 4);\n          }\n          pdVar18 = pdVar6;\n          iVar12 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar6,unaff_s4);\n          if (iVar12 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }\n        }\n      }" else (compound_statement "{\n        if (dVar49 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar46 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar46 - dVar42) / dVar49;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar42 / dVar49 < in_f28_29) {\n            dVar43 = -dVar42 / dVar49;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar42) {\n          dVar42 = (double)(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0));\n          if (dVar42 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar28 = (uint)dVar42;\n          }\n          else {\n            uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar43;\n          if (uVar28 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar38 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar43 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar43;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar43 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar42 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar43 = (dVar43 - dVar42) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar43 < in_f20_21) {\n          uVar28 = (uint)dVar43;\n        }\n        else {\n          uVar28 = (int)(dVar43 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar18 = pdVar6;\n        pdVar31 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar6,unaff_s2,iVar4,uVar28);\n        if (pdVar31 != (double *)0x0) {\n          piVar19 = *(int **)((int)this + 0x18);\n          piVar50 = piVar19;\n          piVar21 = local_b8;\n          do {\n            piVar13 = piVar21;\n            piVar8 = piVar50;\n            iVar30 = piVar8[1];\n            iVar51 = piVar8[2];\n            iVar12 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar30;\n            piVar13[2] = iVar51;\n            piVar13[3] = iVar12;\n            piVar50 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar50 != piVar19 + 0x14);\n          iVar12 = piVar8[5];\n          piVar13[4] = *piVar50;\n          piVar13[5] = iVar12;\n          piVar50 = piVar19;\n          piVar21 = local_110;\n          do {\n            piVar13 = piVar21;\n            piVar8 = piVar50;\n            iVar30 = piVar8[1];\n            iVar51 = piVar8[2];\n            iVar12 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar30;\n            piVar13[2] = iVar51;\n            piVar13[3] = iVar12;\n            piVar50 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar50 != piVar19 + 0x14);\n          iVar12 = piVar8[5];\n          piVar13[4] = *piVar50;\n          piVar13[5] = iVar12;\n          dVar43 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar43; unaff_s2 = unaff_s2 + 1) {\n            pdVar18 = *(double **)((int)this + 0xc);\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar18[1] + in_f24_25 * pdVar18[3] + pdVar18[5];\n            local_178 = (double)unaff_s2 * *pdVar18 + in_f24_25 * pdVar18[2] + pdVar18[4];\n            local_164 = unaff_s4;\n            iVar12 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar5,0);\n            *(int *)((int)this + 0x28) = iVar12;\n            if (iVar12 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar3 != (int *)0x0) {\n              local_110[0] = *piVar3;\n              local_110[1] = piVar3[1];\n              local_100 = *(undefined8 *)(piVar3 + 0x92);\n              local_f8 = piVar3[8];\n              local_110[2] = piVar3[0xaf];\n              if (pdVar31 != (double *)0x0) {\n                iVar12 = piVar3[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4);\n                if (*(int *)(iVar12 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar12 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar12 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x44) * 4);\n                }\n              }\n            }\n            dVar42 = local_70 * in_f26_27;\n            dVar49 = local_c8 * in_f26_27;\n            dVar46 = (dVar42 + dVar49) - dVar42 * dVar49;\n            if (0.0 <= dVar46) {\n              local_c8 = dVar46;\n              if (in_f20_21 < dVar46) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar38 + 0x4a48);\n              if (0.0 <= dVar46) {\n                dVar47 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar47 = in_f22_23;\n            }\n            if (*(double *)(puVar38 + 0x43c8) <= dVar46 * dVar47) {\n              dVar47 = *(double *)((int)unaff_s3 + 0x4408) / dVar46;\n            }\n            else {\n              dVar47 = dVar47 / *(double *)(puVar38 + 0x43c8);\n            }\n            dVar46 = *(double *)((int)unaff_s3 + 0x4408) - dVar42;\n            local_e8 = (dVar49 * local_e8 * dVar46 + dVar42 * local_90) * dVar47;\n            local_e0 = (dVar49 * local_e0 * dVar46 + dVar42 * local_88) * dVar47;\n            local_d8 = (dVar49 * local_d8 * dVar46 + dVar42 * local_80) * dVar47;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar49 * local_d0 * dVar46 + dVar42 * local_78) * dVar47;\n            }\n            iVar12 = piVar3[0xb4];\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar12 + 0x28) != 0) {\n              *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar12 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar45 = (float)local_c8;\n              }\n              *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4) = fVar45;\n            }\n            pdVar31 = (double *)((int)pdVar31 + piVar3[0xb0] * 4);\n          }\n          pdVar18 = pdVar6;\n          iVar12 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar6,unaff_s4);\n          if (iVar12 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }\n        }\n      }" { (if_statement "if (dVar49 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar46 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar46 - dVar42) / dVar49;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar42 / dVar49 < in_f28_29) {\n            dVar43 = -dVar42 / dVar49;\n          }\n          goto LAB_000a3890;\n        }" if (parenthesized_expression "(dVar49 < *(double *)(PTR_UINT_003f98e4 + 0x65b8))" ( (binary_expression "dVar49 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)" identifier < (pointer_expression "*(double *)(PTR_UINT_003f98e4 + 0x65b8)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + 0x65b8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + 0x65b8)" ( (binary_expression "PTR_UINT_003f98e4 + 0x65b8" identifier + number_literal) ))))) )) (compound_statement "{\n          dVar46 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar46 - dVar42) / dVar49;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar42 / dVar49 < in_f28_29) {\n            dVar43 = -dVar42 / dVar49;\n          }\n          goto LAB_000a3890;\n        }" { (expression_statement "dVar46 = (double)*(int *)(unaff_s7 + 0x18);" (assignment_expression "dVar46 = (double)*(int *)(unaff_s7 + 0x18)" identifier = (cast_expression "(double)*(int *)(unaff_s7 + 0x18)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(unaff_s7 + 0x18)" * (cast_expression "(int *)(unaff_s7 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x18)" ( (binary_expression "unaff_s7 + 0x18" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }" if (parenthesized_expression "(*(int *)(unaff_s7 + 0x18) < 0)" ( (binary_expression "*(int *)(unaff_s7 + 0x18) < 0" (pointer_expression "*(int *)(unaff_s7 + 0x18)" * (cast_expression "(int *)(unaff_s7 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x18)" ( (binary_expression "unaff_s7 + 0x18" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n            dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }" { (expression_statement "dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);" (assignment_expression "dVar46 = dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" identifier = (binary_expression "dVar46 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" identifier + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e8)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e8" identifier + number_literal) )))))) ;) })) (expression_statement "in_f22_23 = (dVar46 - dVar42) / dVar49;" (assignment_expression "in_f22_23 = (dVar46 - dVar42) / dVar49" identifier = (binary_expression "(dVar46 - dVar42) / dVar49" (parenthesized_expression "(dVar46 - dVar42)" ( (binary_expression "dVar46 - dVar42" identifier - identifier) )) / identifier)) ;) (if_statement "if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }" if (parenthesized_expression "(in_f22_23 <= in_f20_21)" ( (binary_expression "in_f22_23 <= in_f20_21" identifier <= identifier) )) (compound_statement "{\n            in_f22_23 = in_f20_21;\n          }" { (expression_statement "in_f22_23 = in_f20_21;" (assignment_expression "in_f22_23 = in_f20_21" identifier = identifier) ;) })) (if_statement "if (-dVar42 / dVar49 < in_f28_29) {\n            dVar43 = -dVar42 / dVar49;\n          }" if (parenthesized_expression "(-dVar42 / dVar49 < in_f28_29)" ( (binary_expression "-dVar42 / dVar49 < in_f28_29" (binary_expression "-dVar42 / dVar49" (unary_expression "-dVar42" - identifier) / identifier) < identifier) )) (compound_statement "{\n            dVar43 = -dVar42 / dVar49;\n          }" { (expression_statement "dVar43 = -dVar42 / dVar49;" (assignment_expression "dVar43 = -dVar42 / dVar49" identifier = (binary_expression "-dVar42 / dVar49" (unary_expression "-dVar42" - identifier) / identifier)) ;) })) (goto_statement "goto LAB_000a3890;" goto statement_identifier ;) })) (expression_statement "in_f22_23 = in_f20_21;" (assignment_expression "in_f22_23 = in_f20_21" identifier = identifier) ;) (if_statement "if (0.0 <= dVar42) {\n          dVar42 = (double)(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0));\n          if (dVar42 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar28 = (uint)dVar42;\n          }\n          else {\n            uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar43;\n          if (uVar28 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }" if (parenthesized_expression "(0.0 <= dVar42)" ( (binary_expression "0.0 <= dVar42" number_literal <= identifier) )) (compound_statement "{\n          dVar42 = (double)(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0));\n          if (dVar42 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar28 = (uint)dVar42;\n          }\n          else {\n            uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar43;\n          if (uVar28 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }" { (expression_statement "dVar42 = (double)(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0));" (assignment_expression "dVar42 = (double)(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0))" identifier = (cast_expression "(double)(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0))" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_floor_003fa688)(dVar42 + *(double *)(puVar38 + 0x43d0))" (parenthesized_expression "(*(code *)PTR_floor_003fa688)" ( (pointer_expression "*(code *)PTR_floor_003fa688" * (cast_expression "(code *)PTR_floor_003fa688" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar42 + *(double *)(puVar38 + 0x43d0))" ( (binary_expression "dVar42 + *(double *)(puVar38 + 0x43d0)" identifier + (pointer_expression "*(double *)(puVar38 + 0x43d0)" * (cast_expression "(double *)(puVar38 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x43d0)" ( (binary_expression "puVar38 + 0x43d0" identifier + number_literal) ))))) ))))) ;) (if_statement "if (dVar42 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar28 = (uint)dVar42;\n          }\n          else {\n            uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }" if (parenthesized_expression "(dVar42 < *(double *)(PTR_LAB_003f98e0 + 0x43e0))" ( (binary_expression "dVar42 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier < (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) ))))) )) (compound_statement "{\n            uVar28 = (uint)dVar42;\n          }" { (expression_statement "uVar28 = (uint)dVar42;" (assignment_expression "uVar28 = (uint)dVar42" identifier = (cast_expression "(uint)dVar42" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n            uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }" else (compound_statement "{\n            uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }" { (expression_statement "uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;" (assignment_expression "uVar28 = (int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000" identifier = (binary_expression "(int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000" (cast_expression "(int)(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0))" ( (binary_expression "dVar42 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier - (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "in_f22_23 = in_f20_21;" (assignment_expression "in_f22_23 = in_f20_21" identifier = identifier) ;) (expression_statement "in_f28_29 = dVar43;" (assignment_expression "in_f28_29 = dVar43" identifier = identifier) ;) (if_statement "if (uVar28 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;" if (parenthesized_expression "(uVar28 < *(uint *)(unaff_s7 + 0x18))" ( (binary_expression "uVar28 < *(uint *)(unaff_s7 + 0x18)" identifier < (pointer_expression "*(uint *)(unaff_s7 + 0x18)" * (cast_expression "(uint *)(unaff_s7 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x18)" ( (binary_expression "unaff_s7 + 0x18" identifier + number_literal) ))))) )) (goto_statement "goto LAB_000a3890;" goto statement_identifier ;)) })) (labeled_statement "LAB_000a3938:\n        in_f28_29 = *(double *)(puVar38 + 0x43d0);" statement_identifier : (expression_statement "in_f28_29 = *(double *)(puVar38 + 0x43d0);" (assignment_expression "in_f28_29 = *(double *)(puVar38 + 0x43d0)" identifier = (pointer_expression "*(double *)(puVar38 + 0x43d0)" * (cast_expression "(double *)(puVar38 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x43d0)" ( (binary_expression "puVar38 + 0x43d0" identifier + number_literal) ))))) ;)) (expression_statement "in_f22_23 = in_f22_23 - in_f28_29;" (assignment_expression "in_f22_23 = in_f22_23 - in_f28_29" identifier = (binary_expression "in_f22_23 - in_f28_29" identifier - identifier)) ;) (expression_statement "dVar43 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);" (assignment_expression "dVar43 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23)" identifier = (cast_expression "(double)(*(code *)PTR_ceil_003f9c38)(in_f22_23)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_ceil_003f9c38)(in_f22_23)" (parenthesized_expression "(*(code *)PTR_ceil_003f9c38)" ( (pointer_expression "*(code *)PTR_ceil_003f9c38" * (cast_expression "(code *)PTR_ceil_003f9c38" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(in_f22_23)" ( identifier ))))) ;) (expression_statement "unaff_s2 = (int)dVar43;" (assignment_expression "unaff_s2 = (int)dVar43" identifier = (cast_expression "(int)dVar43" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "in_f28_29 = in_f20_21 + in_f28_29;" (assignment_expression "in_f28_29 = in_f20_21 + in_f28_29" identifier = (binary_expression "in_f20_21 + in_f28_29" identifier + identifier)) ;) (expression_statement "dVar43 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);" (assignment_expression "dVar43 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29)" identifier = (cast_expression "(double)(*(code *)PTR_floor_003fa688)(in_f28_29)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_floor_003fa688)(in_f28_29)" (parenthesized_expression "(*(code *)PTR_floor_003fa688)" ( (pointer_expression "*(code *)PTR_floor_003fa688" * (cast_expression "(code *)PTR_floor_003fa688" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(in_f28_29)" ( identifier ))))) ;) (expression_statement "dVar42 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);" (assignment_expression "dVar42 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23)" identifier = (cast_expression "(double)(*(code *)PTR_ceil_003f9c38)(in_f22_23)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_ceil_003f9c38)(in_f22_23)" (parenthesized_expression "(*(code *)PTR_ceil_003f9c38)" ( (pointer_expression "*(code *)PTR_ceil_003f9c38" * (cast_expression "(code *)PTR_ceil_003f9c38" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(in_f22_23)" ( identifier ))))) ;) (expression_statement "dVar43 = (dVar43 - dVar42) + *(double *)(PTR_LAB_003f98e0 + 0x4408);" (assignment_expression "dVar43 = (dVar43 - dVar42) + *(double *)(PTR_LAB_003f98e0 + 0x4408)" identifier = (binary_expression "(dVar43 - dVar42) + *(double *)(PTR_LAB_003f98e0 + 0x4408)" (parenthesized_expression "(dVar43 - dVar42)" ( (binary_expression "dVar43 - dVar42" identifier - identifier) )) + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4408)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4408)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4408" identifier + number_literal) )))))) ;) (expression_statement "in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);" (assignment_expression "in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) ))))) ;) (if_statement "if (dVar43 < in_f20_21) {\n          uVar28 = (uint)dVar43;\n        }\n        else {\n          uVar28 = (int)(dVar43 - in_f20_21) | 0x80000000;\n        }" if (parenthesized_expression "(dVar43 < in_f20_21)" ( (binary_expression "dVar43 < in_f20_21" identifier < identifier) )) (compound_statement "{\n          uVar28 = (uint)dVar43;\n        }" { (expression_statement "uVar28 = (uint)dVar43;" (assignment_expression "uVar28 = (uint)dVar43" identifier = (cast_expression "(uint)dVar43" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n          uVar28 = (int)(dVar43 - in_f20_21) | 0x80000000;\n        }" else (compound_statement "{\n          uVar28 = (int)(dVar43 - in_f20_21) | 0x80000000;\n        }" { (expression_statement "uVar28 = (int)(dVar43 - in_f20_21) | 0x80000000;" (assignment_expression "uVar28 = (int)(dVar43 - in_f20_21) | 0x80000000" identifier = (binary_expression "(int)(dVar43 - in_f20_21) | 0x80000000" (cast_expression "(int)(dVar43 - in_f20_21)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar43 - in_f20_21)" ( (binary_expression "dVar43 - in_f20_21" identifier - identifier) ))) | number_literal)) ;) }))) (expression_statement "local_178 = (double)CONCAT44(1,unaff_s4);" (assignment_expression "local_178 = (double)CONCAT44(1,unaff_s4)" identifier = (cast_expression "(double)CONCAT44(1,unaff_s4)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(1,unaff_s4)" identifier (argument_list "(1,unaff_s4)" ( number_literal , identifier ))))) ;) (expression_statement "pdVar18 = pdVar6;" (assignment_expression "pdVar18 = pdVar6" identifier = identifier) ;) (expression_statement "pdVar31 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar6,unaff_s2,iVar4,uVar28);" (assignment_expression "pdVar31 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar6,unaff_s2,iVar4,uVar28)" identifier = (cast_expression "(double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar6,unaff_s2,iVar4,uVar28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar6,unaff_s2,iVar4,uVar28)" (parenthesized_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)" ( (pointer_expression "*(code *)PTR_GetCacheViewAuthenticPixels_003fa664" * (cast_expression "(code *)PTR_GetCacheViewAuthenticPixels_003fa664" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pdVar6,unaff_s2,iVar4,uVar28)" ( identifier , identifier , identifier , identifier ))))) ;) (if_statement "if (pdVar31 != (double *)0x0) {\n          piVar19 = *(int **)((int)this + 0x18);\n          piVar50 = piVar19;\n          piVar21 = local_b8;\n          do {\n            piVar13 = piVar21;\n            piVar8 = piVar50;\n            iVar30 = piVar8[1];\n            iVar51 = piVar8[2];\n            iVar12 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar30;\n            piVar13[2] = iVar51;\n            piVar13[3] = iVar12;\n            piVar50 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar50 != piVar19 + 0x14);\n          iVar12 = piVar8[5];\n          piVar13[4] = *piVar50;\n          piVar13[5] = iVar12;\n          piVar50 = piVar19;\n          piVar21 = local_110;\n          do {\n            piVar13 = piVar21;\n            piVar8 = piVar50;\n            iVar30 = piVar8[1];\n            iVar51 = piVar8[2];\n            iVar12 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar30;\n            piVar13[2] = iVar51;\n            piVar13[3] = iVar12;\n            piVar50 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar50 != piVar19 + 0x14);\n          iVar12 = piVar8[5];\n          piVar13[4] = *piVar50;\n          piVar13[5] = iVar12;\n          dVar43 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar43; unaff_s2 = unaff_s2 + 1) {\n            pdVar18 = *(double **)((int)this + 0xc);\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar18[1] + in_f24_25 * pdVar18[3] + pdVar18[5];\n            local_178 = (double)unaff_s2 * *pdVar18 + in_f24_25 * pdVar18[2] + pdVar18[4];\n            local_164 = unaff_s4;\n            iVar12 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar5,0);\n            *(int *)((int)this + 0x28) = iVar12;\n            if (iVar12 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar3 != (int *)0x0) {\n              local_110[0] = *piVar3;\n              local_110[1] = piVar3[1];\n              local_100 = *(undefined8 *)(piVar3 + 0x92);\n              local_f8 = piVar3[8];\n              local_110[2] = piVar3[0xaf];\n              if (pdVar31 != (double *)0x0) {\n                iVar12 = piVar3[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4);\n                if (*(int *)(iVar12 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar12 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar12 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x44) * 4);\n                }\n              }\n            }\n            dVar42 = local_70 * in_f26_27;\n            dVar49 = local_c8 * in_f26_27;\n            dVar46 = (dVar42 + dVar49) - dVar42 * dVar49;\n            if (0.0 <= dVar46) {\n              local_c8 = dVar46;\n              if (in_f20_21 < dVar46) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar38 + 0x4a48);\n              if (0.0 <= dVar46) {\n                dVar47 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar47 = in_f22_23;\n            }\n            if (*(double *)(puVar38 + 0x43c8) <= dVar46 * dVar47) {\n              dVar47 = *(double *)((int)unaff_s3 + 0x4408) / dVar46;\n            }\n            else {\n              dVar47 = dVar47 / *(double *)(puVar38 + 0x43c8);\n            }\n            dVar46 = *(double *)((int)unaff_s3 + 0x4408) - dVar42;\n            local_e8 = (dVar49 * local_e8 * dVar46 + dVar42 * local_90) * dVar47;\n            local_e0 = (dVar49 * local_e0 * dVar46 + dVar42 * local_88) * dVar47;\n            local_d8 = (dVar49 * local_d8 * dVar46 + dVar42 * local_80) * dVar47;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar49 * local_d0 * dVar46 + dVar42 * local_78) * dVar47;\n            }\n            iVar12 = piVar3[0xb4];\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar12 + 0x28) != 0) {\n              *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar12 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar45 = (float)local_c8;\n              }\n              *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4) = fVar45;\n            }\n            pdVar31 = (double *)((int)pdVar31 + piVar3[0xb0] * 4);\n          }\n          pdVar18 = pdVar6;\n          iVar12 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar6,unaff_s4);\n          if (iVar12 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }\n        }" if (parenthesized_expression "(pdVar31 != (double *)0x0)" ( (binary_expression "pdVar31 != (double *)0x0" identifier != (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          piVar19 = *(int **)((int)this + 0x18);\n          piVar50 = piVar19;\n          piVar21 = local_b8;\n          do {\n            piVar13 = piVar21;\n            piVar8 = piVar50;\n            iVar30 = piVar8[1];\n            iVar51 = piVar8[2];\n            iVar12 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar30;\n            piVar13[2] = iVar51;\n            piVar13[3] = iVar12;\n            piVar50 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar50 != piVar19 + 0x14);\n          iVar12 = piVar8[5];\n          piVar13[4] = *piVar50;\n          piVar13[5] = iVar12;\n          piVar50 = piVar19;\n          piVar21 = local_110;\n          do {\n            piVar13 = piVar21;\n            piVar8 = piVar50;\n            iVar30 = piVar8[1];\n            iVar51 = piVar8[2];\n            iVar12 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar30;\n            piVar13[2] = iVar51;\n            piVar13[3] = iVar12;\n            piVar50 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar50 != piVar19 + 0x14);\n          iVar12 = piVar8[5];\n          piVar13[4] = *piVar50;\n          piVar13[5] = iVar12;\n          dVar43 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar43; unaff_s2 = unaff_s2 + 1) {\n            pdVar18 = *(double **)((int)this + 0xc);\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar18[1] + in_f24_25 * pdVar18[3] + pdVar18[5];\n            local_178 = (double)unaff_s2 * *pdVar18 + in_f24_25 * pdVar18[2] + pdVar18[4];\n            local_164 = unaff_s4;\n            iVar12 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar5,0);\n            *(int *)((int)this + 0x28) = iVar12;\n            if (iVar12 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar3 != (int *)0x0) {\n              local_110[0] = *piVar3;\n              local_110[1] = piVar3[1];\n              local_100 = *(undefined8 *)(piVar3 + 0x92);\n              local_f8 = piVar3[8];\n              local_110[2] = piVar3[0xaf];\n              if (pdVar31 != (double *)0x0) {\n                iVar12 = piVar3[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4);\n                if (*(int *)(iVar12 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar12 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar12 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x44) * 4);\n                }\n              }\n            }\n            dVar42 = local_70 * in_f26_27;\n            dVar49 = local_c8 * in_f26_27;\n            dVar46 = (dVar42 + dVar49) - dVar42 * dVar49;\n            if (0.0 <= dVar46) {\n              local_c8 = dVar46;\n              if (in_f20_21 < dVar46) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar38 + 0x4a48);\n              if (0.0 <= dVar46) {\n                dVar47 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar47 = in_f22_23;\n            }\n            if (*(double *)(puVar38 + 0x43c8) <= dVar46 * dVar47) {\n              dVar47 = *(double *)((int)unaff_s3 + 0x4408) / dVar46;\n            }\n            else {\n              dVar47 = dVar47 / *(double *)(puVar38 + 0x43c8);\n            }\n            dVar46 = *(double *)((int)unaff_s3 + 0x4408) - dVar42;\n            local_e8 = (dVar49 * local_e8 * dVar46 + dVar42 * local_90) * dVar47;\n            local_e0 = (dVar49 * local_e0 * dVar46 + dVar42 * local_88) * dVar47;\n            local_d8 = (dVar49 * local_d8 * dVar46 + dVar42 * local_80) * dVar47;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar49 * local_d0 * dVar46 + dVar42 * local_78) * dVar47;\n            }\n            iVar12 = piVar3[0xb4];\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar12 + 0x28) != 0) {\n              *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar12 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar45 = (float)local_c8;\n              }\n              *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4) = fVar45;\n            }\n            pdVar31 = (double *)((int)pdVar31 + piVar3[0xb0] * 4);\n          }\n          pdVar18 = pdVar6;\n          iVar12 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar6,unaff_s4);\n          if (iVar12 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }\n        }" { (expression_statement "piVar19 = *(int **)((int)this + 0x18);" (assignment_expression "piVar19 = *(int **)((int)this + 0x18)" identifier = (pointer_expression "*(int **)((int)this + 0x18)" * (cast_expression "(int **)((int)this + 0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)this + 0x18)" ( (binary_expression "(int)this + 0x18" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "piVar50 = piVar19;" (assignment_expression "piVar50 = piVar19" identifier = identifier) ;) (expression_statement "piVar21 = local_b8;" (assignment_expression "piVar21 = local_b8" identifier = identifier) ;) (do_statement "do {\n            piVar13 = piVar21;\n            piVar8 = piVar50;\n            iVar30 = piVar8[1];\n            iVar51 = piVar8[2];\n            iVar12 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar30;\n            piVar13[2] = iVar51;\n            piVar13[3] = iVar12;\n            piVar50 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar50 != piVar19 + 0x14);" do (compound_statement "{\n            piVar13 = piVar21;\n            piVar8 = piVar50;\n            iVar30 = piVar8[1];\n            iVar51 = piVar8[2];\n            iVar12 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar30;\n            piVar13[2] = iVar51;\n            piVar13[3] = iVar12;\n            piVar50 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          }" { (expression_statement "piVar13 = piVar21;" (assignment_expression "piVar13 = piVar21" identifier = identifier) ;) (expression_statement "piVar8 = piVar50;" (assignment_expression "piVar8 = piVar50" identifier = identifier) ;) (expression_statement "iVar30 = piVar8[1];" (assignment_expression "iVar30 = piVar8[1]" identifier = (subscript_expression "piVar8[1]" identifier [ number_literal ])) ;) (expression_statement "iVar51 = piVar8[2];" (assignment_expression "iVar51 = piVar8[2]" identifier = (subscript_expression "piVar8[2]" identifier [ number_literal ])) ;) (expression_statement "iVar12 = piVar8[3];" (assignment_expression "iVar12 = piVar8[3]" identifier = (subscript_expression "piVar8[3]" identifier [ number_literal ])) ;) (expression_statement "*piVar13 = *piVar8;" (assignment_expression "*piVar13 = *piVar8" (pointer_expression "*piVar13" * identifier) = (pointer_expression "*piVar8" * identifier)) ;) (expression_statement "piVar13[1] = iVar30;" (assignment_expression "piVar13[1] = iVar30" (subscript_expression "piVar13[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar13[2] = iVar51;" (assignment_expression "piVar13[2] = iVar51" (subscript_expression "piVar13[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar13[3] = iVar12;" (assignment_expression "piVar13[3] = iVar12" (subscript_expression "piVar13[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar50 = piVar8 + 4;" (assignment_expression "piVar50 = piVar8 + 4" identifier = (binary_expression "piVar8 + 4" identifier + number_literal)) ;) (expression_statement "piVar21 = piVar13 + 4;" (assignment_expression "piVar21 = piVar13 + 4" identifier = (binary_expression "piVar13 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar50 != piVar19 + 0x14)" ( (binary_expression "piVar50 != piVar19 + 0x14" identifier != (binary_expression "piVar19 + 0x14" identifier + number_literal)) )) ;) (expression_statement "iVar12 = piVar8[5];" (assignment_expression "iVar12 = piVar8[5]" identifier = (subscript_expression "piVar8[5]" identifier [ number_literal ])) ;) (expression_statement "piVar13[4] = *piVar50;" (assignment_expression "piVar13[4] = *piVar50" (subscript_expression "piVar13[4]" identifier [ number_literal ]) = (pointer_expression "*piVar50" * identifier)) ;) (expression_statement "piVar13[5] = iVar12;" (assignment_expression "piVar13[5] = iVar12" (subscript_expression "piVar13[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar50 = piVar19;" (assignment_expression "piVar50 = piVar19" identifier = identifier) ;) (expression_statement "piVar21 = local_110;" (assignment_expression "piVar21 = local_110" identifier = identifier) ;) (do_statement "do {\n            piVar13 = piVar21;\n            piVar8 = piVar50;\n            iVar30 = piVar8[1];\n            iVar51 = piVar8[2];\n            iVar12 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar30;\n            piVar13[2] = iVar51;\n            piVar13[3] = iVar12;\n            piVar50 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar50 != piVar19 + 0x14);" do (compound_statement "{\n            piVar13 = piVar21;\n            piVar8 = piVar50;\n            iVar30 = piVar8[1];\n            iVar51 = piVar8[2];\n            iVar12 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar30;\n            piVar13[2] = iVar51;\n            piVar13[3] = iVar12;\n            piVar50 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          }" { (expression_statement "piVar13 = piVar21;" (assignment_expression "piVar13 = piVar21" identifier = identifier) ;) (expression_statement "piVar8 = piVar50;" (assignment_expression "piVar8 = piVar50" identifier = identifier) ;) (expression_statement "iVar30 = piVar8[1];" (assignment_expression "iVar30 = piVar8[1]" identifier = (subscript_expression "piVar8[1]" identifier [ number_literal ])) ;) (expression_statement "iVar51 = piVar8[2];" (assignment_expression "iVar51 = piVar8[2]" identifier = (subscript_expression "piVar8[2]" identifier [ number_literal ])) ;) (expression_statement "iVar12 = piVar8[3];" (assignment_expression "iVar12 = piVar8[3]" identifier = (subscript_expression "piVar8[3]" identifier [ number_literal ])) ;) (expression_statement "*piVar13 = *piVar8;" (assignment_expression "*piVar13 = *piVar8" (pointer_expression "*piVar13" * identifier) = (pointer_expression "*piVar8" * identifier)) ;) (expression_statement "piVar13[1] = iVar30;" (assignment_expression "piVar13[1] = iVar30" (subscript_expression "piVar13[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar13[2] = iVar51;" (assignment_expression "piVar13[2] = iVar51" (subscript_expression "piVar13[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar13[3] = iVar12;" (assignment_expression "piVar13[3] = iVar12" (subscript_expression "piVar13[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar50 = piVar8 + 4;" (assignment_expression "piVar50 = piVar8 + 4" identifier = (binary_expression "piVar8 + 4" identifier + number_literal)) ;) (expression_statement "piVar21 = piVar13 + 4;" (assignment_expression "piVar21 = piVar13 + 4" identifier = (binary_expression "piVar13 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar50 != piVar19 + 0x14)" ( (binary_expression "piVar50 != piVar19 + 0x14" identifier != (binary_expression "piVar19 + 0x14" identifier + number_literal)) )) ;) (expression_statement "iVar12 = piVar8[5];" (assignment_expression "iVar12 = piVar8[5]" identifier = (subscript_expression "piVar8[5]" identifier [ number_literal ])) ;) (expression_statement "piVar13[4] = *piVar50;" (assignment_expression "piVar13[4] = *piVar50" (subscript_expression "piVar13[4]" identifier [ number_literal ]) = (pointer_expression "*piVar50" * identifier)) ;) (expression_statement "piVar13[5] = iVar12;" (assignment_expression "piVar13[5] = iVar12" (subscript_expression "piVar13[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "dVar43 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);" (assignment_expression "dVar43 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29)" identifier = (cast_expression "(double)(*(code *)PTR_floor_003fa688)(in_f28_29)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_floor_003fa688)(in_f28_29)" (parenthesized_expression "(*(code *)PTR_floor_003fa688)" ( (pointer_expression "*(code *)PTR_floor_003fa688" * (cast_expression "(code *)PTR_floor_003fa688" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(in_f28_29)" ( identifier ))))) ;) (expression_statement "unaff_s3 = (double *)PTR_LAB_003f98e0;" (assignment_expression "unaff_s3 = (double *)PTR_LAB_003f98e0" identifier = (cast_expression "(double *)PTR_LAB_003f98e0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);" (assignment_expression "in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4418)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4418)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4418" identifier + number_literal) ))))) ;) (expression_statement "in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);" (assignment_expression "in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4408)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4408)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4408" identifier + number_literal) ))))) ;) (for_statement "for (; unaff_s2 <= (int)dVar43; unaff_s2 = unaff_s2 + 1) {\n            pdVar18 = *(double **)((int)this + 0xc);\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar18[1] + in_f24_25 * pdVar18[3] + pdVar18[5];\n            local_178 = (double)unaff_s2 * *pdVar18 + in_f24_25 * pdVar18[2] + pdVar18[4];\n            local_164 = unaff_s4;\n            iVar12 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar5,0);\n            *(int *)((int)this + 0x28) = iVar12;\n            if (iVar12 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar3 != (int *)0x0) {\n              local_110[0] = *piVar3;\n              local_110[1] = piVar3[1];\n              local_100 = *(undefined8 *)(piVar3 + 0x92);\n              local_f8 = piVar3[8];\n              local_110[2] = piVar3[0xaf];\n              if (pdVar31 != (double *)0x0) {\n                iVar12 = piVar3[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4);\n                if (*(int *)(iVar12 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar12 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar12 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x44) * 4);\n                }\n              }\n            }\n            dVar42 = local_70 * in_f26_27;\n            dVar49 = local_c8 * in_f26_27;\n            dVar46 = (dVar42 + dVar49) - dVar42 * dVar49;\n            if (0.0 <= dVar46) {\n              local_c8 = dVar46;\n              if (in_f20_21 < dVar46) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar38 + 0x4a48);\n              if (0.0 <= dVar46) {\n                dVar47 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar47 = in_f22_23;\n            }\n            if (*(double *)(puVar38 + 0x43c8) <= dVar46 * dVar47) {\n              dVar47 = *(double *)((int)unaff_s3 + 0x4408) / dVar46;\n            }\n            else {\n              dVar47 = dVar47 / *(double *)(puVar38 + 0x43c8);\n            }\n            dVar46 = *(double *)((int)unaff_s3 + 0x4408) - dVar42;\n            local_e8 = (dVar49 * local_e8 * dVar46 + dVar42 * local_90) * dVar47;\n            local_e0 = (dVar49 * local_e0 * dVar46 + dVar42 * local_88) * dVar47;\n            local_d8 = (dVar49 * local_d8 * dVar46 + dVar42 * local_80) * dVar47;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar49 * local_d0 * dVar46 + dVar42 * local_78) * dVar47;\n            }\n            iVar12 = piVar3[0xb4];\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar12 + 0x28) != 0) {\n              *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar12 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar45 = (float)local_c8;\n              }\n              *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4) = fVar45;\n            }\n            pdVar31 = (double *)((int)pdVar31 + piVar3[0xb0] * 4);\n          }" for ( ; (binary_expression "unaff_s2 <= (int)dVar43" identifier <= (cast_expression "(int)dVar43" ( (type_descriptor "int" primitive_type) ) identifier)) ; (assignment_expression "unaff_s2 = unaff_s2 + 1" identifier = (binary_expression "unaff_s2 + 1" identifier + number_literal)) ) (compound_statement "{\n            pdVar18 = *(double **)((int)this + 0xc);\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar18[1] + in_f24_25 * pdVar18[3] + pdVar18[5];\n            local_178 = (double)unaff_s2 * *pdVar18 + in_f24_25 * pdVar18[2] + pdVar18[4];\n            local_164 = unaff_s4;\n            iVar12 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar5,0);\n            *(int *)((int)this + 0x28) = iVar12;\n            if (iVar12 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar3 != (int *)0x0) {\n              local_110[0] = *piVar3;\n              local_110[1] = piVar3[1];\n              local_100 = *(undefined8 *)(piVar3 + 0x92);\n              local_f8 = piVar3[8];\n              local_110[2] = piVar3[0xaf];\n              if (pdVar31 != (double *)0x0) {\n                iVar12 = piVar3[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4);\n                if (*(int *)(iVar12 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar12 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar12 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x44) * 4);\n                }\n              }\n            }\n            dVar42 = local_70 * in_f26_27;\n            dVar49 = local_c8 * in_f26_27;\n            dVar46 = (dVar42 + dVar49) - dVar42 * dVar49;\n            if (0.0 <= dVar46) {\n              local_c8 = dVar46;\n              if (in_f20_21 < dVar46) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar38 + 0x4a48);\n              if (0.0 <= dVar46) {\n                dVar47 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar47 = in_f22_23;\n            }\n            if (*(double *)(puVar38 + 0x43c8) <= dVar46 * dVar47) {\n              dVar47 = *(double *)((int)unaff_s3 + 0x4408) / dVar46;\n            }\n            else {\n              dVar47 = dVar47 / *(double *)(puVar38 + 0x43c8);\n            }\n            dVar46 = *(double *)((int)unaff_s3 + 0x4408) - dVar42;\n            local_e8 = (dVar49 * local_e8 * dVar46 + dVar42 * local_90) * dVar47;\n            local_e0 = (dVar49 * local_e0 * dVar46 + dVar42 * local_88) * dVar47;\n            local_d8 = (dVar49 * local_d8 * dVar46 + dVar42 * local_80) * dVar47;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar49 * local_d0 * dVar46 + dVar42 * local_78) * dVar47;\n            }\n            iVar12 = piVar3[0xb4];\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar12 + 0x28) != 0) {\n              *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar12 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar45 = (float)local_c8;\n              }\n              *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4) = fVar45;\n            }\n            pdVar31 = (double *)((int)pdVar31 + piVar3[0xb0] * 4);\n          }" { (expression_statement "pdVar18 = *(double **)((int)this + 0xc);" (assignment_expression "pdVar18 = *(double **)((int)this + 0xc)" identifier = (pointer_expression "*(double **)((int)this + 0xc)" * (cast_expression "(double **)((int)this + 0xc)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)this + 0xc)" ( (binary_expression "(int)this + 0xc" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "local_168 = local_b8;" (assignment_expression "local_168 = local_b8" identifier = identifier) ;) (expression_statement "local_170 = (double)unaff_s2 * pdVar18[1] + in_f24_25 * pdVar18[3] + pdVar18[5];" (assignment_expression "local_170 = (double)unaff_s2 * pdVar18[1] + in_f24_25 * pdVar18[3] + pdVar18[5]" identifier = (binary_expression "(double)unaff_s2 * pdVar18[1] + in_f24_25 * pdVar18[3] + pdVar18[5]" (binary_expression "(double)unaff_s2 * pdVar18[1] + in_f24_25 * pdVar18[3]" (binary_expression "(double)unaff_s2 * pdVar18[1]" (cast_expression "(double)unaff_s2" ( (type_descriptor "double" primitive_type) ) identifier) * (subscript_expression "pdVar18[1]" identifier [ number_literal ])) + (binary_expression "in_f24_25 * pdVar18[3]" identifier * (subscript_expression "pdVar18[3]" identifier [ number_literal ]))) + (subscript_expression "pdVar18[5]" identifier [ number_literal ]))) ;) (expression_statement "local_178 = (double)unaff_s2 * *pdVar18 + in_f24_25 * pdVar18[2] + pdVar18[4];" (assignment_expression "local_178 = (double)unaff_s2 * *pdVar18 + in_f24_25 * pdVar18[2] + pdVar18[4]" identifier = (binary_expression "(double)unaff_s2 * *pdVar18 + in_f24_25 * pdVar18[2] + pdVar18[4]" (binary_expression "(double)unaff_s2 * *pdVar18 + in_f24_25 * pdVar18[2]" (binary_expression "(double)unaff_s2 * *pdVar18" (cast_expression "(double)unaff_s2" ( (type_descriptor "double" primitive_type) ) identifier) * (pointer_expression "*pdVar18" * identifier)) + (binary_expression "in_f24_25 * pdVar18[2]" identifier * (subscript_expression "pdVar18[2]" identifier [ number_literal ]))) + (subscript_expression "pdVar18[4]" identifier [ number_literal ]))) ;) (expression_statement "local_164 = unaff_s4;" (assignment_expression "local_164 = unaff_s4" identifier = identifier) ;) (expression_statement "iVar12 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar5,0);" (assignment_expression "iVar12 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar5,0)" identifier = (call_expression "(*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar5,0)" (parenthesized_expression "(*(code *)PTR_InterpolatePixelInfo_003fa0a4)" ( (pointer_expression "*(code *)PTR_InterpolatePixelInfo_003fa0a4" * (cast_expression "(code *)PTR_InterpolatePixelInfo_003fa0a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s7,uVar5,0)" ( identifier , identifier , number_literal )))) ;) (expression_statement "*(int *)((int)this + 0x28) = iVar12;" (assignment_expression "*(int *)((int)this + 0x28) = iVar12" (pointer_expression "*(int *)((int)this + 0x28)" * (cast_expression "(int *)((int)this + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 0x28)" ( (binary_expression "(int)this + 0x28" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "(*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);" (call_expression "(*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58)" (parenthesized_expression "(*(code *)PTR_ResetMagickMemory_003fa00c)" ( (pointer_expression "*(code *)PTR_ResetMagickMemory_003fa00c" * (cast_expression "(code *)PTR_ResetMagickMemory_003fa00c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_110,0,0x58)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "local_110[0] = 1;" (assignment_expression "local_110[0] = 1" (subscript_expression "local_110[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_110[1] = 0x17;" (assignment_expression "local_110[1] = 0x17" (subscript_expression "local_110[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_f8 = 0x10;" (assignment_expression "local_f8 = 0x10" identifier = number_literal) ;) (expression_statement "local_110[2] = 0;" (assignment_expression "local_110[2] = 0" (subscript_expression "local_110[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_c8 = in_f30_31;" (assignment_expression "local_c8 = in_f30_31" identifier = identifier) ;) (if_statement "if (piVar3 != (int *)0x0) {\n              local_110[0] = *piVar3;\n              local_110[1] = piVar3[1];\n              local_100 = *(undefined8 *)(piVar3 + 0x92);\n              local_f8 = piVar3[8];\n              local_110[2] = piVar3[0xaf];\n              if (pdVar31 != (double *)0x0) {\n                iVar12 = piVar3[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4);\n                if (*(int *)(iVar12 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar12 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar12 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x44) * 4);\n                }\n              }\n            }" if (parenthesized_expression "(piVar3 != (int *)0x0)" ( (binary_expression "piVar3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              local_110[0] = *piVar3;\n              local_110[1] = piVar3[1];\n              local_100 = *(undefined8 *)(piVar3 + 0x92);\n              local_f8 = piVar3[8];\n              local_110[2] = piVar3[0xaf];\n              if (pdVar31 != (double *)0x0) {\n                iVar12 = piVar3[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4);\n                if (*(int *)(iVar12 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar12 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar12 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x44) * 4);\n                }\n              }\n            }" { (expression_statement "local_110[0] = *piVar3;" (assignment_expression "local_110[0] = *piVar3" (subscript_expression "local_110[0]" identifier [ number_literal ]) = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "local_110[1] = piVar3[1];" (assignment_expression "local_110[1] = piVar3[1]" (subscript_expression "local_110[1]" identifier [ number_literal ]) = (subscript_expression "piVar3[1]" identifier [ number_literal ])) ;) (expression_statement "local_100 = *(undefined8 *)(piVar3 + 0x92);" (assignment_expression "local_100 = *(undefined8 *)(piVar3 + 0x92)" identifier = (pointer_expression "*(undefined8 *)(piVar3 + 0x92)" * (cast_expression "(undefined8 *)(piVar3 + 0x92)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 0x92)" ( (binary_expression "piVar3 + 0x92" identifier + number_literal) ))))) ;) (expression_statement "local_f8 = piVar3[8];" (assignment_expression "local_f8 = piVar3[8]" identifier = (subscript_expression "piVar3[8]" identifier [ number_literal ])) ;) (expression_statement "local_110[2] = piVar3[0xaf];" (assignment_expression "local_110[2] = piVar3[0xaf]" (subscript_expression "local_110[2]" identifier [ number_literal ]) = (subscript_expression "piVar3[0xaf]" identifier [ number_literal ])) ;) (if_statement "if (pdVar31 != (double *)0x0) {\n                iVar12 = piVar3[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4);\n                if (*(int *)(iVar12 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar12 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar12 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x44) * 4);\n                }\n              }" if (parenthesized_expression "(pdVar31 != (double *)0x0)" ( (binary_expression "pdVar31 != (double *)0x0" identifier != (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                iVar12 = piVar3[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4);\n                if (*(int *)(iVar12 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar12 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar12 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x44) * 4);\n                }\n              }" { (expression_statement "iVar12 = piVar3[0xb4];" (assignment_expression "iVar12 = piVar3[0xb4]" identifier = (subscript_expression "piVar3[0xb4]" identifier [ number_literal ])) ;) (expression_statement "local_e8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4);" (assignment_expression "local_e8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4)" identifier = (cast_expression "(double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4)" * (cast_expression "(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar31 + *(int *)(iVar12 + 8) * 4)" ( (binary_expression "(int)pdVar31 + *(int *)(iVar12 + 8) * 4" (cast_expression "(int)pdVar31" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar12 + 8) * 4" (pointer_expression "*(int *)(iVar12 + 8)" * (cast_expression "(int *)(iVar12 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "local_e0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4);" (assignment_expression "local_e0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4)" identifier = (cast_expression "(double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4)" * (cast_expression "(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4)" ( (binary_expression "(int)pdVar31 + *(int *)(iVar12 + 0x14) * 4" (cast_expression "(int)pdVar31" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar12 + 0x14) * 4" (pointer_expression "*(int *)(iVar12 + 0x14)" * (cast_expression "(int *)(iVar12 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x14)" ( (binary_expression "iVar12 + 0x14" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "local_d8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4);" (assignment_expression "local_d8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4)" identifier = (cast_expression "(double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4)" * (cast_expression "(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4)" ( (binary_expression "(int)pdVar31 + *(int *)(iVar12 + 0x20) * 4" (cast_expression "(int)pdVar31" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar12 + 0x20) * 4" (pointer_expression "*(int *)(iVar12 + 0x20)" * (cast_expression "(int *)(iVar12 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) )))) * number_literal)) )))))) ;) (if_statement "if (*(int *)(iVar12 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4);\n                }" if (parenthesized_expression "(*(int *)(iVar12 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar12 + 0x28) != 0" (pointer_expression "*(int *)(iVar12 + 0x28)" * (cast_expression "(int *)(iVar12 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x28)" ( (binary_expression "iVar12 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                  local_d0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4);\n                }" { (expression_statement "local_d0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4);" (assignment_expression "local_d0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4)" identifier = (cast_expression "(double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4)" * (cast_expression "(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4)" ( (binary_expression "(int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4" (cast_expression "(int)pdVar31" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar12 + 0x2c) * 4" (pointer_expression "*(int *)(iVar12 + 0x2c)" * (cast_expression "(int *)(iVar12 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x2c)" ( (binary_expression "iVar12 + 0x2c" identifier + number_literal) )))) * number_literal)) )))))) ;) })) (if_statement "if (*(int *)(iVar12 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4);\n                  local_110[2] = 4;\n                }" if (parenthesized_expression "(*(int *)(iVar12 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar12 + 0x34) != 0" (pointer_expression "*(int *)(iVar12 + 0x34)" * (cast_expression "(int *)(iVar12 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x34)" ( (binary_expression "iVar12 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                  local_c8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4);\n                  local_110[2] = 4;\n                }" { (expression_statement "local_c8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4);" (assignment_expression "local_c8 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4)" identifier = (cast_expression "(double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4)" * (cast_expression "(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4)" ( (binary_expression "(int)pdVar31 + *(int *)(iVar12 + 0x38) * 4" (cast_expression "(int)pdVar31" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar12 + 0x38) * 4" (pointer_expression "*(int *)(iVar12 + 0x38)" * (cast_expression "(int *)(iVar12 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x38)" ( (binary_expression "iVar12 + 0x38" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "local_110[2] = 4;" (assignment_expression "local_110[2] = 4" (subscript_expression "local_110[2]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if (*(int *)(iVar12 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x44) * 4);\n                }" if (parenthesized_expression "(*(int *)(iVar12 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar12 + 0x40) != 0" (pointer_expression "*(int *)(iVar12 + 0x40)" * (cast_expression "(int *)(iVar12 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x40)" ( (binary_expression "iVar12 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                  local_c0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x44) * 4);\n                }" { (expression_statement "local_c0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x44) * 4);" (assignment_expression "local_c0 = (double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x44) * 4)" identifier = (cast_expression "(double)*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x44) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x44) * 4)" * (cast_expression "(float *)((int)pdVar31 + *(int *)(iVar12 + 0x44) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar31 + *(int *)(iVar12 + 0x44) * 4)" ( (binary_expression "(int)pdVar31 + *(int *)(iVar12 + 0x44) * 4" (cast_expression "(int)pdVar31" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar12 + 0x44) * 4" (pointer_expression "*(int *)(iVar12 + 0x44)" * (cast_expression "(int *)(iVar12 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x44)" ( (binary_expression "iVar12 + 0x44" identifier + number_literal) )))) * number_literal)) )))))) ;) })) })) })) (expression_statement "dVar42 = local_70 * in_f26_27;" (assignment_expression "dVar42 = local_70 * in_f26_27" identifier = (binary_expression "local_70 * in_f26_27" identifier * identifier)) ;) (expression_statement "dVar49 = local_c8 * in_f26_27;" (assignment_expression "dVar49 = local_c8 * in_f26_27" identifier = (binary_expression "local_c8 * in_f26_27" identifier * identifier)) ;) (expression_statement "dVar46 = (dVar42 + dVar49) - dVar42 * dVar49;" (assignment_expression "dVar46 = (dVar42 + dVar49) - dVar42 * dVar49" identifier = (binary_expression "(dVar42 + dVar49) - dVar42 * dVar49" (parenthesized_expression "(dVar42 + dVar49)" ( (binary_expression "dVar42 + dVar49" identifier + identifier) )) - (binary_expression "dVar42 * dVar49" identifier * identifier))) ;) (if_statement "if (0.0 <= dVar46) {\n              local_c8 = dVar46;\n              if (in_f20_21 < dVar46) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar38 + 0x4a48);\n              if (0.0 <= dVar46) {\n                dVar47 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar47 = in_f22_23;\n            }" if (parenthesized_expression "(0.0 <= dVar46)" ( (binary_expression "0.0 <= dVar46" number_literal <= identifier) )) (compound_statement "{\n              local_c8 = dVar46;\n              if (in_f20_21 < dVar46) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar38 + 0x4a48);\n              if (0.0 <= dVar46) {\n                dVar47 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }" { (expression_statement "local_c8 = dVar46;" (assignment_expression "local_c8 = dVar46" identifier = identifier) ;) (if_statement "if (in_f20_21 < dVar46) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }" if (parenthesized_expression "(in_f20_21 < dVar46)" ( (binary_expression "in_f20_21 < dVar46" identifier < identifier) )) (compound_statement "{\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }" { (expression_statement "local_c8 = *(double *)((int)unaff_s3 + 0x4408);" (assignment_expression "local_c8 = *(double *)((int)unaff_s3 + 0x4408)" identifier = (pointer_expression "*(double *)((int)unaff_s3 + 0x4408)" * (cast_expression "(double *)((int)unaff_s3 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s3 + 0x4408)" ( (binary_expression "(int)unaff_s3 + 0x4408" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) })) (expression_statement "local_c8 = local_c8 * *(double *)(puVar38 + 0x4a48);" (assignment_expression "local_c8 = local_c8 * *(double *)(puVar38 + 0x4a48)" identifier = (binary_expression "local_c8 * *(double *)(puVar38 + 0x4a48)" identifier * (pointer_expression "*(double *)(puVar38 + 0x4a48)" * (cast_expression "(double *)(puVar38 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x4a48)" ( (binary_expression "puVar38 + 0x4a48" identifier + number_literal) )))))) ;) (if_statement "if (0.0 <= dVar46) {\n                dVar47 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)((int)unaff_s3 + 0x4418);\n              }" if (parenthesized_expression "(0.0 <= dVar46)" ( (binary_expression "0.0 <= dVar46" number_literal <= identifier) )) (compound_statement "{\n                dVar47 = *(double *)((int)unaff_s3 + 0x4408);\n              }" { (expression_statement "dVar47 = *(double *)((int)unaff_s3 + 0x4408);" (assignment_expression "dVar47 = *(double *)((int)unaff_s3 + 0x4408)" identifier = (pointer_expression "*(double *)((int)unaff_s3 + 0x4408)" * (cast_expression "(double *)((int)unaff_s3 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s3 + 0x4408)" ( (binary_expression "(int)unaff_s3 + 0x4408" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }) (else_clause "else {\n                dVar47 = *(double *)((int)unaff_s3 + 0x4418);\n              }" else (compound_statement "{\n                dVar47 = *(double *)((int)unaff_s3 + 0x4418);\n              }" { (expression_statement "dVar47 = *(double *)((int)unaff_s3 + 0x4418);" (assignment_expression "dVar47 = *(double *)((int)unaff_s3 + 0x4418)" identifier = (pointer_expression "*(double *)((int)unaff_s3 + 0x4418)" * (cast_expression "(double *)((int)unaff_s3 + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s3 + 0x4418)" ( (binary_expression "(int)unaff_s3 + 0x4418" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }))) }) (else_clause "else {\n              local_c8 = 0.0;\n              dVar47 = in_f22_23;\n            }" else (compound_statement "{\n              local_c8 = 0.0;\n              dVar47 = in_f22_23;\n            }" { (expression_statement "local_c8 = 0.0;" (assignment_expression "local_c8 = 0.0" identifier = number_literal) ;) (expression_statement "dVar47 = in_f22_23;" (assignment_expression "dVar47 = in_f22_23" identifier = identifier) ;) }))) (if_statement "if (*(double *)(puVar38 + 0x43c8) <= dVar46 * dVar47) {\n              dVar47 = *(double *)((int)unaff_s3 + 0x4408) / dVar46;\n            }\n            else {\n              dVar47 = dVar47 / *(double *)(puVar38 + 0x43c8);\n            }" if (parenthesized_expression "(*(double *)(puVar38 + 0x43c8) <= dVar46 * dVar47)" ( (binary_expression "*(double *)(puVar38 + 0x43c8) <= dVar46 * dVar47" (pointer_expression "*(double *)(puVar38 + 0x43c8)" * (cast_expression "(double *)(puVar38 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x43c8)" ( (binary_expression "puVar38 + 0x43c8" identifier + number_literal) )))) <= (binary_expression "dVar46 * dVar47" identifier * identifier)) )) (compound_statement "{\n              dVar47 = *(double *)((int)unaff_s3 + 0x4408) / dVar46;\n            }" { (expression_statement "dVar47 = *(double *)((int)unaff_s3 + 0x4408) / dVar46;" (assignment_expression "dVar47 = *(double *)((int)unaff_s3 + 0x4408) / dVar46" identifier = (binary_expression "*(double *)((int)unaff_s3 + 0x4408) / dVar46" (pointer_expression "*(double *)((int)unaff_s3 + 0x4408)" * (cast_expression "(double *)((int)unaff_s3 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s3 + 0x4408)" ( (binary_expression "(int)unaff_s3 + 0x4408" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) / identifier)) ;) }) (else_clause "else {\n              dVar47 = dVar47 / *(double *)(puVar38 + 0x43c8);\n            }" else (compound_statement "{\n              dVar47 = dVar47 / *(double *)(puVar38 + 0x43c8);\n            }" { (expression_statement "dVar47 = dVar47 / *(double *)(puVar38 + 0x43c8);" (assignment_expression "dVar47 = dVar47 / *(double *)(puVar38 + 0x43c8)" identifier = (binary_expression "dVar47 / *(double *)(puVar38 + 0x43c8)" identifier / (pointer_expression "*(double *)(puVar38 + 0x43c8)" * (cast_expression "(double *)(puVar38 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + 0x43c8)" ( (binary_expression "puVar38 + 0x43c8" identifier + number_literal) )))))) ;) }))) (expression_statement "dVar46 = *(double *)((int)unaff_s3 + 0x4408) - dVar42;" (assignment_expression "dVar46 = *(double *)((int)unaff_s3 + 0x4408) - dVar42" identifier = (binary_expression "*(double *)((int)unaff_s3 + 0x4408) - dVar42" (pointer_expression "*(double *)((int)unaff_s3 + 0x4408)" * (cast_expression "(double *)((int)unaff_s3 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s3 + 0x4408)" ( (binary_expression "(int)unaff_s3 + 0x4408" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) - identifier)) ;) (expression_statement "local_e8 = (dVar49 * local_e8 * dVar46 + dVar42 * local_90) * dVar47;" (assignment_expression "local_e8 = (dVar49 * local_e8 * dVar46 + dVar42 * local_90) * dVar47" identifier = (binary_expression "(dVar49 * local_e8 * dVar46 + dVar42 * local_90) * dVar47" (parenthesized_expression "(dVar49 * local_e8 * dVar46 + dVar42 * local_90)" ( (binary_expression "dVar49 * local_e8 * dVar46 + dVar42 * local_90" (binary_expression "dVar49 * local_e8 * dVar46" (binary_expression "dVar49 * local_e8" identifier * identifier) * identifier) + (binary_expression "dVar42 * local_90" identifier * identifier)) )) * identifier)) ;) (expression_statement "local_e0 = (dVar49 * local_e0 * dVar46 + dVar42 * local_88) * dVar47;" (assignment_expression "local_e0 = (dVar49 * local_e0 * dVar46 + dVar42 * local_88) * dVar47" identifier = (binary_expression "(dVar49 * local_e0 * dVar46 + dVar42 * local_88) * dVar47" (parenthesized_expression "(dVar49 * local_e0 * dVar46 + dVar42 * local_88)" ( (binary_expression "dVar49 * local_e0 * dVar46 + dVar42 * local_88" (binary_expression "dVar49 * local_e0 * dVar46" (binary_expression "dVar49 * local_e0" identifier * identifier) * identifier) + (binary_expression "dVar42 * local_88" identifier * identifier)) )) * identifier)) ;) (expression_statement "local_d8 = (dVar49 * local_d8 * dVar46 + dVar42 * local_80) * dVar47;" (assignment_expression "local_d8 = (dVar49 * local_d8 * dVar46 + dVar42 * local_80) * dVar47" identifier = (binary_expression "(dVar49 * local_d8 * dVar46 + dVar42 * local_80) * dVar47" (parenthesized_expression "(dVar49 * local_d8 * dVar46 + dVar42 * local_80)" ( (binary_expression "dVar49 * local_d8 * dVar46 + dVar42 * local_80" (binary_expression "dVar49 * local_d8 * dVar46" (binary_expression "dVar49 * local_d8" identifier * identifier) * identifier) + (binary_expression "dVar42 * local_80" identifier * identifier)) )) * identifier)) ;) (if_statement "if (local_110[1] == 2) {\n              local_d0 = (dVar49 * local_d0 * dVar46 + dVar42 * local_78) * dVar47;\n            }" if (parenthesized_expression "(local_110[1] == 2)" ( (binary_expression "local_110[1] == 2" (subscript_expression "local_110[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n              local_d0 = (dVar49 * local_d0 * dVar46 + dVar42 * local_78) * dVar47;\n            }" { (expression_statement "local_d0 = (dVar49 * local_d0 * dVar46 + dVar42 * local_78) * dVar47;" (assignment_expression "local_d0 = (dVar49 * local_d0 * dVar46 + dVar42 * local_78) * dVar47" identifier = (binary_expression "(dVar49 * local_d0 * dVar46 + dVar42 * local_78) * dVar47" (parenthesized_expression "(dVar49 * local_d0 * dVar46 + dVar42 * local_78)" ( (binary_expression "dVar49 * local_d0 * dVar46 + dVar42 * local_78" (binary_expression "dVar49 * local_d0 * dVar46" (binary_expression "dVar49 * local_d0" identifier * identifier) * identifier) + (binary_expression "dVar42 * local_78" identifier * identifier)) )) * identifier)) ;) })) (expression_statement "iVar12 = piVar3[0xb4];" (assignment_expression "iVar12 = piVar3[0xb4]" identifier = (subscript_expression "piVar3[0xb4]" identifier [ number_literal ])) ;) (expression_statement "*(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4) = (float)local_e8;" (assignment_expression "*(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4) = (float)local_e8" (pointer_expression "*(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4)" * (cast_expression "(float *)((int)pdVar31 + *(int *)(iVar12 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar31 + *(int *)(iVar12 + 8) * 4)" ( (binary_expression "(int)pdVar31 + *(int *)(iVar12 + 8) * 4" (cast_expression "(int)pdVar31" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar12 + 8) * 4" (pointer_expression "*(int *)(iVar12 + 8)" * (cast_expression "(int *)(iVar12 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)local_e8" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4) = (float)local_e0;" (assignment_expression "*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4) = (float)local_e0" (pointer_expression "*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4)" * (cast_expression "(float *)((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar31 + *(int *)(iVar12 + 0x14) * 4)" ( (binary_expression "(int)pdVar31 + *(int *)(iVar12 + 0x14) * 4" (cast_expression "(int)pdVar31" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar12 + 0x14) * 4" (pointer_expression "*(int *)(iVar12 + 0x14)" * (cast_expression "(int *)(iVar12 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x14)" ( (binary_expression "iVar12 + 0x14" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)local_e0" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4) = (float)local_d8;" (assignment_expression "*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4) = (float)local_d8" (pointer_expression "*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4)" * (cast_expression "(float *)((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar31 + *(int *)(iVar12 + 0x20) * 4)" ( (binary_expression "(int)pdVar31 + *(int *)(iVar12 + 0x20) * 4" (cast_expression "(int)pdVar31" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar12 + 0x20) * 4" (pointer_expression "*(int *)(iVar12 + 0x20)" * (cast_expression "(int *)(iVar12 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)local_d8" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (if_statement "if (*(int *)(iVar12 + 0x28) != 0) {\n              *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4) = (float)local_d0;\n            }" if (parenthesized_expression "(*(int *)(iVar12 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar12 + 0x28) != 0" (pointer_expression "*(int *)(iVar12 + 0x28)" * (cast_expression "(int *)(iVar12 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x28)" ( (binary_expression "iVar12 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4) = (float)local_d0;\n            }" { (expression_statement "*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4) = (float)local_d0;" (assignment_expression "*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4) = (float)local_d0" (pointer_expression "*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4)" * (cast_expression "(float *)((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4)" ( (binary_expression "(int)pdVar31 + *(int *)(iVar12 + 0x2c) * 4" (cast_expression "(int)pdVar31" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar12 + 0x2c) * 4" (pointer_expression "*(int *)(iVar12 + 0x2c)" * (cast_expression "(int *)(iVar12 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x2c)" ( (binary_expression "iVar12 + 0x2c" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)local_d0" ( (type_descriptor "float" primitive_type) ) identifier)) ;) })) (if_statement "if (*(int *)(iVar12 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar45 = (float)local_c8;\n              }\n              *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4) = fVar45;\n            }" if (parenthesized_expression "(*(int *)(iVar12 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar12 + 0x34) != 0" (pointer_expression "*(int *)(iVar12 + 0x34)" * (cast_expression "(int *)(iVar12 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x34)" ( (binary_expression "iVar12 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              if (local_110[2] == 0) {\n                fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar45 = (float)local_c8;\n              }\n              *(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4) = fVar45;\n            }" { (if_statement "if (local_110[2] == 0) {\n                fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar45 = (float)local_c8;\n              }" if (parenthesized_expression "(local_110[2] == 0)" ( (binary_expression "local_110[2] == 0" (subscript_expression "local_110[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }" { (expression_statement "fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);" (assignment_expression "fVar45 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier = (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                fVar45 = (float)local_c8;\n              }" else (compound_statement "{\n                fVar45 = (float)local_c8;\n              }" { (expression_statement "fVar45 = (float)local_c8;" (assignment_expression "fVar45 = (float)local_c8" identifier = (cast_expression "(float)local_c8" ( (type_descriptor "float" primitive_type) ) identifier)) ;) }))) (expression_statement "*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4) = fVar45;" (assignment_expression "*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4) = fVar45" (pointer_expression "*(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4)" * (cast_expression "(float *)((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar31 + *(int *)(iVar12 + 0x38) * 4)" ( (binary_expression "(int)pdVar31 + *(int *)(iVar12 + 0x38) * 4" (cast_expression "(int)pdVar31" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar12 + 0x38) * 4" (pointer_expression "*(int *)(iVar12 + 0x38)" * (cast_expression "(int *)(iVar12 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x38)" ( (binary_expression "iVar12 + 0x38" identifier + number_literal) )))) * number_literal)) )))) = identifier) ;) })) (expression_statement "pdVar31 = (double *)((int)pdVar31 + piVar3[0xb0] * 4);" (assignment_expression "pdVar31 = (double *)((int)pdVar31 + piVar3[0xb0] * 4)" identifier = (cast_expression "(double *)((int)pdVar31 + piVar3[0xb0] * 4)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar31 + piVar3[0xb0] * 4)" ( (binary_expression "(int)pdVar31 + piVar3[0xb0] * 4" (cast_expression "(int)pdVar31" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "piVar3[0xb0] * 4" (subscript_expression "piVar3[0xb0]" identifier [ number_literal ]) * number_literal)) )))) ;) })) (expression_statement "pdVar18 = pdVar6;" (assignment_expression "pdVar18 = pdVar6" identifier = identifier) ;) (expression_statement "iVar12 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar6,unaff_s4);" (assignment_expression "iVar12 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar6,unaff_s4)" identifier = (call_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar6,unaff_s4)" (parenthesized_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)" ( (pointer_expression "*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510" * (cast_expression "(code *)PTR_SyncCacheViewAuthenticPixels_003fa510" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pdVar6,unaff_s4)" ( identifier , identifier )))) ;) (if_statement "if (iVar12 == 0) {\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n            *(undefined4 *)((int)this + 0x28) = 0;\n          }" { (expression_statement "*(undefined4 *)((int)this + 0x28) = 0;" (assignment_expression "*(undefined4 *)((int)this + 0x28) = 0" (pointer_expression "*(undefined4 *)((int)this + 0x28)" * (cast_expression "(undefined4 *)((int)this + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 0x28)" ( (binary_expression "(int)this + 0x28" (cast_expression "(int)this" ( (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)) ;) (expression_statement "unaff_s6 = (double *)puVar38;" (assignment_expression "unaff_s6 = (double *)puVar38" identifier = (cast_expression "(double *)puVar38" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(iVar4 < (int)puVar7)" ( (binary_expression "iVar4 < (int)puVar7" identifier < (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (if_statement "if (local_5c == *(int *)PTR___stack_chk_guard_003fa248) {\n    return;\n  }" if (parenthesized_expression "(local_5c == *(int *)PTR___stack_chk_guard_003fa248)" ( (binary_expression "local_5c == *(int *)PTR___stack_chk_guard_003fa248" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_003fa248" * (cast_expression "(int *)PTR___stack_chk_guard_003fa248" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar39 = DrawPolygonPrimitive__omp_fn_3;" (assignment_expression "pcVar39 = DrawPolygonPrimitive__omp_fn_3" identifier = identifier) ;) (expression_statement "puVar38 = PTR___stack_chk_fail_003fa07c;" (assignment_expression "puVar38 = 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 "puStack_350 = puVar38 + 0x35d9c0;" (assignment_expression "puStack_350 = puVar38 + 0x35d9c0" identifier = (binary_expression "puVar38 + 0x35d9c0" identifier + number_literal)) ;) (expression_statement "iStack_1e4 = **(int **)(puVar38 + 0x356358);" (assignment_expression "iStack_1e4 = **(int **)(puVar38 + 0x356358)" identifier = (pointer_expression "**(int **)(puVar38 + 0x356358)" * (pointer_expression "*(int **)(puVar38 + 0x356358)" * (cast_expression "(int **)(puVar38 + 0x356358)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x356358)" ( (binary_expression "puVar38 + 0x356358" identifier + number_literal) )))))) ;) (expression_statement "iVar30 = *(int *)((int)pdVar18 + 0x24);" (assignment_expression "iVar30 = *(int *)((int)pdVar18 + 0x24)" identifier = (pointer_expression "*(int *)((int)pdVar18 + 0x24)" * (cast_expression "(int *)((int)pdVar18 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar18 + 0x24)" ( (binary_expression "(int)pdVar18 + 0x24" (cast_expression "(int)pdVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pdStack_2a8 = pdVar18;" (assignment_expression "pdStack_2a8 = pdVar18" identifier = identifier) ;) (expression_statement "pdStack_1e0 = pdVar31;" (assignment_expression "pdStack_1e0 = pdVar31" identifier = identifier) ;) (expression_statement "piStack_1dc = piVar3;" (assignment_expression "piStack_1dc = piVar3" identifier = identifier) ;) (expression_statement "iStack_1d8 = unaff_s2;" (assignment_expression "iStack_1d8 = unaff_s2" identifier = identifier) ;) (expression_statement "pdStack_1d4 = unaff_s3;" (assignment_expression "pdStack_1d4 = unaff_s3" identifier = identifier) ;) (expression_statement "piStack_1d0 = unaff_s4;" (assignment_expression "piStack_1d0 = unaff_s4" identifier = identifier) ;) (expression_statement "pvStack_1cc = this;" (assignment_expression "pvStack_1cc = this" identifier = identifier) ;) (expression_statement "pdStack_1c8 = unaff_s6;" (assignment_expression "pdStack_1c8 = unaff_s6" identifier = identifier) ;) (expression_statement "uStack_1c4 = unaff_s7;" (assignment_expression "uStack_1c4 = unaff_s7" identifier = identifier) ;) (expression_statement "iStack_1c0 = iVar4;" (assignment_expression "iStack_1c0 = iVar4" identifier = identifier) ;) (expression_statement "pcStack_1bc = pcVar39;" (assignment_expression "pcStack_1bc = pcVar39" identifier = identifier) ;) (expression_statement "dStack_1b8 = in_f20_21;" (assignment_expression "dStack_1b8 = in_f20_21" identifier = identifier) ;) (expression_statement "dStack_1b0 = in_f22_23;" (assignment_expression "dStack_1b0 = in_f22_23" identifier = identifier) ;) (expression_statement "dStack_1a8 = in_f24_25;" (assignment_expression "dStack_1a8 = in_f24_25" identifier = identifier) ;) (expression_statement "dStack_1a0 = in_f26_27;" (assignment_expression "dStack_1a0 = in_f26_27" identifier = identifier) ;) (expression_statement "dStack_198 = in_f28_29;" (assignment_expression "dStack_198 = in_f28_29" identifier = identifier) ;) (expression_statement "dStack_190 = in_f30_31;" (assignment_expression "dStack_190 = in_f30_31" identifier = identifier) ;) (expression_statement "iVar12 = (**(code **)(puVar38 + 0x356a34))();" (assignment_expression "iVar12 = (**(code **)(puVar38 + 0x356a34))()" identifier = (call_expression "(**(code **)(puVar38 + 0x356a34))()" (parenthesized_expression "(**(code **)(puVar38 + 0x356a34))" ( (pointer_expression "**(code **)(puVar38 + 0x356a34)" * (pointer_expression "*(code **)(puVar38 + 0x356a34)" * (cast_expression "(code **)(puVar38 + 0x356a34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + 0x356a34)" ( (binary_expression "puVar38 + 0x356a34" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar51 = (**(code **)(puStack_350 + -0x7390))();" (assignment_expression "iVar51 = (**(code **)(puStack_350 + -0x7390))()" identifier = (call_expression "(**(code **)(puStack_350 + -0x7390))()" (parenthesized_expression "(**(code **)(puStack_350 + -0x7390))" ( (pointer_expression "**(code **)(puStack_350 + -0x7390)" * (pointer_expression "*(code **)(puStack_350 + -0x7390)" * (cast_expression "(code **)(puStack_350 + -0x7390)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_350 + -0x7390)" ( (binary_expression "puStack_350 + -0x7390" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar14 = (*(int *)(pdVar18 + 5) + 1) - iVar30;" (assignment_expression "iVar14 = (*(int *)(pdVar18 + 5) + 1) - iVar30" identifier = (binary_expression "(*(int *)(pdVar18 + 5) + 1) - iVar30" (parenthesized_expression "(*(int *)(pdVar18 + 5) + 1)" ( (binary_expression "*(int *)(pdVar18 + 5) + 1" (pointer_expression "*(int *)(pdVar18 + 5)" * (cast_expression "(int *)(pdVar18 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar18 + 5)" ( (binary_expression "pdVar18 + 5" identifier + number_literal) )))) + number_literal) )) - identifier)) ;) (if_statement "if (iVar12 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 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 "iVar52 = iVar14 / iVar12;" (assignment_expression "iVar52 = iVar14 / iVar12" identifier = (binary_expression "iVar14 / iVar12" identifier / identifier)) ;) (expression_statement "iVar14 = iVar14 % iVar12;" (assignment_expression "iVar14 = iVar14 % iVar12" identifier = (binary_expression "iVar14 % iVar12" identifier % identifier)) ;) (expression_statement "uVar28 = (uint)(iVar51 < iVar14);" (assignment_expression "uVar28 = (uint)(iVar51 < iVar14)" identifier = (call_expression "(uint)(iVar51 < iVar14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar51 < iVar14)" ( (binary_expression "iVar51 < iVar14" identifier < identifier) )))) ;) (if_statement "if (uVar28 != 0) {\n    iVar52 = iVar52 + 1;\n    iVar14 = 0;\n  }" if (parenthesized_expression "(uVar28 != 0)" ( (binary_expression "uVar28 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar52 = iVar52 + 1;\n    iVar14 = 0;\n  }" { (expression_statement "iVar52 = iVar52 + 1;" (assignment_expression "iVar52 = iVar52 + 1" identifier = (binary_expression "iVar52 + 1" identifier + number_literal)) ;) (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) })) (expression_statement "uVar9 = iVar52 * iVar51 + iVar14;" (assignment_expression "uVar9 = iVar52 * iVar51 + iVar14" identifier = (binary_expression "iVar52 * iVar51 + iVar14" (binary_expression "iVar52 * iVar51" identifier * identifier) + identifier)) ;) (expression_statement "pdVar31 = (double *)(iVar52 + uVar9);" (assignment_expression "pdVar31 = (double *)(iVar52 + uVar9)" identifier = (cast_expression "(double *)(iVar52 + uVar9)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar52 + uVar9)" ( (binary_expression "iVar52 + uVar9" identifier + identifier) )))) ;) (if_statement "if ((int)uVar9 < (int)pdVar31) {\n    iStack_29c = *(int *)((int)pdStack_2a8 + 0x1c);\n    in_f28_29 = *pdStack_2a8;\n    iStack_2f4 = *(int *)(pdStack_2a8 + 3);\n    pdStack_2a0 = *(double **)((int)pdStack_2a8 + 0x14);\n    uStack_2d0 = *(undefined4 *)(pdStack_2a8 + 2);\n    iStack_324 = *(int *)((int)pdStack_2a8 + 0xc);\n    unaff_s6 = *(double **)(pdStack_2a8 + 1);\n    iStack_2f0 = iVar30 + uVar9;\n    puStack_2a4 = (undefined1 *)(iVar30 + (int)pdVar31);\n    unaff_s7 = *(uint *)(puStack_350 + -0x7fd0);\n    dStack_320 = *(double *)(unaff_s7 + 0x4408);\n    iVar4 = *(int *)(puStack_350 + -0x7fd0);\n    dStack_2b8 = *(double *)(iVar4 + 0x43c8);\n    uStack_2f8 = uVar9;\n    do {\n      iVar30 = (**(code **)(puStack_350 + -0x7390))();\n      if (*(int *)((int)pdStack_2a8 + 0x2c) != 0) {\n        pdVar31 = *(double **)(pdStack_2a8 + 4);\n        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);\n        dVar41 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar31 - in_f20_21);\n        uStack_2d4 = (uint)dVar41;\n        dVar41 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar31[2] + in_f20_21);\n        uVar28 = uStack_2d4;\n        pdVar18 = (double *)(int)dVar41;\n        uStack_354 = uStack_2d0;\n        puStack_358 = (undefined4 *)0x1;\n        pdVar31 = pdStack_2a0;\n        pdStack_2cc = pdVar18;\n        iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar18 + (1 - uStack_2d4)));\n        if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar30 = iVar30 * 4;\n          puVar38 = puStack_350;\n          if ((int)uVar28 <= (int)pdVar18) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar30);\n            uStack_328 = uStack_2d4;\n            pdVar18 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              pvVar15 = (void *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)pvVar15 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4f34:\n                  pdVar31 = (double *)*unaff_s4;\n                  if (0 < (int)pvVar15) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4ec0:\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar41 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar12 = *(int *)(puVar38 + -0x7fd0);\n                dVar41 = *(double *)(iVar12 + 0x43d0);\n                this = (void *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar41 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar31 = unaff_s3;\n                  dStack_330 = dVar41;\n                  pdStack_2d8 = pdVar18;\n                  do {\n                    pdVar18 = pdStack_2ec;\n                    iVar51 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar31[3] + dVar41) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar31 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar31[2] + *(double *)(iVar12 + 0x43d0))) {\n                        iVar30 = *(int *)(pdVar31 + 7);\n                        dVar43 = (double)iVar30;\n                        if (iVar30 < 0) {\n                          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar43 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar30 = 1;\n                        }\n                        if (iVar30 < *(int *)((int)pdVar31 + 0x2c)) {\n                          iVar14 = *(int *)(pdVar31 + 5);\n                          iVar52 = (iVar30 + 0xfffffff) * 0x10;\n                          pdVar18 = (double *)(iVar14 + iVar52);\n                          dVar43 = *(double *)(iVar12 + 0x43d0);\n                          if ((pdVar18[1] - in_f28_29) - dVar43 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar33 = *(int *)(puVar38 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar33 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar52 = iVar52 + 0x10;\n                              dVar42 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43\n                                 ) {\n                                if (in_f26_27 != pdVar31[4]) {\n                                  pdVar31[4] = in_f26_27;\n                                  *(int *)(pdVar31 + 7) = iVar30;\n                                }\n                                dVar46 = pdVar18[2] - *pdVar18;\n                                dVar44 = pdVar18[3] - pdVar18[1];\n                                dVar49 = in_f22_23 - *pdVar18;\n                                dVar42 = in_f26_27 - pdVar18[1];\n                                dVar47 = dVar46 * dVar49 + dVar44 * dVar42;\n                                if (0.0 < dVar47) {\n                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;\n                                  if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }\n                                dVar42 = dStack_338;\n                                if (*(int *)((int)pdVar31 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar42;\n                                dVar42 = dStack_340;\n                                if (((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar42;\n                              iVar30 = iVar30 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar43;\n                              if (*(int *)((int)pdVar31 + 0x2c) <= iVar30) break;\n                              iVar14 = *(int *)(pdVar31 + 5);\n                              pdVar18 = (double *)(iVar14 + iVar52);\n                            } while ((pdVar18[1] - in_f28_29) - *(double *)(iVar12 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (pvVar15 <= this) {\n                        (**(code **)(puVar38 + -0x7290))\n                                  (*(int *)(puVar38 + -0x7fcc) + 0x69fc,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x69c0,0x3e3,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x773c);\n                        return;\n                      }\n                      iVar51 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar5 = (**(code **)(puVar38 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar31 + iVar51 + 0x28));\n                      *(undefined4 *)((int)pdVar31 + iVar51 + 0x28) = uVar5;\n                      pvVar15 = (void *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)pvVar15;\n                      puVar38 = puStack_350;\n                      if (this < pvVar15) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar31 + (*unaff_s4 - (int)pdVar18)),\n                                   *unaff_s4 + ((int)this + 1) * 0x40,\n                                   ((int)pvVar15 - (int)this) * 0x40);\n                        puVar38 = puStack_350;\n                      }\n                    }\n                    this = (void *)((int)this + 1);\n                    unaff_s3 = pdVar31 + 8;\n                    pvVar15 = (void *)unaff_s4[1];\n                  } while (((int)this < (int)pvVar15) &&\n                          (pdVar18 = pdVar31 + 9, pdVar31 = unaff_s3,\n                          (*pdVar18 - in_f28_29) - *(double *)(iVar12 + 0x43d0) < in_f26_27));\n                  pdVar18 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar31 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar41 = in_f30_31;\nLAB_000a4f3c:\n                dVar43 = (double)iStack_2f0;\n                pvVar23 = (void *)0x0;\n                if (pdVar31[1] < dVar43) {\n                  uVar28 = 0;\n                  do {\n                    if ((dVar43 <= pdVar31[3]) &&\n                       (dVar42 = (double)(int)uStack_328, *pdVar31 < dVar42)) {\n                      iVar12 = -1;\n                      if (dVar42 <= pdVar31[2]) {\n                        iVar12 = *(int *)(pdVar31 + 7);\n                        dVar49 = (double)iVar12;\n                        if (iVar12 < 0) {\n                          dVar49 = dVar49 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar49 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar12 = 1;\n                        }\n                        iVar51 = *(int *)((int)pdVar31 + 0x2c) + -1;\n                        if (iVar12 < iVar51) {\n                          iVar30 = *(int *)(pdVar31 + 5) + iVar12 * 0x10;\n                          dVar49 = *(double *)(iVar30 + 8);\n                          while (dVar49 < dVar43) {\n                            iVar12 = iVar12 + 1;\n                            if (iVar51 <= iVar12) break;\n                            dVar49 = *(double *)(iVar30 + 0x18);\n                            iVar30 = iVar30 + 0x10;\n                          }\n                        }\n                        pdVar6 = (double *)(*(int *)(pdVar31 + 5) + (iVar12 + 0xfffffff) * 0x10);\n                        iVar12 = -1;\n                        if ((pdVar6[2] - *pdVar6) * (dVar43 - pdVar6[1]) <=\n                            (pdVar6[3] - pdVar6[1]) * (dVar42 - *pdVar6)) {\n                          if (*(int *)(pdVar31 + 6) != 0) {\n                            iVar12 = 1;\n                          }\n                          uVar28 = uVar28 + iVar12;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar31 + 6) != 0) {\n                          iVar12 = 1;\n                        }\n                        uVar28 = uVar28 + iVar12;\n                      }\n                    }\n                    pvVar23 = (void *)((int)pvVar23 + 1);\n                  } while ((pvVar23 != pvVar15) &&\n                          (pdVar6 = pdVar31 + 9, pdVar31 = pdVar31 + 8, *pdVar6 < dVar43));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar28 < 0) {\n                      uVar28 = -uVar28;\n                    }\n                    if ((uVar28 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar28 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar12 == 0) {\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar28 = uStack_2f8;\n              iVar30 = uStack_328 - uStack_2d4;\n              iVar12 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar12 == 0) {\n                puVar10 = (undefined4 *)(iStack_324 + 0x48);\n                puVar2 = auStack_298;\n                do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0x98));\n                uVar5 = puVar11[5];\n                puVar17[4] = *puVar10;\n                puVar17[5] = uVar5;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uStack_2f8 + *(int *)(iVar12 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar31 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0) {\n                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }\n              dVar43 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar42 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar43 = (dVar43 + dVar42) - dVar43 * dVar42;\n              in_f30_31 = dVar41;\n              if (0 < *(int *)(pdVar18 + 0x58)) {\n                iVar51 = 0;\n                iVar12 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar51);\n                  uStack_348 = dVar43;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7370 + uVar9 * 4))\n                    )();\n                    return;\n                  }\n                  iVar12 = iVar12 + 1;\n                  iVar51 = iVar51 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar12 < *(int *)(pdVar18 + 0x58));\n              }\n              iVar12 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar12 == 0) {\n                puVar10 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar2 = auStack_240;\n                do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar5 = puVar11[5];\n                puVar17[4] = *puVar10;\n                puVar17[5] = uVar5;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uVar28 + *(int *)(iVar12 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar31 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0) {\n                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar43 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar43) - dVar41 * dVar43;\n              iVar12 = *(int *)(pdVar18 + 0x58);\n              if (0 < iVar12) {\n                iVar14 = 0;\n                iVar51 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar14);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7384 + uVar9 * 4))\n                    )(in_f20_21,*(undefined8 *)(*(int *)(puVar38 + -0x7fd0) + 0x4a48));\n                    return;\n                  }\n                  iVar51 = iVar51 + 1;\n                  iVar12 = *(int *)(pdVar18 + 0x58);\n                  iVar14 = iVar14 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar51 < iVar12);\n              }\n              iStack_308 = iStack_308 + iVar12 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar18;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar31 = pdStack_2a0;\n          iVar12 = (**(code **)(puVar38 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar12 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }\n      }\n      iStack_2f0 = iStack_2f0 + 1;\n      uStack_2f8 = uStack_2f8 + 1;\n    } while (iStack_2f0 < (int)puStack_2a4);\n  }" if (parenthesized_expression "((int)uVar9 < (int)pdVar31)" ( (binary_expression "(int)uVar9 < (int)pdVar31" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pdVar31" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    iStack_29c = *(int *)((int)pdStack_2a8 + 0x1c);\n    in_f28_29 = *pdStack_2a8;\n    iStack_2f4 = *(int *)(pdStack_2a8 + 3);\n    pdStack_2a0 = *(double **)((int)pdStack_2a8 + 0x14);\n    uStack_2d0 = *(undefined4 *)(pdStack_2a8 + 2);\n    iStack_324 = *(int *)((int)pdStack_2a8 + 0xc);\n    unaff_s6 = *(double **)(pdStack_2a8 + 1);\n    iStack_2f0 = iVar30 + uVar9;\n    puStack_2a4 = (undefined1 *)(iVar30 + (int)pdVar31);\n    unaff_s7 = *(uint *)(puStack_350 + -0x7fd0);\n    dStack_320 = *(double *)(unaff_s7 + 0x4408);\n    iVar4 = *(int *)(puStack_350 + -0x7fd0);\n    dStack_2b8 = *(double *)(iVar4 + 0x43c8);\n    uStack_2f8 = uVar9;\n    do {\n      iVar30 = (**(code **)(puStack_350 + -0x7390))();\n      if (*(int *)((int)pdStack_2a8 + 0x2c) != 0) {\n        pdVar31 = *(double **)(pdStack_2a8 + 4);\n        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);\n        dVar41 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar31 - in_f20_21);\n        uStack_2d4 = (uint)dVar41;\n        dVar41 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar31[2] + in_f20_21);\n        uVar28 = uStack_2d4;\n        pdVar18 = (double *)(int)dVar41;\n        uStack_354 = uStack_2d0;\n        puStack_358 = (undefined4 *)0x1;\n        pdVar31 = pdStack_2a0;\n        pdStack_2cc = pdVar18;\n        iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar18 + (1 - uStack_2d4)));\n        if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar30 = iVar30 * 4;\n          puVar38 = puStack_350;\n          if ((int)uVar28 <= (int)pdVar18) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar30);\n            uStack_328 = uStack_2d4;\n            pdVar18 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              pvVar15 = (void *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)pvVar15 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4f34:\n                  pdVar31 = (double *)*unaff_s4;\n                  if (0 < (int)pvVar15) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4ec0:\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar41 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar12 = *(int *)(puVar38 + -0x7fd0);\n                dVar41 = *(double *)(iVar12 + 0x43d0);\n                this = (void *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar41 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar31 = unaff_s3;\n                  dStack_330 = dVar41;\n                  pdStack_2d8 = pdVar18;\n                  do {\n                    pdVar18 = pdStack_2ec;\n                    iVar51 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar31[3] + dVar41) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar31 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar31[2] + *(double *)(iVar12 + 0x43d0))) {\n                        iVar30 = *(int *)(pdVar31 + 7);\n                        dVar43 = (double)iVar30;\n                        if (iVar30 < 0) {\n                          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar43 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar30 = 1;\n                        }\n                        if (iVar30 < *(int *)((int)pdVar31 + 0x2c)) {\n                          iVar14 = *(int *)(pdVar31 + 5);\n                          iVar52 = (iVar30 + 0xfffffff) * 0x10;\n                          pdVar18 = (double *)(iVar14 + iVar52);\n                          dVar43 = *(double *)(iVar12 + 0x43d0);\n                          if ((pdVar18[1] - in_f28_29) - dVar43 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar33 = *(int *)(puVar38 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar33 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar52 = iVar52 + 0x10;\n                              dVar42 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43\n                                 ) {\n                                if (in_f26_27 != pdVar31[4]) {\n                                  pdVar31[4] = in_f26_27;\n                                  *(int *)(pdVar31 + 7) = iVar30;\n                                }\n                                dVar46 = pdVar18[2] - *pdVar18;\n                                dVar44 = pdVar18[3] - pdVar18[1];\n                                dVar49 = in_f22_23 - *pdVar18;\n                                dVar42 = in_f26_27 - pdVar18[1];\n                                dVar47 = dVar46 * dVar49 + dVar44 * dVar42;\n                                if (0.0 < dVar47) {\n                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;\n                                  if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }\n                                dVar42 = dStack_338;\n                                if (*(int *)((int)pdVar31 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar42;\n                                dVar42 = dStack_340;\n                                if (((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar42;\n                              iVar30 = iVar30 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar43;\n                              if (*(int *)((int)pdVar31 + 0x2c) <= iVar30) break;\n                              iVar14 = *(int *)(pdVar31 + 5);\n                              pdVar18 = (double *)(iVar14 + iVar52);\n                            } while ((pdVar18[1] - in_f28_29) - *(double *)(iVar12 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (pvVar15 <= this) {\n                        (**(code **)(puVar38 + -0x7290))\n                                  (*(int *)(puVar38 + -0x7fcc) + 0x69fc,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x69c0,0x3e3,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x773c);\n                        return;\n                      }\n                      iVar51 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar5 = (**(code **)(puVar38 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar31 + iVar51 + 0x28));\n                      *(undefined4 *)((int)pdVar31 + iVar51 + 0x28) = uVar5;\n                      pvVar15 = (void *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)pvVar15;\n                      puVar38 = puStack_350;\n                      if (this < pvVar15) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar31 + (*unaff_s4 - (int)pdVar18)),\n                                   *unaff_s4 + ((int)this + 1) * 0x40,\n                                   ((int)pvVar15 - (int)this) * 0x40);\n                        puVar38 = puStack_350;\n                      }\n                    }\n                    this = (void *)((int)this + 1);\n                    unaff_s3 = pdVar31 + 8;\n                    pvVar15 = (void *)unaff_s4[1];\n                  } while (((int)this < (int)pvVar15) &&\n                          (pdVar18 = pdVar31 + 9, pdVar31 = unaff_s3,\n                          (*pdVar18 - in_f28_29) - *(double *)(iVar12 + 0x43d0) < in_f26_27));\n                  pdVar18 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar31 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar41 = in_f30_31;\nLAB_000a4f3c:\n                dVar43 = (double)iStack_2f0;\n                pvVar23 = (void *)0x0;\n                if (pdVar31[1] < dVar43) {\n                  uVar28 = 0;\n                  do {\n                    if ((dVar43 <= pdVar31[3]) &&\n                       (dVar42 = (double)(int)uStack_328, *pdVar31 < dVar42)) {\n                      iVar12 = -1;\n                      if (dVar42 <= pdVar31[2]) {\n                        iVar12 = *(int *)(pdVar31 + 7);\n                        dVar49 = (double)iVar12;\n                        if (iVar12 < 0) {\n                          dVar49 = dVar49 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar49 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar12 = 1;\n                        }\n                        iVar51 = *(int *)((int)pdVar31 + 0x2c) + -1;\n                        if (iVar12 < iVar51) {\n                          iVar30 = *(int *)(pdVar31 + 5) + iVar12 * 0x10;\n                          dVar49 = *(double *)(iVar30 + 8);\n                          while (dVar49 < dVar43) {\n                            iVar12 = iVar12 + 1;\n                            if (iVar51 <= iVar12) break;\n                            dVar49 = *(double *)(iVar30 + 0x18);\n                            iVar30 = iVar30 + 0x10;\n                          }\n                        }\n                        pdVar6 = (double *)(*(int *)(pdVar31 + 5) + (iVar12 + 0xfffffff) * 0x10);\n                        iVar12 = -1;\n                        if ((pdVar6[2] - *pdVar6) * (dVar43 - pdVar6[1]) <=\n                            (pdVar6[3] - pdVar6[1]) * (dVar42 - *pdVar6)) {\n                          if (*(int *)(pdVar31 + 6) != 0) {\n                            iVar12 = 1;\n                          }\n                          uVar28 = uVar28 + iVar12;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar31 + 6) != 0) {\n                          iVar12 = 1;\n                        }\n                        uVar28 = uVar28 + iVar12;\n                      }\n                    }\n                    pvVar23 = (void *)((int)pvVar23 + 1);\n                  } while ((pvVar23 != pvVar15) &&\n                          (pdVar6 = pdVar31 + 9, pdVar31 = pdVar31 + 8, *pdVar6 < dVar43));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar28 < 0) {\n                      uVar28 = -uVar28;\n                    }\n                    if ((uVar28 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar28 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar12 == 0) {\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar28 = uStack_2f8;\n              iVar30 = uStack_328 - uStack_2d4;\n              iVar12 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar12 == 0) {\n                puVar10 = (undefined4 *)(iStack_324 + 0x48);\n                puVar2 = auStack_298;\n                do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0x98));\n                uVar5 = puVar11[5];\n                puVar17[4] = *puVar10;\n                puVar17[5] = uVar5;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uStack_2f8 + *(int *)(iVar12 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar31 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0) {\n                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }\n              dVar43 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar42 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar43 = (dVar43 + dVar42) - dVar43 * dVar42;\n              in_f30_31 = dVar41;\n              if (0 < *(int *)(pdVar18 + 0x58)) {\n                iVar51 = 0;\n                iVar12 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar51);\n                  uStack_348 = dVar43;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7370 + uVar9 * 4))\n                    )();\n                    return;\n                  }\n                  iVar12 = iVar12 + 1;\n                  iVar51 = iVar51 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar12 < *(int *)(pdVar18 + 0x58));\n              }\n              iVar12 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar12 == 0) {\n                puVar10 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar2 = auStack_240;\n                do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar5 = puVar11[5];\n                puVar17[4] = *puVar10;\n                puVar17[5] = uVar5;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uVar28 + *(int *)(iVar12 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar31 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0) {\n                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar43 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar43) - dVar41 * dVar43;\n              iVar12 = *(int *)(pdVar18 + 0x58);\n              if (0 < iVar12) {\n                iVar14 = 0;\n                iVar51 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar14);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7384 + uVar9 * 4))\n                    )(in_f20_21,*(undefined8 *)(*(int *)(puVar38 + -0x7fd0) + 0x4a48));\n                    return;\n                  }\n                  iVar51 = iVar51 + 1;\n                  iVar12 = *(int *)(pdVar18 + 0x58);\n                  iVar14 = iVar14 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar51 < iVar12);\n              }\n              iStack_308 = iStack_308 + iVar12 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar18;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar31 = pdStack_2a0;\n          iVar12 = (**(code **)(puVar38 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar12 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }\n      }\n      iStack_2f0 = iStack_2f0 + 1;\n      uStack_2f8 = uStack_2f8 + 1;\n    } while (iStack_2f0 < (int)puStack_2a4);\n  }" { (expression_statement "iStack_29c = *(int *)((int)pdStack_2a8 + 0x1c);" (assignment_expression "iStack_29c = *(int *)((int)pdStack_2a8 + 0x1c)" identifier = (pointer_expression "*(int *)((int)pdStack_2a8 + 0x1c)" * (cast_expression "(int *)((int)pdStack_2a8 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdStack_2a8 + 0x1c)" ( (binary_expression "(int)pdStack_2a8 + 0x1c" (cast_expression "(int)pdStack_2a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "in_f28_29 = *pdStack_2a8;" (assignment_expression "in_f28_29 = *pdStack_2a8" identifier = (pointer_expression "*pdStack_2a8" * identifier)) ;) (expression_statement "iStack_2f4 = *(int *)(pdStack_2a8 + 3);" (assignment_expression "iStack_2f4 = *(int *)(pdStack_2a8 + 3)" identifier = (pointer_expression "*(int *)(pdStack_2a8 + 3)" * (cast_expression "(int *)(pdStack_2a8 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdStack_2a8 + 3)" ( (binary_expression "pdStack_2a8 + 3" identifier + number_literal) ))))) ;) (expression_statement "pdStack_2a0 = *(double **)((int)pdStack_2a8 + 0x14);" (assignment_expression "pdStack_2a0 = *(double **)((int)pdStack_2a8 + 0x14)" identifier = (pointer_expression "*(double **)((int)pdStack_2a8 + 0x14)" * (cast_expression "(double **)((int)pdStack_2a8 + 0x14)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pdStack_2a8 + 0x14)" ( (binary_expression "(int)pdStack_2a8 + 0x14" (cast_expression "(int)pdStack_2a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uStack_2d0 = *(undefined4 *)(pdStack_2a8 + 2);" (assignment_expression "uStack_2d0 = *(undefined4 *)(pdStack_2a8 + 2)" identifier = (pointer_expression "*(undefined4 *)(pdStack_2a8 + 2)" * (cast_expression "(undefined4 *)(pdStack_2a8 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdStack_2a8 + 2)" ( (binary_expression "pdStack_2a8 + 2" identifier + number_literal) ))))) ;) (expression_statement "iStack_324 = *(int *)((int)pdStack_2a8 + 0xc);" (assignment_expression "iStack_324 = *(int *)((int)pdStack_2a8 + 0xc)" identifier = (pointer_expression "*(int *)((int)pdStack_2a8 + 0xc)" * (cast_expression "(int *)((int)pdStack_2a8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdStack_2a8 + 0xc)" ( (binary_expression "(int)pdStack_2a8 + 0xc" (cast_expression "(int)pdStack_2a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "unaff_s6 = *(double **)(pdStack_2a8 + 1);" (assignment_expression "unaff_s6 = *(double **)(pdStack_2a8 + 1)" identifier = (pointer_expression "*(double **)(pdStack_2a8 + 1)" * (cast_expression "(double **)(pdStack_2a8 + 1)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdStack_2a8 + 1)" ( (binary_expression "pdStack_2a8 + 1" identifier + number_literal) ))))) ;) (expression_statement "iStack_2f0 = iVar30 + uVar9;" (assignment_expression "iStack_2f0 = iVar30 + uVar9" identifier = (binary_expression "iVar30 + uVar9" identifier + identifier)) ;) (expression_statement "puStack_2a4 = (undefined1 *)(iVar30 + (int)pdVar31);" (assignment_expression "puStack_2a4 = (undefined1 *)(iVar30 + (int)pdVar31)" identifier = (cast_expression "(undefined1 *)(iVar30 + (int)pdVar31)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + (int)pdVar31)" ( (binary_expression "iVar30 + (int)pdVar31" identifier + (cast_expression "(int)pdVar31" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "unaff_s7 = *(uint *)(puStack_350 + -0x7fd0);" (assignment_expression "unaff_s7 = *(uint *)(puStack_350 + -0x7fd0)" identifier = (pointer_expression "*(uint *)(puStack_350 + -0x7fd0)" * (cast_expression "(uint *)(puStack_350 + -0x7fd0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_350 + -0x7fd0)" ( (binary_expression "puStack_350 + -0x7fd0" identifier + number_literal) ))))) ;) (expression_statement "dStack_320 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dStack_320 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(puStack_350 + -0x7fd0);" (assignment_expression "iVar4 = *(int *)(puStack_350 + -0x7fd0)" identifier = (pointer_expression "*(int *)(puStack_350 + -0x7fd0)" * (cast_expression "(int *)(puStack_350 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_350 + -0x7fd0)" ( (binary_expression "puStack_350 + -0x7fd0" identifier + number_literal) ))))) ;) (expression_statement "dStack_2b8 = *(double *)(iVar4 + 0x43c8);" (assignment_expression "dStack_2b8 = *(double *)(iVar4 + 0x43c8)" identifier = (pointer_expression "*(double *)(iVar4 + 0x43c8)" * (cast_expression "(double *)(iVar4 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x43c8)" ( (binary_expression "iVar4 + 0x43c8" identifier + number_literal) ))))) ;) (expression_statement "uStack_2f8 = uVar9;" (assignment_expression "uStack_2f8 = uVar9" identifier = identifier) ;) (do_statement "do {\n      iVar30 = (**(code **)(puStack_350 + -0x7390))();\n      if (*(int *)((int)pdStack_2a8 + 0x2c) != 0) {\n        pdVar31 = *(double **)(pdStack_2a8 + 4);\n        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);\n        dVar41 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar31 - in_f20_21);\n        uStack_2d4 = (uint)dVar41;\n        dVar41 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar31[2] + in_f20_21);\n        uVar28 = uStack_2d4;\n        pdVar18 = (double *)(int)dVar41;\n        uStack_354 = uStack_2d0;\n        puStack_358 = (undefined4 *)0x1;\n        pdVar31 = pdStack_2a0;\n        pdStack_2cc = pdVar18;\n        iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar18 + (1 - uStack_2d4)));\n        if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar30 = iVar30 * 4;\n          puVar38 = puStack_350;\n          if ((int)uVar28 <= (int)pdVar18) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar30);\n            uStack_328 = uStack_2d4;\n            pdVar18 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              pvVar15 = (void *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)pvVar15 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4f34:\n                  pdVar31 = (double *)*unaff_s4;\n                  if (0 < (int)pvVar15) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4ec0:\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar41 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar12 = *(int *)(puVar38 + -0x7fd0);\n                dVar41 = *(double *)(iVar12 + 0x43d0);\n                this = (void *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar41 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar31 = unaff_s3;\n                  dStack_330 = dVar41;\n                  pdStack_2d8 = pdVar18;\n                  do {\n                    pdVar18 = pdStack_2ec;\n                    iVar51 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar31[3] + dVar41) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar31 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar31[2] + *(double *)(iVar12 + 0x43d0))) {\n                        iVar30 = *(int *)(pdVar31 + 7);\n                        dVar43 = (double)iVar30;\n                        if (iVar30 < 0) {\n                          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar43 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar30 = 1;\n                        }\n                        if (iVar30 < *(int *)((int)pdVar31 + 0x2c)) {\n                          iVar14 = *(int *)(pdVar31 + 5);\n                          iVar52 = (iVar30 + 0xfffffff) * 0x10;\n                          pdVar18 = (double *)(iVar14 + iVar52);\n                          dVar43 = *(double *)(iVar12 + 0x43d0);\n                          if ((pdVar18[1] - in_f28_29) - dVar43 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar33 = *(int *)(puVar38 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar33 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar52 = iVar52 + 0x10;\n                              dVar42 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43\n                                 ) {\n                                if (in_f26_27 != pdVar31[4]) {\n                                  pdVar31[4] = in_f26_27;\n                                  *(int *)(pdVar31 + 7) = iVar30;\n                                }\n                                dVar46 = pdVar18[2] - *pdVar18;\n                                dVar44 = pdVar18[3] - pdVar18[1];\n                                dVar49 = in_f22_23 - *pdVar18;\n                                dVar42 = in_f26_27 - pdVar18[1];\n                                dVar47 = dVar46 * dVar49 + dVar44 * dVar42;\n                                if (0.0 < dVar47) {\n                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;\n                                  if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }\n                                dVar42 = dStack_338;\n                                if (*(int *)((int)pdVar31 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar42;\n                                dVar42 = dStack_340;\n                                if (((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar42;\n                              iVar30 = iVar30 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar43;\n                              if (*(int *)((int)pdVar31 + 0x2c) <= iVar30) break;\n                              iVar14 = *(int *)(pdVar31 + 5);\n                              pdVar18 = (double *)(iVar14 + iVar52);\n                            } while ((pdVar18[1] - in_f28_29) - *(double *)(iVar12 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (pvVar15 <= this) {\n                        (**(code **)(puVar38 + -0x7290))\n                                  (*(int *)(puVar38 + -0x7fcc) + 0x69fc,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x69c0,0x3e3,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x773c);\n                        return;\n                      }\n                      iVar51 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar5 = (**(code **)(puVar38 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar31 + iVar51 + 0x28));\n                      *(undefined4 *)((int)pdVar31 + iVar51 + 0x28) = uVar5;\n                      pvVar15 = (void *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)pvVar15;\n                      puVar38 = puStack_350;\n                      if (this < pvVar15) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar31 + (*unaff_s4 - (int)pdVar18)),\n                                   *unaff_s4 + ((int)this + 1) * 0x40,\n                                   ((int)pvVar15 - (int)this) * 0x40);\n                        puVar38 = puStack_350;\n                      }\n                    }\n                    this = (void *)((int)this + 1);\n                    unaff_s3 = pdVar31 + 8;\n                    pvVar15 = (void *)unaff_s4[1];\n                  } while (((int)this < (int)pvVar15) &&\n                          (pdVar18 = pdVar31 + 9, pdVar31 = unaff_s3,\n                          (*pdVar18 - in_f28_29) - *(double *)(iVar12 + 0x43d0) < in_f26_27));\n                  pdVar18 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar31 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar41 = in_f30_31;\nLAB_000a4f3c:\n                dVar43 = (double)iStack_2f0;\n                pvVar23 = (void *)0x0;\n                if (pdVar31[1] < dVar43) {\n                  uVar28 = 0;\n                  do {\n                    if ((dVar43 <= pdVar31[3]) &&\n                       (dVar42 = (double)(int)uStack_328, *pdVar31 < dVar42)) {\n                      iVar12 = -1;\n                      if (dVar42 <= pdVar31[2]) {\n                        iVar12 = *(int *)(pdVar31 + 7);\n                        dVar49 = (double)iVar12;\n                        if (iVar12 < 0) {\n                          dVar49 = dVar49 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar49 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar12 = 1;\n                        }\n                        iVar51 = *(int *)((int)pdVar31 + 0x2c) + -1;\n                        if (iVar12 < iVar51) {\n                          iVar30 = *(int *)(pdVar31 + 5) + iVar12 * 0x10;\n                          dVar49 = *(double *)(iVar30 + 8);\n                          while (dVar49 < dVar43) {\n                            iVar12 = iVar12 + 1;\n                            if (iVar51 <= iVar12) break;\n                            dVar49 = *(double *)(iVar30 + 0x18);\n                            iVar30 = iVar30 + 0x10;\n                          }\n                        }\n                        pdVar6 = (double *)(*(int *)(pdVar31 + 5) + (iVar12 + 0xfffffff) * 0x10);\n                        iVar12 = -1;\n                        if ((pdVar6[2] - *pdVar6) * (dVar43 - pdVar6[1]) <=\n                            (pdVar6[3] - pdVar6[1]) * (dVar42 - *pdVar6)) {\n                          if (*(int *)(pdVar31 + 6) != 0) {\n                            iVar12 = 1;\n                          }\n                          uVar28 = uVar28 + iVar12;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar31 + 6) != 0) {\n                          iVar12 = 1;\n                        }\n                        uVar28 = uVar28 + iVar12;\n                      }\n                    }\n                    pvVar23 = (void *)((int)pvVar23 + 1);\n                  } while ((pvVar23 != pvVar15) &&\n                          (pdVar6 = pdVar31 + 9, pdVar31 = pdVar31 + 8, *pdVar6 < dVar43));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar28 < 0) {\n                      uVar28 = -uVar28;\n                    }\n                    if ((uVar28 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar28 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar12 == 0) {\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar28 = uStack_2f8;\n              iVar30 = uStack_328 - uStack_2d4;\n              iVar12 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar12 == 0) {\n                puVar10 = (undefined4 *)(iStack_324 + 0x48);\n                puVar2 = auStack_298;\n                do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0x98));\n                uVar5 = puVar11[5];\n                puVar17[4] = *puVar10;\n                puVar17[5] = uVar5;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uStack_2f8 + *(int *)(iVar12 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar31 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0) {\n                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }\n              dVar43 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar42 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar43 = (dVar43 + dVar42) - dVar43 * dVar42;\n              in_f30_31 = dVar41;\n              if (0 < *(int *)(pdVar18 + 0x58)) {\n                iVar51 = 0;\n                iVar12 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar51);\n                  uStack_348 = dVar43;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7370 + uVar9 * 4))\n                    )();\n                    return;\n                  }\n                  iVar12 = iVar12 + 1;\n                  iVar51 = iVar51 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar12 < *(int *)(pdVar18 + 0x58));\n              }\n              iVar12 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar12 == 0) {\n                puVar10 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar2 = auStack_240;\n                do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar5 = puVar11[5];\n                puVar17[4] = *puVar10;\n                puVar17[5] = uVar5;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uVar28 + *(int *)(iVar12 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar31 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0) {\n                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar43 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar43) - dVar41 * dVar43;\n              iVar12 = *(int *)(pdVar18 + 0x58);\n              if (0 < iVar12) {\n                iVar14 = 0;\n                iVar51 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar14);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7384 + uVar9 * 4))\n                    )(in_f20_21,*(undefined8 *)(*(int *)(puVar38 + -0x7fd0) + 0x4a48));\n                    return;\n                  }\n                  iVar51 = iVar51 + 1;\n                  iVar12 = *(int *)(pdVar18 + 0x58);\n                  iVar14 = iVar14 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar51 < iVar12);\n              }\n              iStack_308 = iStack_308 + iVar12 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar18;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar31 = pdStack_2a0;\n          iVar12 = (**(code **)(puVar38 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar12 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }\n      }\n      iStack_2f0 = iStack_2f0 + 1;\n      uStack_2f8 = uStack_2f8 + 1;\n    } while (iStack_2f0 < (int)puStack_2a4);" do (compound_statement "{\n      iVar30 = (**(code **)(puStack_350 + -0x7390))();\n      if (*(int *)((int)pdStack_2a8 + 0x2c) != 0) {\n        pdVar31 = *(double **)(pdStack_2a8 + 4);\n        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);\n        dVar41 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar31 - in_f20_21);\n        uStack_2d4 = (uint)dVar41;\n        dVar41 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar31[2] + in_f20_21);\n        uVar28 = uStack_2d4;\n        pdVar18 = (double *)(int)dVar41;\n        uStack_354 = uStack_2d0;\n        puStack_358 = (undefined4 *)0x1;\n        pdVar31 = pdStack_2a0;\n        pdStack_2cc = pdVar18;\n        iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar18 + (1 - uStack_2d4)));\n        if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar30 = iVar30 * 4;\n          puVar38 = puStack_350;\n          if ((int)uVar28 <= (int)pdVar18) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar30);\n            uStack_328 = uStack_2d4;\n            pdVar18 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              pvVar15 = (void *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)pvVar15 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4f34:\n                  pdVar31 = (double *)*unaff_s4;\n                  if (0 < (int)pvVar15) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4ec0:\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar41 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar12 = *(int *)(puVar38 + -0x7fd0);\n                dVar41 = *(double *)(iVar12 + 0x43d0);\n                this = (void *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar41 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar31 = unaff_s3;\n                  dStack_330 = dVar41;\n                  pdStack_2d8 = pdVar18;\n                  do {\n                    pdVar18 = pdStack_2ec;\n                    iVar51 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar31[3] + dVar41) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar31 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar31[2] + *(double *)(iVar12 + 0x43d0))) {\n                        iVar30 = *(int *)(pdVar31 + 7);\n                        dVar43 = (double)iVar30;\n                        if (iVar30 < 0) {\n                          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar43 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar30 = 1;\n                        }\n                        if (iVar30 < *(int *)((int)pdVar31 + 0x2c)) {\n                          iVar14 = *(int *)(pdVar31 + 5);\n                          iVar52 = (iVar30 + 0xfffffff) * 0x10;\n                          pdVar18 = (double *)(iVar14 + iVar52);\n                          dVar43 = *(double *)(iVar12 + 0x43d0);\n                          if ((pdVar18[1] - in_f28_29) - dVar43 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar33 = *(int *)(puVar38 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar33 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar52 = iVar52 + 0x10;\n                              dVar42 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43\n                                 ) {\n                                if (in_f26_27 != pdVar31[4]) {\n                                  pdVar31[4] = in_f26_27;\n                                  *(int *)(pdVar31 + 7) = iVar30;\n                                }\n                                dVar46 = pdVar18[2] - *pdVar18;\n                                dVar44 = pdVar18[3] - pdVar18[1];\n                                dVar49 = in_f22_23 - *pdVar18;\n                                dVar42 = in_f26_27 - pdVar18[1];\n                                dVar47 = dVar46 * dVar49 + dVar44 * dVar42;\n                                if (0.0 < dVar47) {\n                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;\n                                  if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }\n                                dVar42 = dStack_338;\n                                if (*(int *)((int)pdVar31 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar42;\n                                dVar42 = dStack_340;\n                                if (((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar42;\n                              iVar30 = iVar30 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar43;\n                              if (*(int *)((int)pdVar31 + 0x2c) <= iVar30) break;\n                              iVar14 = *(int *)(pdVar31 + 5);\n                              pdVar18 = (double *)(iVar14 + iVar52);\n                            } while ((pdVar18[1] - in_f28_29) - *(double *)(iVar12 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (pvVar15 <= this) {\n                        (**(code **)(puVar38 + -0x7290))\n                                  (*(int *)(puVar38 + -0x7fcc) + 0x69fc,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x69c0,0x3e3,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x773c);\n                        return;\n                      }\n                      iVar51 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar5 = (**(code **)(puVar38 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar31 + iVar51 + 0x28));\n                      *(undefined4 *)((int)pdVar31 + iVar51 + 0x28) = uVar5;\n                      pvVar15 = (void *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)pvVar15;\n                      puVar38 = puStack_350;\n                      if (this < pvVar15) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar31 + (*unaff_s4 - (int)pdVar18)),\n                                   *unaff_s4 + ((int)this + 1) * 0x40,\n                                   ((int)pvVar15 - (int)this) * 0x40);\n                        puVar38 = puStack_350;\n                      }\n                    }\n                    this = (void *)((int)this + 1);\n                    unaff_s3 = pdVar31 + 8;\n                    pvVar15 = (void *)unaff_s4[1];\n                  } while (((int)this < (int)pvVar15) &&\n                          (pdVar18 = pdVar31 + 9, pdVar31 = unaff_s3,\n                          (*pdVar18 - in_f28_29) - *(double *)(iVar12 + 0x43d0) < in_f26_27));\n                  pdVar18 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar31 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar41 = in_f30_31;\nLAB_000a4f3c:\n                dVar43 = (double)iStack_2f0;\n                pvVar23 = (void *)0x0;\n                if (pdVar31[1] < dVar43) {\n                  uVar28 = 0;\n                  do {\n                    if ((dVar43 <= pdVar31[3]) &&\n                       (dVar42 = (double)(int)uStack_328, *pdVar31 < dVar42)) {\n                      iVar12 = -1;\n                      if (dVar42 <= pdVar31[2]) {\n                        iVar12 = *(int *)(pdVar31 + 7);\n                        dVar49 = (double)iVar12;\n                        if (iVar12 < 0) {\n                          dVar49 = dVar49 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar49 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar12 = 1;\n                        }\n                        iVar51 = *(int *)((int)pdVar31 + 0x2c) + -1;\n                        if (iVar12 < iVar51) {\n                          iVar30 = *(int *)(pdVar31 + 5) + iVar12 * 0x10;\n                          dVar49 = *(double *)(iVar30 + 8);\n                          while (dVar49 < dVar43) {\n                            iVar12 = iVar12 + 1;\n                            if (iVar51 <= iVar12) break;\n                            dVar49 = *(double *)(iVar30 + 0x18);\n                            iVar30 = iVar30 + 0x10;\n                          }\n                        }\n                        pdVar6 = (double *)(*(int *)(pdVar31 + 5) + (iVar12 + 0xfffffff) * 0x10);\n                        iVar12 = -1;\n                        if ((pdVar6[2] - *pdVar6) * (dVar43 - pdVar6[1]) <=\n                            (pdVar6[3] - pdVar6[1]) * (dVar42 - *pdVar6)) {\n                          if (*(int *)(pdVar31 + 6) != 0) {\n                            iVar12 = 1;\n                          }\n                          uVar28 = uVar28 + iVar12;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar31 + 6) != 0) {\n                          iVar12 = 1;\n                        }\n                        uVar28 = uVar28 + iVar12;\n                      }\n                    }\n                    pvVar23 = (void *)((int)pvVar23 + 1);\n                  } while ((pvVar23 != pvVar15) &&\n                          (pdVar6 = pdVar31 + 9, pdVar31 = pdVar31 + 8, *pdVar6 < dVar43));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar28 < 0) {\n                      uVar28 = -uVar28;\n                    }\n                    if ((uVar28 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar28 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar12 == 0) {\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar28 = uStack_2f8;\n              iVar30 = uStack_328 - uStack_2d4;\n              iVar12 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar12 == 0) {\n                puVar10 = (undefined4 *)(iStack_324 + 0x48);\n                puVar2 = auStack_298;\n                do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0x98));\n                uVar5 = puVar11[5];\n                puVar17[4] = *puVar10;\n                puVar17[5] = uVar5;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uStack_2f8 + *(int *)(iVar12 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar31 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0) {\n                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }\n              dVar43 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar42 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar43 = (dVar43 + dVar42) - dVar43 * dVar42;\n              in_f30_31 = dVar41;\n              if (0 < *(int *)(pdVar18 + 0x58)) {\n                iVar51 = 0;\n                iVar12 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar51);\n                  uStack_348 = dVar43;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7370 + uVar9 * 4))\n                    )();\n                    return;\n                  }\n                  iVar12 = iVar12 + 1;\n                  iVar51 = iVar51 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar12 < *(int *)(pdVar18 + 0x58));\n              }\n              iVar12 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar12 == 0) {\n                puVar10 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar2 = auStack_240;\n                do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar5 = puVar11[5];\n                puVar17[4] = *puVar10;\n                puVar17[5] = uVar5;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uVar28 + *(int *)(iVar12 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar31 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0) {\n                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar43 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar43) - dVar41 * dVar43;\n              iVar12 = *(int *)(pdVar18 + 0x58);\n              if (0 < iVar12) {\n                iVar14 = 0;\n                iVar51 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar14);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7384 + uVar9 * 4))\n                    )(in_f20_21,*(undefined8 *)(*(int *)(puVar38 + -0x7fd0) + 0x4a48));\n                    return;\n                  }\n                  iVar51 = iVar51 + 1;\n                  iVar12 = *(int *)(pdVar18 + 0x58);\n                  iVar14 = iVar14 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar51 < iVar12);\n              }\n              iStack_308 = iStack_308 + iVar12 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar18;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar31 = pdStack_2a0;\n          iVar12 = (**(code **)(puVar38 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar12 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }\n      }\n      iStack_2f0 = iStack_2f0 + 1;\n      uStack_2f8 = uStack_2f8 + 1;\n    }" { (expression_statement "iVar30 = (**(code **)(puStack_350 + -0x7390))();" (assignment_expression "iVar30 = (**(code **)(puStack_350 + -0x7390))()" identifier = (call_expression "(**(code **)(puStack_350 + -0x7390))()" (parenthesized_expression "(**(code **)(puStack_350 + -0x7390))" ( (pointer_expression "**(code **)(puStack_350 + -0x7390)" * (pointer_expression "*(code **)(puStack_350 + -0x7390)" * (cast_expression "(code **)(puStack_350 + -0x7390)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_350 + -0x7390)" ( (binary_expression "puStack_350 + -0x7390" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (*(int *)((int)pdStack_2a8 + 0x2c) != 0) {\n        pdVar31 = *(double **)(pdStack_2a8 + 4);\n        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);\n        dVar41 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar31 - in_f20_21);\n        uStack_2d4 = (uint)dVar41;\n        dVar41 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar31[2] + in_f20_21);\n        uVar28 = uStack_2d4;\n        pdVar18 = (double *)(int)dVar41;\n        uStack_354 = uStack_2d0;\n        puStack_358 = (undefined4 *)0x1;\n        pdVar31 = pdStack_2a0;\n        pdStack_2cc = pdVar18;\n        iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar18 + (1 - uStack_2d4)));\n        if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar30 = iVar30 * 4;\n          puVar38 = puStack_350;\n          if ((int)uVar28 <= (int)pdVar18) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar30);\n            uStack_328 = uStack_2d4;\n            pdVar18 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              pvVar15 = (void *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)pvVar15 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4f34:\n                  pdVar31 = (double *)*unaff_s4;\n                  if (0 < (int)pvVar15) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4ec0:\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar41 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar12 = *(int *)(puVar38 + -0x7fd0);\n                dVar41 = *(double *)(iVar12 + 0x43d0);\n                this = (void *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar41 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar31 = unaff_s3;\n                  dStack_330 = dVar41;\n                  pdStack_2d8 = pdVar18;\n                  do {\n                    pdVar18 = pdStack_2ec;\n                    iVar51 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar31[3] + dVar41) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar31 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar31[2] + *(double *)(iVar12 + 0x43d0))) {\n                        iVar30 = *(int *)(pdVar31 + 7);\n                        dVar43 = (double)iVar30;\n                        if (iVar30 < 0) {\n                          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar43 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar30 = 1;\n                        }\n                        if (iVar30 < *(int *)((int)pdVar31 + 0x2c)) {\n                          iVar14 = *(int *)(pdVar31 + 5);\n                          iVar52 = (iVar30 + 0xfffffff) * 0x10;\n                          pdVar18 = (double *)(iVar14 + iVar52);\n                          dVar43 = *(double *)(iVar12 + 0x43d0);\n                          if ((pdVar18[1] - in_f28_29) - dVar43 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar33 = *(int *)(puVar38 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar33 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar52 = iVar52 + 0x10;\n                              dVar42 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43\n                                 ) {\n                                if (in_f26_27 != pdVar31[4]) {\n                                  pdVar31[4] = in_f26_27;\n                                  *(int *)(pdVar31 + 7) = iVar30;\n                                }\n                                dVar46 = pdVar18[2] - *pdVar18;\n                                dVar44 = pdVar18[3] - pdVar18[1];\n                                dVar49 = in_f22_23 - *pdVar18;\n                                dVar42 = in_f26_27 - pdVar18[1];\n                                dVar47 = dVar46 * dVar49 + dVar44 * dVar42;\n                                if (0.0 < dVar47) {\n                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;\n                                  if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }\n                                dVar42 = dStack_338;\n                                if (*(int *)((int)pdVar31 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar42;\n                                dVar42 = dStack_340;\n                                if (((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar42;\n                              iVar30 = iVar30 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar43;\n                              if (*(int *)((int)pdVar31 + 0x2c) <= iVar30) break;\n                              iVar14 = *(int *)(pdVar31 + 5);\n                              pdVar18 = (double *)(iVar14 + iVar52);\n                            } while ((pdVar18[1] - in_f28_29) - *(double *)(iVar12 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (pvVar15 <= this) {\n                        (**(code **)(puVar38 + -0x7290))\n                                  (*(int *)(puVar38 + -0x7fcc) + 0x69fc,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x69c0,0x3e3,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x773c);\n                        return;\n                      }\n                      iVar51 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar5 = (**(code **)(puVar38 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar31 + iVar51 + 0x28));\n                      *(undefined4 *)((int)pdVar31 + iVar51 + 0x28) = uVar5;\n                      pvVar15 = (void *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)pvVar15;\n                      puVar38 = puStack_350;\n                      if (this < pvVar15) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar31 + (*unaff_s4 - (int)pdVar18)),\n                                   *unaff_s4 + ((int)this + 1) * 0x40,\n                                   ((int)pvVar15 - (int)this) * 0x40);\n                        puVar38 = puStack_350;\n                      }\n                    }\n                    this = (void *)((int)this + 1);\n                    unaff_s3 = pdVar31 + 8;\n                    pvVar15 = (void *)unaff_s4[1];\n                  } while (((int)this < (int)pvVar15) &&\n                          (pdVar18 = pdVar31 + 9, pdVar31 = unaff_s3,\n                          (*pdVar18 - in_f28_29) - *(double *)(iVar12 + 0x43d0) < in_f26_27));\n                  pdVar18 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar31 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar41 = in_f30_31;\nLAB_000a4f3c:\n                dVar43 = (double)iStack_2f0;\n                pvVar23 = (void *)0x0;\n                if (pdVar31[1] < dVar43) {\n                  uVar28 = 0;\n                  do {\n                    if ((dVar43 <= pdVar31[3]) &&\n                       (dVar42 = (double)(int)uStack_328, *pdVar31 < dVar42)) {\n                      iVar12 = -1;\n                      if (dVar42 <= pdVar31[2]) {\n                        iVar12 = *(int *)(pdVar31 + 7);\n                        dVar49 = (double)iVar12;\n                        if (iVar12 < 0) {\n                          dVar49 = dVar49 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar49 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar12 = 1;\n                        }\n                        iVar51 = *(int *)((int)pdVar31 + 0x2c) + -1;\n                        if (iVar12 < iVar51) {\n                          iVar30 = *(int *)(pdVar31 + 5) + iVar12 * 0x10;\n                          dVar49 = *(double *)(iVar30 + 8);\n                          while (dVar49 < dVar43) {\n                            iVar12 = iVar12 + 1;\n                            if (iVar51 <= iVar12) break;\n                            dVar49 = *(double *)(iVar30 + 0x18);\n                            iVar30 = iVar30 + 0x10;\n                          }\n                        }\n                        pdVar6 = (double *)(*(int *)(pdVar31 + 5) + (iVar12 + 0xfffffff) * 0x10);\n                        iVar12 = -1;\n                        if ((pdVar6[2] - *pdVar6) * (dVar43 - pdVar6[1]) <=\n                            (pdVar6[3] - pdVar6[1]) * (dVar42 - *pdVar6)) {\n                          if (*(int *)(pdVar31 + 6) != 0) {\n                            iVar12 = 1;\n                          }\n                          uVar28 = uVar28 + iVar12;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar31 + 6) != 0) {\n                          iVar12 = 1;\n                        }\n                        uVar28 = uVar28 + iVar12;\n                      }\n                    }\n                    pvVar23 = (void *)((int)pvVar23 + 1);\n                  } while ((pvVar23 != pvVar15) &&\n                          (pdVar6 = pdVar31 + 9, pdVar31 = pdVar31 + 8, *pdVar6 < dVar43));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar28 < 0) {\n                      uVar28 = -uVar28;\n                    }\n                    if ((uVar28 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar28 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar12 == 0) {\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar28 = uStack_2f8;\n              iVar30 = uStack_328 - uStack_2d4;\n              iVar12 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar12 == 0) {\n                puVar10 = (undefined4 *)(iStack_324 + 0x48);\n                puVar2 = auStack_298;\n                do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0x98));\n                uVar5 = puVar11[5];\n                puVar17[4] = *puVar10;\n                puVar17[5] = uVar5;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uStack_2f8 + *(int *)(iVar12 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar31 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0) {\n                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }\n              dVar43 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar42 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar43 = (dVar43 + dVar42) - dVar43 * dVar42;\n              in_f30_31 = dVar41;\n              if (0 < *(int *)(pdVar18 + 0x58)) {\n                iVar51 = 0;\n                iVar12 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar51);\n                  uStack_348 = dVar43;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7370 + uVar9 * 4))\n                    )();\n                    return;\n                  }\n                  iVar12 = iVar12 + 1;\n                  iVar51 = iVar51 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar12 < *(int *)(pdVar18 + 0x58));\n              }\n              iVar12 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar12 == 0) {\n                puVar10 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar2 = auStack_240;\n                do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar5 = puVar11[5];\n                puVar17[4] = *puVar10;\n                puVar17[5] = uVar5;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uVar28 + *(int *)(iVar12 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar31 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0) {\n                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar43 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar43) - dVar41 * dVar43;\n              iVar12 = *(int *)(pdVar18 + 0x58);\n              if (0 < iVar12) {\n                iVar14 = 0;\n                iVar51 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar14);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7384 + uVar9 * 4))\n                    )(in_f20_21,*(undefined8 *)(*(int *)(puVar38 + -0x7fd0) + 0x4a48));\n                    return;\n                  }\n                  iVar51 = iVar51 + 1;\n                  iVar12 = *(int *)(pdVar18 + 0x58);\n                  iVar14 = iVar14 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar51 < iVar12);\n              }\n              iStack_308 = iStack_308 + iVar12 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar18;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar31 = pdStack_2a0;\n          iVar12 = (**(code **)(puVar38 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar12 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }\n      }" if (parenthesized_expression "(*(int *)((int)pdStack_2a8 + 0x2c) != 0)" ( (binary_expression "*(int *)((int)pdStack_2a8 + 0x2c) != 0" (pointer_expression "*(int *)((int)pdStack_2a8 + 0x2c)" * (cast_expression "(int *)((int)pdStack_2a8 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdStack_2a8 + 0x2c)" ( (binary_expression "(int)pdStack_2a8 + 0x2c" (cast_expression "(int)pdStack_2a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n        pdVar31 = *(double **)(pdStack_2a8 + 4);\n        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);\n        dVar41 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar31 - in_f20_21);\n        uStack_2d4 = (uint)dVar41;\n        dVar41 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar31[2] + in_f20_21);\n        uVar28 = uStack_2d4;\n        pdVar18 = (double *)(int)dVar41;\n        uStack_354 = uStack_2d0;\n        puStack_358 = (undefined4 *)0x1;\n        pdVar31 = pdStack_2a0;\n        pdStack_2cc = pdVar18;\n        iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar18 + (1 - uStack_2d4)));\n        if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar30 = iVar30 * 4;\n          puVar38 = puStack_350;\n          if ((int)uVar28 <= (int)pdVar18) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar30);\n            uStack_328 = uStack_2d4;\n            pdVar18 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              pvVar15 = (void *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)pvVar15 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4f34:\n                  pdVar31 = (double *)*unaff_s4;\n                  if (0 < (int)pvVar15) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4ec0:\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar41 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar12 = *(int *)(puVar38 + -0x7fd0);\n                dVar41 = *(double *)(iVar12 + 0x43d0);\n                this = (void *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar41 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar31 = unaff_s3;\n                  dStack_330 = dVar41;\n                  pdStack_2d8 = pdVar18;\n                  do {\n                    pdVar18 = pdStack_2ec;\n                    iVar51 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar31[3] + dVar41) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar31 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar31[2] + *(double *)(iVar12 + 0x43d0))) {\n                        iVar30 = *(int *)(pdVar31 + 7);\n                        dVar43 = (double)iVar30;\n                        if (iVar30 < 0) {\n                          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar43 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar30 = 1;\n                        }\n                        if (iVar30 < *(int *)((int)pdVar31 + 0x2c)) {\n                          iVar14 = *(int *)(pdVar31 + 5);\n                          iVar52 = (iVar30 + 0xfffffff) * 0x10;\n                          pdVar18 = (double *)(iVar14 + iVar52);\n                          dVar43 = *(double *)(iVar12 + 0x43d0);\n                          if ((pdVar18[1] - in_f28_29) - dVar43 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar33 = *(int *)(puVar38 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar33 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar52 = iVar52 + 0x10;\n                              dVar42 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43\n                                 ) {\n                                if (in_f26_27 != pdVar31[4]) {\n                                  pdVar31[4] = in_f26_27;\n                                  *(int *)(pdVar31 + 7) = iVar30;\n                                }\n                                dVar46 = pdVar18[2] - *pdVar18;\n                                dVar44 = pdVar18[3] - pdVar18[1];\n                                dVar49 = in_f22_23 - *pdVar18;\n                                dVar42 = in_f26_27 - pdVar18[1];\n                                dVar47 = dVar46 * dVar49 + dVar44 * dVar42;\n                                if (0.0 < dVar47) {\n                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;\n                                  if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }\n                                dVar42 = dStack_338;\n                                if (*(int *)((int)pdVar31 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar42;\n                                dVar42 = dStack_340;\n                                if (((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar42;\n                              iVar30 = iVar30 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar43;\n                              if (*(int *)((int)pdVar31 + 0x2c) <= iVar30) break;\n                              iVar14 = *(int *)(pdVar31 + 5);\n                              pdVar18 = (double *)(iVar14 + iVar52);\n                            } while ((pdVar18[1] - in_f28_29) - *(double *)(iVar12 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (pvVar15 <= this) {\n                        (**(code **)(puVar38 + -0x7290))\n                                  (*(int *)(puVar38 + -0x7fcc) + 0x69fc,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x69c0,0x3e3,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x773c);\n                        return;\n                      }\n                      iVar51 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar5 = (**(code **)(puVar38 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar31 + iVar51 + 0x28));\n                      *(undefined4 *)((int)pdVar31 + iVar51 + 0x28) = uVar5;\n                      pvVar15 = (void *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)pvVar15;\n                      puVar38 = puStack_350;\n                      if (this < pvVar15) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar31 + (*unaff_s4 - (int)pdVar18)),\n                                   *unaff_s4 + ((int)this + 1) * 0x40,\n                                   ((int)pvVar15 - (int)this) * 0x40);\n                        puVar38 = puStack_350;\n                      }\n                    }\n                    this = (void *)((int)this + 1);\n                    unaff_s3 = pdVar31 + 8;\n                    pvVar15 = (void *)unaff_s4[1];\n                  } while (((int)this < (int)pvVar15) &&\n                          (pdVar18 = pdVar31 + 9, pdVar31 = unaff_s3,\n                          (*pdVar18 - in_f28_29) - *(double *)(iVar12 + 0x43d0) < in_f26_27));\n                  pdVar18 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar31 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar41 = in_f30_31;\nLAB_000a4f3c:\n                dVar43 = (double)iStack_2f0;\n                pvVar23 = (void *)0x0;\n                if (pdVar31[1] < dVar43) {\n                  uVar28 = 0;\n                  do {\n                    if ((dVar43 <= pdVar31[3]) &&\n                       (dVar42 = (double)(int)uStack_328, *pdVar31 < dVar42)) {\n                      iVar12 = -1;\n                      if (dVar42 <= pdVar31[2]) {\n                        iVar12 = *(int *)(pdVar31 + 7);\n                        dVar49 = (double)iVar12;\n                        if (iVar12 < 0) {\n                          dVar49 = dVar49 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar49 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar12 = 1;\n                        }\n                        iVar51 = *(int *)((int)pdVar31 + 0x2c) + -1;\n                        if (iVar12 < iVar51) {\n                          iVar30 = *(int *)(pdVar31 + 5) + iVar12 * 0x10;\n                          dVar49 = *(double *)(iVar30 + 8);\n                          while (dVar49 < dVar43) {\n                            iVar12 = iVar12 + 1;\n                            if (iVar51 <= iVar12) break;\n                            dVar49 = *(double *)(iVar30 + 0x18);\n                            iVar30 = iVar30 + 0x10;\n                          }\n                        }\n                        pdVar6 = (double *)(*(int *)(pdVar31 + 5) + (iVar12 + 0xfffffff) * 0x10);\n                        iVar12 = -1;\n                        if ((pdVar6[2] - *pdVar6) * (dVar43 - pdVar6[1]) <=\n                            (pdVar6[3] - pdVar6[1]) * (dVar42 - *pdVar6)) {\n                          if (*(int *)(pdVar31 + 6) != 0) {\n                            iVar12 = 1;\n                          }\n                          uVar28 = uVar28 + iVar12;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar31 + 6) != 0) {\n                          iVar12 = 1;\n                        }\n                        uVar28 = uVar28 + iVar12;\n                      }\n                    }\n                    pvVar23 = (void *)((int)pvVar23 + 1);\n                  } while ((pvVar23 != pvVar15) &&\n                          (pdVar6 = pdVar31 + 9, pdVar31 = pdVar31 + 8, *pdVar6 < dVar43));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar28 < 0) {\n                      uVar28 = -uVar28;\n                    }\n                    if ((uVar28 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar28 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar12 == 0) {\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar28 = uStack_2f8;\n              iVar30 = uStack_328 - uStack_2d4;\n              iVar12 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar12 == 0) {\n                puVar10 = (undefined4 *)(iStack_324 + 0x48);\n                puVar2 = auStack_298;\n                do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0x98));\n                uVar5 = puVar11[5];\n                puVar17[4] = *puVar10;\n                puVar17[5] = uVar5;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uStack_2f8 + *(int *)(iVar12 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar31 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0) {\n                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }\n              dVar43 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar42 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar43 = (dVar43 + dVar42) - dVar43 * dVar42;\n              in_f30_31 = dVar41;\n              if (0 < *(int *)(pdVar18 + 0x58)) {\n                iVar51 = 0;\n                iVar12 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar51);\n                  uStack_348 = dVar43;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7370 + uVar9 * 4))\n                    )();\n                    return;\n                  }\n                  iVar12 = iVar12 + 1;\n                  iVar51 = iVar51 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar12 < *(int *)(pdVar18 + 0x58));\n              }\n              iVar12 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar12 == 0) {\n                puVar10 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar2 = auStack_240;\n                do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar5 = puVar11[5];\n                puVar17[4] = *puVar10;\n                puVar17[5] = uVar5;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uVar28 + *(int *)(iVar12 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar31 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0) {\n                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar43 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar43) - dVar41 * dVar43;\n              iVar12 = *(int *)(pdVar18 + 0x58);\n              if (0 < iVar12) {\n                iVar14 = 0;\n                iVar51 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar14);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7384 + uVar9 * 4))\n                    )(in_f20_21,*(undefined8 *)(*(int *)(puVar38 + -0x7fd0) + 0x4a48));\n                    return;\n                  }\n                  iVar51 = iVar51 + 1;\n                  iVar12 = *(int *)(pdVar18 + 0x58);\n                  iVar14 = iVar14 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar51 < iVar12);\n              }\n              iStack_308 = iStack_308 + iVar12 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar18;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar31 = pdStack_2a0;\n          iVar12 = (**(code **)(puVar38 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar12 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }\n      }" { (expression_statement "pdVar31 = *(double **)(pdStack_2a8 + 4);" (assignment_expression "pdVar31 = *(double **)(pdStack_2a8 + 4)" identifier = (pointer_expression "*(double **)(pdStack_2a8 + 4)" * (cast_expression "(double **)(pdStack_2a8 + 4)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdStack_2a8 + 4)" ( (binary_expression "pdStack_2a8 + 4" identifier + number_literal) ))))) ;) (expression_statement "in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);" (assignment_expression "in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0)" identifier = (pointer_expression "*(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0)" * (cast_expression "(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_350 + -0x7fd0) + 0x43d0)" ( (binary_expression "*(int *)(puStack_350 + -0x7fd0) + 0x43d0" (pointer_expression "*(int *)(puStack_350 + -0x7fd0)" * (cast_expression "(int *)(puStack_350 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_350 + -0x7fd0)" ( (binary_expression "puStack_350 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "dVar41 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar31 - in_f20_21);" (assignment_expression "dVar41 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar31 - in_f20_21)" identifier = (cast_expression "(double)(**(code **)(puStack_350 + -0x7c78))(*pdVar31 - in_f20_21)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puStack_350 + -0x7c78))(*pdVar31 - in_f20_21)" (parenthesized_expression "(**(code **)(puStack_350 + -0x7c78))" ( (pointer_expression "**(code **)(puStack_350 + -0x7c78)" * (pointer_expression "*(code **)(puStack_350 + -0x7c78)" * (cast_expression "(code **)(puStack_350 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_350 + -0x7c78)" ( (binary_expression "puStack_350 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(*pdVar31 - in_f20_21)" ( (binary_expression "*pdVar31 - in_f20_21" (pointer_expression "*pdVar31" * identifier) - identifier) ))))) ;) (expression_statement "uStack_2d4 = (uint)dVar41;" (assignment_expression "uStack_2d4 = (uint)dVar41" identifier = (cast_expression "(uint)dVar41" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "dVar41 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar31[2] + in_f20_21);" (assignment_expression "dVar41 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar31[2] + in_f20_21)" identifier = (cast_expression "(double)(**(code **)(puStack_350 + -0x7228))(pdVar31[2] + in_f20_21)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puStack_350 + -0x7228))(pdVar31[2] + in_f20_21)" (parenthesized_expression "(**(code **)(puStack_350 + -0x7228))" ( (pointer_expression "**(code **)(puStack_350 + -0x7228)" * (pointer_expression "*(code **)(puStack_350 + -0x7228)" * (cast_expression "(code **)(puStack_350 + -0x7228)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_350 + -0x7228)" ( (binary_expression "puStack_350 + -0x7228" identifier + number_literal) ))))) )) (argument_list "(pdVar31[2] + in_f20_21)" ( (binary_expression "pdVar31[2] + in_f20_21" (subscript_expression "pdVar31[2]" identifier [ number_literal ]) + identifier) ))))) ;) (expression_statement "uVar28 = uStack_2d4;" (assignment_expression "uVar28 = uStack_2d4" identifier = identifier) ;) (expression_statement "pdVar18 = (double *)(int)dVar41;" (assignment_expression "pdVar18 = (double *)(int)dVar41" identifier = (cast_expression "(double *)(int)dVar41" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)dVar41" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uStack_354 = uStack_2d0;" (assignment_expression "uStack_354 = uStack_2d0" identifier = identifier) ;) (expression_statement "puStack_358 = (undefined4 *)0x1;" (assignment_expression "puStack_358 = (undefined4 *)0x1" identifier = (cast_expression "(undefined4 *)0x1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pdVar31 = pdStack_2a0;" (assignment_expression "pdVar31 = pdStack_2a0" identifier = identifier) ;) (expression_statement "pdStack_2cc = pdVar18;" (assignment_expression "pdStack_2cc = pdVar18" identifier = identifier) ;) (expression_statement "iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar18 + (1 - uStack_2d4)));" (assignment_expression "iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar18 + (1 - uStack_2d4)))" identifier = (call_expression "(**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar18 + (1 - uStack_2d4)))" (parenthesized_expression "(**(code **)(puStack_350 + -0x724c))" ( (pointer_expression "**(code **)(puStack_350 + -0x724c)" * (pointer_expression "*(code **)(puStack_350 + -0x724c)" * (cast_expression "(code **)(puStack_350 + -0x724c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_350 + -0x724c)" ( (binary_expression "puStack_350 + -0x724c" identifier + number_literal) ))))) )) (argument_list "(pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar18 + (1 - uStack_2d4)))" ( identifier , identifier , identifier , (cast_expression "(undefined *)((int)pdVar18 + (1 - uStack_2d4))" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar18 + (1 - uStack_2d4))" ( (binary_expression "(int)pdVar18 + (1 - uStack_2d4)" (cast_expression "(int)pdVar18" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(1 - uStack_2d4)" ( (binary_expression "1 - uStack_2d4" number_literal - identifier) ))) ))) )))) ;) (if_statement "if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar30 = iVar30 * 4;\n          puVar38 = puStack_350;\n          if ((int)uVar28 <= (int)pdVar18) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar30);\n            uStack_328 = uStack_2d4;\n            pdVar18 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              pvVar15 = (void *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)pvVar15 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4f34:\n                  pdVar31 = (double *)*unaff_s4;\n                  if (0 < (int)pvVar15) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4ec0:\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar41 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar12 = *(int *)(puVar38 + -0x7fd0);\n                dVar41 = *(double *)(iVar12 + 0x43d0);\n                this = (void *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar41 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar31 = unaff_s3;\n                  dStack_330 = dVar41;\n                  pdStack_2d8 = pdVar18;\n                  do {\n                    pdVar18 = pdStack_2ec;\n                    iVar51 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar31[3] + dVar41) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar31 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar31[2] + *(double *)(iVar12 + 0x43d0))) {\n                        iVar30 = *(int *)(pdVar31 + 7);\n                        dVar43 = (double)iVar30;\n                        if (iVar30 < 0) {\n                          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar43 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar30 = 1;\n                        }\n                        if (iVar30 < *(int *)((int)pdVar31 + 0x2c)) {\n                          iVar14 = *(int *)(pdVar31 + 5);\n                          iVar52 = (iVar30 + 0xfffffff) * 0x10;\n                          pdVar18 = (double *)(iVar14 + iVar52);\n                          dVar43 = *(double *)(iVar12 + 0x43d0);\n                          if ((pdVar18[1] - in_f28_29) - dVar43 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar33 = *(int *)(puVar38 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar33 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar52 = iVar52 + 0x10;\n                              dVar42 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43\n                                 ) {\n                                if (in_f26_27 != pdVar31[4]) {\n                                  pdVar31[4] = in_f26_27;\n                                  *(int *)(pdVar31 + 7) = iVar30;\n                                }\n                                dVar46 = pdVar18[2] - *pdVar18;\n                                dVar44 = pdVar18[3] - pdVar18[1];\n                                dVar49 = in_f22_23 - *pdVar18;\n                                dVar42 = in_f26_27 - pdVar18[1];\n                                dVar47 = dVar46 * dVar49 + dVar44 * dVar42;\n                                if (0.0 < dVar47) {\n                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;\n                                  if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }\n                                dVar42 = dStack_338;\n                                if (*(int *)((int)pdVar31 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar42;\n                                dVar42 = dStack_340;\n                                if (((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar42;\n                              iVar30 = iVar30 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar43;\n                              if (*(int *)((int)pdVar31 + 0x2c) <= iVar30) break;\n                              iVar14 = *(int *)(pdVar31 + 5);\n                              pdVar18 = (double *)(iVar14 + iVar52);\n                            } while ((pdVar18[1] - in_f28_29) - *(double *)(iVar12 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (pvVar15 <= this) {\n                        (**(code **)(puVar38 + -0x7290))\n                                  (*(int *)(puVar38 + -0x7fcc) + 0x69fc,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x69c0,0x3e3,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x773c);\n                        return;\n                      }\n                      iVar51 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar5 = (**(code **)(puVar38 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar31 + iVar51 + 0x28));\n                      *(undefined4 *)((int)pdVar31 + iVar51 + 0x28) = uVar5;\n                      pvVar15 = (void *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)pvVar15;\n                      puVar38 = puStack_350;\n                      if (this < pvVar15) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar31 + (*unaff_s4 - (int)pdVar18)),\n                                   *unaff_s4 + ((int)this + 1) * 0x40,\n                                   ((int)pvVar15 - (int)this) * 0x40);\n                        puVar38 = puStack_350;\n                      }\n                    }\n                    this = (void *)((int)this + 1);\n                    unaff_s3 = pdVar31 + 8;\n                    pvVar15 = (void *)unaff_s4[1];\n                  } while (((int)this < (int)pvVar15) &&\n                          (pdVar18 = pdVar31 + 9, pdVar31 = unaff_s3,\n                          (*pdVar18 - in_f28_29) - *(double *)(iVar12 + 0x43d0) < in_f26_27));\n                  pdVar18 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar31 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar41 = in_f30_31;\nLAB_000a4f3c:\n                dVar43 = (double)iStack_2f0;\n                pvVar23 = (void *)0x0;\n                if (pdVar31[1] < dVar43) {\n                  uVar28 = 0;\n                  do {\n                    if ((dVar43 <= pdVar31[3]) &&\n                       (dVar42 = (double)(int)uStack_328, *pdVar31 < dVar42)) {\n                      iVar12 = -1;\n                      if (dVar42 <= pdVar31[2]) {\n                        iVar12 = *(int *)(pdVar31 + 7);\n                        dVar49 = (double)iVar12;\n                        if (iVar12 < 0) {\n                          dVar49 = dVar49 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar49 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar12 = 1;\n                        }\n                        iVar51 = *(int *)((int)pdVar31 + 0x2c) + -1;\n                        if (iVar12 < iVar51) {\n                          iVar30 = *(int *)(pdVar31 + 5) + iVar12 * 0x10;\n                          dVar49 = *(double *)(iVar30 + 8);\n                          while (dVar49 < dVar43) {\n                            iVar12 = iVar12 + 1;\n                            if (iVar51 <= iVar12) break;\n                            dVar49 = *(double *)(iVar30 + 0x18);\n                            iVar30 = iVar30 + 0x10;\n                          }\n                        }\n                        pdVar6 = (double *)(*(int *)(pdVar31 + 5) + (iVar12 + 0xfffffff) * 0x10);\n                        iVar12 = -1;\n                        if ((pdVar6[2] - *pdVar6) * (dVar43 - pdVar6[1]) <=\n                            (pdVar6[3] - pdVar6[1]) * (dVar42 - *pdVar6)) {\n                          if (*(int *)(pdVar31 + 6) != 0) {\n                            iVar12 = 1;\n                          }\n                          uVar28 = uVar28 + iVar12;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar31 + 6) != 0) {\n                          iVar12 = 1;\n                        }\n                        uVar28 = uVar28 + iVar12;\n                      }\n                    }\n                    pvVar23 = (void *)((int)pvVar23 + 1);\n                  } while ((pvVar23 != pvVar15) &&\n                          (pdVar6 = pdVar31 + 9, pdVar31 = pdVar31 + 8, *pdVar6 < dVar43));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar28 < 0) {\n                      uVar28 = -uVar28;\n                    }\n                    if ((uVar28 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar28 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar12 == 0) {\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar28 = uStack_2f8;\n              iVar30 = uStack_328 - uStack_2d4;\n              iVar12 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar12 == 0) {\n                puVar10 = (undefined4 *)(iStack_324 + 0x48);\n                puVar2 = auStack_298;\n                do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0x98));\n                uVar5 = puVar11[5];\n                puVar17[4] = *puVar10;\n                puVar17[5] = uVar5;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uStack_2f8 + *(int *)(iVar12 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar31 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0) {\n                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }\n              dVar43 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar42 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar43 = (dVar43 + dVar42) - dVar43 * dVar42;\n              in_f30_31 = dVar41;\n              if (0 < *(int *)(pdVar18 + 0x58)) {\n                iVar51 = 0;\n                iVar12 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar51);\n                  uStack_348 = dVar43;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7370 + uVar9 * 4))\n                    )();\n                    return;\n                  }\n                  iVar12 = iVar12 + 1;\n                  iVar51 = iVar51 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar12 < *(int *)(pdVar18 + 0x58));\n              }\n              iVar12 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar12 == 0) {\n                puVar10 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar2 = auStack_240;\n                do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar5 = puVar11[5];\n                puVar17[4] = *puVar10;\n                puVar17[5] = uVar5;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uVar28 + *(int *)(iVar12 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar31 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0) {\n                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar43 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar43) - dVar41 * dVar43;\n              iVar12 = *(int *)(pdVar18 + 0x58);\n              if (0 < iVar12) {\n                iVar14 = 0;\n                iVar51 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar14);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7384 + uVar9 * 4))\n                    )(in_f20_21,*(undefined8 *)(*(int *)(puVar38 + -0x7fd0) + 0x4a48));\n                    return;\n                  }\n                  iVar51 = iVar51 + 1;\n                  iVar12 = *(int *)(pdVar18 + 0x58);\n                  iVar14 = iVar14 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar51 < iVar12);\n              }\n              iStack_308 = iStack_308 + iVar12 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar18;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar31 = pdStack_2a0;\n          iVar12 = (**(code **)(puVar38 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar12 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }" if (parenthesized_expression "(iStack_308 == 0)" ( (binary_expression "iStack_308 == 0" identifier == number_literal) )) (compound_statement "{\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }" { (expression_statement "*(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0" (pointer_expression "*(undefined4 *)((int)pdStack_2a8 + 0x2c)" * (cast_expression "(undefined4 *)((int)pdStack_2a8 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdStack_2a8 + 0x2c)" ( (binary_expression "(int)pdStack_2a8 + 0x2c" (cast_expression "(int)pdStack_2a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n          iVar30 = iVar30 * 4;\n          puVar38 = puStack_350;\n          if ((int)uVar28 <= (int)pdVar18) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar30);\n            uStack_328 = uStack_2d4;\n            pdVar18 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              pvVar15 = (void *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)pvVar15 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4f34:\n                  pdVar31 = (double *)*unaff_s4;\n                  if (0 < (int)pvVar15) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4ec0:\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar41 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar12 = *(int *)(puVar38 + -0x7fd0);\n                dVar41 = *(double *)(iVar12 + 0x43d0);\n                this = (void *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar41 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar31 = unaff_s3;\n                  dStack_330 = dVar41;\n                  pdStack_2d8 = pdVar18;\n                  do {\n                    pdVar18 = pdStack_2ec;\n                    iVar51 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar31[3] + dVar41) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar31 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar31[2] + *(double *)(iVar12 + 0x43d0))) {\n                        iVar30 = *(int *)(pdVar31 + 7);\n                        dVar43 = (double)iVar30;\n                        if (iVar30 < 0) {\n                          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar43 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar30 = 1;\n                        }\n                        if (iVar30 < *(int *)((int)pdVar31 + 0x2c)) {\n                          iVar14 = *(int *)(pdVar31 + 5);\n                          iVar52 = (iVar30 + 0xfffffff) * 0x10;\n                          pdVar18 = (double *)(iVar14 + iVar52);\n                          dVar43 = *(double *)(iVar12 + 0x43d0);\n                          if ((pdVar18[1] - in_f28_29) - dVar43 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar33 = *(int *)(puVar38 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar33 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar52 = iVar52 + 0x10;\n                              dVar42 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43\n                                 ) {\n                                if (in_f26_27 != pdVar31[4]) {\n                                  pdVar31[4] = in_f26_27;\n                                  *(int *)(pdVar31 + 7) = iVar30;\n                                }\n                                dVar46 = pdVar18[2] - *pdVar18;\n                                dVar44 = pdVar18[3] - pdVar18[1];\n                                dVar49 = in_f22_23 - *pdVar18;\n                                dVar42 = in_f26_27 - pdVar18[1];\n                                dVar47 = dVar46 * dVar49 + dVar44 * dVar42;\n                                if (0.0 < dVar47) {\n                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;\n                                  if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }\n                                dVar42 = dStack_338;\n                                if (*(int *)((int)pdVar31 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar42;\n                                dVar42 = dStack_340;\n                                if (((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar42;\n                              iVar30 = iVar30 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar43;\n                              if (*(int *)((int)pdVar31 + 0x2c) <= iVar30) break;\n                              iVar14 = *(int *)(pdVar31 + 5);\n                              pdVar18 = (double *)(iVar14 + iVar52);\n                            } while ((pdVar18[1] - in_f28_29) - *(double *)(iVar12 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (pvVar15 <= this) {\n                        (**(code **)(puVar38 + -0x7290))\n                                  (*(int *)(puVar38 + -0x7fcc) + 0x69fc,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x69c0,0x3e3,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x773c);\n                        return;\n                      }\n                      iVar51 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar5 = (**(code **)(puVar38 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar31 + iVar51 + 0x28));\n                      *(undefined4 *)((int)pdVar31 + iVar51 + 0x28) = uVar5;\n                      pvVar15 = (void *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)pvVar15;\n                      puVar38 = puStack_350;\n                      if (this < pvVar15) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar31 + (*unaff_s4 - (int)pdVar18)),\n                                   *unaff_s4 + ((int)this + 1) * 0x40,\n                                   ((int)pvVar15 - (int)this) * 0x40);\n                        puVar38 = puStack_350;\n                      }\n                    }\n                    this = (void *)((int)this + 1);\n                    unaff_s3 = pdVar31 + 8;\n                    pvVar15 = (void *)unaff_s4[1];\n                  } while (((int)this < (int)pvVar15) &&\n                          (pdVar18 = pdVar31 + 9, pdVar31 = unaff_s3,\n                          (*pdVar18 - in_f28_29) - *(double *)(iVar12 + 0x43d0) < in_f26_27));\n                  pdVar18 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar31 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar41 = in_f30_31;\nLAB_000a4f3c:\n                dVar43 = (double)iStack_2f0;\n                pvVar23 = (void *)0x0;\n                if (pdVar31[1] < dVar43) {\n                  uVar28 = 0;\n                  do {\n                    if ((dVar43 <= pdVar31[3]) &&\n                       (dVar42 = (double)(int)uStack_328, *pdVar31 < dVar42)) {\n                      iVar12 = -1;\n                      if (dVar42 <= pdVar31[2]) {\n                        iVar12 = *(int *)(pdVar31 + 7);\n                        dVar49 = (double)iVar12;\n                        if (iVar12 < 0) {\n                          dVar49 = dVar49 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar49 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar12 = 1;\n                        }\n                        iVar51 = *(int *)((int)pdVar31 + 0x2c) + -1;\n                        if (iVar12 < iVar51) {\n                          iVar30 = *(int *)(pdVar31 + 5) + iVar12 * 0x10;\n                          dVar49 = *(double *)(iVar30 + 8);\n                          while (dVar49 < dVar43) {\n                            iVar12 = iVar12 + 1;\n                            if (iVar51 <= iVar12) break;\n                            dVar49 = *(double *)(iVar30 + 0x18);\n                            iVar30 = iVar30 + 0x10;\n                          }\n                        }\n                        pdVar6 = (double *)(*(int *)(pdVar31 + 5) + (iVar12 + 0xfffffff) * 0x10);\n                        iVar12 = -1;\n                        if ((pdVar6[2] - *pdVar6) * (dVar43 - pdVar6[1]) <=\n                            (pdVar6[3] - pdVar6[1]) * (dVar42 - *pdVar6)) {\n                          if (*(int *)(pdVar31 + 6) != 0) {\n                            iVar12 = 1;\n                          }\n                          uVar28 = uVar28 + iVar12;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar31 + 6) != 0) {\n                          iVar12 = 1;\n                        }\n                        uVar28 = uVar28 + iVar12;\n                      }\n                    }\n                    pvVar23 = (void *)((int)pvVar23 + 1);\n                  } while ((pvVar23 != pvVar15) &&\n                          (pdVar6 = pdVar31 + 9, pdVar31 = pdVar31 + 8, *pdVar6 < dVar43));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar28 < 0) {\n                      uVar28 = -uVar28;\n                    }\n                    if ((uVar28 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar28 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar12 == 0) {\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar28 = uStack_2f8;\n              iVar30 = uStack_328 - uStack_2d4;\n              iVar12 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar12 == 0) {\n                puVar10 = (undefined4 *)(iStack_324 + 0x48);\n                puVar2 = auStack_298;\n                do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0x98));\n                uVar5 = puVar11[5];\n                puVar17[4] = *puVar10;\n                puVar17[5] = uVar5;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uStack_2f8 + *(int *)(iVar12 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar31 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0) {\n                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }\n              dVar43 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar42 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar43 = (dVar43 + dVar42) - dVar43 * dVar42;\n              in_f30_31 = dVar41;\n              if (0 < *(int *)(pdVar18 + 0x58)) {\n                iVar51 = 0;\n                iVar12 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar51);\n                  uStack_348 = dVar43;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7370 + uVar9 * 4))\n                    )();\n                    return;\n                  }\n                  iVar12 = iVar12 + 1;\n                  iVar51 = iVar51 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar12 < *(int *)(pdVar18 + 0x58));\n              }\n              iVar12 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar12 == 0) {\n                puVar10 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar2 = auStack_240;\n                do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar5 = puVar11[5];\n                puVar17[4] = *puVar10;\n                puVar17[5] = uVar5;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uVar28 + *(int *)(iVar12 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar31 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0) {\n                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar43 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar43) - dVar41 * dVar43;\n              iVar12 = *(int *)(pdVar18 + 0x58);\n              if (0 < iVar12) {\n                iVar14 = 0;\n                iVar51 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar14);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7384 + uVar9 * 4))\n                    )(in_f20_21,*(undefined8 *)(*(int *)(puVar38 + -0x7fd0) + 0x4a48));\n                    return;\n                  }\n                  iVar51 = iVar51 + 1;\n                  iVar12 = *(int *)(pdVar18 + 0x58);\n                  iVar14 = iVar14 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar51 < iVar12);\n              }\n              iStack_308 = iStack_308 + iVar12 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar18;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar31 = pdStack_2a0;\n          iVar12 = (**(code **)(puVar38 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar12 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }" else (compound_statement "{\n          iVar30 = iVar30 * 4;\n          puVar38 = puStack_350;\n          if ((int)uVar28 <= (int)pdVar18) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar30);\n            uStack_328 = uStack_2d4;\n            pdVar18 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              pvVar15 = (void *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)pvVar15 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4f34:\n                  pdVar31 = (double *)*unaff_s4;\n                  if (0 < (int)pvVar15) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4ec0:\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar41 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar12 = *(int *)(puVar38 + -0x7fd0);\n                dVar41 = *(double *)(iVar12 + 0x43d0);\n                this = (void *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar41 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar31 = unaff_s3;\n                  dStack_330 = dVar41;\n                  pdStack_2d8 = pdVar18;\n                  do {\n                    pdVar18 = pdStack_2ec;\n                    iVar51 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar31[3] + dVar41) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar31 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar31[2] + *(double *)(iVar12 + 0x43d0))) {\n                        iVar30 = *(int *)(pdVar31 + 7);\n                        dVar43 = (double)iVar30;\n                        if (iVar30 < 0) {\n                          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar43 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar30 = 1;\n                        }\n                        if (iVar30 < *(int *)((int)pdVar31 + 0x2c)) {\n                          iVar14 = *(int *)(pdVar31 + 5);\n                          iVar52 = (iVar30 + 0xfffffff) * 0x10;\n                          pdVar18 = (double *)(iVar14 + iVar52);\n                          dVar43 = *(double *)(iVar12 + 0x43d0);\n                          if ((pdVar18[1] - in_f28_29) - dVar43 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar33 = *(int *)(puVar38 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar33 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar52 = iVar52 + 0x10;\n                              dVar42 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43\n                                 ) {\n                                if (in_f26_27 != pdVar31[4]) {\n                                  pdVar31[4] = in_f26_27;\n                                  *(int *)(pdVar31 + 7) = iVar30;\n                                }\n                                dVar46 = pdVar18[2] - *pdVar18;\n                                dVar44 = pdVar18[3] - pdVar18[1];\n                                dVar49 = in_f22_23 - *pdVar18;\n                                dVar42 = in_f26_27 - pdVar18[1];\n                                dVar47 = dVar46 * dVar49 + dVar44 * dVar42;\n                                if (0.0 < dVar47) {\n                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;\n                                  if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }\n                                dVar42 = dStack_338;\n                                if (*(int *)((int)pdVar31 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar42;\n                                dVar42 = dStack_340;\n                                if (((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar42;\n                              iVar30 = iVar30 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar43;\n                              if (*(int *)((int)pdVar31 + 0x2c) <= iVar30) break;\n                              iVar14 = *(int *)(pdVar31 + 5);\n                              pdVar18 = (double *)(iVar14 + iVar52);\n                            } while ((pdVar18[1] - in_f28_29) - *(double *)(iVar12 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (pvVar15 <= this) {\n                        (**(code **)(puVar38 + -0x7290))\n                                  (*(int *)(puVar38 + -0x7fcc) + 0x69fc,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x69c0,0x3e3,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x773c);\n                        return;\n                      }\n                      iVar51 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar5 = (**(code **)(puVar38 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar31 + iVar51 + 0x28));\n                      *(undefined4 *)((int)pdVar31 + iVar51 + 0x28) = uVar5;\n                      pvVar15 = (void *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)pvVar15;\n                      puVar38 = puStack_350;\n                      if (this < pvVar15) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar31 + (*unaff_s4 - (int)pdVar18)),\n                                   *unaff_s4 + ((int)this + 1) * 0x40,\n                                   ((int)pvVar15 - (int)this) * 0x40);\n                        puVar38 = puStack_350;\n                      }\n                    }\n                    this = (void *)((int)this + 1);\n                    unaff_s3 = pdVar31 + 8;\n                    pvVar15 = (void *)unaff_s4[1];\n                  } while (((int)this < (int)pvVar15) &&\n                          (pdVar18 = pdVar31 + 9, pdVar31 = unaff_s3,\n                          (*pdVar18 - in_f28_29) - *(double *)(iVar12 + 0x43d0) < in_f26_27));\n                  pdVar18 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar31 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar41 = in_f30_31;\nLAB_000a4f3c:\n                dVar43 = (double)iStack_2f0;\n                pvVar23 = (void *)0x0;\n                if (pdVar31[1] < dVar43) {\n                  uVar28 = 0;\n                  do {\n                    if ((dVar43 <= pdVar31[3]) &&\n                       (dVar42 = (double)(int)uStack_328, *pdVar31 < dVar42)) {\n                      iVar12 = -1;\n                      if (dVar42 <= pdVar31[2]) {\n                        iVar12 = *(int *)(pdVar31 + 7);\n                        dVar49 = (double)iVar12;\n                        if (iVar12 < 0) {\n                          dVar49 = dVar49 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar49 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar12 = 1;\n                        }\n                        iVar51 = *(int *)((int)pdVar31 + 0x2c) + -1;\n                        if (iVar12 < iVar51) {\n                          iVar30 = *(int *)(pdVar31 + 5) + iVar12 * 0x10;\n                          dVar49 = *(double *)(iVar30 + 8);\n                          while (dVar49 < dVar43) {\n                            iVar12 = iVar12 + 1;\n                            if (iVar51 <= iVar12) break;\n                            dVar49 = *(double *)(iVar30 + 0x18);\n                            iVar30 = iVar30 + 0x10;\n                          }\n                        }\n                        pdVar6 = (double *)(*(int *)(pdVar31 + 5) + (iVar12 + 0xfffffff) * 0x10);\n                        iVar12 = -1;\n                        if ((pdVar6[2] - *pdVar6) * (dVar43 - pdVar6[1]) <=\n                            (pdVar6[3] - pdVar6[1]) * (dVar42 - *pdVar6)) {\n                          if (*(int *)(pdVar31 + 6) != 0) {\n                            iVar12 = 1;\n                          }\n                          uVar28 = uVar28 + iVar12;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar31 + 6) != 0) {\n                          iVar12 = 1;\n                        }\n                        uVar28 = uVar28 + iVar12;\n                      }\n                    }\n                    pvVar23 = (void *)((int)pvVar23 + 1);\n                  } while ((pvVar23 != pvVar15) &&\n                          (pdVar6 = pdVar31 + 9, pdVar31 = pdVar31 + 8, *pdVar6 < dVar43));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar28 < 0) {\n                      uVar28 = -uVar28;\n                    }\n                    if ((uVar28 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar28 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar12 == 0) {\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar28 = uStack_2f8;\n              iVar30 = uStack_328 - uStack_2d4;\n              iVar12 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar12 == 0) {\n                puVar10 = (undefined4 *)(iStack_324 + 0x48);\n                puVar2 = auStack_298;\n                do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0x98));\n                uVar5 = puVar11[5];\n                puVar17[4] = *puVar10;\n                puVar17[5] = uVar5;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uStack_2f8 + *(int *)(iVar12 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar31 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0) {\n                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }\n              dVar43 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar42 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar43 = (dVar43 + dVar42) - dVar43 * dVar42;\n              in_f30_31 = dVar41;\n              if (0 < *(int *)(pdVar18 + 0x58)) {\n                iVar51 = 0;\n                iVar12 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar51);\n                  uStack_348 = dVar43;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7370 + uVar9 * 4))\n                    )();\n                    return;\n                  }\n                  iVar12 = iVar12 + 1;\n                  iVar51 = iVar51 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar12 < *(int *)(pdVar18 + 0x58));\n              }\n              iVar12 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar12 == 0) {\n                puVar10 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar2 = auStack_240;\n                do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar5 = puVar11[5];\n                puVar17[4] = *puVar10;\n                puVar17[5] = uVar5;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uVar28 + *(int *)(iVar12 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar31 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0) {\n                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar43 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar43) - dVar41 * dVar43;\n              iVar12 = *(int *)(pdVar18 + 0x58);\n              if (0 < iVar12) {\n                iVar14 = 0;\n                iVar51 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar14);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7384 + uVar9 * 4))\n                    )(in_f20_21,*(undefined8 *)(*(int *)(puVar38 + -0x7fd0) + 0x4a48));\n                    return;\n                  }\n                  iVar51 = iVar51 + 1;\n                  iVar12 = *(int *)(pdVar18 + 0x58);\n                  iVar14 = iVar14 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar51 < iVar12);\n              }\n              iStack_308 = iStack_308 + iVar12 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar18;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar31 = pdStack_2a0;\n          iVar12 = (**(code **)(puVar38 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar12 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }" { (expression_statement "iVar30 = iVar30 * 4;" (assignment_expression "iVar30 = iVar30 * 4" identifier = (binary_expression "iVar30 * 4" identifier * number_literal)) ;) (expression_statement "puVar38 = puStack_350;" (assignment_expression "puVar38 = puStack_350" identifier = identifier) ;) (if_statement "if ((int)uVar28 <= (int)pdVar18) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar30);\n            uStack_328 = uStack_2d4;\n            pdVar18 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              pvVar15 = (void *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)pvVar15 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4f34:\n                  pdVar31 = (double *)*unaff_s4;\n                  if (0 < (int)pvVar15) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4ec0:\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar41 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar12 = *(int *)(puVar38 + -0x7fd0);\n                dVar41 = *(double *)(iVar12 + 0x43d0);\n                this = (void *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar41 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar31 = unaff_s3;\n                  dStack_330 = dVar41;\n                  pdStack_2d8 = pdVar18;\n                  do {\n                    pdVar18 = pdStack_2ec;\n                    iVar51 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar31[3] + dVar41) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar31 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar31[2] + *(double *)(iVar12 + 0x43d0))) {\n                        iVar30 = *(int *)(pdVar31 + 7);\n                        dVar43 = (double)iVar30;\n                        if (iVar30 < 0) {\n                          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar43 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar30 = 1;\n                        }\n                        if (iVar30 < *(int *)((int)pdVar31 + 0x2c)) {\n                          iVar14 = *(int *)(pdVar31 + 5);\n                          iVar52 = (iVar30 + 0xfffffff) * 0x10;\n                          pdVar18 = (double *)(iVar14 + iVar52);\n                          dVar43 = *(double *)(iVar12 + 0x43d0);\n                          if ((pdVar18[1] - in_f28_29) - dVar43 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar33 = *(int *)(puVar38 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar33 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar52 = iVar52 + 0x10;\n                              dVar42 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43\n                                 ) {\n                                if (in_f26_27 != pdVar31[4]) {\n                                  pdVar31[4] = in_f26_27;\n                                  *(int *)(pdVar31 + 7) = iVar30;\n                                }\n                                dVar46 = pdVar18[2] - *pdVar18;\n                                dVar44 = pdVar18[3] - pdVar18[1];\n                                dVar49 = in_f22_23 - *pdVar18;\n                                dVar42 = in_f26_27 - pdVar18[1];\n                                dVar47 = dVar46 * dVar49 + dVar44 * dVar42;\n                                if (0.0 < dVar47) {\n                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;\n                                  if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }\n                                dVar42 = dStack_338;\n                                if (*(int *)((int)pdVar31 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar42;\n                                dVar42 = dStack_340;\n                                if (((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar42;\n                              iVar30 = iVar30 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar43;\n                              if (*(int *)((int)pdVar31 + 0x2c) <= iVar30) break;\n                              iVar14 = *(int *)(pdVar31 + 5);\n                              pdVar18 = (double *)(iVar14 + iVar52);\n                            } while ((pdVar18[1] - in_f28_29) - *(double *)(iVar12 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (pvVar15 <= this) {\n                        (**(code **)(puVar38 + -0x7290))\n                                  (*(int *)(puVar38 + -0x7fcc) + 0x69fc,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x69c0,0x3e3,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x773c);\n                        return;\n                      }\n                      iVar51 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar5 = (**(code **)(puVar38 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar31 + iVar51 + 0x28));\n                      *(undefined4 *)((int)pdVar31 + iVar51 + 0x28) = uVar5;\n                      pvVar15 = (void *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)pvVar15;\n                      puVar38 = puStack_350;\n                      if (this < pvVar15) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar31 + (*unaff_s4 - (int)pdVar18)),\n                                   *unaff_s4 + ((int)this + 1) * 0x40,\n                                   ((int)pvVar15 - (int)this) * 0x40);\n                        puVar38 = puStack_350;\n                      }\n                    }\n                    this = (void *)((int)this + 1);\n                    unaff_s3 = pdVar31 + 8;\n                    pvVar15 = (void *)unaff_s4[1];\n                  } while (((int)this < (int)pvVar15) &&\n                          (pdVar18 = pdVar31 + 9, pdVar31 = unaff_s3,\n                          (*pdVar18 - in_f28_29) - *(double *)(iVar12 + 0x43d0) < in_f26_27));\n                  pdVar18 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar31 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar41 = in_f30_31;\nLAB_000a4f3c:\n                dVar43 = (double)iStack_2f0;\n                pvVar23 = (void *)0x0;\n                if (pdVar31[1] < dVar43) {\n                  uVar28 = 0;\n                  do {\n                    if ((dVar43 <= pdVar31[3]) &&\n                       (dVar42 = (double)(int)uStack_328, *pdVar31 < dVar42)) {\n                      iVar12 = -1;\n                      if (dVar42 <= pdVar31[2]) {\n                        iVar12 = *(int *)(pdVar31 + 7);\n                        dVar49 = (double)iVar12;\n                        if (iVar12 < 0) {\n                          dVar49 = dVar49 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar49 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar12 = 1;\n                        }\n                        iVar51 = *(int *)((int)pdVar31 + 0x2c) + -1;\n                        if (iVar12 < iVar51) {\n                          iVar30 = *(int *)(pdVar31 + 5) + iVar12 * 0x10;\n                          dVar49 = *(double *)(iVar30 + 8);\n                          while (dVar49 < dVar43) {\n                            iVar12 = iVar12 + 1;\n                            if (iVar51 <= iVar12) break;\n                            dVar49 = *(double *)(iVar30 + 0x18);\n                            iVar30 = iVar30 + 0x10;\n                          }\n                        }\n                        pdVar6 = (double *)(*(int *)(pdVar31 + 5) + (iVar12 + 0xfffffff) * 0x10);\n                        iVar12 = -1;\n                        if ((pdVar6[2] - *pdVar6) * (dVar43 - pdVar6[1]) <=\n                            (pdVar6[3] - pdVar6[1]) * (dVar42 - *pdVar6)) {\n                          if (*(int *)(pdVar31 + 6) != 0) {\n                            iVar12 = 1;\n                          }\n                          uVar28 = uVar28 + iVar12;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar31 + 6) != 0) {\n                          iVar12 = 1;\n                        }\n                        uVar28 = uVar28 + iVar12;\n                      }\n                    }\n                    pvVar23 = (void *)((int)pvVar23 + 1);\n                  } while ((pvVar23 != pvVar15) &&\n                          (pdVar6 = pdVar31 + 9, pdVar31 = pdVar31 + 8, *pdVar6 < dVar43));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar28 < 0) {\n                      uVar28 = -uVar28;\n                    }\n                    if ((uVar28 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar28 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar12 == 0) {\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar28 = uStack_2f8;\n              iVar30 = uStack_328 - uStack_2d4;\n              iVar12 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar12 == 0) {\n                puVar10 = (undefined4 *)(iStack_324 + 0x48);\n                puVar2 = auStack_298;\n                do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0x98));\n                uVar5 = puVar11[5];\n                puVar17[4] = *puVar10;\n                puVar17[5] = uVar5;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uStack_2f8 + *(int *)(iVar12 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar31 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0) {\n                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }\n              dVar43 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar42 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar43 = (dVar43 + dVar42) - dVar43 * dVar42;\n              in_f30_31 = dVar41;\n              if (0 < *(int *)(pdVar18 + 0x58)) {\n                iVar51 = 0;\n                iVar12 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar51);\n                  uStack_348 = dVar43;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7370 + uVar9 * 4))\n                    )();\n                    return;\n                  }\n                  iVar12 = iVar12 + 1;\n                  iVar51 = iVar51 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar12 < *(int *)(pdVar18 + 0x58));\n              }\n              iVar12 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar12 == 0) {\n                puVar10 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar2 = auStack_240;\n                do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar5 = puVar11[5];\n                puVar17[4] = *puVar10;\n                puVar17[5] = uVar5;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uVar28 + *(int *)(iVar12 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar31 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0) {\n                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar43 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar43) - dVar41 * dVar43;\n              iVar12 = *(int *)(pdVar18 + 0x58);\n              if (0 < iVar12) {\n                iVar14 = 0;\n                iVar51 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar14);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7384 + uVar9 * 4))\n                    )(in_f20_21,*(undefined8 *)(*(int *)(puVar38 + -0x7fd0) + 0x4a48));\n                    return;\n                  }\n                  iVar51 = iVar51 + 1;\n                  iVar12 = *(int *)(pdVar18 + 0x58);\n                  iVar14 = iVar14 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar51 < iVar12);\n              }\n              iStack_308 = iStack_308 + iVar12 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar18;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }" if (parenthesized_expression "((int)uVar28 <= (int)pdVar18)" ( (binary_expression "(int)uVar28 <= (int)pdVar18" (cast_expression "(int)uVar28" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pdVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar30);\n            uStack_328 = uStack_2d4;\n            pdVar18 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              pvVar15 = (void *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)pvVar15 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4f34:\n                  pdVar31 = (double *)*unaff_s4;\n                  if (0 < (int)pvVar15) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4ec0:\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar41 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar12 = *(int *)(puVar38 + -0x7fd0);\n                dVar41 = *(double *)(iVar12 + 0x43d0);\n                this = (void *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar41 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar31 = unaff_s3;\n                  dStack_330 = dVar41;\n                  pdStack_2d8 = pdVar18;\n                  do {\n                    pdVar18 = pdStack_2ec;\n                    iVar51 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar31[3] + dVar41) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar31 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar31[2] + *(double *)(iVar12 + 0x43d0))) {\n                        iVar30 = *(int *)(pdVar31 + 7);\n                        dVar43 = (double)iVar30;\n                        if (iVar30 < 0) {\n                          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar43 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar30 = 1;\n                        }\n                        if (iVar30 < *(int *)((int)pdVar31 + 0x2c)) {\n                          iVar14 = *(int *)(pdVar31 + 5);\n                          iVar52 = (iVar30 + 0xfffffff) * 0x10;\n                          pdVar18 = (double *)(iVar14 + iVar52);\n                          dVar43 = *(double *)(iVar12 + 0x43d0);\n                          if ((pdVar18[1] - in_f28_29) - dVar43 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar33 = *(int *)(puVar38 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar33 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar52 = iVar52 + 0x10;\n                              dVar42 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43\n                                 ) {\n                                if (in_f26_27 != pdVar31[4]) {\n                                  pdVar31[4] = in_f26_27;\n                                  *(int *)(pdVar31 + 7) = iVar30;\n                                }\n                                dVar46 = pdVar18[2] - *pdVar18;\n                                dVar44 = pdVar18[3] - pdVar18[1];\n                                dVar49 = in_f22_23 - *pdVar18;\n                                dVar42 = in_f26_27 - pdVar18[1];\n                                dVar47 = dVar46 * dVar49 + dVar44 * dVar42;\n                                if (0.0 < dVar47) {\n                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;\n                                  if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }\n                                dVar42 = dStack_338;\n                                if (*(int *)((int)pdVar31 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar42;\n                                dVar42 = dStack_340;\n                                if (((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar42;\n                              iVar30 = iVar30 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar43;\n                              if (*(int *)((int)pdVar31 + 0x2c) <= iVar30) break;\n                              iVar14 = *(int *)(pdVar31 + 5);\n                              pdVar18 = (double *)(iVar14 + iVar52);\n                            } while ((pdVar18[1] - in_f28_29) - *(double *)(iVar12 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (pvVar15 <= this) {\n                        (**(code **)(puVar38 + -0x7290))\n                                  (*(int *)(puVar38 + -0x7fcc) + 0x69fc,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x69c0,0x3e3,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x773c);\n                        return;\n                      }\n                      iVar51 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar5 = (**(code **)(puVar38 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar31 + iVar51 + 0x28));\n                      *(undefined4 *)((int)pdVar31 + iVar51 + 0x28) = uVar5;\n                      pvVar15 = (void *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)pvVar15;\n                      puVar38 = puStack_350;\n                      if (this < pvVar15) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar31 + (*unaff_s4 - (int)pdVar18)),\n                                   *unaff_s4 + ((int)this + 1) * 0x40,\n                                   ((int)pvVar15 - (int)this) * 0x40);\n                        puVar38 = puStack_350;\n                      }\n                    }\n                    this = (void *)((int)this + 1);\n                    unaff_s3 = pdVar31 + 8;\n                    pvVar15 = (void *)unaff_s4[1];\n                  } while (((int)this < (int)pvVar15) &&\n                          (pdVar18 = pdVar31 + 9, pdVar31 = unaff_s3,\n                          (*pdVar18 - in_f28_29) - *(double *)(iVar12 + 0x43d0) < in_f26_27));\n                  pdVar18 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar31 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar41 = in_f30_31;\nLAB_000a4f3c:\n                dVar43 = (double)iStack_2f0;\n                pvVar23 = (void *)0x0;\n                if (pdVar31[1] < dVar43) {\n                  uVar28 = 0;\n                  do {\n                    if ((dVar43 <= pdVar31[3]) &&\n                       (dVar42 = (double)(int)uStack_328, *pdVar31 < dVar42)) {\n                      iVar12 = -1;\n                      if (dVar42 <= pdVar31[2]) {\n                        iVar12 = *(int *)(pdVar31 + 7);\n                        dVar49 = (double)iVar12;\n                        if (iVar12 < 0) {\n                          dVar49 = dVar49 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar49 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar12 = 1;\n                        }\n                        iVar51 = *(int *)((int)pdVar31 + 0x2c) + -1;\n                        if (iVar12 < iVar51) {\n                          iVar30 = *(int *)(pdVar31 + 5) + iVar12 * 0x10;\n                          dVar49 = *(double *)(iVar30 + 8);\n                          while (dVar49 < dVar43) {\n                            iVar12 = iVar12 + 1;\n                            if (iVar51 <= iVar12) break;\n                            dVar49 = *(double *)(iVar30 + 0x18);\n                            iVar30 = iVar30 + 0x10;\n                          }\n                        }\n                        pdVar6 = (double *)(*(int *)(pdVar31 + 5) + (iVar12 + 0xfffffff) * 0x10);\n                        iVar12 = -1;\n                        if ((pdVar6[2] - *pdVar6) * (dVar43 - pdVar6[1]) <=\n                            (pdVar6[3] - pdVar6[1]) * (dVar42 - *pdVar6)) {\n                          if (*(int *)(pdVar31 + 6) != 0) {\n                            iVar12 = 1;\n                          }\n                          uVar28 = uVar28 + iVar12;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar31 + 6) != 0) {\n                          iVar12 = 1;\n                        }\n                        uVar28 = uVar28 + iVar12;\n                      }\n                    }\n                    pvVar23 = (void *)((int)pvVar23 + 1);\n                  } while ((pvVar23 != pvVar15) &&\n                          (pdVar6 = pdVar31 + 9, pdVar31 = pdVar31 + 8, *pdVar6 < dVar43));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar28 < 0) {\n                      uVar28 = -uVar28;\n                    }\n                    if ((uVar28 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar28 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar12 == 0) {\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar28 = uStack_2f8;\n              iVar30 = uStack_328 - uStack_2d4;\n              iVar12 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar12 == 0) {\n                puVar10 = (undefined4 *)(iStack_324 + 0x48);\n                puVar2 = auStack_298;\n                do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0x98));\n                uVar5 = puVar11[5];\n                puVar17[4] = *puVar10;\n                puVar17[5] = uVar5;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uStack_2f8 + *(int *)(iVar12 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar31 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0) {\n                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }\n              dVar43 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar42 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar43 = (dVar43 + dVar42) - dVar43 * dVar42;\n              in_f30_31 = dVar41;\n              if (0 < *(int *)(pdVar18 + 0x58)) {\n                iVar51 = 0;\n                iVar12 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar51);\n                  uStack_348 = dVar43;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7370 + uVar9 * 4))\n                    )();\n                    return;\n                  }\n                  iVar12 = iVar12 + 1;\n                  iVar51 = iVar51 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar12 < *(int *)(pdVar18 + 0x58));\n              }\n              iVar12 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar12 == 0) {\n                puVar10 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar2 = auStack_240;\n                do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar5 = puVar11[5];\n                puVar17[4] = *puVar10;\n                puVar17[5] = uVar5;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uVar28 + *(int *)(iVar12 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar31 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0) {\n                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar43 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar43) - dVar41 * dVar43;\n              iVar12 = *(int *)(pdVar18 + 0x58);\n              if (0 < iVar12) {\n                iVar14 = 0;\n                iVar51 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar14);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7384 + uVar9 * 4))\n                    )(in_f20_21,*(undefined8 *)(*(int *)(puVar38 + -0x7fd0) + 0x4a48));\n                    return;\n                  }\n                  iVar51 = iVar51 + 1;\n                  iVar12 = *(int *)(pdVar18 + 0x58);\n                  iVar14 = iVar14 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar51 < iVar12);\n              }\n              iStack_308 = iStack_308 + iVar12 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar18;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }" { (expression_statement "puStack_2bc = (undefined4 *)(iStack_29c + iVar30);" (assignment_expression "puStack_2bc = (undefined4 *)(iStack_29c + iVar30)" identifier = (cast_expression "(undefined4 *)(iStack_29c + iVar30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_29c + iVar30)" ( (binary_expression "iStack_29c + iVar30" identifier + identifier) )))) ;) (expression_statement "uStack_328 = uStack_2d4;" (assignment_expression "uStack_328 = uStack_2d4" identifier = identifier) ;) (expression_statement "pdVar18 = unaff_s6;" (assignment_expression "pdVar18 = unaff_s6" identifier = identifier) ;) (do_statement "do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              pvVar15 = (void *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)pvVar15 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4f34:\n                  pdVar31 = (double *)*unaff_s4;\n                  if (0 < (int)pvVar15) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4ec0:\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar41 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar12 = *(int *)(puVar38 + -0x7fd0);\n                dVar41 = *(double *)(iVar12 + 0x43d0);\n                this = (void *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar41 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar31 = unaff_s3;\n                  dStack_330 = dVar41;\n                  pdStack_2d8 = pdVar18;\n                  do {\n                    pdVar18 = pdStack_2ec;\n                    iVar51 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar31[3] + dVar41) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar31 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar31[2] + *(double *)(iVar12 + 0x43d0))) {\n                        iVar30 = *(int *)(pdVar31 + 7);\n                        dVar43 = (double)iVar30;\n                        if (iVar30 < 0) {\n                          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar43 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar30 = 1;\n                        }\n                        if (iVar30 < *(int *)((int)pdVar31 + 0x2c)) {\n                          iVar14 = *(int *)(pdVar31 + 5);\n                          iVar52 = (iVar30 + 0xfffffff) * 0x10;\n                          pdVar18 = (double *)(iVar14 + iVar52);\n                          dVar43 = *(double *)(iVar12 + 0x43d0);\n                          if ((pdVar18[1] - in_f28_29) - dVar43 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar33 = *(int *)(puVar38 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar33 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar52 = iVar52 + 0x10;\n                              dVar42 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43\n                                 ) {\n                                if (in_f26_27 != pdVar31[4]) {\n                                  pdVar31[4] = in_f26_27;\n                                  *(int *)(pdVar31 + 7) = iVar30;\n                                }\n                                dVar46 = pdVar18[2] - *pdVar18;\n                                dVar44 = pdVar18[3] - pdVar18[1];\n                                dVar49 = in_f22_23 - *pdVar18;\n                                dVar42 = in_f26_27 - pdVar18[1];\n                                dVar47 = dVar46 * dVar49 + dVar44 * dVar42;\n                                if (0.0 < dVar47) {\n                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;\n                                  if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }\n                                dVar42 = dStack_338;\n                                if (*(int *)((int)pdVar31 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar42;\n                                dVar42 = dStack_340;\n                                if (((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar42;\n                              iVar30 = iVar30 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar43;\n                              if (*(int *)((int)pdVar31 + 0x2c) <= iVar30) break;\n                              iVar14 = *(int *)(pdVar31 + 5);\n                              pdVar18 = (double *)(iVar14 + iVar52);\n                            } while ((pdVar18[1] - in_f28_29) - *(double *)(iVar12 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (pvVar15 <= this) {\n                        (**(code **)(puVar38 + -0x7290))\n                                  (*(int *)(puVar38 + -0x7fcc) + 0x69fc,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x69c0,0x3e3,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x773c);\n                        return;\n                      }\n                      iVar51 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar5 = (**(code **)(puVar38 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar31 + iVar51 + 0x28));\n                      *(undefined4 *)((int)pdVar31 + iVar51 + 0x28) = uVar5;\n                      pvVar15 = (void *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)pvVar15;\n                      puVar38 = puStack_350;\n                      if (this < pvVar15) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar31 + (*unaff_s4 - (int)pdVar18)),\n                                   *unaff_s4 + ((int)this + 1) * 0x40,\n                                   ((int)pvVar15 - (int)this) * 0x40);\n                        puVar38 = puStack_350;\n                      }\n                    }\n                    this = (void *)((int)this + 1);\n                    unaff_s3 = pdVar31 + 8;\n                    pvVar15 = (void *)unaff_s4[1];\n                  } while (((int)this < (int)pvVar15) &&\n                          (pdVar18 = pdVar31 + 9, pdVar31 = unaff_s3,\n                          (*pdVar18 - in_f28_29) - *(double *)(iVar12 + 0x43d0) < in_f26_27));\n                  pdVar18 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar31 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar41 = in_f30_31;\nLAB_000a4f3c:\n                dVar43 = (double)iStack_2f0;\n                pvVar23 = (void *)0x0;\n                if (pdVar31[1] < dVar43) {\n                  uVar28 = 0;\n                  do {\n                    if ((dVar43 <= pdVar31[3]) &&\n                       (dVar42 = (double)(int)uStack_328, *pdVar31 < dVar42)) {\n                      iVar12 = -1;\n                      if (dVar42 <= pdVar31[2]) {\n                        iVar12 = *(int *)(pdVar31 + 7);\n                        dVar49 = (double)iVar12;\n                        if (iVar12 < 0) {\n                          dVar49 = dVar49 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar49 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar12 = 1;\n                        }\n                        iVar51 = *(int *)((int)pdVar31 + 0x2c) + -1;\n                        if (iVar12 < iVar51) {\n                          iVar30 = *(int *)(pdVar31 + 5) + iVar12 * 0x10;\n                          dVar49 = *(double *)(iVar30 + 8);\n                          while (dVar49 < dVar43) {\n                            iVar12 = iVar12 + 1;\n                            if (iVar51 <= iVar12) break;\n                            dVar49 = *(double *)(iVar30 + 0x18);\n                            iVar30 = iVar30 + 0x10;\n                          }\n                        }\n                        pdVar6 = (double *)(*(int *)(pdVar31 + 5) + (iVar12 + 0xfffffff) * 0x10);\n                        iVar12 = -1;\n                        if ((pdVar6[2] - *pdVar6) * (dVar43 - pdVar6[1]) <=\n                            (pdVar6[3] - pdVar6[1]) * (dVar42 - *pdVar6)) {\n                          if (*(int *)(pdVar31 + 6) != 0) {\n                            iVar12 = 1;\n                          }\n                          uVar28 = uVar28 + iVar12;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar31 + 6) != 0) {\n                          iVar12 = 1;\n                        }\n                        uVar28 = uVar28 + iVar12;\n                      }\n                    }\n                    pvVar23 = (void *)((int)pvVar23 + 1);\n                  } while ((pvVar23 != pvVar15) &&\n                          (pdVar6 = pdVar31 + 9, pdVar31 = pdVar31 + 8, *pdVar6 < dVar43));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar28 < 0) {\n                      uVar28 = -uVar28;\n                    }\n                    if ((uVar28 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar28 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar12 == 0) {\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar28 = uStack_2f8;\n              iVar30 = uStack_328 - uStack_2d4;\n              iVar12 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar12 == 0) {\n                puVar10 = (undefined4 *)(iStack_324 + 0x48);\n                puVar2 = auStack_298;\n                do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0x98));\n                uVar5 = puVar11[5];\n                puVar17[4] = *puVar10;\n                puVar17[5] = uVar5;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uStack_2f8 + *(int *)(iVar12 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar31 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0) {\n                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }\n              dVar43 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar42 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar43 = (dVar43 + dVar42) - dVar43 * dVar42;\n              in_f30_31 = dVar41;\n              if (0 < *(int *)(pdVar18 + 0x58)) {\n                iVar51 = 0;\n                iVar12 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar51);\n                  uStack_348 = dVar43;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7370 + uVar9 * 4))\n                    )();\n                    return;\n                  }\n                  iVar12 = iVar12 + 1;\n                  iVar51 = iVar51 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar12 < *(int *)(pdVar18 + 0x58));\n              }\n              iVar12 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar12 == 0) {\n                puVar10 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar2 = auStack_240;\n                do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar5 = puVar11[5];\n                puVar17[4] = *puVar10;\n                puVar17[5] = uVar5;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uVar28 + *(int *)(iVar12 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar31 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0) {\n                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar43 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar43) - dVar41 * dVar43;\n              iVar12 = *(int *)(pdVar18 + 0x58);\n              if (0 < iVar12) {\n                iVar14 = 0;\n                iVar51 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar14);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7384 + uVar9 * 4))\n                    )(in_f20_21,*(undefined8 *)(*(int *)(puVar38 + -0x7fd0) + 0x4a48));\n                    return;\n                  }\n                  iVar51 = iVar51 + 1;\n                  iVar12 = *(int *)(pdVar18 + 0x58);\n                  iVar14 = iVar14 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar51 < iVar12);\n              }\n              iStack_308 = iStack_308 + iVar12 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar18;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);" do (compound_statement "{\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              pvVar15 = (void *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)pvVar15 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4f34:\n                  pdVar31 = (double *)*unaff_s4;\n                  if (0 < (int)pvVar15) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4ec0:\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar41 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar12 = *(int *)(puVar38 + -0x7fd0);\n                dVar41 = *(double *)(iVar12 + 0x43d0);\n                this = (void *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar41 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar31 = unaff_s3;\n                  dStack_330 = dVar41;\n                  pdStack_2d8 = pdVar18;\n                  do {\n                    pdVar18 = pdStack_2ec;\n                    iVar51 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar31[3] + dVar41) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar31 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar31[2] + *(double *)(iVar12 + 0x43d0))) {\n                        iVar30 = *(int *)(pdVar31 + 7);\n                        dVar43 = (double)iVar30;\n                        if (iVar30 < 0) {\n                          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar43 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar30 = 1;\n                        }\n                        if (iVar30 < *(int *)((int)pdVar31 + 0x2c)) {\n                          iVar14 = *(int *)(pdVar31 + 5);\n                          iVar52 = (iVar30 + 0xfffffff) * 0x10;\n                          pdVar18 = (double *)(iVar14 + iVar52);\n                          dVar43 = *(double *)(iVar12 + 0x43d0);\n                          if ((pdVar18[1] - in_f28_29) - dVar43 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar33 = *(int *)(puVar38 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar33 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar52 = iVar52 + 0x10;\n                              dVar42 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43\n                                 ) {\n                                if (in_f26_27 != pdVar31[4]) {\n                                  pdVar31[4] = in_f26_27;\n                                  *(int *)(pdVar31 + 7) = iVar30;\n                                }\n                                dVar46 = pdVar18[2] - *pdVar18;\n                                dVar44 = pdVar18[3] - pdVar18[1];\n                                dVar49 = in_f22_23 - *pdVar18;\n                                dVar42 = in_f26_27 - pdVar18[1];\n                                dVar47 = dVar46 * dVar49 + dVar44 * dVar42;\n                                if (0.0 < dVar47) {\n                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;\n                                  if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }\n                                dVar42 = dStack_338;\n                                if (*(int *)((int)pdVar31 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar42;\n                                dVar42 = dStack_340;\n                                if (((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar42;\n                              iVar30 = iVar30 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar43;\n                              if (*(int *)((int)pdVar31 + 0x2c) <= iVar30) break;\n                              iVar14 = *(int *)(pdVar31 + 5);\n                              pdVar18 = (double *)(iVar14 + iVar52);\n                            } while ((pdVar18[1] - in_f28_29) - *(double *)(iVar12 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (pvVar15 <= this) {\n                        (**(code **)(puVar38 + -0x7290))\n                                  (*(int *)(puVar38 + -0x7fcc) + 0x69fc,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x69c0,0x3e3,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x773c);\n                        return;\n                      }\n                      iVar51 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar5 = (**(code **)(puVar38 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar31 + iVar51 + 0x28));\n                      *(undefined4 *)((int)pdVar31 + iVar51 + 0x28) = uVar5;\n                      pvVar15 = (void *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)pvVar15;\n                      puVar38 = puStack_350;\n                      if (this < pvVar15) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar31 + (*unaff_s4 - (int)pdVar18)),\n                                   *unaff_s4 + ((int)this + 1) * 0x40,\n                                   ((int)pvVar15 - (int)this) * 0x40);\n                        puVar38 = puStack_350;\n                      }\n                    }\n                    this = (void *)((int)this + 1);\n                    unaff_s3 = pdVar31 + 8;\n                    pvVar15 = (void *)unaff_s4[1];\n                  } while (((int)this < (int)pvVar15) &&\n                          (pdVar18 = pdVar31 + 9, pdVar31 = unaff_s3,\n                          (*pdVar18 - in_f28_29) - *(double *)(iVar12 + 0x43d0) < in_f26_27));\n                  pdVar18 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar31 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar41 = in_f30_31;\nLAB_000a4f3c:\n                dVar43 = (double)iStack_2f0;\n                pvVar23 = (void *)0x0;\n                if (pdVar31[1] < dVar43) {\n                  uVar28 = 0;\n                  do {\n                    if ((dVar43 <= pdVar31[3]) &&\n                       (dVar42 = (double)(int)uStack_328, *pdVar31 < dVar42)) {\n                      iVar12 = -1;\n                      if (dVar42 <= pdVar31[2]) {\n                        iVar12 = *(int *)(pdVar31 + 7);\n                        dVar49 = (double)iVar12;\n                        if (iVar12 < 0) {\n                          dVar49 = dVar49 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar49 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar12 = 1;\n                        }\n                        iVar51 = *(int *)((int)pdVar31 + 0x2c) + -1;\n                        if (iVar12 < iVar51) {\n                          iVar30 = *(int *)(pdVar31 + 5) + iVar12 * 0x10;\n                          dVar49 = *(double *)(iVar30 + 8);\n                          while (dVar49 < dVar43) {\n                            iVar12 = iVar12 + 1;\n                            if (iVar51 <= iVar12) break;\n                            dVar49 = *(double *)(iVar30 + 0x18);\n                            iVar30 = iVar30 + 0x10;\n                          }\n                        }\n                        pdVar6 = (double *)(*(int *)(pdVar31 + 5) + (iVar12 + 0xfffffff) * 0x10);\n                        iVar12 = -1;\n                        if ((pdVar6[2] - *pdVar6) * (dVar43 - pdVar6[1]) <=\n                            (pdVar6[3] - pdVar6[1]) * (dVar42 - *pdVar6)) {\n                          if (*(int *)(pdVar31 + 6) != 0) {\n                            iVar12 = 1;\n                          }\n                          uVar28 = uVar28 + iVar12;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar31 + 6) != 0) {\n                          iVar12 = 1;\n                        }\n                        uVar28 = uVar28 + iVar12;\n                      }\n                    }\n                    pvVar23 = (void *)((int)pvVar23 + 1);\n                  } while ((pvVar23 != pvVar15) &&\n                          (pdVar6 = pdVar31 + 9, pdVar31 = pdVar31 + 8, *pdVar6 < dVar43));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar28 < 0) {\n                      uVar28 = -uVar28;\n                    }\n                    if ((uVar28 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar28 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar12 == 0) {\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar28 = uStack_2f8;\n              iVar30 = uStack_328 - uStack_2d4;\n              iVar12 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar12 == 0) {\n                puVar10 = (undefined4 *)(iStack_324 + 0x48);\n                puVar2 = auStack_298;\n                do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0x98));\n                uVar5 = puVar11[5];\n                puVar17[4] = *puVar10;\n                puVar17[5] = uVar5;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uStack_2f8 + *(int *)(iVar12 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar31 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0) {\n                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }\n              dVar43 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar42 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar43 = (dVar43 + dVar42) - dVar43 * dVar42;\n              in_f30_31 = dVar41;\n              if (0 < *(int *)(pdVar18 + 0x58)) {\n                iVar51 = 0;\n                iVar12 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar51);\n                  uStack_348 = dVar43;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7370 + uVar9 * 4))\n                    )();\n                    return;\n                  }\n                  iVar12 = iVar12 + 1;\n                  iVar51 = iVar51 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar12 < *(int *)(pdVar18 + 0x58));\n              }\n              iVar12 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar12 == 0) {\n                puVar10 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar2 = auStack_240;\n                do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar5 = puVar11[5];\n                puVar17[4] = *puVar10;\n                puVar17[5] = uVar5;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uVar28 + *(int *)(iVar12 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar31 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0) {\n                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar43 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar43) - dVar41 * dVar43;\n              iVar12 = *(int *)(pdVar18 + 0x58);\n              if (0 < iVar12) {\n                iVar14 = 0;\n                iVar51 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar14);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7384 + uVar9 * 4))\n                    )(in_f20_21,*(undefined8 *)(*(int *)(puVar38 + -0x7fd0) + 0x4a48));\n                    return;\n                  }\n                  iVar51 = iVar51 + 1;\n                  iVar12 = *(int *)(pdVar18 + 0x58);\n                  iVar14 = iVar14 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar51 < iVar12);\n              }\n              iStack_308 = iStack_308 + iVar12 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar18;\n            }" { (expression_statement "unaff_s4 = (int *)*puStack_2bc;" (assignment_expression "unaff_s4 = (int *)*puStack_2bc" identifier = (cast_expression "(int *)*puStack_2bc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puStack_2bc" * identifier))) ;) (expression_statement "iStack_2c0 = *(int *)(iStack_324 + 0x240);" (assignment_expression "iStack_2c0 = *(int *)(iStack_324 + 0x240)" identifier = (pointer_expression "*(int *)(iStack_324 + 0x240)" * (cast_expression "(int *)(iStack_324 + 0x240)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x240)" ( (binary_expression "iStack_324 + 0x240" identifier + number_literal) ))))) ;) (expression_statement "unaff_s3 = (double *)*unaff_s4;" (assignment_expression "unaff_s3 = (double *)*unaff_s4" identifier = (cast_expression "(double *)*unaff_s4" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*unaff_s4" * identifier))) ;) (expression_statement "pvVar15 = (void *)unaff_s4[1];" (assignment_expression "pvVar15 = (void *)unaff_s4[1]" identifier = (cast_expression "(void *)unaff_s4[1]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "unaff_s4[1]" identifier [ number_literal ]))) ;) (expression_statement "pdStack_2ec = unaff_s3;" (assignment_expression "pdStack_2ec = unaff_s3" identifier = identifier) ;) (if_statement "if ((int)pvVar15 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4f34:\n                  pdVar31 = (double *)*unaff_s4;\n                  if (0 < (int)pvVar15) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4ec0:\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar41 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar12 = *(int *)(puVar38 + -0x7fd0);\n                dVar41 = *(double *)(iVar12 + 0x43d0);\n                this = (void *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar41 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar31 = unaff_s3;\n                  dStack_330 = dVar41;\n                  pdStack_2d8 = pdVar18;\n                  do {\n                    pdVar18 = pdStack_2ec;\n                    iVar51 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar31[3] + dVar41) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar31 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar31[2] + *(double *)(iVar12 + 0x43d0))) {\n                        iVar30 = *(int *)(pdVar31 + 7);\n                        dVar43 = (double)iVar30;\n                        if (iVar30 < 0) {\n                          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar43 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar30 = 1;\n                        }\n                        if (iVar30 < *(int *)((int)pdVar31 + 0x2c)) {\n                          iVar14 = *(int *)(pdVar31 + 5);\n                          iVar52 = (iVar30 + 0xfffffff) * 0x10;\n                          pdVar18 = (double *)(iVar14 + iVar52);\n                          dVar43 = *(double *)(iVar12 + 0x43d0);\n                          if ((pdVar18[1] - in_f28_29) - dVar43 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar33 = *(int *)(puVar38 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar33 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar52 = iVar52 + 0x10;\n                              dVar42 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43\n                                 ) {\n                                if (in_f26_27 != pdVar31[4]) {\n                                  pdVar31[4] = in_f26_27;\n                                  *(int *)(pdVar31 + 7) = iVar30;\n                                }\n                                dVar46 = pdVar18[2] - *pdVar18;\n                                dVar44 = pdVar18[3] - pdVar18[1];\n                                dVar49 = in_f22_23 - *pdVar18;\n                                dVar42 = in_f26_27 - pdVar18[1];\n                                dVar47 = dVar46 * dVar49 + dVar44 * dVar42;\n                                if (0.0 < dVar47) {\n                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;\n                                  if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }\n                                dVar42 = dStack_338;\n                                if (*(int *)((int)pdVar31 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar42;\n                                dVar42 = dStack_340;\n                                if (((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar42;\n                              iVar30 = iVar30 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar43;\n                              if (*(int *)((int)pdVar31 + 0x2c) <= iVar30) break;\n                              iVar14 = *(int *)(pdVar31 + 5);\n                              pdVar18 = (double *)(iVar14 + iVar52);\n                            } while ((pdVar18[1] - in_f28_29) - *(double *)(iVar12 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (pvVar15 <= this) {\n                        (**(code **)(puVar38 + -0x7290))\n                                  (*(int *)(puVar38 + -0x7fcc) + 0x69fc,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x69c0,0x3e3,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x773c);\n                        return;\n                      }\n                      iVar51 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar5 = (**(code **)(puVar38 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar31 + iVar51 + 0x28));\n                      *(undefined4 *)((int)pdVar31 + iVar51 + 0x28) = uVar5;\n                      pvVar15 = (void *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)pvVar15;\n                      puVar38 = puStack_350;\n                      if (this < pvVar15) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar31 + (*unaff_s4 - (int)pdVar18)),\n                                   *unaff_s4 + ((int)this + 1) * 0x40,\n                                   ((int)pvVar15 - (int)this) * 0x40);\n                        puVar38 = puStack_350;\n                      }\n                    }\n                    this = (void *)((int)this + 1);\n                    unaff_s3 = pdVar31 + 8;\n                    pvVar15 = (void *)unaff_s4[1];\n                  } while (((int)this < (int)pvVar15) &&\n                          (pdVar18 = pdVar31 + 9, pdVar31 = unaff_s3,\n                          (*pdVar18 - in_f28_29) - *(double *)(iVar12 + 0x43d0) < in_f26_27));\n                  pdVar18 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar31 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar41 = in_f30_31;\nLAB_000a4f3c:\n                dVar43 = (double)iStack_2f0;\n                pvVar23 = (void *)0x0;\n                if (pdVar31[1] < dVar43) {\n                  uVar28 = 0;\n                  do {\n                    if ((dVar43 <= pdVar31[3]) &&\n                       (dVar42 = (double)(int)uStack_328, *pdVar31 < dVar42)) {\n                      iVar12 = -1;\n                      if (dVar42 <= pdVar31[2]) {\n                        iVar12 = *(int *)(pdVar31 + 7);\n                        dVar49 = (double)iVar12;\n                        if (iVar12 < 0) {\n                          dVar49 = dVar49 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar49 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar12 = 1;\n                        }\n                        iVar51 = *(int *)((int)pdVar31 + 0x2c) + -1;\n                        if (iVar12 < iVar51) {\n                          iVar30 = *(int *)(pdVar31 + 5) + iVar12 * 0x10;\n                          dVar49 = *(double *)(iVar30 + 8);\n                          while (dVar49 < dVar43) {\n                            iVar12 = iVar12 + 1;\n                            if (iVar51 <= iVar12) break;\n                            dVar49 = *(double *)(iVar30 + 0x18);\n                            iVar30 = iVar30 + 0x10;\n                          }\n                        }\n                        pdVar6 = (double *)(*(int *)(pdVar31 + 5) + (iVar12 + 0xfffffff) * 0x10);\n                        iVar12 = -1;\n                        if ((pdVar6[2] - *pdVar6) * (dVar43 - pdVar6[1]) <=\n                            (pdVar6[3] - pdVar6[1]) * (dVar42 - *pdVar6)) {\n                          if (*(int *)(pdVar31 + 6) != 0) {\n                            iVar12 = 1;\n                          }\n                          uVar28 = uVar28 + iVar12;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar31 + 6) != 0) {\n                          iVar12 = 1;\n                        }\n                        uVar28 = uVar28 + iVar12;\n                      }\n                    }\n                    pvVar23 = (void *)((int)pvVar23 + 1);\n                  } while ((pvVar23 != pvVar15) &&\n                          (pdVar6 = pdVar31 + 9, pdVar31 = pdVar31 + 8, *pdVar6 < dVar43));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar28 < 0) {\n                      uVar28 = -uVar28;\n                    }\n                    if ((uVar28 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar28 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar12 == 0) {\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }" if (parenthesized_expression "((int)pvVar15 < 1)" ( (binary_expression "(int)pvVar15 < 1" (cast_expression "(int)pvVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4f34:\n                  pdVar31 = (double *)*unaff_s4;\n                  if (0 < (int)pvVar15) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4ec0:\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar41 = in_f30_31;\n              }" { (if_statement "if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4f34:\n                  pdVar31 = (double *)*unaff_s4;\n                  if (0 < (int)pvVar15) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }" if (parenthesized_expression "(iStack_2f4 != 0)" ( (binary_expression "iStack_2f4 != 0" identifier != number_literal) )) (compound_statement "{\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4f34:\n                  pdVar31 = (double *)*unaff_s4;\n                  if (0 < (int)pvVar15) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }" { (expression_statement "dStack_338 = 0.0;" (assignment_expression "dStack_338 = 0.0" identifier = number_literal) ;) (expression_statement "dStack_340 = 0.0;" (assignment_expression "dStack_340 = 0.0" identifier = number_literal) ;) (expression_statement "dVar41 = in_f30_31;" (assignment_expression "dVar41 = in_f30_31" identifier = identifier) ;) (labeled_statement "LAB_000a4f34:\n                  pdVar31 = (double *)*unaff_s4;" statement_identifier : (expression_statement "pdVar31 = (double *)*unaff_s4;" (assignment_expression "pdVar31 = (double *)*unaff_s4" identifier = (cast_expression "(double *)*unaff_s4" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*unaff_s4" * identifier))) ;)) (if_statement "if (0 < (int)pvVar15) goto LAB_000a4f3c;" if (parenthesized_expression "(0 < (int)pvVar15)" ( (binary_expression "0 < (int)pvVar15" number_literal < (cast_expression "(int)pvVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_000a4f3c;" goto statement_identifier ;)) (goto_statement "goto LAB_000a4684;" goto statement_identifier ;) })) (labeled_statement "LAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4ec0:\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }" statement_identifier : (if_statement "if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4ec0:\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }" if (parenthesized_expression "(*(int *)(iStack_324 + 0x238) == 0)" ( (binary_expression "*(int *)(iStack_324 + 0x238) == 0" (pointer_expression "*(int *)(iStack_324 + 0x238)" * (cast_expression "(int *)(iStack_324 + 0x238)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x238)" ( (binary_expression "iStack_324 + 0x238" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar41 = in_f30_31;\nLAB_000a4ec0:\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }" { (expression_statement "dStack_338 = 0.0;" (assignment_expression "dStack_338 = 0.0" identifier = number_literal) ;) (expression_statement "dStack_340 = 0.0;" (assignment_expression "dStack_340 = 0.0" identifier = number_literal) ;) (expression_statement "dVar41 = in_f30_31;" (assignment_expression "dVar41 = in_f30_31" identifier = identifier) ;) (labeled_statement "LAB_000a4ec0:\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);" statement_identifier : (expression_statement "iVar12 = *(int *)(puVar38 + -0x7fd0);" (assignment_expression "iVar12 = *(int *)(puVar38 + -0x7fd0)" identifier = (pointer_expression "*(int *)(puVar38 + -0x7fd0)" * (cast_expression "(int *)(puVar38 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + -0x7fd0)" ( (binary_expression "puVar38 + -0x7fd0" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_000a4ec4;" goto statement_identifier ;) }))) (expression_statement "dStack_338 = 0.0;" (assignment_expression "dStack_338 = 0.0" identifier = number_literal) ;) (expression_statement "dStack_340 = 0.0;" (assignment_expression "dStack_340 = 0.0" identifier = number_literal) ;) (expression_statement "dVar41 = in_f30_31;" (assignment_expression "dVar41 = in_f30_31" identifier = identifier) ;) }) (else_clause "else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar12 = *(int *)(puVar38 + -0x7fd0);\n                dVar41 = *(double *)(iVar12 + 0x43d0);\n                this = (void *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar41 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar31 = unaff_s3;\n                  dStack_330 = dVar41;\n                  pdStack_2d8 = pdVar18;\n                  do {\n                    pdVar18 = pdStack_2ec;\n                    iVar51 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar31[3] + dVar41) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar31 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar31[2] + *(double *)(iVar12 + 0x43d0))) {\n                        iVar30 = *(int *)(pdVar31 + 7);\n                        dVar43 = (double)iVar30;\n                        if (iVar30 < 0) {\n                          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar43 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar30 = 1;\n                        }\n                        if (iVar30 < *(int *)((int)pdVar31 + 0x2c)) {\n                          iVar14 = *(int *)(pdVar31 + 5);\n                          iVar52 = (iVar30 + 0xfffffff) * 0x10;\n                          pdVar18 = (double *)(iVar14 + iVar52);\n                          dVar43 = *(double *)(iVar12 + 0x43d0);\n                          if ((pdVar18[1] - in_f28_29) - dVar43 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar33 = *(int *)(puVar38 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar33 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar52 = iVar52 + 0x10;\n                              dVar42 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43\n                                 ) {\n                                if (in_f26_27 != pdVar31[4]) {\n                                  pdVar31[4] = in_f26_27;\n                                  *(int *)(pdVar31 + 7) = iVar30;\n                                }\n                                dVar46 = pdVar18[2] - *pdVar18;\n                                dVar44 = pdVar18[3] - pdVar18[1];\n                                dVar49 = in_f22_23 - *pdVar18;\n                                dVar42 = in_f26_27 - pdVar18[1];\n                                dVar47 = dVar46 * dVar49 + dVar44 * dVar42;\n                                if (0.0 < dVar47) {\n                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;\n                                  if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }\n                                dVar42 = dStack_338;\n                                if (*(int *)((int)pdVar31 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar42;\n                                dVar42 = dStack_340;\n                                if (((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar42;\n                              iVar30 = iVar30 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar43;\n                              if (*(int *)((int)pdVar31 + 0x2c) <= iVar30) break;\n                              iVar14 = *(int *)(pdVar31 + 5);\n                              pdVar18 = (double *)(iVar14 + iVar52);\n                            } while ((pdVar18[1] - in_f28_29) - *(double *)(iVar12 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (pvVar15 <= this) {\n                        (**(code **)(puVar38 + -0x7290))\n                                  (*(int *)(puVar38 + -0x7fcc) + 0x69fc,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x69c0,0x3e3,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x773c);\n                        return;\n                      }\n                      iVar51 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar5 = (**(code **)(puVar38 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar31 + iVar51 + 0x28));\n                      *(undefined4 *)((int)pdVar31 + iVar51 + 0x28) = uVar5;\n                      pvVar15 = (void *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)pvVar15;\n                      puVar38 = puStack_350;\n                      if (this < pvVar15) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar31 + (*unaff_s4 - (int)pdVar18)),\n                                   *unaff_s4 + ((int)this + 1) * 0x40,\n                                   ((int)pvVar15 - (int)this) * 0x40);\n                        puVar38 = puStack_350;\n                      }\n                    }\n                    this = (void *)((int)this + 1);\n                    unaff_s3 = pdVar31 + 8;\n                    pvVar15 = (void *)unaff_s4[1];\n                  } while (((int)this < (int)pvVar15) &&\n                          (pdVar18 = pdVar31 + 9, pdVar31 = unaff_s3,\n                          (*pdVar18 - in_f28_29) - *(double *)(iVar12 + 0x43d0) < in_f26_27));\n                  pdVar18 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar31 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar41 = in_f30_31;\nLAB_000a4f3c:\n                dVar43 = (double)iStack_2f0;\n                pvVar23 = (void *)0x0;\n                if (pdVar31[1] < dVar43) {\n                  uVar28 = 0;\n                  do {\n                    if ((dVar43 <= pdVar31[3]) &&\n                       (dVar42 = (double)(int)uStack_328, *pdVar31 < dVar42)) {\n                      iVar12 = -1;\n                      if (dVar42 <= pdVar31[2]) {\n                        iVar12 = *(int *)(pdVar31 + 7);\n                        dVar49 = (double)iVar12;\n                        if (iVar12 < 0) {\n                          dVar49 = dVar49 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar49 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar12 = 1;\n                        }\n                        iVar51 = *(int *)((int)pdVar31 + 0x2c) + -1;\n                        if (iVar12 < iVar51) {\n                          iVar30 = *(int *)(pdVar31 + 5) + iVar12 * 0x10;\n                          dVar49 = *(double *)(iVar30 + 8);\n                          while (dVar49 < dVar43) {\n                            iVar12 = iVar12 + 1;\n                            if (iVar51 <= iVar12) break;\n                            dVar49 = *(double *)(iVar30 + 0x18);\n                            iVar30 = iVar30 + 0x10;\n                          }\n                        }\n                        pdVar6 = (double *)(*(int *)(pdVar31 + 5) + (iVar12 + 0xfffffff) * 0x10);\n                        iVar12 = -1;\n                        if ((pdVar6[2] - *pdVar6) * (dVar43 - pdVar6[1]) <=\n                            (pdVar6[3] - pdVar6[1]) * (dVar42 - *pdVar6)) {\n                          if (*(int *)(pdVar31 + 6) != 0) {\n                            iVar12 = 1;\n                          }\n                          uVar28 = uVar28 + iVar12;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar31 + 6) != 0) {\n                          iVar12 = 1;\n                        }\n                        uVar28 = uVar28 + iVar12;\n                      }\n                    }\n                    pvVar23 = (void *)((int)pvVar23 + 1);\n                  } while ((pvVar23 != pvVar15) &&\n                          (pdVar6 = pdVar31 + 9, pdVar31 = pdVar31 + 8, *pdVar6 < dVar43));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar28 < 0) {\n                      uVar28 = -uVar28;\n                    }\n                    if ((uVar28 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar28 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar12 == 0) {\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }" else (compound_statement "{\n                in_f26_27 = (double)iStack_2f0;\n                iVar12 = *(int *)(puVar38 + -0x7fd0);\n                dVar41 = *(double *)(iVar12 + 0x43d0);\n                this = (void *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar41 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar31 = unaff_s3;\n                  dStack_330 = dVar41;\n                  pdStack_2d8 = pdVar18;\n                  do {\n                    pdVar18 = pdStack_2ec;\n                    iVar51 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar31[3] + dVar41) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar31 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar31[2] + *(double *)(iVar12 + 0x43d0))) {\n                        iVar30 = *(int *)(pdVar31 + 7);\n                        dVar43 = (double)iVar30;\n                        if (iVar30 < 0) {\n                          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar43 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar30 = 1;\n                        }\n                        if (iVar30 < *(int *)((int)pdVar31 + 0x2c)) {\n                          iVar14 = *(int *)(pdVar31 + 5);\n                          iVar52 = (iVar30 + 0xfffffff) * 0x10;\n                          pdVar18 = (double *)(iVar14 + iVar52);\n                          dVar43 = *(double *)(iVar12 + 0x43d0);\n                          if ((pdVar18[1] - in_f28_29) - dVar43 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar33 = *(int *)(puVar38 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar33 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar52 = iVar52 + 0x10;\n                              dVar42 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43\n                                 ) {\n                                if (in_f26_27 != pdVar31[4]) {\n                                  pdVar31[4] = in_f26_27;\n                                  *(int *)(pdVar31 + 7) = iVar30;\n                                }\n                                dVar46 = pdVar18[2] - *pdVar18;\n                                dVar44 = pdVar18[3] - pdVar18[1];\n                                dVar49 = in_f22_23 - *pdVar18;\n                                dVar42 = in_f26_27 - pdVar18[1];\n                                dVar47 = dVar46 * dVar49 + dVar44 * dVar42;\n                                if (0.0 < dVar47) {\n                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;\n                                  if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }\n                                dVar42 = dStack_338;\n                                if (*(int *)((int)pdVar31 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar42;\n                                dVar42 = dStack_340;\n                                if (((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar42;\n                              iVar30 = iVar30 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar43;\n                              if (*(int *)((int)pdVar31 + 0x2c) <= iVar30) break;\n                              iVar14 = *(int *)(pdVar31 + 5);\n                              pdVar18 = (double *)(iVar14 + iVar52);\n                            } while ((pdVar18[1] - in_f28_29) - *(double *)(iVar12 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (pvVar15 <= this) {\n                        (**(code **)(puVar38 + -0x7290))\n                                  (*(int *)(puVar38 + -0x7fcc) + 0x69fc,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x69c0,0x3e3,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x773c);\n                        return;\n                      }\n                      iVar51 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar5 = (**(code **)(puVar38 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar31 + iVar51 + 0x28));\n                      *(undefined4 *)((int)pdVar31 + iVar51 + 0x28) = uVar5;\n                      pvVar15 = (void *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)pvVar15;\n                      puVar38 = puStack_350;\n                      if (this < pvVar15) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar31 + (*unaff_s4 - (int)pdVar18)),\n                                   *unaff_s4 + ((int)this + 1) * 0x40,\n                                   ((int)pvVar15 - (int)this) * 0x40);\n                        puVar38 = puStack_350;\n                      }\n                    }\n                    this = (void *)((int)this + 1);\n                    unaff_s3 = pdVar31 + 8;\n                    pvVar15 = (void *)unaff_s4[1];\n                  } while (((int)this < (int)pvVar15) &&\n                          (pdVar18 = pdVar31 + 9, pdVar31 = unaff_s3,\n                          (*pdVar18 - in_f28_29) - *(double *)(iVar12 + 0x43d0) < in_f26_27));\n                  pdVar18 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar31 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar41 = in_f30_31;\nLAB_000a4f3c:\n                dVar43 = (double)iStack_2f0;\n                pvVar23 = (void *)0x0;\n                if (pdVar31[1] < dVar43) {\n                  uVar28 = 0;\n                  do {\n                    if ((dVar43 <= pdVar31[3]) &&\n                       (dVar42 = (double)(int)uStack_328, *pdVar31 < dVar42)) {\n                      iVar12 = -1;\n                      if (dVar42 <= pdVar31[2]) {\n                        iVar12 = *(int *)(pdVar31 + 7);\n                        dVar49 = (double)iVar12;\n                        if (iVar12 < 0) {\n                          dVar49 = dVar49 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar49 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar12 = 1;\n                        }\n                        iVar51 = *(int *)((int)pdVar31 + 0x2c) + -1;\n                        if (iVar12 < iVar51) {\n                          iVar30 = *(int *)(pdVar31 + 5) + iVar12 * 0x10;\n                          dVar49 = *(double *)(iVar30 + 8);\n                          while (dVar49 < dVar43) {\n                            iVar12 = iVar12 + 1;\n                            if (iVar51 <= iVar12) break;\n                            dVar49 = *(double *)(iVar30 + 0x18);\n                            iVar30 = iVar30 + 0x10;\n                          }\n                        }\n                        pdVar6 = (double *)(*(int *)(pdVar31 + 5) + (iVar12 + 0xfffffff) * 0x10);\n                        iVar12 = -1;\n                        if ((pdVar6[2] - *pdVar6) * (dVar43 - pdVar6[1]) <=\n                            (pdVar6[3] - pdVar6[1]) * (dVar42 - *pdVar6)) {\n                          if (*(int *)(pdVar31 + 6) != 0) {\n                            iVar12 = 1;\n                          }\n                          uVar28 = uVar28 + iVar12;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar31 + 6) != 0) {\n                          iVar12 = 1;\n                        }\n                        uVar28 = uVar28 + iVar12;\n                      }\n                    }\n                    pvVar23 = (void *)((int)pvVar23 + 1);\n                  } while ((pvVar23 != pvVar15) &&\n                          (pdVar6 = pdVar31 + 9, pdVar31 = pdVar31 + 8, *pdVar6 < dVar43));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar28 < 0) {\n                      uVar28 = -uVar28;\n                    }\n                    if ((uVar28 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar28 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar12 == 0) {\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }" { (expression_statement "in_f26_27 = (double)iStack_2f0;" (assignment_expression "in_f26_27 = (double)iStack_2f0" identifier = (cast_expression "(double)iStack_2f0" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "iVar12 = *(int *)(puVar38 + -0x7fd0);" (assignment_expression "iVar12 = *(int *)(puVar38 + -0x7fd0)" identifier = (pointer_expression "*(int *)(puVar38 + -0x7fd0)" * (cast_expression "(int *)(puVar38 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + -0x7fd0)" ( (binary_expression "puVar38 + -0x7fd0" identifier + number_literal) ))))) ;) (expression_statement "dVar41 = *(double *)(iVar12 + 0x43d0);" (assignment_expression "dVar41 = *(double *)(iVar12 + 0x43d0)" identifier = (pointer_expression "*(double *)(iVar12 + 0x43d0)" * (cast_expression "(double *)(iVar12 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x43d0)" ( (binary_expression "iVar12 + 0x43d0" identifier + number_literal) ))))) ;) (expression_statement "this = (void *)0x0;" (assignment_expression "this = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((unaff_s3[1] - in_f28_29) - dVar41 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar31 = unaff_s3;\n                  dStack_330 = dVar41;\n                  pdStack_2d8 = pdVar18;\n                  do {\n                    pdVar18 = pdStack_2ec;\n                    iVar51 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar31[3] + dVar41) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar31 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar31[2] + *(double *)(iVar12 + 0x43d0))) {\n                        iVar30 = *(int *)(pdVar31 + 7);\n                        dVar43 = (double)iVar30;\n                        if (iVar30 < 0) {\n                          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar43 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar30 = 1;\n                        }\n                        if (iVar30 < *(int *)((int)pdVar31 + 0x2c)) {\n                          iVar14 = *(int *)(pdVar31 + 5);\n                          iVar52 = (iVar30 + 0xfffffff) * 0x10;\n                          pdVar18 = (double *)(iVar14 + iVar52);\n                          dVar43 = *(double *)(iVar12 + 0x43d0);\n                          if ((pdVar18[1] - in_f28_29) - dVar43 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar33 = *(int *)(puVar38 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar33 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar52 = iVar52 + 0x10;\n                              dVar42 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43\n                                 ) {\n                                if (in_f26_27 != pdVar31[4]) {\n                                  pdVar31[4] = in_f26_27;\n                                  *(int *)(pdVar31 + 7) = iVar30;\n                                }\n                                dVar46 = pdVar18[2] - *pdVar18;\n                                dVar44 = pdVar18[3] - pdVar18[1];\n                                dVar49 = in_f22_23 - *pdVar18;\n                                dVar42 = in_f26_27 - pdVar18[1];\n                                dVar47 = dVar46 * dVar49 + dVar44 * dVar42;\n                                if (0.0 < dVar47) {\n                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;\n                                  if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }\n                                dVar42 = dStack_338;\n                                if (*(int *)((int)pdVar31 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar42;\n                                dVar42 = dStack_340;\n                                if (((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar42;\n                              iVar30 = iVar30 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar43;\n                              if (*(int *)((int)pdVar31 + 0x2c) <= iVar30) break;\n                              iVar14 = *(int *)(pdVar31 + 5);\n                              pdVar18 = (double *)(iVar14 + iVar52);\n                            } while ((pdVar18[1] - in_f28_29) - *(double *)(iVar12 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (pvVar15 <= this) {\n                        (**(code **)(puVar38 + -0x7290))\n                                  (*(int *)(puVar38 + -0x7fcc) + 0x69fc,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x69c0,0x3e3,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x773c);\n                        return;\n                      }\n                      iVar51 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar5 = (**(code **)(puVar38 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar31 + iVar51 + 0x28));\n                      *(undefined4 *)((int)pdVar31 + iVar51 + 0x28) = uVar5;\n                      pvVar15 = (void *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)pvVar15;\n                      puVar38 = puStack_350;\n                      if (this < pvVar15) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar31 + (*unaff_s4 - (int)pdVar18)),\n                                   *unaff_s4 + ((int)this + 1) * 0x40,\n                                   ((int)pvVar15 - (int)this) * 0x40);\n                        puVar38 = puStack_350;\n                      }\n                    }\n                    this = (void *)((int)this + 1);\n                    unaff_s3 = pdVar31 + 8;\n                    pvVar15 = (void *)unaff_s4[1];\n                  } while (((int)this < (int)pvVar15) &&\n                          (pdVar18 = pdVar31 + 9, pdVar31 = unaff_s3,\n                          (*pdVar18 - in_f28_29) - *(double *)(iVar12 + 0x43d0) < in_f26_27));\n                  pdVar18 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }" if (parenthesized_expression "((unaff_s3[1] - in_f28_29) - dVar41 < in_f26_27)" ( (binary_expression "(unaff_s3[1] - in_f28_29) - dVar41 < in_f26_27" (binary_expression "(unaff_s3[1] - in_f28_29) - dVar41" (parenthesized_expression "(unaff_s3[1] - in_f28_29)" ( (binary_expression "unaff_s3[1] - in_f28_29" (subscript_expression "unaff_s3[1]" identifier [ number_literal ]) - identifier) )) - identifier) < identifier) )) (compound_statement "{\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar31 = unaff_s3;\n                  dStack_330 = dVar41;\n                  pdStack_2d8 = pdVar18;\n                  do {\n                    pdVar18 = pdStack_2ec;\n                    iVar51 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar31[3] + dVar41) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar31 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar31[2] + *(double *)(iVar12 + 0x43d0))) {\n                        iVar30 = *(int *)(pdVar31 + 7);\n                        dVar43 = (double)iVar30;\n                        if (iVar30 < 0) {\n                          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar43 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar30 = 1;\n                        }\n                        if (iVar30 < *(int *)((int)pdVar31 + 0x2c)) {\n                          iVar14 = *(int *)(pdVar31 + 5);\n                          iVar52 = (iVar30 + 0xfffffff) * 0x10;\n                          pdVar18 = (double *)(iVar14 + iVar52);\n                          dVar43 = *(double *)(iVar12 + 0x43d0);\n                          if ((pdVar18[1] - in_f28_29) - dVar43 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar33 = *(int *)(puVar38 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar33 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar52 = iVar52 + 0x10;\n                              dVar42 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43\n                                 ) {\n                                if (in_f26_27 != pdVar31[4]) {\n                                  pdVar31[4] = in_f26_27;\n                                  *(int *)(pdVar31 + 7) = iVar30;\n                                }\n                                dVar46 = pdVar18[2] - *pdVar18;\n                                dVar44 = pdVar18[3] - pdVar18[1];\n                                dVar49 = in_f22_23 - *pdVar18;\n                                dVar42 = in_f26_27 - pdVar18[1];\n                                dVar47 = dVar46 * dVar49 + dVar44 * dVar42;\n                                if (0.0 < dVar47) {\n                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;\n                                  if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }\n                                dVar42 = dStack_338;\n                                if (*(int *)((int)pdVar31 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar42;\n                                dVar42 = dStack_340;\n                                if (((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar42;\n                              iVar30 = iVar30 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar43;\n                              if (*(int *)((int)pdVar31 + 0x2c) <= iVar30) break;\n                              iVar14 = *(int *)(pdVar31 + 5);\n                              pdVar18 = (double *)(iVar14 + iVar52);\n                            } while ((pdVar18[1] - in_f28_29) - *(double *)(iVar12 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (pvVar15 <= this) {\n                        (**(code **)(puVar38 + -0x7290))\n                                  (*(int *)(puVar38 + -0x7fcc) + 0x69fc,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x69c0,0x3e3,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x773c);\n                        return;\n                      }\n                      iVar51 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar5 = (**(code **)(puVar38 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar31 + iVar51 + 0x28));\n                      *(undefined4 *)((int)pdVar31 + iVar51 + 0x28) = uVar5;\n                      pvVar15 = (void *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)pvVar15;\n                      puVar38 = puStack_350;\n                      if (this < pvVar15) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar31 + (*unaff_s4 - (int)pdVar18)),\n                                   *unaff_s4 + ((int)this + 1) * 0x40,\n                                   ((int)pvVar15 - (int)this) * 0x40);\n                        puVar38 = puStack_350;\n                      }\n                    }\n                    this = (void *)((int)this + 1);\n                    unaff_s3 = pdVar31 + 8;\n                    pvVar15 = (void *)unaff_s4[1];\n                  } while (((int)this < (int)pvVar15) &&\n                          (pdVar18 = pdVar31 + 9, pdVar31 = unaff_s3,\n                          (*pdVar18 - in_f28_29) - *(double *)(iVar12 + 0x43d0) < in_f26_27));\n                  pdVar18 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }" { (expression_statement "dStack_338 = 0.0;" (assignment_expression "dStack_338 = 0.0" identifier = number_literal) ;) (expression_statement "dStack_340 = 0.0;" (assignment_expression "dStack_340 = 0.0" identifier = number_literal) ;) (expression_statement "pdVar31 = unaff_s3;" (assignment_expression "pdVar31 = unaff_s3" identifier = identifier) ;) (expression_statement "dStack_330 = dVar41;" (assignment_expression "dStack_330 = dVar41" identifier = identifier) ;) (expression_statement "pdStack_2d8 = pdVar18;" (assignment_expression "pdStack_2d8 = pdVar18" identifier = identifier) ;) (do_statement "do {\n                    pdVar18 = pdStack_2ec;\n                    iVar51 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar31[3] + dVar41) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar31 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar31[2] + *(double *)(iVar12 + 0x43d0))) {\n                        iVar30 = *(int *)(pdVar31 + 7);\n                        dVar43 = (double)iVar30;\n                        if (iVar30 < 0) {\n                          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar43 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar30 = 1;\n                        }\n                        if (iVar30 < *(int *)((int)pdVar31 + 0x2c)) {\n                          iVar14 = *(int *)(pdVar31 + 5);\n                          iVar52 = (iVar30 + 0xfffffff) * 0x10;\n                          pdVar18 = (double *)(iVar14 + iVar52);\n                          dVar43 = *(double *)(iVar12 + 0x43d0);\n                          if ((pdVar18[1] - in_f28_29) - dVar43 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar33 = *(int *)(puVar38 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar33 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar52 = iVar52 + 0x10;\n                              dVar42 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43\n                                 ) {\n                                if (in_f26_27 != pdVar31[4]) {\n                                  pdVar31[4] = in_f26_27;\n                                  *(int *)(pdVar31 + 7) = iVar30;\n                                }\n                                dVar46 = pdVar18[2] - *pdVar18;\n                                dVar44 = pdVar18[3] - pdVar18[1];\n                                dVar49 = in_f22_23 - *pdVar18;\n                                dVar42 = in_f26_27 - pdVar18[1];\n                                dVar47 = dVar46 * dVar49 + dVar44 * dVar42;\n                                if (0.0 < dVar47) {\n                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;\n                                  if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }\n                                dVar42 = dStack_338;\n                                if (*(int *)((int)pdVar31 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar42;\n                                dVar42 = dStack_340;\n                                if (((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar42;\n                              iVar30 = iVar30 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar43;\n                              if (*(int *)((int)pdVar31 + 0x2c) <= iVar30) break;\n                              iVar14 = *(int *)(pdVar31 + 5);\n                              pdVar18 = (double *)(iVar14 + iVar52);\n                            } while ((pdVar18[1] - in_f28_29) - *(double *)(iVar12 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (pvVar15 <= this) {\n                        (**(code **)(puVar38 + -0x7290))\n                                  (*(int *)(puVar38 + -0x7fcc) + 0x69fc,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x69c0,0x3e3,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x773c);\n                        return;\n                      }\n                      iVar51 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar5 = (**(code **)(puVar38 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar31 + iVar51 + 0x28));\n                      *(undefined4 *)((int)pdVar31 + iVar51 + 0x28) = uVar5;\n                      pvVar15 = (void *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)pvVar15;\n                      puVar38 = puStack_350;\n                      if (this < pvVar15) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar31 + (*unaff_s4 - (int)pdVar18)),\n                                   *unaff_s4 + ((int)this + 1) * 0x40,\n                                   ((int)pvVar15 - (int)this) * 0x40);\n                        puVar38 = puStack_350;\n                      }\n                    }\n                    this = (void *)((int)this + 1);\n                    unaff_s3 = pdVar31 + 8;\n                    pvVar15 = (void *)unaff_s4[1];\n                  } while (((int)this < (int)pvVar15) &&\n                          (pdVar18 = pdVar31 + 9, pdVar31 = unaff_s3,\n                          (*pdVar18 - in_f28_29) - *(double *)(iVar12 + 0x43d0) < in_f26_27));" do (compound_statement "{\n                    pdVar18 = pdStack_2ec;\n                    iVar51 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar31[3] + dVar41) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar31 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar31[2] + *(double *)(iVar12 + 0x43d0))) {\n                        iVar30 = *(int *)(pdVar31 + 7);\n                        dVar43 = (double)iVar30;\n                        if (iVar30 < 0) {\n                          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar43 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar30 = 1;\n                        }\n                        if (iVar30 < *(int *)((int)pdVar31 + 0x2c)) {\n                          iVar14 = *(int *)(pdVar31 + 5);\n                          iVar52 = (iVar30 + 0xfffffff) * 0x10;\n                          pdVar18 = (double *)(iVar14 + iVar52);\n                          dVar43 = *(double *)(iVar12 + 0x43d0);\n                          if ((pdVar18[1] - in_f28_29) - dVar43 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar33 = *(int *)(puVar38 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar33 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar52 = iVar52 + 0x10;\n                              dVar42 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43\n                                 ) {\n                                if (in_f26_27 != pdVar31[4]) {\n                                  pdVar31[4] = in_f26_27;\n                                  *(int *)(pdVar31 + 7) = iVar30;\n                                }\n                                dVar46 = pdVar18[2] - *pdVar18;\n                                dVar44 = pdVar18[3] - pdVar18[1];\n                                dVar49 = in_f22_23 - *pdVar18;\n                                dVar42 = in_f26_27 - pdVar18[1];\n                                dVar47 = dVar46 * dVar49 + dVar44 * dVar42;\n                                if (0.0 < dVar47) {\n                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;\n                                  if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }\n                                dVar42 = dStack_338;\n                                if (*(int *)((int)pdVar31 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar42;\n                                dVar42 = dStack_340;\n                                if (((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar42;\n                              iVar30 = iVar30 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar43;\n                              if (*(int *)((int)pdVar31 + 0x2c) <= iVar30) break;\n                              iVar14 = *(int *)(pdVar31 + 5);\n                              pdVar18 = (double *)(iVar14 + iVar52);\n                            } while ((pdVar18[1] - in_f28_29) - *(double *)(iVar12 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (pvVar15 <= this) {\n                        (**(code **)(puVar38 + -0x7290))\n                                  (*(int *)(puVar38 + -0x7fcc) + 0x69fc,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x69c0,0x3e3,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x773c);\n                        return;\n                      }\n                      iVar51 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar5 = (**(code **)(puVar38 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar31 + iVar51 + 0x28));\n                      *(undefined4 *)((int)pdVar31 + iVar51 + 0x28) = uVar5;\n                      pvVar15 = (void *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)pvVar15;\n                      puVar38 = puStack_350;\n                      if (this < pvVar15) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar31 + (*unaff_s4 - (int)pdVar18)),\n                                   *unaff_s4 + ((int)this + 1) * 0x40,\n                                   ((int)pvVar15 - (int)this) * 0x40);\n                        puVar38 = puStack_350;\n                      }\n                    }\n                    this = (void *)((int)this + 1);\n                    unaff_s3 = pdVar31 + 8;\n                    pvVar15 = (void *)unaff_s4[1];\n                  }" { (expression_statement "pdVar18 = pdStack_2ec;" (assignment_expression "pdVar18 = pdStack_2ec" identifier = identifier) ;) (expression_statement "iVar51 = iStack_2f4;" (assignment_expression "iVar51 = iStack_2f4" identifier = identifier) ;) (if_statement "if (in_f26_27 <= in_f28_29 + pdVar31[3] + dVar41) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar31 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar31[2] + *(double *)(iVar12 + 0x43d0))) {\n                        iVar30 = *(int *)(pdVar31 + 7);\n                        dVar43 = (double)iVar30;\n                        if (iVar30 < 0) {\n                          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar43 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar30 = 1;\n                        }\n                        if (iVar30 < *(int *)((int)pdVar31 + 0x2c)) {\n                          iVar14 = *(int *)(pdVar31 + 5);\n                          iVar52 = (iVar30 + 0xfffffff) * 0x10;\n                          pdVar18 = (double *)(iVar14 + iVar52);\n                          dVar43 = *(double *)(iVar12 + 0x43d0);\n                          if ((pdVar18[1] - in_f28_29) - dVar43 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar33 = *(int *)(puVar38 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar33 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar52 = iVar52 + 0x10;\n                              dVar42 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43\n                                 ) {\n                                if (in_f26_27 != pdVar31[4]) {\n                                  pdVar31[4] = in_f26_27;\n                                  *(int *)(pdVar31 + 7) = iVar30;\n                                }\n                                dVar46 = pdVar18[2] - *pdVar18;\n                                dVar44 = pdVar18[3] - pdVar18[1];\n                                dVar49 = in_f22_23 - *pdVar18;\n                                dVar42 = in_f26_27 - pdVar18[1];\n                                dVar47 = dVar46 * dVar49 + dVar44 * dVar42;\n                                if (0.0 < dVar47) {\n                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;\n                                  if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }\n                                dVar42 = dStack_338;\n                                if (*(int *)((int)pdVar31 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar42;\n                                dVar42 = dStack_340;\n                                if (((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar42;\n                              iVar30 = iVar30 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar43;\n                              if (*(int *)((int)pdVar31 + 0x2c) <= iVar30) break;\n                              iVar14 = *(int *)(pdVar31 + 5);\n                              pdVar18 = (double *)(iVar14 + iVar52);\n                            } while ((pdVar18[1] - in_f28_29) - *(double *)(iVar12 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (pvVar15 <= this) {\n                        (**(code **)(puVar38 + -0x7290))\n                                  (*(int *)(puVar38 + -0x7fcc) + 0x69fc,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x69c0,0x3e3,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x773c);\n                        return;\n                      }\n                      iVar51 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar5 = (**(code **)(puVar38 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar31 + iVar51 + 0x28));\n                      *(undefined4 *)((int)pdVar31 + iVar51 + 0x28) = uVar5;\n                      pvVar15 = (void *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)pvVar15;\n                      puVar38 = puStack_350;\n                      if (this < pvVar15) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar31 + (*unaff_s4 - (int)pdVar18)),\n                                   *unaff_s4 + ((int)this + 1) * 0x40,\n                                   ((int)pvVar15 - (int)this) * 0x40);\n                        puVar38 = puStack_350;\n                      }\n                    }" if (parenthesized_expression "(in_f26_27 <= in_f28_29 + pdVar31[3] + dVar41)" ( (binary_expression "in_f26_27 <= in_f28_29 + pdVar31[3] + dVar41" identifier <= (binary_expression "in_f28_29 + pdVar31[3] + dVar41" (binary_expression "in_f28_29 + pdVar31[3]" identifier + (subscript_expression "pdVar31[3]" identifier [ number_literal ])) + identifier)) )) (compound_statement "{\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar31 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar31[2] + *(double *)(iVar12 + 0x43d0))) {\n                        iVar30 = *(int *)(pdVar31 + 7);\n                        dVar43 = (double)iVar30;\n                        if (iVar30 < 0) {\n                          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar43 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar30 = 1;\n                        }\n                        if (iVar30 < *(int *)((int)pdVar31 + 0x2c)) {\n                          iVar14 = *(int *)(pdVar31 + 5);\n                          iVar52 = (iVar30 + 0xfffffff) * 0x10;\n                          pdVar18 = (double *)(iVar14 + iVar52);\n                          dVar43 = *(double *)(iVar12 + 0x43d0);\n                          if ((pdVar18[1] - in_f28_29) - dVar43 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar33 = *(int *)(puVar38 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar33 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar52 = iVar52 + 0x10;\n                              dVar42 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43\n                                 ) {\n                                if (in_f26_27 != pdVar31[4]) {\n                                  pdVar31[4] = in_f26_27;\n                                  *(int *)(pdVar31 + 7) = iVar30;\n                                }\n                                dVar46 = pdVar18[2] - *pdVar18;\n                                dVar44 = pdVar18[3] - pdVar18[1];\n                                dVar49 = in_f22_23 - *pdVar18;\n                                dVar42 = in_f26_27 - pdVar18[1];\n                                dVar47 = dVar46 * dVar49 + dVar44 * dVar42;\n                                if (0.0 < dVar47) {\n                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;\n                                  if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }\n                                dVar42 = dStack_338;\n                                if (*(int *)((int)pdVar31 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar42;\n                                dVar42 = dStack_340;\n                                if (((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar42;\n                              iVar30 = iVar30 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar43;\n                              if (*(int *)((int)pdVar31 + 0x2c) <= iVar30) break;\n                              iVar14 = *(int *)(pdVar31 + 5);\n                              pdVar18 = (double *)(iVar14 + iVar52);\n                            } while ((pdVar18[1] - in_f28_29) - *(double *)(iVar12 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }" { (expression_statement "in_f22_23 = (double)(int)uStack_328;" (assignment_expression "in_f22_23 = (double)(int)uStack_328" identifier = (cast_expression "(double)(int)uStack_328" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)uStack_328" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (((*pdVar31 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar31[2] + *(double *)(iVar12 + 0x43d0))) {\n                        iVar30 = *(int *)(pdVar31 + 7);\n                        dVar43 = (double)iVar30;\n                        if (iVar30 < 0) {\n                          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar43 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar30 = 1;\n                        }\n                        if (iVar30 < *(int *)((int)pdVar31 + 0x2c)) {\n                          iVar14 = *(int *)(pdVar31 + 5);\n                          iVar52 = (iVar30 + 0xfffffff) * 0x10;\n                          pdVar18 = (double *)(iVar14 + iVar52);\n                          dVar43 = *(double *)(iVar12 + 0x43d0);\n                          if ((pdVar18[1] - in_f28_29) - dVar43 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar33 = *(int *)(puVar38 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar33 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar52 = iVar52 + 0x10;\n                              dVar42 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43\n                                 ) {\n                                if (in_f26_27 != pdVar31[4]) {\n                                  pdVar31[4] = in_f26_27;\n                                  *(int *)(pdVar31 + 7) = iVar30;\n                                }\n                                dVar46 = pdVar18[2] - *pdVar18;\n                                dVar44 = pdVar18[3] - pdVar18[1];\n                                dVar49 = in_f22_23 - *pdVar18;\n                                dVar42 = in_f26_27 - pdVar18[1];\n                                dVar47 = dVar46 * dVar49 + dVar44 * dVar42;\n                                if (0.0 < dVar47) {\n                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;\n                                  if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }\n                                dVar42 = dStack_338;\n                                if (*(int *)((int)pdVar31 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar42;\n                                dVar42 = dStack_340;\n                                if (((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar42;\n                              iVar30 = iVar30 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar43;\n                              if (*(int *)((int)pdVar31 + 0x2c) <= iVar30) break;\n                              iVar14 = *(int *)(pdVar31 + 5);\n                              pdVar18 = (double *)(iVar14 + iVar52);\n                            } while ((pdVar18[1] - in_f28_29) - *(double *)(iVar12 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }" if (parenthesized_expression "(((*pdVar31 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar31[2] + *(double *)(iVar12 + 0x43d0)))" ( (binary_expression "((*pdVar31 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar31[2] + *(double *)(iVar12 + 0x43d0))" (parenthesized_expression "((*pdVar31 - in_f28_29) - dStack_330 < in_f22_23)" ( (binary_expression "(*pdVar31 - in_f28_29) - dStack_330 < in_f22_23" (binary_expression "(*pdVar31 - in_f28_29) - dStack_330" (parenthesized_expression "(*pdVar31 - in_f28_29)" ( (binary_expression "*pdVar31 - in_f28_29" (pointer_expression "*pdVar31" * identifier) - identifier) )) - identifier) < identifier) )) && (parenthesized_expression "(in_f22_23 <= in_f28_29 + pdVar31[2] + *(double *)(iVar12 + 0x43d0))" ( (binary_expression "in_f22_23 <= in_f28_29 + pdVar31[2] + *(double *)(iVar12 + 0x43d0)" identifier <= (binary_expression "in_f28_29 + pdVar31[2] + *(double *)(iVar12 + 0x43d0)" (binary_expression "in_f28_29 + pdVar31[2]" identifier + (subscript_expression "pdVar31[2]" identifier [ number_literal ])) + (pointer_expression "*(double *)(iVar12 + 0x43d0)" * (cast_expression "(double *)(iVar12 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x43d0)" ( (binary_expression "iVar12 + 0x43d0" identifier + number_literal) )))))) ))) )) (compound_statement "{\n                        iVar30 = *(int *)(pdVar31 + 7);\n                        dVar43 = (double)iVar30;\n                        if (iVar30 < 0) {\n                          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar43 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar30 = 1;\n                        }\n                        if (iVar30 < *(int *)((int)pdVar31 + 0x2c)) {\n                          iVar14 = *(int *)(pdVar31 + 5);\n                          iVar52 = (iVar30 + 0xfffffff) * 0x10;\n                          pdVar18 = (double *)(iVar14 + iVar52);\n                          dVar43 = *(double *)(iVar12 + 0x43d0);\n                          if ((pdVar18[1] - in_f28_29) - dVar43 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar33 = *(int *)(puVar38 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar33 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar52 = iVar52 + 0x10;\n                              dVar42 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43\n                                 ) {\n                                if (in_f26_27 != pdVar31[4]) {\n                                  pdVar31[4] = in_f26_27;\n                                  *(int *)(pdVar31 + 7) = iVar30;\n                                }\n                                dVar46 = pdVar18[2] - *pdVar18;\n                                dVar44 = pdVar18[3] - pdVar18[1];\n                                dVar49 = in_f22_23 - *pdVar18;\n                                dVar42 = in_f26_27 - pdVar18[1];\n                                dVar47 = dVar46 * dVar49 + dVar44 * dVar42;\n                                if (0.0 < dVar47) {\n                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;\n                                  if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }\n                                dVar42 = dStack_338;\n                                if (*(int *)((int)pdVar31 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar42;\n                                dVar42 = dStack_340;\n                                if (((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar42;\n                              iVar30 = iVar30 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar43;\n                              if (*(int *)((int)pdVar31 + 0x2c) <= iVar30) break;\n                              iVar14 = *(int *)(pdVar31 + 5);\n                              pdVar18 = (double *)(iVar14 + iVar52);\n                            } while ((pdVar18[1] - in_f28_29) - *(double *)(iVar12 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }" { (expression_statement "iVar30 = *(int *)(pdVar31 + 7);" (assignment_expression "iVar30 = *(int *)(pdVar31 + 7)" identifier = (pointer_expression "*(int *)(pdVar31 + 7)" * (cast_expression "(int *)(pdVar31 + 7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar31 + 7)" ( (binary_expression "pdVar31 + 7" identifier + number_literal) ))))) ;) (expression_statement "dVar43 = (double)iVar30;" (assignment_expression "dVar43 = (double)iVar30" identifier = (cast_expression "(double)iVar30" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar30 < 0) {\n                          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }" if (parenthesized_expression "(iVar30 < 0)" ( (binary_expression "iVar30 < 0" identifier < number_literal) )) (compound_statement "{\n                          dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }" { (expression_statement "dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);" (assignment_expression "dVar43 = dVar43 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8)" identifier = (binary_expression "dVar43 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8)" * (cast_expression "(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + -0x7fd0) + 0x43e8)" ( (binary_expression "*(int *)(puVar38 + -0x7fd0) + 0x43e8" (pointer_expression "*(int *)(puVar38 + -0x7fd0)" * (cast_expression "(int *)(puVar38 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + -0x7fd0)" ( (binary_expression "puVar38 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) })) (if_statement "if (dVar43 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar30 = 1;\n                        }" if (parenthesized_expression "(dVar43 <= *(double *)(unaff_s7 + 0x4408))" ( (binary_expression "dVar43 <= *(double *)(unaff_s7 + 0x4408)" identifier <= (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) )) (compound_statement "{\n                          iVar30 = 1;\n                        }" { (expression_statement "iVar30 = 1;" (assignment_expression "iVar30 = 1" identifier = number_literal) ;) })) (if_statement "if (iVar30 < *(int *)((int)pdVar31 + 0x2c)) {\n                          iVar14 = *(int *)(pdVar31 + 5);\n                          iVar52 = (iVar30 + 0xfffffff) * 0x10;\n                          pdVar18 = (double *)(iVar14 + iVar52);\n                          dVar43 = *(double *)(iVar12 + 0x43d0);\n                          if ((pdVar18[1] - in_f28_29) - dVar43 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar33 = *(int *)(puVar38 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar33 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar52 = iVar52 + 0x10;\n                              dVar42 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43\n                                 ) {\n                                if (in_f26_27 != pdVar31[4]) {\n                                  pdVar31[4] = in_f26_27;\n                                  *(int *)(pdVar31 + 7) = iVar30;\n                                }\n                                dVar46 = pdVar18[2] - *pdVar18;\n                                dVar44 = pdVar18[3] - pdVar18[1];\n                                dVar49 = in_f22_23 - *pdVar18;\n                                dVar42 = in_f26_27 - pdVar18[1];\n                                dVar47 = dVar46 * dVar49 + dVar44 * dVar42;\n                                if (0.0 < dVar47) {\n                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;\n                                  if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }\n                                dVar42 = dStack_338;\n                                if (*(int *)((int)pdVar31 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar42;\n                                dVar42 = dStack_340;\n                                if (((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar42;\n                              iVar30 = iVar30 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar43;\n                              if (*(int *)((int)pdVar31 + 0x2c) <= iVar30) break;\n                              iVar14 = *(int *)(pdVar31 + 5);\n                              pdVar18 = (double *)(iVar14 + iVar52);\n                            } while ((pdVar18[1] - in_f28_29) - *(double *)(iVar12 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }" if (parenthesized_expression "(iVar30 < *(int *)((int)pdVar31 + 0x2c))" ( (binary_expression "iVar30 < *(int *)((int)pdVar31 + 0x2c)" identifier < (pointer_expression "*(int *)((int)pdVar31 + 0x2c)" * (cast_expression "(int *)((int)pdVar31 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar31 + 0x2c)" ( (binary_expression "(int)pdVar31 + 0x2c" (cast_expression "(int)pdVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (compound_statement "{\n                          iVar14 = *(int *)(pdVar31 + 5);\n                          iVar52 = (iVar30 + 0xfffffff) * 0x10;\n                          pdVar18 = (double *)(iVar14 + iVar52);\n                          dVar43 = *(double *)(iVar12 + 0x43d0);\n                          if ((pdVar18[1] - in_f28_29) - dVar43 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar33 = *(int *)(puVar38 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar33 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar52 = iVar52 + 0x10;\n                              dVar42 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43\n                                 ) {\n                                if (in_f26_27 != pdVar31[4]) {\n                                  pdVar31[4] = in_f26_27;\n                                  *(int *)(pdVar31 + 7) = iVar30;\n                                }\n                                dVar46 = pdVar18[2] - *pdVar18;\n                                dVar44 = pdVar18[3] - pdVar18[1];\n                                dVar49 = in_f22_23 - *pdVar18;\n                                dVar42 = in_f26_27 - pdVar18[1];\n                                dVar47 = dVar46 * dVar49 + dVar44 * dVar42;\n                                if (0.0 < dVar47) {\n                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;\n                                  if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }\n                                dVar42 = dStack_338;\n                                if (*(int *)((int)pdVar31 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar42;\n                                dVar42 = dStack_340;\n                                if (((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar42;\n                              iVar30 = iVar30 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar43;\n                              if (*(int *)((int)pdVar31 + 0x2c) <= iVar30) break;\n                              iVar14 = *(int *)(pdVar31 + 5);\n                              pdVar18 = (double *)(iVar14 + iVar52);\n                            } while ((pdVar18[1] - in_f28_29) - *(double *)(iVar12 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }" { (expression_statement "iVar14 = *(int *)(pdVar31 + 5);" (assignment_expression "iVar14 = *(int *)(pdVar31 + 5)" identifier = (pointer_expression "*(int *)(pdVar31 + 5)" * (cast_expression "(int *)(pdVar31 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar31 + 5)" ( (binary_expression "pdVar31 + 5" identifier + number_literal) ))))) ;) (expression_statement "iVar52 = (iVar30 + 0xfffffff) * 0x10;" (assignment_expression "iVar52 = (iVar30 + 0xfffffff) * 0x10" identifier = (binary_expression "(iVar30 + 0xfffffff) * 0x10" (parenthesized_expression "(iVar30 + 0xfffffff)" ( (binary_expression "iVar30 + 0xfffffff" identifier + number_literal) )) * number_literal)) ;) (expression_statement "pdVar18 = (double *)(iVar14 + iVar52);" (assignment_expression "pdVar18 = (double *)(iVar14 + iVar52)" identifier = (cast_expression "(double *)(iVar14 + iVar52)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + iVar52)" ( (binary_expression "iVar14 + iVar52" identifier + identifier) )))) ;) (expression_statement "dVar43 = *(double *)(iVar12 + 0x43d0);" (assignment_expression "dVar43 = *(double *)(iVar12 + 0x43d0)" identifier = (pointer_expression "*(double *)(iVar12 + 0x43d0)" * (cast_expression "(double *)(iVar12 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x43d0)" ( (binary_expression "iVar12 + 0x43d0" identifier + number_literal) ))))) ;) (if_statement "if ((pdVar18[1] - in_f28_29) - dVar43 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar33 = *(int *)(puVar38 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar33 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar52 = iVar52 + 0x10;\n                              dVar42 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43\n                                 ) {\n                                if (in_f26_27 != pdVar31[4]) {\n                                  pdVar31[4] = in_f26_27;\n                                  *(int *)(pdVar31 + 7) = iVar30;\n                                }\n                                dVar46 = pdVar18[2] - *pdVar18;\n                                dVar44 = pdVar18[3] - pdVar18[1];\n                                dVar49 = in_f22_23 - *pdVar18;\n                                dVar42 = in_f26_27 - pdVar18[1];\n                                dVar47 = dVar46 * dVar49 + dVar44 * dVar42;\n                                if (0.0 < dVar47) {\n                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;\n                                  if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }\n                                dVar42 = dStack_338;\n                                if (*(int *)((int)pdVar31 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar42;\n                                dVar42 = dStack_340;\n                                if (((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar42;\n                              iVar30 = iVar30 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar43;\n                              if (*(int *)((int)pdVar31 + 0x2c) <= iVar30) break;\n                              iVar14 = *(int *)(pdVar31 + 5);\n                              pdVar18 = (double *)(iVar14 + iVar52);\n                            } while ((pdVar18[1] - in_f28_29) - *(double *)(iVar12 + 0x43d0) <\n                                     in_f26_27);\n                          }" if (parenthesized_expression "((pdVar18[1] - in_f28_29) - dVar43 < in_f26_27)" ( (binary_expression "(pdVar18[1] - in_f28_29) - dVar43 < in_f26_27" (binary_expression "(pdVar18[1] - in_f28_29) - dVar43" (parenthesized_expression "(pdVar18[1] - in_f28_29)" ( (binary_expression "pdVar18[1] - in_f28_29" (subscript_expression "pdVar18[1]" identifier [ number_literal ]) - identifier) )) - identifier) < identifier) )) (compound_statement "{\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar33 = *(int *)(puVar38 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar33 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar52 = iVar52 + 0x10;\n                              dVar42 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43\n                                 ) {\n                                if (in_f26_27 != pdVar31[4]) {\n                                  pdVar31[4] = in_f26_27;\n                                  *(int *)(pdVar31 + 7) = iVar30;\n                                }\n                                dVar46 = pdVar18[2] - *pdVar18;\n                                dVar44 = pdVar18[3] - pdVar18[1];\n                                dVar49 = in_f22_23 - *pdVar18;\n                                dVar42 = in_f26_27 - pdVar18[1];\n                                dVar47 = dVar46 * dVar49 + dVar44 * dVar42;\n                                if (0.0 < dVar47) {\n                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;\n                                  if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }\n                                dVar42 = dStack_338;\n                                if (*(int *)((int)pdVar31 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar42;\n                                dVar42 = dStack_340;\n                                if (((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar42;\n                              iVar30 = iVar30 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar43;\n                              if (*(int *)((int)pdVar31 + 0x2c) <= iVar30) break;\n                              iVar14 = *(int *)(pdVar31 + 5);\n                              pdVar18 = (double *)(iVar14 + iVar52);\n                            } while ((pdVar18[1] - in_f28_29) - *(double *)(iVar12 + 0x43d0) <\n                                     in_f26_27);\n                          }" { (expression_statement "dStack_318 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dStack_318 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) (expression_statement "iVar33 = *(int *)(puVar38 + -0x7fcc);" (assignment_expression "iVar33 = *(int *)(puVar38 + -0x7fcc)" identifier = (pointer_expression "*(int *)(puVar38 + -0x7fcc)" * (cast_expression "(int *)(puVar38 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + -0x7fcc)" ( (binary_expression "puVar38 + -0x7fcc" identifier + number_literal) ))))) ;) (expression_statement "dStack_300 = *(double *)(iVar33 + 0x2a8);" (assignment_expression "dStack_300 = *(double *)(iVar33 + 0x2a8)" identifier = (pointer_expression "*(double *)(iVar33 + 0x2a8)" * (cast_expression "(double *)(iVar33 + 0x2a8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar33 + 0x2a8)" ( (binary_expression "iVar33 + 0x2a8" identifier + number_literal) ))))) ;) (expression_statement "piStack_304 = unaff_s4;" (assignment_expression "piStack_304 = unaff_s4" identifier = identifier) ;) (do_statement "do {\n                              iVar52 = iVar52 + 0x10;\n                              dVar42 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43\n                                 ) {\n                                if (in_f26_27 != pdVar31[4]) {\n                                  pdVar31[4] = in_f26_27;\n                                  *(int *)(pdVar31 + 7) = iVar30;\n                                }\n                                dVar46 = pdVar18[2] - *pdVar18;\n                                dVar44 = pdVar18[3] - pdVar18[1];\n                                dVar49 = in_f22_23 - *pdVar18;\n                                dVar42 = in_f26_27 - pdVar18[1];\n                                dVar47 = dVar46 * dVar49 + dVar44 * dVar42;\n                                if (0.0 < dVar47) {\n                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;\n                                  if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }\n                                dVar42 = dStack_338;\n                                if (*(int *)((int)pdVar31 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar42;\n                                dVar42 = dStack_340;\n                                if (((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar42;\n                              iVar30 = iVar30 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar43;\n                              if (*(int *)((int)pdVar31 + 0x2c) <= iVar30) break;\n                              iVar14 = *(int *)(pdVar31 + 5);\n                              pdVar18 = (double *)(iVar14 + iVar52);\n                            } while ((pdVar18[1] - in_f28_29) - *(double *)(iVar12 + 0x43d0) <\n                                     in_f26_27);" do (compound_statement "{\n                              iVar52 = iVar52 + 0x10;\n                              dVar42 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43\n                                 ) {\n                                if (in_f26_27 != pdVar31[4]) {\n                                  pdVar31[4] = in_f26_27;\n                                  *(int *)(pdVar31 + 7) = iVar30;\n                                }\n                                dVar46 = pdVar18[2] - *pdVar18;\n                                dVar44 = pdVar18[3] - pdVar18[1];\n                                dVar49 = in_f22_23 - *pdVar18;\n                                dVar42 = in_f26_27 - pdVar18[1];\n                                dVar47 = dVar46 * dVar49 + dVar44 * dVar42;\n                                if (0.0 < dVar47) {\n                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;\n                                  if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }\n                                dVar42 = dStack_338;\n                                if (*(int *)((int)pdVar31 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar42;\n                                dVar42 = dStack_340;\n                                if (((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar42;\n                              iVar30 = iVar30 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar43;\n                              if (*(int *)((int)pdVar31 + 0x2c) <= iVar30) break;\n                              iVar14 = *(int *)(pdVar31 + 5);\n                              pdVar18 = (double *)(iVar14 + iVar52);\n                            }" { (expression_statement "iVar52 = iVar52 + 0x10;" (assignment_expression "iVar52 = iVar52 + 0x10" identifier = (binary_expression "iVar52 + 0x10" identifier + number_literal)) ;) (expression_statement "dVar42 = dStack_340;" (assignment_expression "dVar42 = dStack_340" identifier = identifier) ;) (if_statement "if (in_f26_27 <= in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43\n                                 ) {\n                                if (in_f26_27 != pdVar31[4]) {\n                                  pdVar31[4] = in_f26_27;\n                                  *(int *)(pdVar31 + 7) = iVar30;\n                                }\n                                dVar46 = pdVar18[2] - *pdVar18;\n                                dVar44 = pdVar18[3] - pdVar18[1];\n                                dVar49 = in_f22_23 - *pdVar18;\n                                dVar42 = in_f26_27 - pdVar18[1];\n                                dVar47 = dVar46 * dVar49 + dVar44 * dVar42;\n                                if (0.0 < dVar47) {\n                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;\n                                  if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }\n                                dVar42 = dStack_338;\n                                if (*(int *)((int)pdVar31 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar42;\n                                dVar42 = dStack_340;\n                                if (((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }" if (parenthesized_expression "(in_f26_27 <= in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43\n                                 )" ( (binary_expression "in_f26_27 <= in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43" identifier <= (binary_expression "in_f28_29 + *(double *)(iVar14 + iVar52 + 8) + dVar43" (binary_expression "in_f28_29 + *(double *)(iVar14 + iVar52 + 8)" identifier + (pointer_expression "*(double *)(iVar14 + iVar52 + 8)" * (cast_expression "(double *)(iVar14 + iVar52 + 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + iVar52 + 8)" ( (binary_expression "iVar14 + iVar52 + 8" (binary_expression "iVar14 + iVar52" identifier + identifier) + number_literal) ))))) + identifier)) )) (compound_statement "{\n                                if (in_f26_27 != pdVar31[4]) {\n                                  pdVar31[4] = in_f26_27;\n                                  *(int *)(pdVar31 + 7) = iVar30;\n                                }\n                                dVar46 = pdVar18[2] - *pdVar18;\n                                dVar44 = pdVar18[3] - pdVar18[1];\n                                dVar49 = in_f22_23 - *pdVar18;\n                                dVar42 = in_f26_27 - pdVar18[1];\n                                dVar47 = dVar46 * dVar49 + dVar44 * dVar42;\n                                if (0.0 < dVar47) {\n                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;\n                                  if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }\n                                dVar42 = dStack_338;\n                                if (*(int *)((int)pdVar31 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar42;\n                                dVar42 = dStack_340;\n                                if (((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }" { (if_statement "if (in_f26_27 != pdVar31[4]) {\n                                  pdVar31[4] = in_f26_27;\n                                  *(int *)(pdVar31 + 7) = iVar30;\n                                }" if (parenthesized_expression "(in_f26_27 != pdVar31[4])" ( (binary_expression "in_f26_27 != pdVar31[4]" identifier != (subscript_expression "pdVar31[4]" identifier [ number_literal ])) )) (compound_statement "{\n                                  pdVar31[4] = in_f26_27;\n                                  *(int *)(pdVar31 + 7) = iVar30;\n                                }" { (expression_statement "pdVar31[4] = in_f26_27;" (assignment_expression "pdVar31[4] = in_f26_27" (subscript_expression "pdVar31[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(int *)(pdVar31 + 7) = iVar30;" (assignment_expression "*(int *)(pdVar31 + 7) = iVar30" (pointer_expression "*(int *)(pdVar31 + 7)" * (cast_expression "(int *)(pdVar31 + 7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar31 + 7)" ( (binary_expression "pdVar31 + 7" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "dVar46 = pdVar18[2] - *pdVar18;" (assignment_expression "dVar46 = pdVar18[2] - *pdVar18" identifier = (binary_expression "pdVar18[2] - *pdVar18" (subscript_expression "pdVar18[2]" identifier [ number_literal ]) - (pointer_expression "*pdVar18" * identifier))) ;) (expression_statement "dVar44 = pdVar18[3] - pdVar18[1];" (assignment_expression "dVar44 = pdVar18[3] - pdVar18[1]" identifier = (binary_expression "pdVar18[3] - pdVar18[1]" (subscript_expression "pdVar18[3]" identifier [ number_literal ]) - (subscript_expression "pdVar18[1]" identifier [ number_literal ]))) ;) (expression_statement "dVar49 = in_f22_23 - *pdVar18;" (assignment_expression "dVar49 = in_f22_23 - *pdVar18" identifier = (binary_expression "in_f22_23 - *pdVar18" identifier - (pointer_expression "*pdVar18" * identifier))) ;) (expression_statement "dVar42 = in_f26_27 - pdVar18[1];" (assignment_expression "dVar42 = in_f26_27 - pdVar18[1]" identifier = (binary_expression "in_f26_27 - pdVar18[1]" identifier - (subscript_expression "pdVar18[1]" identifier [ number_literal ]))) ;) (expression_statement "dVar47 = dVar46 * dVar49 + dVar44 * dVar42;" (assignment_expression "dVar47 = dVar46 * dVar49 + dVar44 * dVar42" identifier = (binary_expression "dVar46 * dVar49 + dVar44 * dVar42" (binary_expression "dVar46 * dVar49" identifier * identifier) + (binary_expression "dVar44 * dVar42" identifier * identifier))) ;) (if_statement "if (0.0 < dVar47) {\n                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;\n                                  if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }" if (parenthesized_expression "(0.0 < dVar47)" ( (binary_expression "0.0 < dVar47" number_literal < identifier) )) (compound_statement "{\n                                  dVar48 = dVar46 * dVar46 + dVar44 * dVar44;\n                                  if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }\n                                }" { (expression_statement "dVar48 = dVar46 * dVar46 + dVar44 * dVar44;" (assignment_expression "dVar48 = dVar46 * dVar46 + dVar44 * dVar44" identifier = (binary_expression "dVar46 * dVar46 + dVar44 * dVar44" (binary_expression "dVar46 * dVar46" identifier * identifier) + (binary_expression "dVar44 * dVar44" identifier * identifier))) ;) (if_statement "if (dVar48 <= dVar47) {\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }" if (parenthesized_expression "(dVar48 <= dVar47)" ( (binary_expression "dVar48 <= dVar47" identifier <= identifier) )) (compound_statement "{\n                                    dVar49 = in_f22_23 - pdVar18[2];\n                                    dVar42 = in_f26_27 - pdVar18[3];\n                                    in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                  }" { (expression_statement "dVar49 = in_f22_23 - pdVar18[2];" (assignment_expression "dVar49 = in_f22_23 - pdVar18[2]" identifier = (binary_expression "in_f22_23 - pdVar18[2]" identifier - (subscript_expression "pdVar18[2]" identifier [ number_literal ]))) ;) (expression_statement "dVar42 = in_f26_27 - pdVar18[3];" (assignment_expression "dVar42 = in_f26_27 - pdVar18[3]" identifier = (binary_expression "in_f26_27 - pdVar18[3]" identifier - (subscript_expression "pdVar18[3]" identifier [ number_literal ]))) ;) (expression_statement "in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;" (assignment_expression "in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42" identifier = (binary_expression "dVar49 * dVar49 + dVar42 * dVar42" (binary_expression "dVar49 * dVar49" identifier * identifier) + (binary_expression "dVar42 * dVar42" identifier * identifier))) ;) }) (else_clause "else {\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }" else (compound_statement "{\n                                    if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar48 * in_f20_21;\n                                  }" { (if_statement "if (*(double *)(iVar4 + 0x43c8) <= dVar48) {\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }\n                                    else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }" if (parenthesized_expression "(*(double *)(iVar4 + 0x43c8) <= dVar48)" ( (binary_expression "*(double *)(iVar4 + 0x43c8) <= dVar48" (pointer_expression "*(double *)(iVar4 + 0x43c8)" * (cast_expression "(double *)(iVar4 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x43c8)" ( (binary_expression "iVar4 + 0x43c8" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                                      dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;\n                                    }" { (expression_statement "dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48;" (assignment_expression "dVar48 = *(double *)(unaff_s7 + 0x4408) / dVar48" identifier = (binary_expression "*(double *)(unaff_s7 + 0x4408) / dVar48" (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) )))) / identifier)) ;) }) (else_clause "else {\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }" else (compound_statement "{\n                                      dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);\n                                    }" { (expression_statement "dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40);" (assignment_expression "dVar48 = *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40)" identifier = (pointer_expression "*(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40)" * (cast_expression "(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4a40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + -0x7fd0) + 0x4a40)" ( (binary_expression "*(int *)(puVar38 + -0x7fd0) + 0x4a40" (pointer_expression "*(int *)(puVar38 + -0x7fd0)" * (cast_expression "(int *)(puVar38 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + -0x7fd0)" ( (binary_expression "puVar38 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (expression_statement "in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8);" (assignment_expression "in_f20_21 = (dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8)" identifier = (binary_expression "(dVar46 * dVar42 - dVar44 * dVar49) +\n                                                *(double *)(iVar4 + 0x43c8)" (parenthesized_expression "(dVar46 * dVar42 - dVar44 * dVar49)" ( (binary_expression "dVar46 * dVar42 - dVar44 * dVar49" (binary_expression "dVar46 * dVar42" identifier * identifier) - (binary_expression "dVar44 * dVar49" identifier * identifier)) )) + (pointer_expression "*(double *)(iVar4 + 0x43c8)" * (cast_expression "(double *)(iVar4 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x43c8)" ( (binary_expression "iVar4 + 0x43c8" identifier + number_literal) )))))) ;) (expression_statement "in_f20_21 = in_f20_21 * dVar48 * in_f20_21;" (assignment_expression "in_f20_21 = in_f20_21 * dVar48 * in_f20_21" identifier = (binary_expression "in_f20_21 * dVar48 * in_f20_21" (binary_expression "in_f20_21 * dVar48" identifier * identifier) * identifier)) ;) }))) }) (else_clause "else {\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }" else (compound_statement "{\n                                  in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;\n                                }" { (expression_statement "in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42;" (assignment_expression "in_f20_21 = dVar49 * dVar49 + dVar42 * dVar42" identifier = (binary_expression "dVar49 * dVar49 + dVar42 * dVar42" (binary_expression "dVar49 * dVar49" identifier * identifier) + (binary_expression "dVar42 * dVar42" identifier * identifier))) ;) }))) (expression_statement "dVar42 = dStack_338;" (assignment_expression "dVar42 = dStack_338" identifier = identifier) ;) (if_statement "if (*(int *)((int)pdVar31 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }" if (parenthesized_expression "(*(int *)((int)pdVar31 + 0x34) == 0)" ( (binary_expression "*(int *)((int)pdVar31 + 0x34) == 0" (pointer_expression "*(int *)((int)pdVar31 + 0x34)" * (cast_expression "(int *)((int)pdVar31 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar31 + 0x34)" ( (binary_expression "(int)pdVar31 + 0x34" (cast_expression "(int)pdVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }" { (if_statement "if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }" if (parenthesized_expression "(*(double *)(unaff_s7 + 0x4408) <= dStack_338)" ( (binary_expression "*(double *)(unaff_s7 + 0x4408) <= dStack_338" (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                                    uStack_348 = 0.0;\n                                  }" { (expression_statement "uStack_348 = 0.0;" (assignment_expression "uStack_348 = 0.0" identifier = number_literal) ;) }) (else_clause "else {\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }" else (compound_statement "{\n                                    dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }" { (expression_statement "dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300;" (assignment_expression "dVar49 = in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300" identifier = (binary_expression "in_f28_29 + *(double *)(iVar12 + 0x43d0) + dStack_300" (binary_expression "in_f28_29 + *(double *)(iVar12 + 0x43d0)" identifier + (pointer_expression "*(double *)(iVar12 + 0x43d0)" * (cast_expression "(double *)(iVar12 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x43d0)" ( (binary_expression "iVar12 + 0x43d0" identifier + number_literal) ))))) + identifier)) ;) (if_statement "if (in_f20_21 <= dVar49 * dVar49) {\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }" if (parenthesized_expression "(in_f20_21 <= dVar49 * dVar49)" ( (binary_expression "in_f20_21 <= dVar49 * dVar49" identifier <= (binary_expression "dVar49 * dVar49" identifier * identifier)) )) (compound_statement "{\n                                      dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);\n                                      if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }" { (expression_statement "dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8);" (assignment_expression "dVar42 = (in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8)" identifier = (binary_expression "(in_f28_29 - *(double *)(iVar12 + 0x43d0)) +\n                                               *(double *)(iVar33 + 0x2a8)" (parenthesized_expression "(in_f28_29 - *(double *)(iVar12 + 0x43d0))" ( (binary_expression "in_f28_29 - *(double *)(iVar12 + 0x43d0)" identifier - (pointer_expression "*(double *)(iVar12 + 0x43d0)" * (cast_expression "(double *)(iVar12 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x43d0)" ( (binary_expression "iVar12 + 0x43d0" identifier + number_literal) ))))) )) + (pointer_expression "*(double *)(iVar33 + 0x2a8)" * (cast_expression "(double *)(iVar33 + 0x2a8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar33 + 0x2a8)" ( (binary_expression "iVar33 + 0x2a8" identifier + number_literal) )))))) ;) (if_statement "if (dVar42 * dVar42 < in_f20_21) {\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }" if (parenthesized_expression "(dVar42 * dVar42 < in_f20_21)" ( (binary_expression "dVar42 * dVar42 < in_f20_21" (binary_expression "dVar42 * dVar42" identifier * identifier) < identifier) )) (compound_statement "{\n                                        dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar42,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }\n                                        dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);\n                                        dVar42 = dVar42 * dVar42;\n                                        if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }\n                                      }" { (expression_statement "dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dVar42 = in_f20_21 - *(double *)(unaff_s7 + 0x4408)" identifier = (binary_expression "in_f20_21 - *(double *)(unaff_s7 + 0x4408)" identifier - (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) )))))) ;) (expression_statement "uStack_2ac = SUB84(dVar42,0);" (assignment_expression "uStack_2ac = SUB84(dVar42,0)" identifier = (call_expression "SUB84(dVar42,0)" identifier (argument_list "(dVar42,0)" ( identifier , number_literal )))) ;) (expression_statement "uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;" (assignment_expression "uStack_2b0 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff" identifier = (binary_expression "(uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff" (call_expression "(uint)((ulonglong)dVar42 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)dVar42 >> 0x20)" ( (binary_expression "(ulonglong)dVar42 >> 0x20" (cast_expression "(ulonglong)dVar42" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & number_literal)) ;) (expression_statement "uStack_348 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "uStack_348 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) (if_statement "if ((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }" if (parenthesized_expression "((*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0))" ( (binary_expression "(*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)" (parenthesized_expression "(*(double *)(iVar4 + 0x43c8) <= ABS(dVar42))" ( (binary_expression "*(double *)(iVar4 + 0x43c8) <= ABS(dVar42)" (pointer_expression "*(double *)(iVar4 + 0x43c8)" * (cast_expression "(double *)(iVar4 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x43c8)" ( (binary_expression "iVar4 + 0x43c8" identifier + number_literal) )))) <= (call_expression "ABS(dVar42)" identifier (argument_list "(dVar42)" ( identifier )))) )) && (parenthesized_expression "(uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)" ( (comma_expression "uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0" (assignment_expression "uStack_348 = SQRT(in_f20_21)" identifier = (call_expression "SQRT(in_f20_21)" identifier (argument_list "(in_f20_21)" ( identifier )))) , (binary_expression "in_f20_21 < 0.0" identifier < number_literal)) ))) )) (compound_statement "{\n                                          (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                          puVar38 = puStack_350;\n                                        }" { (expression_statement "(**(code **)(puVar38 + -0x7418))(in_f20_21);" (call_expression "(**(code **)(puVar38 + -0x7418))(in_f20_21)" (parenthesized_expression "(**(code **)(puVar38 + -0x7418))" ( (pointer_expression "**(code **)(puVar38 + -0x7418)" * (pointer_expression "*(code **)(puVar38 + -0x7418)" * (cast_expression "(code **)(puVar38 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + -0x7418)" ( (binary_expression "puVar38 + -0x7418" identifier + number_literal) ))))) )) (argument_list "(in_f20_21)" ( identifier ))) ;) (expression_statement "puVar38 = puStack_350;" (assignment_expression "puVar38 = puStack_350" identifier = identifier) ;) })) (expression_statement "dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8);" (assignment_expression "dVar42 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8)" identifier = (binary_expression "((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)) -\n                                                 *(double *)(iVar33 + 0x2a8)" (parenthesized_expression "((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0))" ( (binary_expression "(uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar12 + 0x43d0)" (parenthesized_expression "(uStack_348 - in_f28_29)" ( (binary_expression "uStack_348 - in_f28_29" identifier - identifier) )) - (pointer_expression "*(double *)(iVar12 + 0x43d0)" * (cast_expression "(double *)(iVar12 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x43d0)" ( (binary_expression "iVar12 + 0x43d0" identifier + number_literal) ))))) )) - (pointer_expression "*(double *)(iVar33 + 0x2a8)" * (cast_expression "(double *)(iVar33 + 0x2a8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar33 + 0x2a8)" ( (binary_expression "iVar33 + 0x2a8" identifier + number_literal) )))))) ;) (expression_statement "dVar42 = dVar42 * dVar42;" (assignment_expression "dVar42 = dVar42 * dVar42" identifier = (binary_expression "dVar42 * dVar42" identifier * identifier)) ;) (if_statement "if (dVar42 <= dStack_338) {\n                                          dVar42 = dStack_338;\n                                        }" if (parenthesized_expression "(dVar42 <= dStack_338)" ( (binary_expression "dVar42 <= dStack_338" identifier <= identifier) )) (compound_statement "{\n                                          dVar42 = dStack_338;\n                                        }" { (expression_statement "dVar42 = dStack_338;" (assignment_expression "dVar42 = dStack_338" identifier = identifier) ;) })) }) (else_clause "else {\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }" else (compound_statement "{\n                                        uStack_348 = 0.0;\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }" { (expression_statement "uStack_348 = 0.0;" (assignment_expression "uStack_348 = 0.0" identifier = number_literal) ;) (expression_statement "dVar42 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dVar42 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) }))) }) (else_clause "else {\n                                      uStack_348 = 0.0;\n                                    }" else (compound_statement "{\n                                      uStack_348 = 0.0;\n                                    }" { (expression_statement "uStack_348 = 0.0;" (assignment_expression "uStack_348 = 0.0" identifier = number_literal) ;) }))) }))) }) (else_clause "else {\n                                  uStack_348 = 0.0;\n                                }" else (compound_statement "{\n                                  uStack_348 = 0.0;\n                                }" { (expression_statement "uStack_348 = 0.0;" (assignment_expression "uStack_348 = 0.0" identifier = number_literal) ;) }))) (expression_statement "dStack_338 = dVar42;" (assignment_expression "dStack_338 = dVar42" identifier = identifier) ;) (expression_statement "dVar42 = dStack_340;" (assignment_expression "dVar42 = dStack_340" identifier = identifier) ;) (if_statement "if (((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }" if (parenthesized_expression "(((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318))" ( (binary_expression "((iVar51 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)" (parenthesized_expression "((iVar51 != 0) && (in_f20_21 <= dStack_320))" ( (binary_expression "(iVar51 != 0) && (in_f20_21 <= dStack_320)" (parenthesized_expression "(iVar51 != 0)" ( (binary_expression "iVar51 != 0" identifier != number_literal) )) && (parenthesized_expression "(in_f20_21 <= dStack_320)" ( (binary_expression "in_f20_21 <= dStack_320" identifier <= identifier) ))) )) && (parenthesized_expression "(dStack_340 < dStack_318)" ( (binary_expression "dStack_340 < dStack_318" identifier < identifier) ))) )) (compound_statement "{\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }" { (if_statement "if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }" if (parenthesized_expression "(0.0 < in_f20_21)" ( (binary_expression "0.0 < in_f20_21" number_literal < identifier) )) (compound_statement "{\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }\n                                    dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);\n                                    if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }\n                                  }" { (expression_statement "uStack_310 = uStack_348._0_4_ & 0x7fffffff;" (assignment_expression "uStack_310 = uStack_348._0_4_ & 0x7fffffff" identifier = (binary_expression "uStack_348._0_4_ & 0x7fffffff" (field_expression "uStack_348._0_4_" identifier . field_identifier) & number_literal)) ;) (expression_statement "uStack_30c = uStack_348._4_4_;" (assignment_expression "uStack_30c = uStack_348._4_4_" identifier = (field_expression "uStack_348._4_4_" identifier . field_identifier)) ;) (expression_statement "dVar42 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dVar42 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) (if_statement "if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }" if (parenthesized_expression "(ABS(uStack_348) < dStack_2b8)" ( (binary_expression "ABS(uStack_348) < dStack_2b8" (call_expression "ABS(uStack_348)" identifier (argument_list "(uStack_348)" ( identifier ))) < identifier) )) (compound_statement "{\n                                      dVar42 = in_f20_21 - dVar42;\n                                      uStack_2c4 = SUB84(dVar42,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }\n                                    }" { (expression_statement "dVar42 = in_f20_21 - dVar42;" (assignment_expression "dVar42 = in_f20_21 - dVar42" identifier = (binary_expression "in_f20_21 - dVar42" identifier - identifier)) ;) (expression_statement "uStack_2c4 = SUB84(dVar42,0);" (assignment_expression "uStack_2c4 = SUB84(dVar42,0)" identifier = (call_expression "SUB84(dVar42,0)" identifier (argument_list "(dVar42,0)" ( identifier , number_literal )))) ;) (expression_statement "uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff;" (assignment_expression "uStack_2c8 = (uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff" identifier = (binary_expression "(uint)((ulonglong)dVar42 >> 0x20) & 0x7fffffff" (call_expression "(uint)((ulonglong)dVar42 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)dVar42 >> 0x20)" ( (binary_expression "(ulonglong)dVar42 >> 0x20" (cast_expression "(ulonglong)dVar42" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & number_literal)) ;) (expression_statement "uStack_348 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "uStack_348 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) (if_statement "if ((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }" if (parenthesized_expression "((ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21))" ( (binary_expression "(ABS(dVar42) < *(double *)(iVar4 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)" (parenthesized_expression "(ABS(dVar42) < *(double *)(iVar4 + 0x43c8))" ( (binary_expression "ABS(dVar42) < *(double *)(iVar4 + 0x43c8)" (call_expression "ABS(dVar42)" identifier (argument_list "(dVar42)" ( identifier ))) < (pointer_expression "*(double *)(iVar4 + 0x43c8)" * (cast_expression "(double *)(iVar4 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x43c8)" ( (binary_expression "iVar4 + 0x43c8" identifier + number_literal) ))))) )) || (parenthesized_expression "(uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)" ( (comma_expression "uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21" (assignment_expression "uStack_348 = SQRT(in_f20_21)" identifier = (call_expression "SQRT(in_f20_21)" identifier (argument_list "(in_f20_21)" ( identifier )))) , (binary_expression "0.0 <= in_f20_21" number_literal <= identifier)) ))) )) (compound_statement "{\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                      }" { (expression_statement "dVar42 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dVar42 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }" else (compound_statement "{\n                                        (**(code **)(puVar38 + -0x7418))(in_f20_21);\n                                        dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar38 = puStack_350;\n                                      }" { (expression_statement "(**(code **)(puVar38 + -0x7418))(in_f20_21);" (call_expression "(**(code **)(puVar38 + -0x7418))(in_f20_21)" (parenthesized_expression "(**(code **)(puVar38 + -0x7418))" ( (pointer_expression "**(code **)(puVar38 + -0x7418)" * (pointer_expression "*(code **)(puVar38 + -0x7418)" * (cast_expression "(code **)(puVar38 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + -0x7418)" ( (binary_expression "puVar38 + -0x7418" identifier + number_literal) ))))) )) (argument_list "(in_f20_21)" ( identifier ))) ;) (expression_statement "dVar42 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dVar42 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) (expression_statement "puVar38 = puStack_350;" (assignment_expression "puVar38 = puStack_350" identifier = identifier) ;) }))) })) (expression_statement "dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42);" (assignment_expression "dVar42 = (uStack_348 - dVar42) * (uStack_348 - dVar42)" identifier = (binary_expression "(uStack_348 - dVar42) * (uStack_348 - dVar42)" (parenthesized_expression "(uStack_348 - dVar42)" ( (binary_expression "uStack_348 - dVar42" identifier - identifier) )) * (parenthesized_expression "(uStack_348 - dVar42)" ( (binary_expression "uStack_348 - dVar42" identifier - identifier) )))) ;) (if_statement "if (dVar42 <= dStack_340) {\n                                      dVar42 = dStack_340;\n                                    }" if (parenthesized_expression "(dVar42 <= dStack_340)" ( (binary_expression "dVar42 <= dStack_340" identifier <= identifier) )) (compound_statement "{\n                                      dVar42 = dStack_340;\n                                    }" { (expression_statement "dVar42 = dStack_340;" (assignment_expression "dVar42 = dStack_340" identifier = identifier) ;) })) }) (else_clause "else {\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }" else (compound_statement "{\n                                    dVar42 = *(double *)(unaff_s7 + 0x4408);\n                                  }" { (expression_statement "dVar42 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dVar42 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) }))) })) })) (expression_statement "dStack_340 = dVar42;" (assignment_expression "dStack_340 = dVar42" identifier = identifier) ;) (expression_statement "iVar30 = iVar30 + 1;" (assignment_expression "iVar30 = iVar30 + 1" identifier = (binary_expression "iVar30 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s4 = piStack_304;" (assignment_expression "unaff_s4 = piStack_304" identifier = identifier) ;) (expression_statement "in_f24_25 = dVar43;" (assignment_expression "in_f24_25 = dVar43" identifier = identifier) ;) (if_statement "if (*(int *)((int)pdVar31 + 0x2c) <= iVar30) break;" if (parenthesized_expression "(*(int *)((int)pdVar31 + 0x2c) <= iVar30)" ( (binary_expression "*(int *)((int)pdVar31 + 0x2c) <= iVar30" (pointer_expression "*(int *)((int)pdVar31 + 0x2c)" * (cast_expression "(int *)((int)pdVar31 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar31 + 0x2c)" ( (binary_expression "(int)pdVar31 + 0x2c" (cast_expression "(int)pdVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) <= identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar14 = *(int *)(pdVar31 + 5);" (assignment_expression "iVar14 = *(int *)(pdVar31 + 5)" identifier = (pointer_expression "*(int *)(pdVar31 + 5)" * (cast_expression "(int *)(pdVar31 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar31 + 5)" ( (binary_expression "pdVar31 + 5" identifier + number_literal) ))))) ;) (expression_statement "pdVar18 = (double *)(iVar14 + iVar52);" (assignment_expression "pdVar18 = (double *)(iVar14 + iVar52)" identifier = (cast_expression "(double *)(iVar14 + iVar52)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + iVar52)" ( (binary_expression "iVar14 + iVar52" identifier + identifier) )))) ;) }) while (parenthesized_expression "((pdVar18[1] - in_f28_29) - *(double *)(iVar12 + 0x43d0) <\n                                     in_f26_27)" ( (binary_expression "(pdVar18[1] - in_f28_29) - *(double *)(iVar12 + 0x43d0) <\n                                     in_f26_27" (binary_expression "(pdVar18[1] - in_f28_29) - *(double *)(iVar12 + 0x43d0)" (parenthesized_expression "(pdVar18[1] - in_f28_29)" ( (binary_expression "pdVar18[1] - in_f28_29" (subscript_expression "pdVar18[1]" identifier [ number_literal ]) - identifier) )) - (pointer_expression "*(double *)(iVar12 + 0x43d0)" * (cast_expression "(double *)(iVar12 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x43d0)" ( (binary_expression "iVar12 + 0x43d0" identifier + number_literal) ))))) < identifier) )) ;) })) })) })) }) (else_clause "else {\n                      if (pvVar15 <= this) {\n                        (**(code **)(puVar38 + -0x7290))\n                                  (*(int *)(puVar38 + -0x7fcc) + 0x69fc,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x69c0,0x3e3,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x773c);\n                        return;\n                      }\n                      iVar51 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar5 = (**(code **)(puVar38 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar31 + iVar51 + 0x28));\n                      *(undefined4 *)((int)pdVar31 + iVar51 + 0x28) = uVar5;\n                      pvVar15 = (void *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)pvVar15;\n                      puVar38 = puStack_350;\n                      if (this < pvVar15) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar31 + (*unaff_s4 - (int)pdVar18)),\n                                   *unaff_s4 + ((int)this + 1) * 0x40,\n                                   ((int)pvVar15 - (int)this) * 0x40);\n                        puVar38 = puStack_350;\n                      }\n                    }" else (compound_statement "{\n                      if (pvVar15 <= this) {\n                        (**(code **)(puVar38 + -0x7290))\n                                  (*(int *)(puVar38 + -0x7fcc) + 0x69fc,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x69c0,0x3e3,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x773c);\n                        return;\n                      }\n                      iVar51 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar5 = (**(code **)(puVar38 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar31 + iVar51 + 0x28));\n                      *(undefined4 *)((int)pdVar31 + iVar51 + 0x28) = uVar5;\n                      pvVar15 = (void *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)pvVar15;\n                      puVar38 = puStack_350;\n                      if (this < pvVar15) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar31 + (*unaff_s4 - (int)pdVar18)),\n                                   *unaff_s4 + ((int)this + 1) * 0x40,\n                                   ((int)pvVar15 - (int)this) * 0x40);\n                        puVar38 = puStack_350;\n                      }\n                    }" { (if_statement "if (pvVar15 <= this) {\n                        (**(code **)(puVar38 + -0x7290))\n                                  (*(int *)(puVar38 + -0x7fcc) + 0x69fc,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x69c0,0x3e3,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x773c);\n                        return;\n                      }" if (parenthesized_expression "(pvVar15 <= this)" ( (binary_expression "pvVar15 <= this" identifier <= identifier) )) (compound_statement "{\n                        (**(code **)(puVar38 + -0x7290))\n                                  (*(int *)(puVar38 + -0x7fcc) + 0x69fc,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x69c0,0x3e3,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x773c);\n                        return;\n                      }" { (expression_statement "(**(code **)(puVar38 + -0x7290))\n                                  (*(int *)(puVar38 + -0x7fcc) + 0x69fc,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x69c0,0x3e3,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x773c);" (call_expression "(**(code **)(puVar38 + -0x7290))\n                                  (*(int *)(puVar38 + -0x7fcc) + 0x69fc,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x69c0,0x3e3,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x773c)" (parenthesized_expression "(**(code **)(puVar38 + -0x7290))" ( (pointer_expression "**(code **)(puVar38 + -0x7290)" * (pointer_expression "*(code **)(puVar38 + -0x7290)" * (cast_expression "(code **)(puVar38 + -0x7290)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + -0x7290)" ( (binary_expression "puVar38 + -0x7290" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar38 + -0x7fcc) + 0x69fc,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x69c0,0x3e3,\n                                   *(int *)(puVar38 + -0x7fcc) + 0x773c)" ( (binary_expression "*(int *)(puVar38 + -0x7fcc) + 0x69fc" (pointer_expression "*(int *)(puVar38 + -0x7fcc)" * (cast_expression "(int *)(puVar38 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + -0x7fcc)" ( (binary_expression "puVar38 + -0x7fcc" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar38 + -0x7fcc) + 0x69c0" (pointer_expression "*(int *)(puVar38 + -0x7fcc)" * (cast_expression "(int *)(puVar38 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + -0x7fcc)" ( (binary_expression "puVar38 + -0x7fcc" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar38 + -0x7fcc) + 0x773c" (pointer_expression "*(int *)(puVar38 + -0x7fcc)" * (cast_expression "(int *)(puVar38 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + -0x7fcc)" ( (binary_expression "puVar38 + -0x7fcc" identifier + number_literal) )))) + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar51 = *unaff_s4 - (int)pdStack_2ec;" (assignment_expression "iVar51 = *unaff_s4 - (int)pdStack_2ec" identifier = (binary_expression "*unaff_s4 - (int)pdStack_2ec" (pointer_expression "*unaff_s4" * identifier) - (cast_expression "(int)pdStack_2ec" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar5 = (**(code **)(puVar38 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar31 + iVar51 + 0x28));" (assignment_expression "uVar5 = (**(code **)(puVar38 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar31 + iVar51 + 0x28))" identifier = (call_expression "(**(code **)(puVar38 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar31 + iVar51 + 0x28))" (parenthesized_expression "(**(code **)(puVar38 + -0x78d8))" ( (pointer_expression "**(code **)(puVar38 + -0x78d8)" * (pointer_expression "*(code **)(puVar38 + -0x78d8)" * (cast_expression "(code **)(puVar38 + -0x78d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + -0x78d8)" ( (binary_expression "puVar38 + -0x78d8" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)((int)pdVar31 + iVar51 + 0x28))" ( (pointer_expression "*(undefined4 *)((int)pdVar31 + iVar51 + 0x28)" * (cast_expression "(undefined4 *)((int)pdVar31 + iVar51 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar31 + iVar51 + 0x28)" ( (binary_expression "(int)pdVar31 + iVar51 + 0x28" (binary_expression "(int)pdVar31 + iVar51" (cast_expression "(int)pdVar31" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) )))) ;) (expression_statement "*(undefined4 *)((int)pdVar31 + iVar51 + 0x28) = uVar5;" (assignment_expression "*(undefined4 *)((int)pdVar31 + iVar51 + 0x28) = uVar5" (pointer_expression "*(undefined4 *)((int)pdVar31 + iVar51 + 0x28)" * (cast_expression "(undefined4 *)((int)pdVar31 + iVar51 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar31 + iVar51 + 0x28)" ( (binary_expression "(int)pdVar31 + iVar51 + 0x28" (binary_expression "(int)pdVar31 + iVar51" (cast_expression "(int)pdVar31" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "pvVar15 = (void *)(unaff_s4[1] + -1);" (assignment_expression "pvVar15 = (void *)(unaff_s4[1] + -1)" identifier = (cast_expression "(void *)(unaff_s4[1] + -1)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s4[1] + -1)" ( (binary_expression "unaff_s4[1] + -1" (subscript_expression "unaff_s4[1]" identifier [ number_literal ]) + number_literal) )))) ;) (expression_statement "unaff_s4[1] = (int)pvVar15;" (assignment_expression "unaff_s4[1] = (int)pvVar15" (subscript_expression "unaff_s4[1]" identifier [ number_literal ]) = (cast_expression "(int)pvVar15" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar38 = puStack_350;" (assignment_expression "puVar38 = puStack_350" identifier = identifier) ;) (if_statement "if (this < pvVar15) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar31 + (*unaff_s4 - (int)pdVar18)),\n                                   *unaff_s4 + ((int)this + 1) * 0x40,\n                                   ((int)pvVar15 - (int)this) * 0x40);\n                        puVar38 = puStack_350;\n                      }" if (parenthesized_expression "(this < pvVar15)" ( (binary_expression "this < pvVar15" identifier < identifier) )) (compound_statement "{\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar31 + (*unaff_s4 - (int)pdVar18)),\n                                   *unaff_s4 + ((int)this + 1) * 0x40,\n                                   ((int)pvVar15 - (int)this) * 0x40);\n                        puVar38 = puStack_350;\n                      }" { (expression_statement "(**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar31 + (*unaff_s4 - (int)pdVar18)),\n                                   *unaff_s4 + ((int)this + 1) * 0x40,\n                                   ((int)pvVar15 - (int)this) * 0x40);" (call_expression "(**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar31 + (*unaff_s4 - (int)pdVar18)),\n                                   *unaff_s4 + ((int)this + 1) * 0x40,\n                                   ((int)pvVar15 - (int)this) * 0x40)" (parenthesized_expression "(**(code **)(puStack_350 + -0x7948))" ( (pointer_expression "**(code **)(puStack_350 + -0x7948)" * (pointer_expression "*(code **)(puStack_350 + -0x7948)" * (cast_expression "(code **)(puStack_350 + -0x7948)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_350 + -0x7948)" ( (binary_expression "puStack_350 + -0x7948" identifier + number_literal) ))))) )) (argument_list "((undefined *)((int)pdVar31 + (*unaff_s4 - (int)pdVar18)),\n                                   *unaff_s4 + ((int)this + 1) * 0x40,\n                                   ((int)pvVar15 - (int)this) * 0x40)" ( (cast_expression "(undefined *)((int)pdVar31 + (*unaff_s4 - (int)pdVar18))" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar31 + (*unaff_s4 - (int)pdVar18))" ( (binary_expression "(int)pdVar31 + (*unaff_s4 - (int)pdVar18)" (cast_expression "(int)pdVar31" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(*unaff_s4 - (int)pdVar18)" ( (binary_expression "*unaff_s4 - (int)pdVar18" (pointer_expression "*unaff_s4" * identifier) - (cast_expression "(int)pdVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) , (binary_expression "*unaff_s4 + ((int)this + 1) * 0x40" (pointer_expression "*unaff_s4" * identifier) + (binary_expression "((int)this + 1) * 0x40" (parenthesized_expression "((int)this + 1)" ( (binary_expression "(int)this + 1" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) * number_literal)) , (binary_expression "((int)pvVar15 - (int)this) * 0x40" (parenthesized_expression "((int)pvVar15 - (int)this)" ( (binary_expression "(int)pvVar15 - (int)this" (cast_expression "(int)pvVar15" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal) ))) ;) (expression_statement "puVar38 = puStack_350;" (assignment_expression "puVar38 = puStack_350" identifier = identifier) ;) })) }))) (expression_statement "this = (void *)((int)this + 1);" (assignment_expression "this = (void *)((int)this + 1)" identifier = (cast_expression "(void *)((int)this + 1)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 1)" ( (binary_expression "(int)this + 1" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "unaff_s3 = pdVar31 + 8;" (assignment_expression "unaff_s3 = pdVar31 + 8" identifier = (binary_expression "pdVar31 + 8" identifier + number_literal)) ;) (expression_statement "pvVar15 = (void *)unaff_s4[1];" (assignment_expression "pvVar15 = (void *)unaff_s4[1]" identifier = (cast_expression "(void *)unaff_s4[1]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "unaff_s4[1]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(((int)this < (int)pvVar15) &&\n                          (pdVar18 = pdVar31 + 9, pdVar31 = unaff_s3,\n                          (*pdVar18 - in_f28_29) - *(double *)(iVar12 + 0x43d0) < in_f26_27))" ( (binary_expression "((int)this < (int)pvVar15) &&\n                          (pdVar18 = pdVar31 + 9, pdVar31 = unaff_s3,\n                          (*pdVar18 - in_f28_29) - *(double *)(iVar12 + 0x43d0) < in_f26_27)" (parenthesized_expression "((int)this < (int)pvVar15)" ( (binary_expression "(int)this < (int)pvVar15" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pvVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(pdVar18 = pdVar31 + 9, pdVar31 = unaff_s3,\n                          (*pdVar18 - in_f28_29) - *(double *)(iVar12 + 0x43d0) < in_f26_27)" ( (comma_expression "pdVar18 = pdVar31 + 9, pdVar31 = unaff_s3,\n                          (*pdVar18 - in_f28_29) - *(double *)(iVar12 + 0x43d0) < in_f26_27" (assignment_expression "pdVar18 = pdVar31 + 9" identifier = (binary_expression "pdVar31 + 9" identifier + number_literal)) , (comma_expression "pdVar31 = unaff_s3,\n                          (*pdVar18 - in_f28_29) - *(double *)(iVar12 + 0x43d0) < in_f26_27" (assignment_expression "pdVar31 = unaff_s3" identifier = identifier) , (binary_expression "(*pdVar18 - in_f28_29) - *(double *)(iVar12 + 0x43d0) < in_f26_27" (binary_expression "(*pdVar18 - in_f28_29) - *(double *)(iVar12 + 0x43d0)" (parenthesized_expression "(*pdVar18 - in_f28_29)" ( (binary_expression "*pdVar18 - in_f28_29" (pointer_expression "*pdVar18" * identifier) - identifier) )) - (pointer_expression "*(double *)(iVar12 + 0x43d0)" * (cast_expression "(double *)(iVar12 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x43d0)" ( (binary_expression "iVar12 + 0x43d0" identifier + number_literal) ))))) < identifier))) ))) )) ;) (expression_statement "pdVar18 = pdStack_2d8;" (assignment_expression "pdVar18 = pdStack_2d8" identifier = identifier) ;) (if_statement "if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }" if (parenthesized_expression "(iStack_2f4 != 0)" ( (binary_expression "iStack_2f4 != 0" identifier != number_literal) )) (compound_statement "{\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }" { (if_statement "if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;" if (parenthesized_expression "(dStack_340 < *(double *)(unaff_s7 + 0x4408))" ( (binary_expression "dStack_340 < *(double *)(unaff_s7 + 0x4408)" identifier < (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) )) (goto_statement "goto LAB_000a4f34;" goto statement_identifier ;)) (goto_statement "goto LAB_000a4528;" goto statement_identifier ;) })) (if_statement "if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }" if (parenthesized_expression "(*(int *)(iStack_324 + 0x238) == 0)" ( (binary_expression "*(int *)(iStack_324 + 0x238) == 0" (pointer_expression "*(int *)(iStack_324 + 0x238)" * (cast_expression "(int *)(iStack_324 + 0x238)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x238)" ( (binary_expression "iStack_324 + 0x238" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }" { (expression_statement "dStack_340 = 0.0;" (assignment_expression "dStack_340 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_000a4ec0;" goto statement_identifier ;) })) (expression_statement "dStack_340 = 0.0;" (assignment_expression "dStack_340 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_000a46d8;" goto statement_identifier ;) })) (if_statement "if (iStack_2f4 == 0) goto LAB_000a4f94;" if (parenthesized_expression "(iStack_2f4 == 0)" ( (binary_expression "iStack_2f4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000a4f94;" goto statement_identifier ;)) (expression_statement "pdVar31 = (double *)*unaff_s4;" (assignment_expression "pdVar31 = (double *)*unaff_s4" identifier = (cast_expression "(double *)*unaff_s4" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*unaff_s4" * identifier))) ;) (expression_statement "dStack_338 = 0.0;" (assignment_expression "dStack_338 = 0.0" identifier = number_literal) ;) (expression_statement "dStack_340 = 0.0;" (assignment_expression "dStack_340 = 0.0" identifier = number_literal) ;) (expression_statement "dVar41 = in_f30_31;" (assignment_expression "dVar41 = in_f30_31" identifier = identifier) ;) (labeled_statement "LAB_000a4f3c:\n                dVar43 = (double)iStack_2f0;" statement_identifier : (expression_statement "dVar43 = (double)iStack_2f0;" (assignment_expression "dVar43 = (double)iStack_2f0" identifier = (cast_expression "(double)iStack_2f0" ( (type_descriptor "double" primitive_type) ) identifier)) ;)) (expression_statement "pvVar23 = (void *)0x0;" (assignment_expression "pvVar23 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pdVar31[1] < dVar43) {\n                  uVar28 = 0;\n                  do {\n                    if ((dVar43 <= pdVar31[3]) &&\n                       (dVar42 = (double)(int)uStack_328, *pdVar31 < dVar42)) {\n                      iVar12 = -1;\n                      if (dVar42 <= pdVar31[2]) {\n                        iVar12 = *(int *)(pdVar31 + 7);\n                        dVar49 = (double)iVar12;\n                        if (iVar12 < 0) {\n                          dVar49 = dVar49 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar49 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar12 = 1;\n                        }\n                        iVar51 = *(int *)((int)pdVar31 + 0x2c) + -1;\n                        if (iVar12 < iVar51) {\n                          iVar30 = *(int *)(pdVar31 + 5) + iVar12 * 0x10;\n                          dVar49 = *(double *)(iVar30 + 8);\n                          while (dVar49 < dVar43) {\n                            iVar12 = iVar12 + 1;\n                            if (iVar51 <= iVar12) break;\n                            dVar49 = *(double *)(iVar30 + 0x18);\n                            iVar30 = iVar30 + 0x10;\n                          }\n                        }\n                        pdVar6 = (double *)(*(int *)(pdVar31 + 5) + (iVar12 + 0xfffffff) * 0x10);\n                        iVar12 = -1;\n                        if ((pdVar6[2] - *pdVar6) * (dVar43 - pdVar6[1]) <=\n                            (pdVar6[3] - pdVar6[1]) * (dVar42 - *pdVar6)) {\n                          if (*(int *)(pdVar31 + 6) != 0) {\n                            iVar12 = 1;\n                          }\n                          uVar28 = uVar28 + iVar12;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar31 + 6) != 0) {\n                          iVar12 = 1;\n                        }\n                        uVar28 = uVar28 + iVar12;\n                      }\n                    }\n                    pvVar23 = (void *)((int)pvVar23 + 1);\n                  } while ((pvVar23 != pvVar15) &&\n                          (pdVar6 = pdVar31 + 9, pdVar31 = pdVar31 + 8, *pdVar6 < dVar43));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar28 < 0) {\n                      uVar28 = -uVar28;\n                    }\n                    if ((uVar28 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar28 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }" if (parenthesized_expression "(pdVar31[1] < dVar43)" ( (binary_expression "pdVar31[1] < dVar43" (subscript_expression "pdVar31[1]" identifier [ number_literal ]) < identifier) )) (compound_statement "{\n                  uVar28 = 0;\n                  do {\n                    if ((dVar43 <= pdVar31[3]) &&\n                       (dVar42 = (double)(int)uStack_328, *pdVar31 < dVar42)) {\n                      iVar12 = -1;\n                      if (dVar42 <= pdVar31[2]) {\n                        iVar12 = *(int *)(pdVar31 + 7);\n                        dVar49 = (double)iVar12;\n                        if (iVar12 < 0) {\n                          dVar49 = dVar49 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar49 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar12 = 1;\n                        }\n                        iVar51 = *(int *)((int)pdVar31 + 0x2c) + -1;\n                        if (iVar12 < iVar51) {\n                          iVar30 = *(int *)(pdVar31 + 5) + iVar12 * 0x10;\n                          dVar49 = *(double *)(iVar30 + 8);\n                          while (dVar49 < dVar43) {\n                            iVar12 = iVar12 + 1;\n                            if (iVar51 <= iVar12) break;\n                            dVar49 = *(double *)(iVar30 + 0x18);\n                            iVar30 = iVar30 + 0x10;\n                          }\n                        }\n                        pdVar6 = (double *)(*(int *)(pdVar31 + 5) + (iVar12 + 0xfffffff) * 0x10);\n                        iVar12 = -1;\n                        if ((pdVar6[2] - *pdVar6) * (dVar43 - pdVar6[1]) <=\n                            (pdVar6[3] - pdVar6[1]) * (dVar42 - *pdVar6)) {\n                          if (*(int *)(pdVar31 + 6) != 0) {\n                            iVar12 = 1;\n                          }\n                          uVar28 = uVar28 + iVar12;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar31 + 6) != 0) {\n                          iVar12 = 1;\n                        }\n                        uVar28 = uVar28 + iVar12;\n                      }\n                    }\n                    pvVar23 = (void *)((int)pvVar23 + 1);\n                  } while ((pvVar23 != pvVar15) &&\n                          (pdVar6 = pdVar31 + 9, pdVar31 = pdVar31 + 8, *pdVar6 < dVar43));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar28 < 0) {\n                      uVar28 = -uVar28;\n                    }\n                    if ((uVar28 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar28 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }" { (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) (do_statement "do {\n                    if ((dVar43 <= pdVar31[3]) &&\n                       (dVar42 = (double)(int)uStack_328, *pdVar31 < dVar42)) {\n                      iVar12 = -1;\n                      if (dVar42 <= pdVar31[2]) {\n                        iVar12 = *(int *)(pdVar31 + 7);\n                        dVar49 = (double)iVar12;\n                        if (iVar12 < 0) {\n                          dVar49 = dVar49 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar49 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar12 = 1;\n                        }\n                        iVar51 = *(int *)((int)pdVar31 + 0x2c) + -1;\n                        if (iVar12 < iVar51) {\n                          iVar30 = *(int *)(pdVar31 + 5) + iVar12 * 0x10;\n                          dVar49 = *(double *)(iVar30 + 8);\n                          while (dVar49 < dVar43) {\n                            iVar12 = iVar12 + 1;\n                            if (iVar51 <= iVar12) break;\n                            dVar49 = *(double *)(iVar30 + 0x18);\n                            iVar30 = iVar30 + 0x10;\n                          }\n                        }\n                        pdVar6 = (double *)(*(int *)(pdVar31 + 5) + (iVar12 + 0xfffffff) * 0x10);\n                        iVar12 = -1;\n                        if ((pdVar6[2] - *pdVar6) * (dVar43 - pdVar6[1]) <=\n                            (pdVar6[3] - pdVar6[1]) * (dVar42 - *pdVar6)) {\n                          if (*(int *)(pdVar31 + 6) != 0) {\n                            iVar12 = 1;\n                          }\n                          uVar28 = uVar28 + iVar12;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar31 + 6) != 0) {\n                          iVar12 = 1;\n                        }\n                        uVar28 = uVar28 + iVar12;\n                      }\n                    }\n                    pvVar23 = (void *)((int)pvVar23 + 1);\n                  } while ((pvVar23 != pvVar15) &&\n                          (pdVar6 = pdVar31 + 9, pdVar31 = pdVar31 + 8, *pdVar6 < dVar43));" do (compound_statement "{\n                    if ((dVar43 <= pdVar31[3]) &&\n                       (dVar42 = (double)(int)uStack_328, *pdVar31 < dVar42)) {\n                      iVar12 = -1;\n                      if (dVar42 <= pdVar31[2]) {\n                        iVar12 = *(int *)(pdVar31 + 7);\n                        dVar49 = (double)iVar12;\n                        if (iVar12 < 0) {\n                          dVar49 = dVar49 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar49 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar12 = 1;\n                        }\n                        iVar51 = *(int *)((int)pdVar31 + 0x2c) + -1;\n                        if (iVar12 < iVar51) {\n                          iVar30 = *(int *)(pdVar31 + 5) + iVar12 * 0x10;\n                          dVar49 = *(double *)(iVar30 + 8);\n                          while (dVar49 < dVar43) {\n                            iVar12 = iVar12 + 1;\n                            if (iVar51 <= iVar12) break;\n                            dVar49 = *(double *)(iVar30 + 0x18);\n                            iVar30 = iVar30 + 0x10;\n                          }\n                        }\n                        pdVar6 = (double *)(*(int *)(pdVar31 + 5) + (iVar12 + 0xfffffff) * 0x10);\n                        iVar12 = -1;\n                        if ((pdVar6[2] - *pdVar6) * (dVar43 - pdVar6[1]) <=\n                            (pdVar6[3] - pdVar6[1]) * (dVar42 - *pdVar6)) {\n                          if (*(int *)(pdVar31 + 6) != 0) {\n                            iVar12 = 1;\n                          }\n                          uVar28 = uVar28 + iVar12;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar31 + 6) != 0) {\n                          iVar12 = 1;\n                        }\n                        uVar28 = uVar28 + iVar12;\n                      }\n                    }\n                    pvVar23 = (void *)((int)pvVar23 + 1);\n                  }" { (if_statement "if ((dVar43 <= pdVar31[3]) &&\n                       (dVar42 = (double)(int)uStack_328, *pdVar31 < dVar42)) {\n                      iVar12 = -1;\n                      if (dVar42 <= pdVar31[2]) {\n                        iVar12 = *(int *)(pdVar31 + 7);\n                        dVar49 = (double)iVar12;\n                        if (iVar12 < 0) {\n                          dVar49 = dVar49 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar49 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar12 = 1;\n                        }\n                        iVar51 = *(int *)((int)pdVar31 + 0x2c) + -1;\n                        if (iVar12 < iVar51) {\n                          iVar30 = *(int *)(pdVar31 + 5) + iVar12 * 0x10;\n                          dVar49 = *(double *)(iVar30 + 8);\n                          while (dVar49 < dVar43) {\n                            iVar12 = iVar12 + 1;\n                            if (iVar51 <= iVar12) break;\n                            dVar49 = *(double *)(iVar30 + 0x18);\n                            iVar30 = iVar30 + 0x10;\n                          }\n                        }\n                        pdVar6 = (double *)(*(int *)(pdVar31 + 5) + (iVar12 + 0xfffffff) * 0x10);\n                        iVar12 = -1;\n                        if ((pdVar6[2] - *pdVar6) * (dVar43 - pdVar6[1]) <=\n                            (pdVar6[3] - pdVar6[1]) * (dVar42 - *pdVar6)) {\n                          if (*(int *)(pdVar31 + 6) != 0) {\n                            iVar12 = 1;\n                          }\n                          uVar28 = uVar28 + iVar12;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar31 + 6) != 0) {\n                          iVar12 = 1;\n                        }\n                        uVar28 = uVar28 + iVar12;\n                      }\n                    }" if (parenthesized_expression "((dVar43 <= pdVar31[3]) &&\n                       (dVar42 = (double)(int)uStack_328, *pdVar31 < dVar42))" ( (binary_expression "(dVar43 <= pdVar31[3]) &&\n                       (dVar42 = (double)(int)uStack_328, *pdVar31 < dVar42)" (parenthesized_expression "(dVar43 <= pdVar31[3])" ( (binary_expression "dVar43 <= pdVar31[3]" identifier <= (subscript_expression "pdVar31[3]" identifier [ number_literal ])) )) && (parenthesized_expression "(dVar42 = (double)(int)uStack_328, *pdVar31 < dVar42)" ( (comma_expression "dVar42 = (double)(int)uStack_328, *pdVar31 < dVar42" (assignment_expression "dVar42 = (double)(int)uStack_328" identifier = (cast_expression "(double)(int)uStack_328" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)uStack_328" ( (type_descriptor "int" primitive_type) ) identifier))) , (binary_expression "*pdVar31 < dVar42" (pointer_expression "*pdVar31" * identifier) < identifier)) ))) )) (compound_statement "{\n                      iVar12 = -1;\n                      if (dVar42 <= pdVar31[2]) {\n                        iVar12 = *(int *)(pdVar31 + 7);\n                        dVar49 = (double)iVar12;\n                        if (iVar12 < 0) {\n                          dVar49 = dVar49 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar49 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar12 = 1;\n                        }\n                        iVar51 = *(int *)((int)pdVar31 + 0x2c) + -1;\n                        if (iVar12 < iVar51) {\n                          iVar30 = *(int *)(pdVar31 + 5) + iVar12 * 0x10;\n                          dVar49 = *(double *)(iVar30 + 8);\n                          while (dVar49 < dVar43) {\n                            iVar12 = iVar12 + 1;\n                            if (iVar51 <= iVar12) break;\n                            dVar49 = *(double *)(iVar30 + 0x18);\n                            iVar30 = iVar30 + 0x10;\n                          }\n                        }\n                        pdVar6 = (double *)(*(int *)(pdVar31 + 5) + (iVar12 + 0xfffffff) * 0x10);\n                        iVar12 = -1;\n                        if ((pdVar6[2] - *pdVar6) * (dVar43 - pdVar6[1]) <=\n                            (pdVar6[3] - pdVar6[1]) * (dVar42 - *pdVar6)) {\n                          if (*(int *)(pdVar31 + 6) != 0) {\n                            iVar12 = 1;\n                          }\n                          uVar28 = uVar28 + iVar12;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar31 + 6) != 0) {\n                          iVar12 = 1;\n                        }\n                        uVar28 = uVar28 + iVar12;\n                      }\n                    }" { (expression_statement "iVar12 = -1;" (assignment_expression "iVar12 = -1" identifier = number_literal) ;) (if_statement "if (dVar42 <= pdVar31[2]) {\n                        iVar12 = *(int *)(pdVar31 + 7);\n                        dVar49 = (double)iVar12;\n                        if (iVar12 < 0) {\n                          dVar49 = dVar49 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar49 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar12 = 1;\n                        }\n                        iVar51 = *(int *)((int)pdVar31 + 0x2c) + -1;\n                        if (iVar12 < iVar51) {\n                          iVar30 = *(int *)(pdVar31 + 5) + iVar12 * 0x10;\n                          dVar49 = *(double *)(iVar30 + 8);\n                          while (dVar49 < dVar43) {\n                            iVar12 = iVar12 + 1;\n                            if (iVar51 <= iVar12) break;\n                            dVar49 = *(double *)(iVar30 + 0x18);\n                            iVar30 = iVar30 + 0x10;\n                          }\n                        }\n                        pdVar6 = (double *)(*(int *)(pdVar31 + 5) + (iVar12 + 0xfffffff) * 0x10);\n                        iVar12 = -1;\n                        if ((pdVar6[2] - *pdVar6) * (dVar43 - pdVar6[1]) <=\n                            (pdVar6[3] - pdVar6[1]) * (dVar42 - *pdVar6)) {\n                          if (*(int *)(pdVar31 + 6) != 0) {\n                            iVar12 = 1;\n                          }\n                          uVar28 = uVar28 + iVar12;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar31 + 6) != 0) {\n                          iVar12 = 1;\n                        }\n                        uVar28 = uVar28 + iVar12;\n                      }" if (parenthesized_expression "(dVar42 <= pdVar31[2])" ( (binary_expression "dVar42 <= pdVar31[2]" identifier <= (subscript_expression "pdVar31[2]" identifier [ number_literal ])) )) (compound_statement "{\n                        iVar12 = *(int *)(pdVar31 + 7);\n                        dVar49 = (double)iVar12;\n                        if (iVar12 < 0) {\n                          dVar49 = dVar49 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar49 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar12 = 1;\n                        }\n                        iVar51 = *(int *)((int)pdVar31 + 0x2c) + -1;\n                        if (iVar12 < iVar51) {\n                          iVar30 = *(int *)(pdVar31 + 5) + iVar12 * 0x10;\n                          dVar49 = *(double *)(iVar30 + 8);\n                          while (dVar49 < dVar43) {\n                            iVar12 = iVar12 + 1;\n                            if (iVar51 <= iVar12) break;\n                            dVar49 = *(double *)(iVar30 + 0x18);\n                            iVar30 = iVar30 + 0x10;\n                          }\n                        }\n                        pdVar6 = (double *)(*(int *)(pdVar31 + 5) + (iVar12 + 0xfffffff) * 0x10);\n                        iVar12 = -1;\n                        if ((pdVar6[2] - *pdVar6) * (dVar43 - pdVar6[1]) <=\n                            (pdVar6[3] - pdVar6[1]) * (dVar42 - *pdVar6)) {\n                          if (*(int *)(pdVar31 + 6) != 0) {\n                            iVar12 = 1;\n                          }\n                          uVar28 = uVar28 + iVar12;\n                        }\n                      }" { (expression_statement "iVar12 = *(int *)(pdVar31 + 7);" (assignment_expression "iVar12 = *(int *)(pdVar31 + 7)" identifier = (pointer_expression "*(int *)(pdVar31 + 7)" * (cast_expression "(int *)(pdVar31 + 7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar31 + 7)" ( (binary_expression "pdVar31 + 7" identifier + number_literal) ))))) ;) (expression_statement "dVar49 = (double)iVar12;" (assignment_expression "dVar49 = (double)iVar12" identifier = (cast_expression "(double)iVar12" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar12 < 0) {\n                          dVar49 = dVar49 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }" if (parenthesized_expression "(iVar12 < 0)" ( (binary_expression "iVar12 < 0" identifier < number_literal) )) (compound_statement "{\n                          dVar49 = dVar49 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);\n                        }" { (expression_statement "dVar49 = dVar49 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8);" (assignment_expression "dVar49 = dVar49 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8)" identifier = (binary_expression "dVar49 + *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8)" identifier + (pointer_expression "*(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8)" * (cast_expression "(double *)(*(int *)(puVar38 + -0x7fd0) + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + -0x7fd0) + 0x43e8)" ( (binary_expression "*(int *)(puVar38 + -0x7fd0) + 0x43e8" (pointer_expression "*(int *)(puVar38 + -0x7fd0)" * (cast_expression "(int *)(puVar38 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + -0x7fd0)" ( (binary_expression "puVar38 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) })) (if_statement "if (dVar49 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar12 = 1;\n                        }" if (parenthesized_expression "(dVar49 <= *(double *)(unaff_s7 + 0x4408))" ( (binary_expression "dVar49 <= *(double *)(unaff_s7 + 0x4408)" identifier <= (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) )) (compound_statement "{\n                          iVar12 = 1;\n                        }" { (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;) })) (expression_statement "iVar51 = *(int *)((int)pdVar31 + 0x2c) + -1;" (assignment_expression "iVar51 = *(int *)((int)pdVar31 + 0x2c) + -1" identifier = (binary_expression "*(int *)((int)pdVar31 + 0x2c) + -1" (pointer_expression "*(int *)((int)pdVar31 + 0x2c)" * (cast_expression "(int *)((int)pdVar31 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar31 + 0x2c)" ( (binary_expression "(int)pdVar31 + 0x2c" (cast_expression "(int)pdVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal)) ;) (if_statement "if (iVar12 < iVar51) {\n                          iVar30 = *(int *)(pdVar31 + 5) + iVar12 * 0x10;\n                          dVar49 = *(double *)(iVar30 + 8);\n                          while (dVar49 < dVar43) {\n                            iVar12 = iVar12 + 1;\n                            if (iVar51 <= iVar12) break;\n                            dVar49 = *(double *)(iVar30 + 0x18);\n                            iVar30 = iVar30 + 0x10;\n                          }\n                        }" if (parenthesized_expression "(iVar12 < iVar51)" ( (binary_expression "iVar12 < iVar51" identifier < identifier) )) (compound_statement "{\n                          iVar30 = *(int *)(pdVar31 + 5) + iVar12 * 0x10;\n                          dVar49 = *(double *)(iVar30 + 8);\n                          while (dVar49 < dVar43) {\n                            iVar12 = iVar12 + 1;\n                            if (iVar51 <= iVar12) break;\n                            dVar49 = *(double *)(iVar30 + 0x18);\n                            iVar30 = iVar30 + 0x10;\n                          }\n                        }" { (expression_statement "iVar30 = *(int *)(pdVar31 + 5) + iVar12 * 0x10;" (assignment_expression "iVar30 = *(int *)(pdVar31 + 5) + iVar12 * 0x10" identifier = (binary_expression "*(int *)(pdVar31 + 5) + iVar12 * 0x10" (pointer_expression "*(int *)(pdVar31 + 5)" * (cast_expression "(int *)(pdVar31 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar31 + 5)" ( (binary_expression "pdVar31 + 5" identifier + number_literal) )))) + (binary_expression "iVar12 * 0x10" identifier * number_literal))) ;) (expression_statement "dVar49 = *(double *)(iVar30 + 8);" (assignment_expression "dVar49 = *(double *)(iVar30 + 8)" identifier = (pointer_expression "*(double *)(iVar30 + 8)" * (cast_expression "(double *)(iVar30 + 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + 8)" ( (binary_expression "iVar30 + 8" identifier + number_literal) ))))) ;) (while_statement "while (dVar49 < dVar43) {\n                            iVar12 = iVar12 + 1;\n                            if (iVar51 <= iVar12) break;\n                            dVar49 = *(double *)(iVar30 + 0x18);\n                            iVar30 = iVar30 + 0x10;\n                          }" while (parenthesized_expression "(dVar49 < dVar43)" ( (binary_expression "dVar49 < dVar43" identifier < identifier) )) (compound_statement "{\n                            iVar12 = iVar12 + 1;\n                            if (iVar51 <= iVar12) break;\n                            dVar49 = *(double *)(iVar30 + 0x18);\n                            iVar30 = iVar30 + 0x10;\n                          }" { (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (if_statement "if (iVar51 <= iVar12) break;" if (parenthesized_expression "(iVar51 <= iVar12)" ( (binary_expression "iVar51 <= iVar12" identifier <= identifier) )) (break_statement "break;" break ;)) (expression_statement "dVar49 = *(double *)(iVar30 + 0x18);" (assignment_expression "dVar49 = *(double *)(iVar30 + 0x18)" identifier = (pointer_expression "*(double *)(iVar30 + 0x18)" * (cast_expression "(double *)(iVar30 + 0x18)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + 0x18)" ( (binary_expression "iVar30 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "iVar30 = iVar30 + 0x10;" (assignment_expression "iVar30 = iVar30 + 0x10" identifier = (binary_expression "iVar30 + 0x10" identifier + number_literal)) ;) })) })) (expression_statement "pdVar6 = (double *)(*(int *)(pdVar31 + 5) + (iVar12 + 0xfffffff) * 0x10);" (assignment_expression "pdVar6 = (double *)(*(int *)(pdVar31 + 5) + (iVar12 + 0xfffffff) * 0x10)" identifier = (cast_expression "(double *)(*(int *)(pdVar31 + 5) + (iVar12 + 0xfffffff) * 0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar31 + 5) + (iVar12 + 0xfffffff) * 0x10)" ( (binary_expression "*(int *)(pdVar31 + 5) + (iVar12 + 0xfffffff) * 0x10" (pointer_expression "*(int *)(pdVar31 + 5)" * (cast_expression "(int *)(pdVar31 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar31 + 5)" ( (binary_expression "pdVar31 + 5" identifier + number_literal) )))) + (binary_expression "(iVar12 + 0xfffffff) * 0x10" (parenthesized_expression "(iVar12 + 0xfffffff)" ( (binary_expression "iVar12 + 0xfffffff" identifier + number_literal) )) * number_literal)) )))) ;) (expression_statement "iVar12 = -1;" (assignment_expression "iVar12 = -1" identifier = number_literal) ;) (if_statement "if ((pdVar6[2] - *pdVar6) * (dVar43 - pdVar6[1]) <=\n                            (pdVar6[3] - pdVar6[1]) * (dVar42 - *pdVar6)) {\n                          if (*(int *)(pdVar31 + 6) != 0) {\n                            iVar12 = 1;\n                          }\n                          uVar28 = uVar28 + iVar12;\n                        }" if (parenthesized_expression "((pdVar6[2] - *pdVar6) * (dVar43 - pdVar6[1]) <=\n                            (pdVar6[3] - pdVar6[1]) * (dVar42 - *pdVar6))" ( (binary_expression "(pdVar6[2] - *pdVar6) * (dVar43 - pdVar6[1]) <=\n                            (pdVar6[3] - pdVar6[1]) * (dVar42 - *pdVar6)" (binary_expression "(pdVar6[2] - *pdVar6) * (dVar43 - pdVar6[1])" (parenthesized_expression "(pdVar6[2] - *pdVar6)" ( (binary_expression "pdVar6[2] - *pdVar6" (subscript_expression "pdVar6[2]" identifier [ number_literal ]) - (pointer_expression "*pdVar6" * identifier)) )) * (parenthesized_expression "(dVar43 - pdVar6[1])" ( (binary_expression "dVar43 - pdVar6[1]" identifier - (subscript_expression "pdVar6[1]" identifier [ number_literal ])) ))) <= (binary_expression "(pdVar6[3] - pdVar6[1]) * (dVar42 - *pdVar6)" (parenthesized_expression "(pdVar6[3] - pdVar6[1])" ( (binary_expression "pdVar6[3] - pdVar6[1]" (subscript_expression "pdVar6[3]" identifier [ number_literal ]) - (subscript_expression "pdVar6[1]" identifier [ number_literal ])) )) * (parenthesized_expression "(dVar42 - *pdVar6)" ( (binary_expression "dVar42 - *pdVar6" identifier - (pointer_expression "*pdVar6" * identifier)) )))) )) (compound_statement "{\n                          if (*(int *)(pdVar31 + 6) != 0) {\n                            iVar12 = 1;\n                          }\n                          uVar28 = uVar28 + iVar12;\n                        }" { (if_statement "if (*(int *)(pdVar31 + 6) != 0) {\n                            iVar12 = 1;\n                          }" if (parenthesized_expression "(*(int *)(pdVar31 + 6) != 0)" ( (binary_expression "*(int *)(pdVar31 + 6) != 0" (pointer_expression "*(int *)(pdVar31 + 6)" * (cast_expression "(int *)(pdVar31 + 6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar31 + 6)" ( (binary_expression "pdVar31 + 6" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                            iVar12 = 1;\n                          }" { (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;) })) (expression_statement "uVar28 = uVar28 + iVar12;" (assignment_expression "uVar28 = uVar28 + iVar12" identifier = (binary_expression "uVar28 + iVar12" identifier + identifier)) ;) })) }) (else_clause "else {\n                        if (*(int *)(pdVar31 + 6) != 0) {\n                          iVar12 = 1;\n                        }\n                        uVar28 = uVar28 + iVar12;\n                      }" else (compound_statement "{\n                        if (*(int *)(pdVar31 + 6) != 0) {\n                          iVar12 = 1;\n                        }\n                        uVar28 = uVar28 + iVar12;\n                      }" { (if_statement "if (*(int *)(pdVar31 + 6) != 0) {\n                          iVar12 = 1;\n                        }" if (parenthesized_expression "(*(int *)(pdVar31 + 6) != 0)" ( (binary_expression "*(int *)(pdVar31 + 6) != 0" (pointer_expression "*(int *)(pdVar31 + 6)" * (cast_expression "(int *)(pdVar31 + 6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar31 + 6)" ( (binary_expression "pdVar31 + 6" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                          iVar12 = 1;\n                        }" { (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;) })) (expression_statement "uVar28 = uVar28 + iVar12;" (assignment_expression "uVar28 = uVar28 + iVar12" identifier = (binary_expression "uVar28 + iVar12" identifier + identifier)) ;) }))) })) (expression_statement "pvVar23 = (void *)((int)pvVar23 + 1);" (assignment_expression "pvVar23 = (void *)((int)pvVar23 + 1)" identifier = (cast_expression "(void *)((int)pvVar23 + 1)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar23 + 1)" ( (binary_expression "(int)pvVar23 + 1" (cast_expression "(int)pvVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "((pvVar23 != pvVar15) &&\n                          (pdVar6 = pdVar31 + 9, pdVar31 = pdVar31 + 8, *pdVar6 < dVar43))" ( (binary_expression "(pvVar23 != pvVar15) &&\n                          (pdVar6 = pdVar31 + 9, pdVar31 = pdVar31 + 8, *pdVar6 < dVar43)" (parenthesized_expression "(pvVar23 != pvVar15)" ( (binary_expression "pvVar23 != pvVar15" identifier != identifier) )) && (parenthesized_expression "(pdVar6 = pdVar31 + 9, pdVar31 = pdVar31 + 8, *pdVar6 < dVar43)" ( (comma_expression "pdVar6 = pdVar31 + 9, pdVar31 = pdVar31 + 8, *pdVar6 < dVar43" (assignment_expression "pdVar6 = pdVar31 + 9" identifier = (binary_expression "pdVar31 + 9" identifier + number_literal)) , (comma_expression "pdVar31 = pdVar31 + 8, *pdVar6 < dVar43" (assignment_expression "pdVar31 = pdVar31 + 8" identifier = (binary_expression "pdVar31 + 8" identifier + number_literal)) , (binary_expression "*pdVar6 < dVar43" (pointer_expression "*pdVar6" * identifier) < identifier))) ))) )) ;) (if_statement "if (iStack_2c0 != 2) {\n                    if ((int)uVar28 < 0) {\n                      uVar28 = -uVar28;\n                    }\n                    if ((uVar28 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }" if (parenthesized_expression "(iStack_2c0 != 2)" ( (binary_expression "iStack_2c0 != 2" identifier != number_literal) )) (compound_statement "{\n                    if ((int)uVar28 < 0) {\n                      uVar28 = -uVar28;\n                    }\n                    if ((uVar28 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }" { (if_statement "if ((int)uVar28 < 0) {\n                      uVar28 = -uVar28;\n                    }" if (parenthesized_expression "((int)uVar28 < 0)" ( (binary_expression "(int)uVar28 < 0" (cast_expression "(int)uVar28" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                      uVar28 = -uVar28;\n                    }" { (expression_statement "uVar28 = -uVar28;" (assignment_expression "uVar28 = -uVar28" identifier = (unary_expression "-uVar28" - identifier)) ;) })) (if_statement "if ((uVar28 & 1) != 0) goto LAB_000a4528;" if (parenthesized_expression "((uVar28 & 1) != 0)" ( (binary_expression "(uVar28 & 1) != 0" (parenthesized_expression "(uVar28 & 1)" ( (binary_expression "uVar28 & 1" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000a4528;" goto statement_identifier ;)) (goto_statement "goto LAB_000a4684;" goto statement_identifier ;) })) (if_statement "if (uVar28 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }" if (parenthesized_expression "(uVar28 != 0)" ( (binary_expression "uVar28 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }" { (labeled_statement "LAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);" statement_identifier : (expression_statement "dStack_340 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dStack_340 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;)) (if_statement "if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;" if (parenthesized_expression "(*(int *)(iStack_324 + 0x238) == 0)" ( (binary_expression "*(int *)(iStack_324 + 0x238) == 0" (pointer_expression "*(int *)(iStack_324 + 0x238)" * (cast_expression "(int *)(iStack_324 + 0x238)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x238)" ( (binary_expression "iStack_324 + 0x238" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000a4ec0;" goto statement_identifier ;)) (goto_statement "goto LAB_000a46d8;" goto statement_identifier ;) })) (expression_statement "iVar12 = *(int *)(iStack_324 + 0x238);" (assignment_expression "iVar12 = *(int *)(iStack_324 + 0x238)" identifier = (pointer_expression "*(int *)(iStack_324 + 0x238)" * (cast_expression "(int *)(iStack_324 + 0x238)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x238)" ( (binary_expression "iStack_324 + 0x238" identifier + number_literal) ))))) ;) }) (else_clause "else {\nLAB_000a4684:\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }" else (compound_statement "{\nLAB_000a4684:\n                  iVar12 = *(int *)(iStack_324 + 0x238);\n                }" { (labeled_statement "LAB_000a4684:\n                  iVar12 = *(int *)(iStack_324 + 0x238);" statement_identifier : (expression_statement "iVar12 = *(int *)(iStack_324 + 0x238);" (assignment_expression "iVar12 = *(int *)(iStack_324 + 0x238)" identifier = (pointer_expression "*(int *)(iStack_324 + 0x238)" * (cast_expression "(int *)(iStack_324 + 0x238)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x238)" ( (binary_expression "iStack_324 + 0x238" identifier + number_literal) ))))) ;)) }))) (if_statement "if (iVar12 == 0) {\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n                  iVar12 = *(int *)(puVar38 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar12 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }" { (expression_statement "iVar12 = *(int *)(puVar38 + -0x7fd0);" (assignment_expression "iVar12 = *(int *)(puVar38 + -0x7fd0)" identifier = (pointer_expression "*(int *)(puVar38 + -0x7fd0)" * (cast_expression "(int *)(puVar38 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + -0x7fd0)" ( (binary_expression "puVar38 + -0x7fd0" identifier + number_literal) ))))) ;) (expression_statement "bVar1 = dStack_340 <= *(double *)(iVar12 + 0x43d0);" (assignment_expression "bVar1 = dStack_340 <= *(double *)(iVar12 + 0x43d0)" identifier = (binary_expression "dStack_340 <= *(double *)(iVar12 + 0x43d0)" identifier <= (pointer_expression "*(double *)(iVar12 + 0x43d0)" * (cast_expression "(double *)(iVar12 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x43d0)" ( (binary_expression "iVar12 + 0x43d0" identifier + number_literal) )))))) ;) (expression_statement "dStack_340 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dStack_340 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) (if_statement "if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }" { (expression_statement "dStack_340 = 0.0;" (assignment_expression "dStack_340 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_000a4ec0;" goto statement_identifier ;) })) (labeled_statement "LAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar12 + 0x43d0);" statement_identifier : (expression_statement "bVar1 = dStack_338 <= *(double *)(iVar12 + 0x43d0);" (assignment_expression "bVar1 = dStack_338 <= *(double *)(iVar12 + 0x43d0)" identifier = (binary_expression "dStack_338 <= *(double *)(iVar12 + 0x43d0)" identifier <= (pointer_expression "*(double *)(iVar12 + 0x43d0)" * (cast_expression "(double *)(iVar12 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x43d0)" ( (binary_expression "iVar12 + 0x43d0" identifier + number_literal) )))))) ;)) (expression_statement "dStack_338 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dStack_338 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) (if_statement "if (bVar1) {\n                    dStack_338 = 0.0;\n                  }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                    dStack_338 = 0.0;\n                  }" { (expression_statement "dStack_338 = 0.0;" (assignment_expression "dStack_338 = 0.0" identifier = number_literal) ;) })) })) }))) (labeled_statement "LAB_000a46d8:\n              uVar28 = uStack_2f8;" statement_identifier : (expression_statement "uVar28 = uStack_2f8;" (assignment_expression "uVar28 = uStack_2f8" identifier = identifier) ;)) (expression_statement "iVar30 = uStack_328 - uStack_2d4;" (assignment_expression "iVar30 = uStack_328 - uStack_2d4" identifier = (binary_expression "uStack_328 - uStack_2d4" identifier - identifier)) ;) (expression_statement "iVar12 = *(int *)(iStack_324 + 0x1a8);" (assignment_expression "iVar12 = *(int *)(iStack_324 + 0x1a8)" identifier = (pointer_expression "*(int *)(iStack_324 + 0x1a8)" * (cast_expression "(int *)(iStack_324 + 0x1a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x1a8)" ( (binary_expression "iStack_324 + 0x1a8" identifier + number_literal) ))))) ;) (if_statement "if (iVar12 == 0) {\n                puVar10 = (undefined4 *)(iStack_324 + 0x48);\n                puVar2 = auStack_298;\n                do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0x98));\n                uVar5 = puVar11[5];\n                puVar17[4] = *puVar10;\n                puVar17[5] = uVar5;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uStack_2f8 + *(int *)(iVar12 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar31 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n                puVar10 = (undefined4 *)(iStack_324 + 0x48);\n                puVar2 = auStack_298;\n                do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0x98));\n                uVar5 = puVar11[5];\n                puVar17[4] = *puVar10;\n                puVar17[5] = uVar5;\n              }" { (expression_statement "puVar10 = (undefined4 *)(iStack_324 + 0x48);" (assignment_expression "puVar10 = (undefined4 *)(iStack_324 + 0x48)" identifier = (cast_expression "(undefined4 *)(iStack_324 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x48)" ( (binary_expression "iStack_324 + 0x48" identifier + number_literal) )))) ;) (expression_statement "puVar2 = auStack_298;" (assignment_expression "puVar2 = auStack_298" identifier = identifier) ;) (do_statement "do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0x98));" do (compound_statement "{\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                }" { (expression_statement "puVar17 = puVar2;" (assignment_expression "puVar17 = puVar2" identifier = identifier) ;) (expression_statement "puVar11 = puVar10;" (assignment_expression "puVar11 = puVar10" identifier = identifier) ;) (expression_statement "uVar29 = puVar11[1];" (assignment_expression "uVar29 = puVar11[1]" identifier = (subscript_expression "puVar11[1]" identifier [ number_literal ])) ;) (expression_statement "uVar27 = puVar11[2];" (assignment_expression "uVar27 = puVar11[2]" identifier = (subscript_expression "puVar11[2]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = puVar11[3];" (assignment_expression "uVar5 = puVar11[3]" identifier = (subscript_expression "puVar11[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar17 = *puVar11;" (assignment_expression "*puVar17 = *puVar11" (pointer_expression "*puVar17" * identifier) = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "puVar17[1] = uVar29;" (assignment_expression "puVar17[1] = uVar29" (subscript_expression "puVar17[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[2] = uVar27;" (assignment_expression "puVar17[2] = uVar27" (subscript_expression "puVar17[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[3] = uVar5;" (assignment_expression "puVar17[3] = uVar5" (subscript_expression "puVar17[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10 = puVar11 + 4;" (assignment_expression "puVar10 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) (expression_statement "puVar2 = puVar17 + 4;" (assignment_expression "puVar2 = puVar17 + 4" identifier = (binary_expression "puVar17 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar10 != (undefined4 *)(iStack_324 + 0x98))" ( (binary_expression "puVar10 != (undefined4 *)(iStack_324 + 0x98)" identifier != (cast_expression "(undefined4 *)(iStack_324 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x98)" ( (binary_expression "iStack_324 + 0x98" identifier + number_literal) )))) )) ;) (expression_statement "uVar5 = puVar11[5];" (assignment_expression "uVar5 = puVar11[5]" identifier = (subscript_expression "puVar11[5]" identifier [ number_literal ])) ;) (expression_statement "puVar17[4] = *puVar10;" (assignment_expression "puVar17[4] = *puVar10" (subscript_expression "puVar17[4]" identifier [ number_literal ]) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "puVar17[5] = uVar5;" (assignment_expression "puVar17[5] = uVar5" (subscript_expression "puVar17[5]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uStack_2f8 + *(int *)(iVar12 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar31 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }" else (compound_statement "{\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uStack_2f8 + *(int *)(iVar12 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar31 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }" { (expression_statement "uStack_354 = uStack_2d0;" (assignment_expression "uStack_354 = uStack_2d0" identifier = identifier) ;) (expression_statement "puStack_358 = auStack_298;" (assignment_expression "puStack_358 = auStack_298" identifier = identifier) ;) (expression_statement "(**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uStack_2f8 + *(int *)(iVar12 + 0x29c));" (call_expression "(**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uStack_2f8 + *(int *)(iVar12 + 0x29c))" (parenthesized_expression "(**(code **)(puVar38 + -0x747c))" ( (pointer_expression "**(code **)(puVar38 + -0x747c)" * (pointer_expression "*(code **)(puVar38 + -0x747c)" * (cast_expression "(code **)(puVar38 + -0x747c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + -0x747c)" ( (binary_expression "puVar38 + -0x747c" identifier + number_literal) ))))) )) (argument_list "(iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uStack_2f8 + *(int *)(iVar12 + 0x29c))" ( identifier , number_literal , (binary_expression "iVar30 + *(int *)(iVar12 + 0x298)" identifier + (pointer_expression "*(int *)(iVar12 + 0x298)" * (cast_expression "(int *)(iVar12 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x298)" ( (binary_expression "iVar12 + 0x298" identifier + number_literal) ))))) , (binary_expression "uStack_2f8 + *(int *)(iVar12 + 0x29c)" identifier + (pointer_expression "*(int *)(iVar12 + 0x29c)" * (cast_expression "(int *)(iVar12 + 0x29c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x29c)" ( (binary_expression "iVar12 + 0x29c" identifier + number_literal) ))))) ))) ;) (expression_statement "uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);" (assignment_expression "uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c)" identifier = (pointer_expression "*(undefined4 *)(iStack_324 + 0x39c)" * (cast_expression "(undefined4 *)(iStack_324 + 0x39c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x39c)" ( (binary_expression "iStack_324 + 0x39c" identifier + number_literal) ))))) ;) (expression_statement "pdVar31 = (double *)(iStack_324 + 0x398);" (assignment_expression "pdVar31 = (double *)(iStack_324 + 0x398)" identifier = (cast_expression "(double *)(iStack_324 + 0x398)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x398)" ( (binary_expression "iStack_324 + 0x398" identifier + number_literal) )))) ;) (expression_statement "uStack_2e8 = *(uint *)pdVar31 & 0x7fffffff;" (assignment_expression "uStack_2e8 = *(uint *)pdVar31 & 0x7fffffff" identifier = (binary_expression "*(uint *)pdVar31 & 0x7fffffff" (pointer_expression "*(uint *)pdVar31" * (cast_expression "(uint *)pdVar31" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal)) ;) (expression_statement "puVar38 = puStack_350;" (assignment_expression "puVar38 = puStack_350" identifier = identifier) ;) (if_statement "if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }" if (parenthesized_expression "(*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31))" ( (binary_expression "*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)" (pointer_expression "*(double *)(iVar4 + 0x43c8)" * (cast_expression "(double *)(iVar4 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x43c8)" ( (binary_expression "iVar4 + 0x43c8" identifier + number_literal) )))) <= (call_expression "ABS(*pdVar31)" identifier (argument_list "(*pdVar31)" ( (pointer_expression "*pdVar31" * identifier) )))) )) (compound_statement "{\n                  dStack_250 = dStack_250 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }" { (expression_statement "dStack_250 = dStack_250 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);" (assignment_expression "dStack_250 = dStack_250 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" identifier = (binary_expression "dStack_250 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" (binary_expression "dStack_250 *\n                               *pdVar31" identifier * (pointer_expression "*pdVar31" * identifier)) * (pointer_expression "*(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" * (cast_expression "(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" ( (binary_expression "*(int *)(puStack_350 + -0x7fd0) + 0x4410" (pointer_expression "*(int *)(puStack_350 + -0x7fd0)" * (cast_expression "(int *)(puStack_350 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_350 + -0x7fd0)" ( (binary_expression "puStack_350 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) })) }))) (if_statement "if (*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0) {\n                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }" if (parenthesized_expression "(*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0)" ( (binary_expression "*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0" (pointer_expression "*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34)" * (cast_expression "(int *)(*(int *)(pdVar18 + 0x5a) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar18 + 0x5a) + 0x34)" ( (binary_expression "*(int *)(pdVar18 + 0x5a) + 0x34" (pointer_expression "*(int *)(pdVar18 + 0x5a)" * (cast_expression "(int *)(pdVar18 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar18 + 0x5a)" ( (binary_expression "pdVar18 + 0x5a" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);\n              }" { (expression_statement "fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);" (assignment_expression "fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8)" identifier = (pointer_expression "*(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8)" * (cast_expression "(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + -0x7fd0) + 0x4aa8)" ( (binary_expression "*(int *)(puVar38 + -0x7fd0) + 0x4aa8" (pointer_expression "*(int *)(puVar38 + -0x7fd0)" * (cast_expression "(int *)(puVar38 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + -0x7fd0)" ( (binary_expression "puVar38 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }" else (compound_statement "{\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }" { (expression_statement "fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);" (assignment_expression "fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4)" identifier = (pointer_expression "*(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4)" * (cast_expression "(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4)" ( (binary_expression "iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4" identifier + (binary_expression "*(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4" (pointer_expression "*(int *)(*(int *)(pdVar18 + 0x5a) + 0x38)" * (cast_expression "(int *)(*(int *)(pdVar18 + 0x5a) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar18 + 0x5a) + 0x38)" ( (binary_expression "*(int *)(pdVar18 + 0x5a) + 0x38" (pointer_expression "*(int *)(pdVar18 + 0x5a)" * (cast_expression "(int *)(pdVar18 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar18 + 0x5a)" ( (binary_expression "pdVar18 + 0x5a" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) }))) (expression_statement "dVar43 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);" (assignment_expression "dVar43 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410)" identifier = (binary_expression "dStack_340 * dStack_250 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410)" (binary_expression "dStack_340 * dStack_250" identifier * identifier) * (pointer_expression "*(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410)" * (cast_expression "(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + -0x7fd0) + 0x4410)" ( (binary_expression "*(int *)(puVar38 + -0x7fd0) + 0x4410" (pointer_expression "*(int *)(puVar38 + -0x7fd0)" * (cast_expression "(int *)(puVar38 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + -0x7fd0)" ( (binary_expression "puVar38 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "dVar42 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);" (assignment_expression "dVar42 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410)" identifier = (binary_expression "(double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410)" (cast_expression "(double)fVar45" ( (type_descriptor "double" primitive_type) ) identifier) * (pointer_expression "*(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410)" * (cast_expression "(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + -0x7fd0) + 0x4410)" ( (binary_expression "*(int *)(puVar38 + -0x7fd0) + 0x4410" (pointer_expression "*(int *)(puVar38 + -0x7fd0)" * (cast_expression "(int *)(puVar38 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + -0x7fd0)" ( (binary_expression "puVar38 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "dVar43 = (dVar43 + dVar42) - dVar43 * dVar42;" (assignment_expression "dVar43 = (dVar43 + dVar42) - dVar43 * dVar42" identifier = (binary_expression "(dVar43 + dVar42) - dVar43 * dVar42" (parenthesized_expression "(dVar43 + dVar42)" ( (binary_expression "dVar43 + dVar42" identifier + identifier) )) - (binary_expression "dVar43 * dVar42" identifier * identifier))) ;) (expression_statement "in_f30_31 = dVar41;" (assignment_expression "in_f30_31 = dVar41" identifier = identifier) ;) (if_statement "if (0 < *(int *)(pdVar18 + 0x58)) {\n                iVar51 = 0;\n                iVar12 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar51);\n                  uStack_348 = dVar43;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7370 + uVar9 * 4))\n                    )();\n                    return;\n                  }\n                  iVar12 = iVar12 + 1;\n                  iVar51 = iVar51 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar12 < *(int *)(pdVar18 + 0x58));\n              }" if (parenthesized_expression "(0 < *(int *)(pdVar18 + 0x58))" ( (binary_expression "0 < *(int *)(pdVar18 + 0x58)" number_literal < (pointer_expression "*(int *)(pdVar18 + 0x58)" * (cast_expression "(int *)(pdVar18 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar18 + 0x58)" ( (binary_expression "pdVar18 + 0x58" identifier + number_literal) ))))) )) (compound_statement "{\n                iVar51 = 0;\n                iVar12 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar51);\n                  uStack_348 = dVar43;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7370 + uVar9 * 4))\n                    )();\n                    return;\n                  }\n                  iVar12 = iVar12 + 1;\n                  iVar51 = iVar51 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar12 < *(int *)(pdVar18 + 0x58));\n              }" { (expression_statement "iVar51 = 0;" (assignment_expression "iVar51 = 0" identifier = number_literal) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "in_f26_27 = 0.0;" (assignment_expression "in_f26_27 = 0.0" identifier = number_literal) ;) (expression_statement "in_f20_21 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "in_f20_21 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) (do_statement "do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar51);\n                  uStack_348 = dVar43;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7370 + uVar9 * 4))\n                    )();\n                    return;\n                  }\n                  iVar12 = iVar12 + 1;\n                  iVar51 = iVar51 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar12 < *(int *)(pdVar18 + 0x58));" do (compound_statement "{\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar51);\n                  uStack_348 = dVar43;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7370 + uVar9 * 4))\n                    )();\n                    return;\n                  }\n                  iVar12 = iVar12 + 1;\n                  iVar51 = iVar51 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                }" { (expression_statement "uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar51);" (assignment_expression "uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar51)" identifier = (pointer_expression "*(uint *)(*(int *)(pdVar18 + 0x5a) + iVar51)" * (cast_expression "(uint *)(*(int *)(pdVar18 + 0x5a) + iVar51)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar18 + 0x5a) + iVar51)" ( (binary_expression "*(int *)(pdVar18 + 0x5a) + iVar51" (pointer_expression "*(int *)(pdVar18 + 0x5a)" * (cast_expression "(int *)(pdVar18 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar18 + 0x5a)" ( (binary_expression "pdVar18 + 0x5a" identifier + number_literal) )))) + identifier) ))))) ;) (expression_statement "uStack_348 = dVar43;" (assignment_expression "uStack_348 = dVar43" identifier = identifier) ;) (if_statement "if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7370 + uVar9 * 4))\n                    )();\n                    return;\n                  }" if (parenthesized_expression "((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5))" ( (binary_expression "(*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)" (parenthesized_expression "(*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0)" ( (binary_expression "*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0" (pointer_expression "*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4)" * (cast_expression "(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4)" ( (binary_expression "*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4" (binary_expression "*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc" (pointer_expression "*(int *)(pdVar18 + 0x5a)" * (cast_expression "(int *)(pdVar18 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar18 + 0x5a)" ( (binary_expression "pdVar18 + 0x5a" identifier + number_literal) )))) + (binary_expression "uVar9 * 0xc" identifier * number_literal)) + number_literal) )))) != number_literal) )) && (parenthesized_expression "(uVar9 < 5)" ( (binary_expression "uVar9 < 5" identifier < number_literal) ))) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7370 + uVar9 * 4))\n                    )();\n                    return;\n                  }" { comment comment (expression_statement "(*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7370 + uVar9 * 4))\n                    )();" (call_expression "(*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7370 + uVar9 * 4))\n                    )()" (parenthesized_expression "(*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7370 + uVar9 * 4))\n                    )" ( (pointer_expression "*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7370 + uVar9 * 4))" * (cast_expression "(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7370 + uVar9 * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7370 + uVar9 * 4))" ( (binary_expression "puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7370 + uVar9 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7370 + uVar9 * 4)" * (cast_expression "(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7370 + uVar9 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + -0x7fcc) + 0x7370 + uVar9 * 4)" ( (binary_expression "*(int *)(puVar38 + -0x7fcc) + 0x7370 + uVar9 * 4" (binary_expression "*(int *)(puVar38 + -0x7fcc) + 0x7370" (pointer_expression "*(int *)(puVar38 + -0x7fcc)" * (cast_expression "(int *)(puVar38 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + -0x7fcc)" ( (binary_expression "puVar38 + -0x7fcc" identifier + number_literal) )))) + number_literal) + (binary_expression "uVar9 * 4" identifier * number_literal)) ))))) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "iVar51 = iVar51 + 0xc;" (assignment_expression "iVar51 = iVar51 + 0xc" identifier = (binary_expression "iVar51 + 0xc" identifier + number_literal)) ;) (expression_statement "in_f22_23 = in_f20_21;" (assignment_expression "in_f22_23 = in_f20_21" identifier = identifier) ;) (expression_statement "in_f24_25 = in_f20_21;" (assignment_expression "in_f24_25 = in_f20_21" identifier = identifier) ;) (expression_statement "in_f30_31 = in_f20_21;" (assignment_expression "in_f30_31 = in_f20_21" identifier = identifier) ;) }) while (parenthesized_expression "(iVar12 < *(int *)(pdVar18 + 0x58))" ( (binary_expression "iVar12 < *(int *)(pdVar18 + 0x58)" identifier < (pointer_expression "*(int *)(pdVar18 + 0x58)" * (cast_expression "(int *)(pdVar18 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar18 + 0x58)" ( (binary_expression "pdVar18 + 0x58" identifier + number_literal) ))))) )) ;) })) (expression_statement "iVar12 = *(int *)(iStack_324 + 0x1ac);" (assignment_expression "iVar12 = *(int *)(iStack_324 + 0x1ac)" identifier = (pointer_expression "*(int *)(iStack_324 + 0x1ac)" * (cast_expression "(int *)(iStack_324 + 0x1ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x1ac)" ( (binary_expression "iStack_324 + 0x1ac" identifier + number_literal) ))))) ;) (if_statement "if (iVar12 == 0) {\n                puVar10 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar2 = auStack_240;\n                do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar5 = puVar11[5];\n                puVar17[4] = *puVar10;\n                puVar17[5] = uVar5;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uVar28 + *(int *)(iVar12 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar31 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n                puVar10 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar2 = auStack_240;\n                do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar5 = puVar11[5];\n                puVar17[4] = *puVar10;\n                puVar17[5] = uVar5;\n              }" { (expression_statement "puVar10 = (undefined4 *)(iStack_324 + 0xa0);" (assignment_expression "puVar10 = (undefined4 *)(iStack_324 + 0xa0)" identifier = (cast_expression "(undefined4 *)(iStack_324 + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0xa0)" ( (binary_expression "iStack_324 + 0xa0" identifier + number_literal) )))) ;) (expression_statement "puVar2 = auStack_240;" (assignment_expression "puVar2 = auStack_240" identifier = identifier) ;) (do_statement "do {\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                } while (puVar10 != (undefined4 *)(iStack_324 + 0xf0));" do (compound_statement "{\n                  puVar17 = puVar2;\n                  puVar11 = puVar10;\n                  uVar29 = puVar11[1];\n                  uVar27 = puVar11[2];\n                  uVar5 = puVar11[3];\n                  *puVar17 = *puVar11;\n                  puVar17[1] = uVar29;\n                  puVar17[2] = uVar27;\n                  puVar17[3] = uVar5;\n                  puVar10 = puVar11 + 4;\n                  puVar2 = puVar17 + 4;\n                }" { (expression_statement "puVar17 = puVar2;" (assignment_expression "puVar17 = puVar2" identifier = identifier) ;) (expression_statement "puVar11 = puVar10;" (assignment_expression "puVar11 = puVar10" identifier = identifier) ;) (expression_statement "uVar29 = puVar11[1];" (assignment_expression "uVar29 = puVar11[1]" identifier = (subscript_expression "puVar11[1]" identifier [ number_literal ])) ;) (expression_statement "uVar27 = puVar11[2];" (assignment_expression "uVar27 = puVar11[2]" identifier = (subscript_expression "puVar11[2]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = puVar11[3];" (assignment_expression "uVar5 = puVar11[3]" identifier = (subscript_expression "puVar11[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar17 = *puVar11;" (assignment_expression "*puVar17 = *puVar11" (pointer_expression "*puVar17" * identifier) = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "puVar17[1] = uVar29;" (assignment_expression "puVar17[1] = uVar29" (subscript_expression "puVar17[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[2] = uVar27;" (assignment_expression "puVar17[2] = uVar27" (subscript_expression "puVar17[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[3] = uVar5;" (assignment_expression "puVar17[3] = uVar5" (subscript_expression "puVar17[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10 = puVar11 + 4;" (assignment_expression "puVar10 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) (expression_statement "puVar2 = puVar17 + 4;" (assignment_expression "puVar2 = puVar17 + 4" identifier = (binary_expression "puVar17 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar10 != (undefined4 *)(iStack_324 + 0xf0))" ( (binary_expression "puVar10 != (undefined4 *)(iStack_324 + 0xf0)" identifier != (cast_expression "(undefined4 *)(iStack_324 + 0xf0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0xf0)" ( (binary_expression "iStack_324 + 0xf0" identifier + number_literal) )))) )) ;) (expression_statement "uVar5 = puVar11[5];" (assignment_expression "uVar5 = puVar11[5]" identifier = (subscript_expression "puVar11[5]" identifier [ number_literal ])) ;) (expression_statement "puVar17[4] = *puVar10;" (assignment_expression "puVar17[4] = *puVar10" (subscript_expression "puVar17[4]" identifier [ number_literal ]) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "puVar17[5] = uVar5;" (assignment_expression "puVar17[5] = uVar5" (subscript_expression "puVar17[5]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uVar28 + *(int *)(iVar12 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar31 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }" else (compound_statement "{\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uVar28 + *(int *)(iVar12 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar31 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar31 & 0x7fffffff;\n                puVar38 = puStack_350;\n                if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }" { (expression_statement "uStack_354 = uStack_2d0;" (assignment_expression "uStack_354 = uStack_2d0" identifier = identifier) ;) (expression_statement "puStack_358 = auStack_240;" (assignment_expression "puStack_358 = auStack_240" identifier = identifier) ;) (expression_statement "(**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uVar28 + *(int *)(iVar12 + 0x29c));" (call_expression "(**(code **)(puVar38 + -0x747c))\n                          (iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uVar28 + *(int *)(iVar12 + 0x29c))" (parenthesized_expression "(**(code **)(puVar38 + -0x747c))" ( (pointer_expression "**(code **)(puVar38 + -0x747c)" * (pointer_expression "*(code **)(puVar38 + -0x747c)" * (cast_expression "(code **)(puVar38 + -0x747c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + -0x747c)" ( (binary_expression "puVar38 + -0x747c" identifier + number_literal) ))))) )) (argument_list "(iVar12,6,iVar30 + *(int *)(iVar12 + 0x298),\n                           uVar28 + *(int *)(iVar12 + 0x29c))" ( identifier , number_literal , (binary_expression "iVar30 + *(int *)(iVar12 + 0x298)" identifier + (pointer_expression "*(int *)(iVar12 + 0x298)" * (cast_expression "(int *)(iVar12 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x298)" ( (binary_expression "iVar12 + 0x298" identifier + number_literal) ))))) , (binary_expression "uVar28 + *(int *)(iVar12 + 0x29c)" identifier + (pointer_expression "*(int *)(iVar12 + 0x29c)" * (cast_expression "(int *)(iVar12 + 0x29c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x29c)" ( (binary_expression "iVar12 + 0x29c" identifier + number_literal) ))))) ))) ;) (expression_statement "uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);" (assignment_expression "uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4)" identifier = (pointer_expression "*(undefined4 *)(iStack_324 + 0x3a4)" * (cast_expression "(undefined4 *)(iStack_324 + 0x3a4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x3a4)" ( (binary_expression "iStack_324 + 0x3a4" identifier + number_literal) ))))) ;) (expression_statement "pdVar31 = (double *)(iStack_324 + 0x3a0);" (assignment_expression "pdVar31 = (double *)(iStack_324 + 0x3a0)" identifier = (cast_expression "(double *)(iStack_324 + 0x3a0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x3a0)" ( (binary_expression "iStack_324 + 0x3a0" identifier + number_literal) )))) ;) (expression_statement "uStack_2e0 = *(uint *)pdVar31 & 0x7fffffff;" (assignment_expression "uStack_2e0 = *(uint *)pdVar31 & 0x7fffffff" identifier = (binary_expression "*(uint *)pdVar31 & 0x7fffffff" (pointer_expression "*(uint *)pdVar31" * (cast_expression "(uint *)pdVar31" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal)) ;) (expression_statement "puVar38 = puStack_350;" (assignment_expression "puVar38 = puStack_350" identifier = identifier) ;) (if_statement "if (*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }" if (parenthesized_expression "(*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31))" ( (binary_expression "*(double *)(iVar4 + 0x43c8) <= ABS(*pdVar31)" (pointer_expression "*(double *)(iVar4 + 0x43c8)" * (cast_expression "(double *)(iVar4 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x43c8)" ( (binary_expression "iVar4 + 0x43c8" identifier + number_literal) )))) <= (call_expression "ABS(*pdVar31)" identifier (argument_list "(*pdVar31)" ( (pointer_expression "*pdVar31" * identifier) )))) )) (compound_statement "{\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }" { (expression_statement "dStack_1f8 = dStack_1f8 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);" (assignment_expression "dStack_1f8 = dStack_1f8 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" identifier = (binary_expression "dStack_1f8 *\n                               *pdVar31 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" (binary_expression "dStack_1f8 *\n                               *pdVar31" identifier * (pointer_expression "*pdVar31" * identifier)) * (pointer_expression "*(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" * (cast_expression "(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" ( (binary_expression "*(int *)(puStack_350 + -0x7fd0) + 0x4410" (pointer_expression "*(int *)(puStack_350 + -0x7fd0)" * (cast_expression "(int *)(puStack_350 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_350 + -0x7fd0)" ( (binary_expression "puStack_350 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) })) }))) (if_statement "if (*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0) {\n                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }" if (parenthesized_expression "(*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0)" ( (binary_expression "*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34) == 0" (pointer_expression "*(int *)(*(int *)(pdVar18 + 0x5a) + 0x34)" * (cast_expression "(int *)(*(int *)(pdVar18 + 0x5a) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar18 + 0x5a) + 0x34)" ( (binary_expression "*(int *)(pdVar18 + 0x5a) + 0x34" (pointer_expression "*(int *)(pdVar18 + 0x5a)" * (cast_expression "(int *)(pdVar18 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar18 + 0x5a)" ( (binary_expression "pdVar18 + 0x5a" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n                fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);\n              }" { (expression_statement "fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8);" (assignment_expression "fVar45 = *(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8)" identifier = (pointer_expression "*(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8)" * (cast_expression "(float *)(*(int *)(puVar38 + -0x7fd0) + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + -0x7fd0) + 0x4aa8)" ( (binary_expression "*(int *)(puVar38 + -0x7fd0) + 0x4aa8" (pointer_expression "*(int *)(puVar38 + -0x7fd0)" * (cast_expression "(int *)(puVar38 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + -0x7fd0)" ( (binary_expression "puVar38 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }" else (compound_statement "{\n                fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);\n              }" { (expression_statement "fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4);" (assignment_expression "fVar45 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4)" identifier = (pointer_expression "*(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4)" * (cast_expression "(float *)(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4)" ( (binary_expression "iStack_308 + *(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4" identifier + (binary_expression "*(int *)(*(int *)(pdVar18 + 0x5a) + 0x38) * 4" (pointer_expression "*(int *)(*(int *)(pdVar18 + 0x5a) + 0x38)" * (cast_expression "(int *)(*(int *)(pdVar18 + 0x5a) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar18 + 0x5a) + 0x38)" ( (binary_expression "*(int *)(pdVar18 + 0x5a) + 0x38" (pointer_expression "*(int *)(pdVar18 + 0x5a)" * (cast_expression "(int *)(pdVar18 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar18 + 0x5a)" ( (binary_expression "pdVar18 + 0x5a" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) }))) (expression_statement "dVar41 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);" (assignment_expression "dVar41 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410)" identifier = (binary_expression "dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410)" (binary_expression "dStack_338 * dStack_1f8" identifier * identifier) * (pointer_expression "*(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410)" * (cast_expression "(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + -0x7fd0) + 0x4410)" ( (binary_expression "*(int *)(puVar38 + -0x7fd0) + 0x4410" (pointer_expression "*(int *)(puVar38 + -0x7fd0)" * (cast_expression "(int *)(puVar38 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + -0x7fd0)" ( (binary_expression "puVar38 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "dVar43 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410);" (assignment_expression "dVar43 = (double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410)" identifier = (binary_expression "(double)fVar45 * *(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410)" (cast_expression "(double)fVar45" ( (type_descriptor "double" primitive_type) ) identifier) * (pointer_expression "*(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410)" * (cast_expression "(double *)(*(int *)(puVar38 + -0x7fd0) + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + -0x7fd0) + 0x4410)" ( (binary_expression "*(int *)(puVar38 + -0x7fd0) + 0x4410" (pointer_expression "*(int *)(puVar38 + -0x7fd0)" * (cast_expression "(int *)(puVar38 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + -0x7fd0)" ( (binary_expression "puVar38 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "dVar41 = (dVar41 + dVar43) - dVar41 * dVar43;" (assignment_expression "dVar41 = (dVar41 + dVar43) - dVar41 * dVar43" identifier = (binary_expression "(dVar41 + dVar43) - dVar41 * dVar43" (parenthesized_expression "(dVar41 + dVar43)" ( (binary_expression "dVar41 + dVar43" identifier + identifier) )) - (binary_expression "dVar41 * dVar43" identifier * identifier))) ;) (expression_statement "iVar12 = *(int *)(pdVar18 + 0x58);" (assignment_expression "iVar12 = *(int *)(pdVar18 + 0x58)" identifier = (pointer_expression "*(int *)(pdVar18 + 0x58)" * (cast_expression "(int *)(pdVar18 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar18 + 0x58)" ( (binary_expression "pdVar18 + 0x58" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar12) {\n                iVar14 = 0;\n                iVar51 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar14);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7384 + uVar9 * 4))\n                    )(in_f20_21,*(undefined8 *)(*(int *)(puVar38 + -0x7fd0) + 0x4a48));\n                    return;\n                  }\n                  iVar51 = iVar51 + 1;\n                  iVar12 = *(int *)(pdVar18 + 0x58);\n                  iVar14 = iVar14 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar51 < iVar12);\n              }" if (parenthesized_expression "(0 < iVar12)" ( (binary_expression "0 < iVar12" number_literal < identifier) )) (compound_statement "{\n                iVar14 = 0;\n                iVar51 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar14);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7384 + uVar9 * 4))\n                    )(in_f20_21,*(undefined8 *)(*(int *)(puVar38 + -0x7fd0) + 0x4a48));\n                    return;\n                  }\n                  iVar51 = iVar51 + 1;\n                  iVar12 = *(int *)(pdVar18 + 0x58);\n                  iVar14 = iVar14 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar51 < iVar12);\n              }" { (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (expression_statement "iVar51 = 0;" (assignment_expression "iVar51 = 0" identifier = number_literal) ;) (expression_statement "in_f30_31 = 0.0;" (assignment_expression "in_f30_31 = 0.0" identifier = number_literal) ;) (expression_statement "in_f20_21 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "in_f20_21 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) (do_statement "do {\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar14);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7384 + uVar9 * 4))\n                    )(in_f20_21,*(undefined8 *)(*(int *)(puVar38 + -0x7fd0) + 0x4a48));\n                    return;\n                  }\n                  iVar51 = iVar51 + 1;\n                  iVar12 = *(int *)(pdVar18 + 0x58);\n                  iVar14 = iVar14 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar51 < iVar12);" do (compound_statement "{\n                  uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar14);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7384 + uVar9 * 4))\n                    )(in_f20_21,*(undefined8 *)(*(int *)(puVar38 + -0x7fd0) + 0x4a48));\n                    return;\n                  }\n                  iVar51 = iVar51 + 1;\n                  iVar12 = *(int *)(pdVar18 + 0x58);\n                  iVar14 = iVar14 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                }" { (expression_statement "uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar14);" (assignment_expression "uVar9 = *(uint *)(*(int *)(pdVar18 + 0x5a) + iVar14)" identifier = (pointer_expression "*(uint *)(*(int *)(pdVar18 + 0x5a) + iVar14)" * (cast_expression "(uint *)(*(int *)(pdVar18 + 0x5a) + iVar14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar18 + 0x5a) + iVar14)" ( (binary_expression "*(int *)(pdVar18 + 0x5a) + iVar14" (pointer_expression "*(int *)(pdVar18 + 0x5a)" * (cast_expression "(int *)(pdVar18 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar18 + 0x5a)" ( (binary_expression "pdVar18 + 0x5a" identifier + number_literal) )))) + identifier) ))))) ;) (expression_statement "uStack_348 = dVar41;" (assignment_expression "uStack_348 = dVar41" identifier = identifier) ;) (if_statement "if ((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)) {\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7384 + uVar9 * 4))\n                    )(in_f20_21,*(undefined8 *)(*(int *)(puVar38 + -0x7fd0) + 0x4a48));\n                    return;\n                  }" if (parenthesized_expression "((*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5))" ( (binary_expression "(*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0) && (uVar9 < 5)" (parenthesized_expression "(*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0)" ( (binary_expression "*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4) != 0" (pointer_expression "*(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4)" * (cast_expression "(int *)(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4)" ( (binary_expression "*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc + 4" (binary_expression "*(int *)(pdVar18 + 0x5a) + uVar9 * 0xc" (pointer_expression "*(int *)(pdVar18 + 0x5a)" * (cast_expression "(int *)(pdVar18 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar18 + 0x5a)" ( (binary_expression "pdVar18 + 0x5a" identifier + number_literal) )))) + (binary_expression "uVar9 * 0xc" identifier * number_literal)) + number_literal) )))) != number_literal) )) && (parenthesized_expression "(uVar9 < 5)" ( (binary_expression "uVar9 < 5" identifier < number_literal) ))) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                    (*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7384 + uVar9 * 4))\n                    )(in_f20_21,*(undefined8 *)(*(int *)(puVar38 + -0x7fd0) + 0x4a48));\n                    return;\n                  }" { comment comment (expression_statement "(*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7384 + uVar9 * 4))\n                    )(in_f20_21,*(undefined8 *)(*(int *)(puVar38 + -0x7fd0) + 0x4a48));" (call_expression "(*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7384 + uVar9 * 4))\n                    )(in_f20_21,*(undefined8 *)(*(int *)(puVar38 + -0x7fd0) + 0x4a48))" (parenthesized_expression "(*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7384 + uVar9 * 4))\n                    )" ( (pointer_expression "*(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7384 + uVar9 * 4))" * (cast_expression "(code *)(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7384 + uVar9 * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7384 + uVar9 * 4))" ( (binary_expression "puVar38 + *(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7384 + uVar9 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7384 + uVar9 * 4)" * (cast_expression "(int *)(*(int *)(puVar38 + -0x7fcc) + 0x7384 + uVar9 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + -0x7fcc) + 0x7384 + uVar9 * 4)" ( (binary_expression "*(int *)(puVar38 + -0x7fcc) + 0x7384 + uVar9 * 4" (binary_expression "*(int *)(puVar38 + -0x7fcc) + 0x7384" (pointer_expression "*(int *)(puVar38 + -0x7fcc)" * (cast_expression "(int *)(puVar38 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + -0x7fcc)" ( (binary_expression "puVar38 + -0x7fcc" identifier + number_literal) )))) + number_literal) + (binary_expression "uVar9 * 4" identifier * number_literal)) ))))) )))) )) (argument_list "(in_f20_21,*(undefined8 *)(*(int *)(puVar38 + -0x7fd0) + 0x4a48))" ( identifier , (pointer_expression "*(undefined8 *)(*(int *)(puVar38 + -0x7fd0) + 0x4a48)" * (cast_expression "(undefined8 *)(*(int *)(puVar38 + -0x7fd0) + 0x4a48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar38 + -0x7fd0) + 0x4a48)" ( (binary_expression "*(int *)(puVar38 + -0x7fd0) + 0x4a48" (pointer_expression "*(int *)(puVar38 + -0x7fd0)" * (cast_expression "(int *)(puVar38 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + -0x7fd0)" ( (binary_expression "puVar38 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))) ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar51 = iVar51 + 1;" (assignment_expression "iVar51 = iVar51 + 1" identifier = (binary_expression "iVar51 + 1" identifier + number_literal)) ;) (expression_statement "iVar12 = *(int *)(pdVar18 + 0x58);" (assignment_expression "iVar12 = *(int *)(pdVar18 + 0x58)" identifier = (pointer_expression "*(int *)(pdVar18 + 0x58)" * (cast_expression "(int *)(pdVar18 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar18 + 0x58)" ( (binary_expression "pdVar18 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "iVar14 = iVar14 + 0xc;" (assignment_expression "iVar14 = iVar14 + 0xc" identifier = (binary_expression "iVar14 + 0xc" identifier + number_literal)) ;) (expression_statement "in_f22_23 = in_f20_21;" (assignment_expression "in_f22_23 = in_f20_21" identifier = identifier) ;) (expression_statement "in_f24_25 = in_f20_21;" (assignment_expression "in_f24_25 = in_f20_21" identifier = identifier) ;) (expression_statement "in_f26_27 = in_f20_21;" (assignment_expression "in_f26_27 = in_f20_21" identifier = identifier) ;) }) while (parenthesized_expression "(iVar51 < iVar12)" ( (binary_expression "iVar51 < iVar12" identifier < identifier) )) ;) })) (expression_statement "iStack_308 = iStack_308 + iVar12 * 4;" (assignment_expression "iStack_308 = iStack_308 + iVar12 * 4" identifier = (binary_expression "iStack_308 + iVar12 * 4" identifier + (binary_expression "iVar12 * 4" identifier * number_literal))) ;) (expression_statement "uStack_328 = uStack_328 + 1;" (assignment_expression "uStack_328 = uStack_328 + 1" identifier = (binary_expression "uStack_328 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s6 = pdVar18;" (assignment_expression "unaff_s6 = pdVar18" identifier = identifier) ;) }) while (parenthesized_expression "((int)uStack_328 <= (int)pdStack_2cc)" ( (binary_expression "(int)uStack_328 <= (int)pdStack_2cc" (cast_expression "(int)uStack_328" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pdStack_2cc" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "pdVar31 = pdStack_2a0;" (assignment_expression "pdVar31 = pdStack_2a0" identifier = identifier) ;) (expression_statement "iVar12 = (**(code **)(puVar38 + -0x73a0))(pdStack_2a0,uStack_2d0);" (assignment_expression "iVar12 = (**(code **)(puVar38 + -0x73a0))(pdStack_2a0,uStack_2d0)" identifier = (call_expression "(**(code **)(puVar38 + -0x73a0))(pdStack_2a0,uStack_2d0)" (parenthesized_expression "(**(code **)(puVar38 + -0x73a0))" ( (pointer_expression "**(code **)(puVar38 + -0x73a0)" * (pointer_expression "*(code **)(puVar38 + -0x73a0)" * (cast_expression "(code **)(puVar38 + -0x73a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + -0x73a0)" ( (binary_expression "puVar38 + -0x73a0" identifier + number_literal) ))))) )) (argument_list "(pdStack_2a0,uStack_2d0)" ( identifier , identifier )))) ;) (if_statement "if (iVar12 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }" { (expression_statement "*(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0" (pointer_expression "*(undefined4 *)((int)pdStack_2a8 + 0x2c)" * (cast_expression "(undefined4 *)((int)pdStack_2a8 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdStack_2a8 + 0x2c)" ( (binary_expression "(int)pdStack_2a8 + 0x2c" (cast_expression "(int)pdStack_2a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })) }))) })) (expression_statement "iStack_2f0 = iStack_2f0 + 1;" (assignment_expression "iStack_2f0 = iStack_2f0 + 1" identifier = (binary_expression "iStack_2f0 + 1" identifier + number_literal)) ;) (expression_statement "uStack_2f8 = uStack_2f8 + 1;" (assignment_expression "uStack_2f8 = uStack_2f8 + 1" identifier = (binary_expression "uStack_2f8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iStack_2f0 < (int)puStack_2a4)" ( (binary_expression "iStack_2f0 < (int)puStack_2a4" identifier < (cast_expression "(int)puStack_2a4" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (if_statement "if (iStack_1e4 == **(int **)(puStack_350 + -0x7668)) {\n    return;\n  }" if (parenthesized_expression "(iStack_1e4 == **(int **)(puStack_350 + -0x7668))" ( (binary_expression "iStack_1e4 == **(int **)(puStack_350 + -0x7668)" identifier == (pointer_expression "**(int **)(puStack_350 + -0x7668)" * (pointer_expression "*(int **)(puStack_350 + -0x7668)" * (cast_expression "(int **)(puStack_350 + -0x7668)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_350 + -0x7668)" ( (binary_expression "puStack_350 + -0x7668" identifier + number_literal) )))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar39 = *(code **)(puStack_350 + -0x7834);" (assignment_expression "pcVar39 = *(code **)(puStack_350 + -0x7834)" identifier = (pointer_expression "*(code **)(puStack_350 + -0x7834)" * (cast_expression "(code **)(puStack_350 + -0x7834)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_350 + -0x7834)" ( (binary_expression "puStack_350 + -0x7834" identifier + number_literal) ))))) ;) (expression_statement "pcVar40 = DrawPolygonPrimitive__omp_fn_2;" (assignment_expression "pcVar40 = DrawPolygonPrimitive__omp_fn_2" identifier = identifier) ;) (expression_statement "(*pcVar39)();" (call_expression "(*pcVar39)()" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_440 = pcVar39 + 0x35c870;" (assignment_expression "pcStack_440 = pcVar39 + 0x35c870" identifier = (binary_expression "pcVar39 + 0x35c870" identifier + number_literal)) ;) (expression_statement "iStack_3bc = **(int **)(pcVar39 + 0x355208);" (assignment_expression "iStack_3bc = **(int **)(pcVar39 + 0x355208)" identifier = (pointer_expression "**(int **)(pcVar39 + 0x355208)" * (pointer_expression "*(int **)(pcVar39 + 0x355208)" * (cast_expression "(int **)(pcVar39 + 0x355208)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x355208)" ( (binary_expression "pcVar39 + 0x355208" identifier + number_literal) )))))) ;) (expression_statement "uVar9 = *(uint *)(pdVar31 + 3);" (assignment_expression "uVar9 = *(uint *)(pdVar31 + 3)" identifier = (pointer_expression "*(uint *)(pdVar31 + 3)" * (cast_expression "(uint *)(pdVar31 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar31 + 3)" ( (binary_expression "pdVar31 + 3" identifier + number_literal) ))))) ;) (expression_statement "pdVar6 = pdVar31;" (assignment_expression "pdVar6 = pdVar31" identifier = identifier) ;) (expression_statement "uStack_428 = uVar9;" (assignment_expression "uStack_428 = uVar9" identifier = identifier) ;) (expression_statement "iStack_3b8 = iVar30;" (assignment_expression "iStack_3b8 = iVar30" identifier = identifier) ;) (expression_statement "uStack_3b4 = uVar28;" (assignment_expression "uStack_3b4 = uVar28" identifier = identifier) ;) (expression_statement "pdStack_3b0 = pdVar18;" (assignment_expression "pdStack_3b0 = pdVar18" identifier = identifier) ;) (expression_statement "pdStack_3ac = unaff_s3;" (assignment_expression "pdStack_3ac = unaff_s3" identifier = identifier) ;) (expression_statement "piStack_3a8 = unaff_s4;" (assignment_expression "piStack_3a8 = unaff_s4" identifier = identifier) ;) (expression_statement "pvStack_3a4 = this;" (assignment_expression "pvStack_3a4 = this" identifier = identifier) ;) (expression_statement "pdStack_3a0 = unaff_s6;" (assignment_expression "pdStack_3a0 = unaff_s6" identifier = identifier) ;) (expression_statement "uStack_39c = unaff_s7;" (assignment_expression "uStack_39c = unaff_s7" identifier = identifier) ;) (expression_statement "iStack_398 = iVar4;" (assignment_expression "iStack_398 = iVar4" identifier = identifier) ;) (expression_statement "pcStack_394 = pcVar40;" (assignment_expression "pcStack_394 = pcVar40" identifier = identifier) ;) (expression_statement "dStack_390 = in_f20_21;" (assignment_expression "dStack_390 = in_f20_21" identifier = identifier) ;) (expression_statement "dStack_388 = in_f22_23;" (assignment_expression "dStack_388 = in_f22_23" identifier = identifier) ;) (expression_statement "dStack_380 = in_f24_25;" (assignment_expression "dStack_380 = in_f24_25" identifier = identifier) ;) (expression_statement "dStack_378 = in_f26_27;" (assignment_expression "dStack_378 = in_f26_27" identifier = identifier) ;) (expression_statement "dStack_370 = in_f28_29;" (assignment_expression "dStack_370 = in_f28_29" identifier = identifier) ;) (expression_statement "iVar4 = (**(code **)(pcVar39 + 0x3558e4))();" (assignment_expression "iVar4 = (**(code **)(pcVar39 + 0x3558e4))()" identifier = (call_expression "(**(code **)(pcVar39 + 0x3558e4))()" (parenthesized_expression "(**(code **)(pcVar39 + 0x3558e4))" ( (pointer_expression "**(code **)(pcVar39 + 0x3558e4)" * (pointer_expression "*(code **)(pcVar39 + 0x3558e4)" * (cast_expression "(code **)(pcVar39 + 0x3558e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x3558e4)" ( (binary_expression "pcVar39 + 0x3558e4" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar12 = (**(code **)(pcStack_440 + -0x7390))();" (assignment_expression "iVar12 = (**(code **)(pcStack_440 + -0x7390))()" identifier = (call_expression "(**(code **)(pcStack_440 + -0x7390))()" (parenthesized_expression "(**(code **)(pcStack_440 + -0x7390))" ( (pointer_expression "**(code **)(pcStack_440 + -0x7390)" * (pointer_expression "*(code **)(pcStack_440 + -0x7390)" * (cast_expression "(code **)(pcStack_440 + -0x7390)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_440 + -0x7390)" ( (binary_expression "pcStack_440 + -0x7390" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar51 = (*(uint *)((int)pdVar31 + 0x1c) + 1) - uVar9;" (assignment_expression "iVar51 = (*(uint *)((int)pdVar31 + 0x1c) + 1) - uVar9" identifier = (binary_expression "(*(uint *)((int)pdVar31 + 0x1c) + 1) - uVar9" (parenthesized_expression "(*(uint *)((int)pdVar31 + 0x1c) + 1)" ( (binary_expression "*(uint *)((int)pdVar31 + 0x1c) + 1" (pointer_expression "*(uint *)((int)pdVar31 + 0x1c)" * (cast_expression "(uint *)((int)pdVar31 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar31 + 0x1c)" ( (binary_expression "(int)pdVar31 + 0x1c" (cast_expression "(int)pdVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) )) - identifier)) ;) (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 "iVar30 = iVar51 / iVar4;" (assignment_expression "iVar30 = iVar51 / iVar4" identifier = (binary_expression "iVar51 / iVar4" identifier / identifier)) ;) (expression_statement "iVar51 = iVar51 % iVar4;" (assignment_expression "iVar51 = iVar51 % iVar4" identifier = (binary_expression "iVar51 % iVar4" identifier % identifier)) ;) (expression_statement "uVar28 = (uint)(iVar12 < iVar51);" (assignment_expression "uVar28 = (uint)(iVar12 < iVar51)" identifier = (call_expression "(uint)(iVar12 < iVar51)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar12 < iVar51)" ( (binary_expression "iVar12 < iVar51" identifier < identifier) )))) ;) (if_statement "if (uVar28 != 0) {\n    iVar30 = iVar30 + 1;\n    iVar51 = 0;\n  }" if (parenthesized_expression "(uVar28 != 0)" ( (binary_expression "uVar28 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar30 = iVar30 + 1;\n    iVar51 = 0;\n  }" { (expression_statement "iVar30 = iVar30 + 1;" (assignment_expression "iVar30 = iVar30 + 1" identifier = (binary_expression "iVar30 + 1" identifier + number_literal)) ;) (expression_statement "iVar51 = 0;" (assignment_expression "iVar51 = 0" identifier = number_literal) ;) })) (expression_statement "iVar51 = iVar30 * iVar12 + iVar51;" (assignment_expression "iVar51 = iVar30 * iVar12 + iVar51" identifier = (binary_expression "iVar30 * iVar12 + iVar51" (binary_expression "iVar30 * iVar12" identifier * identifier) + identifier)) ;) (expression_statement "iVar30 = iVar30 + iVar51;" (assignment_expression "iVar30 = iVar30 + iVar51" identifier = (binary_expression "iVar30 + iVar51" identifier + identifier)) ;) (expression_statement "iVar4 = *(int *)(pcStack_440 + -0x7fd0);" (assignment_expression "iVar4 = *(int *)(pcStack_440 + -0x7fd0)" identifier = (pointer_expression "*(int *)(pcStack_440 + -0x7fd0)" * (cast_expression "(int *)(pcStack_440 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_440 + -0x7fd0)" ( (binary_expression "pcStack_440 + -0x7fd0" identifier + number_literal) ))))) ;) (expression_statement "pcVar39 = pcStack_440;" (assignment_expression "pcVar39 = pcStack_440" identifier = identifier) ;) (if_statement "if (iVar51 < iVar30) {\n    pdStack_42c = *(double **)(pdVar31 + 2);\n    uStack_430 = *(uint *)((int)pdVar31 + 0xc);\n    unaff_s6 = *(double **)(pdVar31 + 1);\n    uStack_424 = *(uint *)((int)pdVar31 + 4);\n    unaff_s7 = *(uint *)pdVar31;\n    iVar51 = uStack_428 + iVar51;\n    iVar30 = uStack_428 + iVar30;\n    in_f22_23 = *(double *)(iVar4 + 0x43d0);\n    in_f26_27 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8);\n    in_f28_29 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410);\n    do {\n      in_f20_21 = *(double *)(iVar4 + 0x43d0);\n      if (*(uint *)(pdVar31 + 4) != 0) {\n        pdVar18 = *(double **)((int)pdVar31 + 0x14);\n        dVar41 = (double)(**(code **)(pcVar39 + -0x7c78))(*pdVar18 - in_f20_21);\n        uStack_434 = (uint)dVar41;\n        dVar41 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar18[2] + in_f20_21);\n        uVar28 = uStack_434;\n        this = (void *)(int)dVar41;\n        uStack_444 = uStack_430;\n        piStack_448 = (int *)0x1;\n        pdVar6 = pdStack_42c;\n        pdVar18 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar51,(int)this + (1 - uStack_434));\n        if (pdVar18 == (double *)0x0) {\n          *(uint *)(pdVar31 + 4) = 0;\n          pcVar39 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar28 <= (int)this;\n          uVar28 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar4 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar41 == uVar28) &&\n                 (dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar51 == (int)dVar41)) {\n                iVar12 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar12 == 0) {\n                  piVar3 = (int *)(uStack_424 + 0x48);\n                  piVar50 = aiStack_418;\n                  do {\n                    piVar19 = piVar50;\n                    piVar21 = piVar3;\n                    iVar52 = piVar21[1];\n                    iVar14 = piVar21[2];\n                    iVar12 = piVar21[3];\n                    *piVar19 = *piVar21;\n                    piVar19[1] = iVar52;\n                    piVar19[2] = iVar14;\n                    piVar19[3] = iVar12;\n                    piVar3 = piVar21 + 4;\n                    piVar50 = piVar19 + 4;\n                  } while (piVar3 != (int *)(uStack_424 + 0x98));\n                  iVar12 = piVar21[5];\n                  piVar19[4] = *piVar3;\n                  piVar19[5] = iVar12;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar12,6,(uVar28 - uStack_434) + *(int *)(iVar12 + 0x298),\n                             (iVar51 - uStack_428) + *(int *)(iVar12 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar6 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar6 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar6)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar6 * in_f28_29;\n                  }\n                }\n                iVar12 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar12 + 0x28) != 0) {\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar12 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar45 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar45 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x38) * 4) = fVar45;\n                }\n              }\n              pdVar18 = (double *)((int)pdVar18 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar28 = uVar28 + 1;\n            } while ((int)uVar28 <= (int)this);\n          }\n          pdVar6 = pdStack_42c;\n          iVar12 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar39 = pcStack_440;\n          if (iVar12 == 0) {\n            *(uint *)(pdVar31 + 4) = 0;\n          }\n        }\n      }\n      iVar51 = iVar51 + 1;\n    } while (iVar51 < iVar30);\n  }" if (parenthesized_expression "(iVar51 < iVar30)" ( (binary_expression "iVar51 < iVar30" identifier < identifier) )) (compound_statement "{\n    pdStack_42c = *(double **)(pdVar31 + 2);\n    uStack_430 = *(uint *)((int)pdVar31 + 0xc);\n    unaff_s6 = *(double **)(pdVar31 + 1);\n    uStack_424 = *(uint *)((int)pdVar31 + 4);\n    unaff_s7 = *(uint *)pdVar31;\n    iVar51 = uStack_428 + iVar51;\n    iVar30 = uStack_428 + iVar30;\n    in_f22_23 = *(double *)(iVar4 + 0x43d0);\n    in_f26_27 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8);\n    in_f28_29 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410);\n    do {\n      in_f20_21 = *(double *)(iVar4 + 0x43d0);\n      if (*(uint *)(pdVar31 + 4) != 0) {\n        pdVar18 = *(double **)((int)pdVar31 + 0x14);\n        dVar41 = (double)(**(code **)(pcVar39 + -0x7c78))(*pdVar18 - in_f20_21);\n        uStack_434 = (uint)dVar41;\n        dVar41 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar18[2] + in_f20_21);\n        uVar28 = uStack_434;\n        this = (void *)(int)dVar41;\n        uStack_444 = uStack_430;\n        piStack_448 = (int *)0x1;\n        pdVar6 = pdStack_42c;\n        pdVar18 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar51,(int)this + (1 - uStack_434));\n        if (pdVar18 == (double *)0x0) {\n          *(uint *)(pdVar31 + 4) = 0;\n          pcVar39 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar28 <= (int)this;\n          uVar28 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar4 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar41 == uVar28) &&\n                 (dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar51 == (int)dVar41)) {\n                iVar12 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar12 == 0) {\n                  piVar3 = (int *)(uStack_424 + 0x48);\n                  piVar50 = aiStack_418;\n                  do {\n                    piVar19 = piVar50;\n                    piVar21 = piVar3;\n                    iVar52 = piVar21[1];\n                    iVar14 = piVar21[2];\n                    iVar12 = piVar21[3];\n                    *piVar19 = *piVar21;\n                    piVar19[1] = iVar52;\n                    piVar19[2] = iVar14;\n                    piVar19[3] = iVar12;\n                    piVar3 = piVar21 + 4;\n                    piVar50 = piVar19 + 4;\n                  } while (piVar3 != (int *)(uStack_424 + 0x98));\n                  iVar12 = piVar21[5];\n                  piVar19[4] = *piVar3;\n                  piVar19[5] = iVar12;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar12,6,(uVar28 - uStack_434) + *(int *)(iVar12 + 0x298),\n                             (iVar51 - uStack_428) + *(int *)(iVar12 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar6 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar6 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar6)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar6 * in_f28_29;\n                  }\n                }\n                iVar12 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar12 + 0x28) != 0) {\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar12 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar45 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar45 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x38) * 4) = fVar45;\n                }\n              }\n              pdVar18 = (double *)((int)pdVar18 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar28 = uVar28 + 1;\n            } while ((int)uVar28 <= (int)this);\n          }\n          pdVar6 = pdStack_42c;\n          iVar12 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar39 = pcStack_440;\n          if (iVar12 == 0) {\n            *(uint *)(pdVar31 + 4) = 0;\n          }\n        }\n      }\n      iVar51 = iVar51 + 1;\n    } while (iVar51 < iVar30);\n  }" { (expression_statement "pdStack_42c = *(double **)(pdVar31 + 2);" (assignment_expression "pdStack_42c = *(double **)(pdVar31 + 2)" identifier = (pointer_expression "*(double **)(pdVar31 + 2)" * (cast_expression "(double **)(pdVar31 + 2)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar31 + 2)" ( (binary_expression "pdVar31 + 2" identifier + number_literal) ))))) ;) (expression_statement "uStack_430 = *(uint *)((int)pdVar31 + 0xc);" (assignment_expression "uStack_430 = *(uint *)((int)pdVar31 + 0xc)" identifier = (pointer_expression "*(uint *)((int)pdVar31 + 0xc)" * (cast_expression "(uint *)((int)pdVar31 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar31 + 0xc)" ( (binary_expression "(int)pdVar31 + 0xc" (cast_expression "(int)pdVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "unaff_s6 = *(double **)(pdVar31 + 1);" (assignment_expression "unaff_s6 = *(double **)(pdVar31 + 1)" identifier = (pointer_expression "*(double **)(pdVar31 + 1)" * (cast_expression "(double **)(pdVar31 + 1)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar31 + 1)" ( (binary_expression "pdVar31 + 1" identifier + number_literal) ))))) ;) (expression_statement "uStack_424 = *(uint *)((int)pdVar31 + 4);" (assignment_expression "uStack_424 = *(uint *)((int)pdVar31 + 4)" identifier = (pointer_expression "*(uint *)((int)pdVar31 + 4)" * (cast_expression "(uint *)((int)pdVar31 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar31 + 4)" ( (binary_expression "(int)pdVar31 + 4" (cast_expression "(int)pdVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "unaff_s7 = *(uint *)pdVar31;" (assignment_expression "unaff_s7 = *(uint *)pdVar31" identifier = (pointer_expression "*(uint *)pdVar31" * (cast_expression "(uint *)pdVar31" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar51 = uStack_428 + iVar51;" (assignment_expression "iVar51 = uStack_428 + iVar51" identifier = (binary_expression "uStack_428 + iVar51" identifier + identifier)) ;) (expression_statement "iVar30 = uStack_428 + iVar30;" (assignment_expression "iVar30 = uStack_428 + iVar30" identifier = (binary_expression "uStack_428 + iVar30" identifier + identifier)) ;) (expression_statement "in_f22_23 = *(double *)(iVar4 + 0x43d0);" (assignment_expression "in_f22_23 = *(double *)(iVar4 + 0x43d0)" identifier = (pointer_expression "*(double *)(iVar4 + 0x43d0)" * (cast_expression "(double *)(iVar4 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x43d0)" ( (binary_expression "iVar4 + 0x43d0" identifier + number_literal) ))))) ;) (expression_statement "in_f26_27 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8);" (assignment_expression "in_f26_27 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8)" * (cast_expression "(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8)" ( (binary_expression "*(int *)(pcStack_440 + -0x7fd0) + 0x43c8" (pointer_expression "*(int *)(pcStack_440 + -0x7fd0)" * (cast_expression "(int *)(pcStack_440 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_440 + -0x7fd0)" ( (binary_expression "pcStack_440 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "in_f28_29 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410);" (assignment_expression "in_f28_29 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410)" * (cast_expression "(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_440 + -0x7fd0) + 0x4410)" ( (binary_expression "*(int *)(pcStack_440 + -0x7fd0) + 0x4410" (pointer_expression "*(int *)(pcStack_440 + -0x7fd0)" * (cast_expression "(int *)(pcStack_440 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_440 + -0x7fd0)" ( (binary_expression "pcStack_440 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) (do_statement "do {\n      in_f20_21 = *(double *)(iVar4 + 0x43d0);\n      if (*(uint *)(pdVar31 + 4) != 0) {\n        pdVar18 = *(double **)((int)pdVar31 + 0x14);\n        dVar41 = (double)(**(code **)(pcVar39 + -0x7c78))(*pdVar18 - in_f20_21);\n        uStack_434 = (uint)dVar41;\n        dVar41 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar18[2] + in_f20_21);\n        uVar28 = uStack_434;\n        this = (void *)(int)dVar41;\n        uStack_444 = uStack_430;\n        piStack_448 = (int *)0x1;\n        pdVar6 = pdStack_42c;\n        pdVar18 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar51,(int)this + (1 - uStack_434));\n        if (pdVar18 == (double *)0x0) {\n          *(uint *)(pdVar31 + 4) = 0;\n          pcVar39 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar28 <= (int)this;\n          uVar28 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar4 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar41 == uVar28) &&\n                 (dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar51 == (int)dVar41)) {\n                iVar12 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar12 == 0) {\n                  piVar3 = (int *)(uStack_424 + 0x48);\n                  piVar50 = aiStack_418;\n                  do {\n                    piVar19 = piVar50;\n                    piVar21 = piVar3;\n                    iVar52 = piVar21[1];\n                    iVar14 = piVar21[2];\n                    iVar12 = piVar21[3];\n                    *piVar19 = *piVar21;\n                    piVar19[1] = iVar52;\n                    piVar19[2] = iVar14;\n                    piVar19[3] = iVar12;\n                    piVar3 = piVar21 + 4;\n                    piVar50 = piVar19 + 4;\n                  } while (piVar3 != (int *)(uStack_424 + 0x98));\n                  iVar12 = piVar21[5];\n                  piVar19[4] = *piVar3;\n                  piVar19[5] = iVar12;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar12,6,(uVar28 - uStack_434) + *(int *)(iVar12 + 0x298),\n                             (iVar51 - uStack_428) + *(int *)(iVar12 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar6 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar6 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar6)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar6 * in_f28_29;\n                  }\n                }\n                iVar12 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar12 + 0x28) != 0) {\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar12 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar45 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar45 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x38) * 4) = fVar45;\n                }\n              }\n              pdVar18 = (double *)((int)pdVar18 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar28 = uVar28 + 1;\n            } while ((int)uVar28 <= (int)this);\n          }\n          pdVar6 = pdStack_42c;\n          iVar12 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar39 = pcStack_440;\n          if (iVar12 == 0) {\n            *(uint *)(pdVar31 + 4) = 0;\n          }\n        }\n      }\n      iVar51 = iVar51 + 1;\n    } while (iVar51 < iVar30);" do (compound_statement "{\n      in_f20_21 = *(double *)(iVar4 + 0x43d0);\n      if (*(uint *)(pdVar31 + 4) != 0) {\n        pdVar18 = *(double **)((int)pdVar31 + 0x14);\n        dVar41 = (double)(**(code **)(pcVar39 + -0x7c78))(*pdVar18 - in_f20_21);\n        uStack_434 = (uint)dVar41;\n        dVar41 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar18[2] + in_f20_21);\n        uVar28 = uStack_434;\n        this = (void *)(int)dVar41;\n        uStack_444 = uStack_430;\n        piStack_448 = (int *)0x1;\n        pdVar6 = pdStack_42c;\n        pdVar18 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar51,(int)this + (1 - uStack_434));\n        if (pdVar18 == (double *)0x0) {\n          *(uint *)(pdVar31 + 4) = 0;\n          pcVar39 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar28 <= (int)this;\n          uVar28 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar4 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar41 == uVar28) &&\n                 (dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar51 == (int)dVar41)) {\n                iVar12 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar12 == 0) {\n                  piVar3 = (int *)(uStack_424 + 0x48);\n                  piVar50 = aiStack_418;\n                  do {\n                    piVar19 = piVar50;\n                    piVar21 = piVar3;\n                    iVar52 = piVar21[1];\n                    iVar14 = piVar21[2];\n                    iVar12 = piVar21[3];\n                    *piVar19 = *piVar21;\n                    piVar19[1] = iVar52;\n                    piVar19[2] = iVar14;\n                    piVar19[3] = iVar12;\n                    piVar3 = piVar21 + 4;\n                    piVar50 = piVar19 + 4;\n                  } while (piVar3 != (int *)(uStack_424 + 0x98));\n                  iVar12 = piVar21[5];\n                  piVar19[4] = *piVar3;\n                  piVar19[5] = iVar12;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar12,6,(uVar28 - uStack_434) + *(int *)(iVar12 + 0x298),\n                             (iVar51 - uStack_428) + *(int *)(iVar12 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar6 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar6 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar6)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar6 * in_f28_29;\n                  }\n                }\n                iVar12 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar12 + 0x28) != 0) {\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar12 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar45 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar45 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x38) * 4) = fVar45;\n                }\n              }\n              pdVar18 = (double *)((int)pdVar18 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar28 = uVar28 + 1;\n            } while ((int)uVar28 <= (int)this);\n          }\n          pdVar6 = pdStack_42c;\n          iVar12 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar39 = pcStack_440;\n          if (iVar12 == 0) {\n            *(uint *)(pdVar31 + 4) = 0;\n          }\n        }\n      }\n      iVar51 = iVar51 + 1;\n    }" { (expression_statement "in_f20_21 = *(double *)(iVar4 + 0x43d0);" (assignment_expression "in_f20_21 = *(double *)(iVar4 + 0x43d0)" identifier = (pointer_expression "*(double *)(iVar4 + 0x43d0)" * (cast_expression "(double *)(iVar4 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x43d0)" ( (binary_expression "iVar4 + 0x43d0" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(pdVar31 + 4) != 0) {\n        pdVar18 = *(double **)((int)pdVar31 + 0x14);\n        dVar41 = (double)(**(code **)(pcVar39 + -0x7c78))(*pdVar18 - in_f20_21);\n        uStack_434 = (uint)dVar41;\n        dVar41 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar18[2] + in_f20_21);\n        uVar28 = uStack_434;\n        this = (void *)(int)dVar41;\n        uStack_444 = uStack_430;\n        piStack_448 = (int *)0x1;\n        pdVar6 = pdStack_42c;\n        pdVar18 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar51,(int)this + (1 - uStack_434));\n        if (pdVar18 == (double *)0x0) {\n          *(uint *)(pdVar31 + 4) = 0;\n          pcVar39 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar28 <= (int)this;\n          uVar28 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar4 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar41 == uVar28) &&\n                 (dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar51 == (int)dVar41)) {\n                iVar12 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar12 == 0) {\n                  piVar3 = (int *)(uStack_424 + 0x48);\n                  piVar50 = aiStack_418;\n                  do {\n                    piVar19 = piVar50;\n                    piVar21 = piVar3;\n                    iVar52 = piVar21[1];\n                    iVar14 = piVar21[2];\n                    iVar12 = piVar21[3];\n                    *piVar19 = *piVar21;\n                    piVar19[1] = iVar52;\n                    piVar19[2] = iVar14;\n                    piVar19[3] = iVar12;\n                    piVar3 = piVar21 + 4;\n                    piVar50 = piVar19 + 4;\n                  } while (piVar3 != (int *)(uStack_424 + 0x98));\n                  iVar12 = piVar21[5];\n                  piVar19[4] = *piVar3;\n                  piVar19[5] = iVar12;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar12,6,(uVar28 - uStack_434) + *(int *)(iVar12 + 0x298),\n                             (iVar51 - uStack_428) + *(int *)(iVar12 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar6 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar6 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar6)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar6 * in_f28_29;\n                  }\n                }\n                iVar12 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar12 + 0x28) != 0) {\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar12 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar45 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar45 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x38) * 4) = fVar45;\n                }\n              }\n              pdVar18 = (double *)((int)pdVar18 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar28 = uVar28 + 1;\n            } while ((int)uVar28 <= (int)this);\n          }\n          pdVar6 = pdStack_42c;\n          iVar12 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar39 = pcStack_440;\n          if (iVar12 == 0) {\n            *(uint *)(pdVar31 + 4) = 0;\n          }\n        }\n      }" if (parenthesized_expression "(*(uint *)(pdVar31 + 4) != 0)" ( (binary_expression "*(uint *)(pdVar31 + 4) != 0" (pointer_expression "*(uint *)(pdVar31 + 4)" * (cast_expression "(uint *)(pdVar31 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar31 + 4)" ( (binary_expression "pdVar31 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        pdVar18 = *(double **)((int)pdVar31 + 0x14);\n        dVar41 = (double)(**(code **)(pcVar39 + -0x7c78))(*pdVar18 - in_f20_21);\n        uStack_434 = (uint)dVar41;\n        dVar41 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar18[2] + in_f20_21);\n        uVar28 = uStack_434;\n        this = (void *)(int)dVar41;\n        uStack_444 = uStack_430;\n        piStack_448 = (int *)0x1;\n        pdVar6 = pdStack_42c;\n        pdVar18 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar51,(int)this + (1 - uStack_434));\n        if (pdVar18 == (double *)0x0) {\n          *(uint *)(pdVar31 + 4) = 0;\n          pcVar39 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar28 <= (int)this;\n          uVar28 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar4 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar41 == uVar28) &&\n                 (dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar51 == (int)dVar41)) {\n                iVar12 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar12 == 0) {\n                  piVar3 = (int *)(uStack_424 + 0x48);\n                  piVar50 = aiStack_418;\n                  do {\n                    piVar19 = piVar50;\n                    piVar21 = piVar3;\n                    iVar52 = piVar21[1];\n                    iVar14 = piVar21[2];\n                    iVar12 = piVar21[3];\n                    *piVar19 = *piVar21;\n                    piVar19[1] = iVar52;\n                    piVar19[2] = iVar14;\n                    piVar19[3] = iVar12;\n                    piVar3 = piVar21 + 4;\n                    piVar50 = piVar19 + 4;\n                  } while (piVar3 != (int *)(uStack_424 + 0x98));\n                  iVar12 = piVar21[5];\n                  piVar19[4] = *piVar3;\n                  piVar19[5] = iVar12;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar12,6,(uVar28 - uStack_434) + *(int *)(iVar12 + 0x298),\n                             (iVar51 - uStack_428) + *(int *)(iVar12 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar6 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar6 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar6)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar6 * in_f28_29;\n                  }\n                }\n                iVar12 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar12 + 0x28) != 0) {\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar12 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar45 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar45 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x38) * 4) = fVar45;\n                }\n              }\n              pdVar18 = (double *)((int)pdVar18 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar28 = uVar28 + 1;\n            } while ((int)uVar28 <= (int)this);\n          }\n          pdVar6 = pdStack_42c;\n          iVar12 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar39 = pcStack_440;\n          if (iVar12 == 0) {\n            *(uint *)(pdVar31 + 4) = 0;\n          }\n        }\n      }" { (expression_statement "pdVar18 = *(double **)((int)pdVar31 + 0x14);" (assignment_expression "pdVar18 = *(double **)((int)pdVar31 + 0x14)" identifier = (pointer_expression "*(double **)((int)pdVar31 + 0x14)" * (cast_expression "(double **)((int)pdVar31 + 0x14)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pdVar31 + 0x14)" ( (binary_expression "(int)pdVar31 + 0x14" (cast_expression "(int)pdVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "dVar41 = (double)(**(code **)(pcVar39 + -0x7c78))(*pdVar18 - in_f20_21);" (assignment_expression "dVar41 = (double)(**(code **)(pcVar39 + -0x7c78))(*pdVar18 - in_f20_21)" identifier = (cast_expression "(double)(**(code **)(pcVar39 + -0x7c78))(*pdVar18 - in_f20_21)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcVar39 + -0x7c78))(*pdVar18 - in_f20_21)" (parenthesized_expression "(**(code **)(pcVar39 + -0x7c78))" ( (pointer_expression "**(code **)(pcVar39 + -0x7c78)" * (pointer_expression "*(code **)(pcVar39 + -0x7c78)" * (cast_expression "(code **)(pcVar39 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + -0x7c78)" ( (binary_expression "pcVar39 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(*pdVar18 - in_f20_21)" ( (binary_expression "*pdVar18 - in_f20_21" (pointer_expression "*pdVar18" * identifier) - identifier) ))))) ;) (expression_statement "uStack_434 = (uint)dVar41;" (assignment_expression "uStack_434 = (uint)dVar41" identifier = (cast_expression "(uint)dVar41" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "dVar41 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar18[2] + in_f20_21);" (assignment_expression "dVar41 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar18[2] + in_f20_21)" identifier = (cast_expression "(double)(**(code **)(pcStack_440 + -0x7228))(pdVar18[2] + in_f20_21)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_440 + -0x7228))(pdVar18[2] + in_f20_21)" (parenthesized_expression "(**(code **)(pcStack_440 + -0x7228))" ( (pointer_expression "**(code **)(pcStack_440 + -0x7228)" * (pointer_expression "*(code **)(pcStack_440 + -0x7228)" * (cast_expression "(code **)(pcStack_440 + -0x7228)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_440 + -0x7228)" ( (binary_expression "pcStack_440 + -0x7228" identifier + number_literal) ))))) )) (argument_list "(pdVar18[2] + in_f20_21)" ( (binary_expression "pdVar18[2] + in_f20_21" (subscript_expression "pdVar18[2]" identifier [ number_literal ]) + identifier) ))))) ;) (expression_statement "uVar28 = uStack_434;" (assignment_expression "uVar28 = uStack_434" identifier = identifier) ;) (expression_statement "this = (void *)(int)dVar41;" (assignment_expression "this = (void *)(int)dVar41" identifier = (cast_expression "(void *)(int)dVar41" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)dVar41" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uStack_444 = uStack_430;" (assignment_expression "uStack_444 = uStack_430" identifier = identifier) ;) (expression_statement "piStack_448 = (int *)0x1;" (assignment_expression "piStack_448 = (int *)0x1" identifier = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pdVar6 = pdStack_42c;" (assignment_expression "pdVar6 = pdStack_42c" identifier = identifier) ;) (expression_statement "pdVar18 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar51,(int)this + (1 - uStack_434));" (assignment_expression "pdVar18 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar51,(int)this + (1 - uStack_434))" identifier = (cast_expression "(double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar51,(int)this + (1 - uStack_434))" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar51,(int)this + (1 - uStack_434))" (parenthesized_expression "(**(code **)(pcStack_440 + -0x724c))" ( (pointer_expression "**(code **)(pcStack_440 + -0x724c)" * (pointer_expression "*(code **)(pcStack_440 + -0x724c)" * (cast_expression "(code **)(pcStack_440 + -0x724c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_440 + -0x724c)" ( (binary_expression "pcStack_440 + -0x724c" identifier + number_literal) ))))) )) (argument_list "(pdStack_42c,uStack_434,iVar51,(int)this + (1 - uStack_434))" ( identifier , identifier , identifier , (binary_expression "(int)this + (1 - uStack_434)" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(1 - uStack_434)" ( (binary_expression "1 - uStack_434" number_literal - identifier) ))) ))))) ;) (if_statement "if (pdVar18 == (double *)0x0) {\n          *(uint *)(pdVar31 + 4) = 0;\n          pcVar39 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar28 <= (int)this;\n          uVar28 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar4 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar41 == uVar28) &&\n                 (dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar51 == (int)dVar41)) {\n                iVar12 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar12 == 0) {\n                  piVar3 = (int *)(uStack_424 + 0x48);\n                  piVar50 = aiStack_418;\n                  do {\n                    piVar19 = piVar50;\n                    piVar21 = piVar3;\n                    iVar52 = piVar21[1];\n                    iVar14 = piVar21[2];\n                    iVar12 = piVar21[3];\n                    *piVar19 = *piVar21;\n                    piVar19[1] = iVar52;\n                    piVar19[2] = iVar14;\n                    piVar19[3] = iVar12;\n                    piVar3 = piVar21 + 4;\n                    piVar50 = piVar19 + 4;\n                  } while (piVar3 != (int *)(uStack_424 + 0x98));\n                  iVar12 = piVar21[5];\n                  piVar19[4] = *piVar3;\n                  piVar19[5] = iVar12;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar12,6,(uVar28 - uStack_434) + *(int *)(iVar12 + 0x298),\n                             (iVar51 - uStack_428) + *(int *)(iVar12 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar6 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar6 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar6)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar6 * in_f28_29;\n                  }\n                }\n                iVar12 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar12 + 0x28) != 0) {\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar12 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar45 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar45 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x38) * 4) = fVar45;\n                }\n              }\n              pdVar18 = (double *)((int)pdVar18 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar28 = uVar28 + 1;\n            } while ((int)uVar28 <= (int)this);\n          }\n          pdVar6 = pdStack_42c;\n          iVar12 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar39 = pcStack_440;\n          if (iVar12 == 0) {\n            *(uint *)(pdVar31 + 4) = 0;\n          }\n        }" if (parenthesized_expression "(pdVar18 == (double *)0x0)" ( (binary_expression "pdVar18 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *(uint *)(pdVar31 + 4) = 0;\n          pcVar39 = pcStack_440;\n        }" { (expression_statement "*(uint *)(pdVar31 + 4) = 0;" (assignment_expression "*(uint *)(pdVar31 + 4) = 0" (pointer_expression "*(uint *)(pdVar31 + 4)" * (cast_expression "(uint *)(pdVar31 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar31 + 4)" ( (binary_expression "pdVar31 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar39 = pcStack_440;" (assignment_expression "pcVar39 = pcStack_440" identifier = identifier) ;) }) (else_clause "else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar28 <= (int)this;\n          uVar28 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar4 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar41 == uVar28) &&\n                 (dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar51 == (int)dVar41)) {\n                iVar12 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar12 == 0) {\n                  piVar3 = (int *)(uStack_424 + 0x48);\n                  piVar50 = aiStack_418;\n                  do {\n                    piVar19 = piVar50;\n                    piVar21 = piVar3;\n                    iVar52 = piVar21[1];\n                    iVar14 = piVar21[2];\n                    iVar12 = piVar21[3];\n                    *piVar19 = *piVar21;\n                    piVar19[1] = iVar52;\n                    piVar19[2] = iVar14;\n                    piVar19[3] = iVar12;\n                    piVar3 = piVar21 + 4;\n                    piVar50 = piVar19 + 4;\n                  } while (piVar3 != (int *)(uStack_424 + 0x98));\n                  iVar12 = piVar21[5];\n                  piVar19[4] = *piVar3;\n                  piVar19[5] = iVar12;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar12,6,(uVar28 - uStack_434) + *(int *)(iVar12 + 0x298),\n                             (iVar51 - uStack_428) + *(int *)(iVar12 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar6 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar6 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar6)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar6 * in_f28_29;\n                  }\n                }\n                iVar12 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar12 + 0x28) != 0) {\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar12 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar45 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar45 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x38) * 4) = fVar45;\n                }\n              }\n              pdVar18 = (double *)((int)pdVar18 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar28 = uVar28 + 1;\n            } while ((int)uVar28 <= (int)this);\n          }\n          pdVar6 = pdStack_42c;\n          iVar12 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar39 = pcStack_440;\n          if (iVar12 == 0) {\n            *(uint *)(pdVar31 + 4) = 0;\n          }\n        }" else (compound_statement "{\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar28 <= (int)this;\n          uVar28 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar4 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar41 == uVar28) &&\n                 (dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar51 == (int)dVar41)) {\n                iVar12 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar12 == 0) {\n                  piVar3 = (int *)(uStack_424 + 0x48);\n                  piVar50 = aiStack_418;\n                  do {\n                    piVar19 = piVar50;\n                    piVar21 = piVar3;\n                    iVar52 = piVar21[1];\n                    iVar14 = piVar21[2];\n                    iVar12 = piVar21[3];\n                    *piVar19 = *piVar21;\n                    piVar19[1] = iVar52;\n                    piVar19[2] = iVar14;\n                    piVar19[3] = iVar12;\n                    piVar3 = piVar21 + 4;\n                    piVar50 = piVar19 + 4;\n                  } while (piVar3 != (int *)(uStack_424 + 0x98));\n                  iVar12 = piVar21[5];\n                  piVar19[4] = *piVar3;\n                  piVar19[5] = iVar12;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar12,6,(uVar28 - uStack_434) + *(int *)(iVar12 + 0x298),\n                             (iVar51 - uStack_428) + *(int *)(iVar12 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar6 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar6 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar6)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar6 * in_f28_29;\n                  }\n                }\n                iVar12 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar12 + 0x28) != 0) {\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar12 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar45 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar45 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x38) * 4) = fVar45;\n                }\n              }\n              pdVar18 = (double *)((int)pdVar18 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar28 = uVar28 + 1;\n            } while ((int)uVar28 <= (int)this);\n          }\n          pdVar6 = pdStack_42c;\n          iVar12 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar39 = pcStack_440;\n          if (iVar12 == 0) {\n            *(uint *)(pdVar31 + 4) = 0;\n          }\n        }" { (expression_statement "(**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);" (call_expression "(**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418)" (parenthesized_expression "(**(code **)(pcStack_440 + -0x75e4))" ( (pointer_expression "**(code **)(pcStack_440 + -0x75e4)" * (pointer_expression "*(code **)(pcStack_440 + -0x75e4)" * (cast_expression "(code **)(pcStack_440 + -0x75e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_440 + -0x75e4)" ( (binary_expression "pcStack_440 + -0x75e4" identifier + number_literal) ))))) )) (argument_list "(unaff_s7,aiStack_418)" ( identifier , identifier ))) ;) (expression_statement "bVar1 = (int)uVar28 <= (int)this;" (assignment_expression "bVar1 = (int)uVar28 <= (int)this" identifier = (binary_expression "(int)uVar28 <= (int)this" (cast_expression "(int)uVar28" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar28 = uStack_434;" (assignment_expression "uVar28 = uStack_434" identifier = identifier) ;) (if_statement "if (bVar1) {\n            in_f20_21 = *(double *)(iVar4 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar41 == uVar28) &&\n                 (dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar51 == (int)dVar41)) {\n                iVar12 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar12 == 0) {\n                  piVar3 = (int *)(uStack_424 + 0x48);\n                  piVar50 = aiStack_418;\n                  do {\n                    piVar19 = piVar50;\n                    piVar21 = piVar3;\n                    iVar52 = piVar21[1];\n                    iVar14 = piVar21[2];\n                    iVar12 = piVar21[3];\n                    *piVar19 = *piVar21;\n                    piVar19[1] = iVar52;\n                    piVar19[2] = iVar14;\n                    piVar19[3] = iVar12;\n                    piVar3 = piVar21 + 4;\n                    piVar50 = piVar19 + 4;\n                  } while (piVar3 != (int *)(uStack_424 + 0x98));\n                  iVar12 = piVar21[5];\n                  piVar19[4] = *piVar3;\n                  piVar19[5] = iVar12;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar12,6,(uVar28 - uStack_434) + *(int *)(iVar12 + 0x298),\n                             (iVar51 - uStack_428) + *(int *)(iVar12 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar6 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar6 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar6)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar6 * in_f28_29;\n                  }\n                }\n                iVar12 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar12 + 0x28) != 0) {\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar12 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar45 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar45 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x38) * 4) = fVar45;\n                }\n              }\n              pdVar18 = (double *)((int)pdVar18 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar28 = uVar28 + 1;\n            } while ((int)uVar28 <= (int)this);\n          }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n            in_f20_21 = *(double *)(iVar4 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar41 == uVar28) &&\n                 (dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar51 == (int)dVar41)) {\n                iVar12 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar12 == 0) {\n                  piVar3 = (int *)(uStack_424 + 0x48);\n                  piVar50 = aiStack_418;\n                  do {\n                    piVar19 = piVar50;\n                    piVar21 = piVar3;\n                    iVar52 = piVar21[1];\n                    iVar14 = piVar21[2];\n                    iVar12 = piVar21[3];\n                    *piVar19 = *piVar21;\n                    piVar19[1] = iVar52;\n                    piVar19[2] = iVar14;\n                    piVar19[3] = iVar12;\n                    piVar3 = piVar21 + 4;\n                    piVar50 = piVar19 + 4;\n                  } while (piVar3 != (int *)(uStack_424 + 0x98));\n                  iVar12 = piVar21[5];\n                  piVar19[4] = *piVar3;\n                  piVar19[5] = iVar12;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar12,6,(uVar28 - uStack_434) + *(int *)(iVar12 + 0x298),\n                             (iVar51 - uStack_428) + *(int *)(iVar12 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar6 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar6 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar6)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar6 * in_f28_29;\n                  }\n                }\n                iVar12 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar12 + 0x28) != 0) {\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar12 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar45 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar45 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x38) * 4) = fVar45;\n                }\n              }\n              pdVar18 = (double *)((int)pdVar18 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar28 = uVar28 + 1;\n            } while ((int)uVar28 <= (int)this);\n          }" { (expression_statement "in_f20_21 = *(double *)(iVar4 + 0x43d0);" (assignment_expression "in_f20_21 = *(double *)(iVar4 + 0x43d0)" identifier = (pointer_expression "*(double *)(iVar4 + 0x43d0)" * (cast_expression "(double *)(iVar4 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x43d0)" ( (binary_expression "iVar4 + 0x43d0" identifier + number_literal) ))))) ;) (expression_statement "in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));" (assignment_expression "in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8))" identifier = (cast_expression "(double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8))" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8))" identifier (argument_list "((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8))" ( (cast_expression "(int)((ulonglong)in_f24_25 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)in_f24_25 >> 0x20)" ( (binary_expression "(ulonglong)in_f24_25 >> 0x20" (cast_expression "(ulonglong)in_f24_25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (pointer_expression "*(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8)" * (cast_expression "(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8)" ( (binary_expression "*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8" (pointer_expression "*(int *)(pcStack_440 + -0x7fd0)" * (cast_expression "(int *)(pcStack_440 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_440 + -0x7fd0)" ( (binary_expression "pcStack_440 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))) ))))) ;) (do_statement "do {\n              dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar41 == uVar28) &&\n                 (dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar51 == (int)dVar41)) {\n                iVar12 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar12 == 0) {\n                  piVar3 = (int *)(uStack_424 + 0x48);\n                  piVar50 = aiStack_418;\n                  do {\n                    piVar19 = piVar50;\n                    piVar21 = piVar3;\n                    iVar52 = piVar21[1];\n                    iVar14 = piVar21[2];\n                    iVar12 = piVar21[3];\n                    *piVar19 = *piVar21;\n                    piVar19[1] = iVar52;\n                    piVar19[2] = iVar14;\n                    piVar19[3] = iVar12;\n                    piVar3 = piVar21 + 4;\n                    piVar50 = piVar19 + 4;\n                  } while (piVar3 != (int *)(uStack_424 + 0x98));\n                  iVar12 = piVar21[5];\n                  piVar19[4] = *piVar3;\n                  piVar19[5] = iVar12;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar12,6,(uVar28 - uStack_434) + *(int *)(iVar12 + 0x298),\n                             (iVar51 - uStack_428) + *(int *)(iVar12 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar6 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar6 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar6)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar6 * in_f28_29;\n                  }\n                }\n                iVar12 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar12 + 0x28) != 0) {\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar12 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar45 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar45 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x38) * 4) = fVar45;\n                }\n              }\n              pdVar18 = (double *)((int)pdVar18 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar28 = uVar28 + 1;\n            } while ((int)uVar28 <= (int)this);" do (compound_statement "{\n              dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar41 == uVar28) &&\n                 (dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar51 == (int)dVar41)) {\n                iVar12 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar12 == 0) {\n                  piVar3 = (int *)(uStack_424 + 0x48);\n                  piVar50 = aiStack_418;\n                  do {\n                    piVar19 = piVar50;\n                    piVar21 = piVar3;\n                    iVar52 = piVar21[1];\n                    iVar14 = piVar21[2];\n                    iVar12 = piVar21[3];\n                    *piVar19 = *piVar21;\n                    piVar19[1] = iVar52;\n                    piVar19[2] = iVar14;\n                    piVar19[3] = iVar12;\n                    piVar3 = piVar21 + 4;\n                    piVar50 = piVar19 + 4;\n                  } while (piVar3 != (int *)(uStack_424 + 0x98));\n                  iVar12 = piVar21[5];\n                  piVar19[4] = *piVar3;\n                  piVar19[5] = iVar12;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar12,6,(uVar28 - uStack_434) + *(int *)(iVar12 + 0x298),\n                             (iVar51 - uStack_428) + *(int *)(iVar12 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar6 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar6 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar6)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar6 * in_f28_29;\n                  }\n                }\n                iVar12 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar12 + 0x28) != 0) {\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar12 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar45 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar45 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x38) * 4) = fVar45;\n                }\n              }\n              pdVar18 = (double *)((int)pdVar18 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar28 = uVar28 + 1;\n            }" { (expression_statement "dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);" (assignment_expression "dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21)" identifier = (cast_expression "(double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21)" (parenthesized_expression "(**(code **)(pcStack_440 + -0x7c78))" ( (pointer_expression "**(code **)(pcStack_440 + -0x7c78)" * (pointer_expression "*(code **)(pcStack_440 + -0x7c78)" * (cast_expression "(code **)(pcStack_440 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_440 + -0x7c78)" ( (binary_expression "pcStack_440 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(*unaff_s6 - in_f20_21)" ( (binary_expression "*unaff_s6 - in_f20_21" (pointer_expression "*unaff_s6" * identifier) - identifier) ))))) ;) (if_statement "if (((int)dVar41 == uVar28) &&\n                 (dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar51 == (int)dVar41)) {\n                iVar12 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar12 == 0) {\n                  piVar3 = (int *)(uStack_424 + 0x48);\n                  piVar50 = aiStack_418;\n                  do {\n                    piVar19 = piVar50;\n                    piVar21 = piVar3;\n                    iVar52 = piVar21[1];\n                    iVar14 = piVar21[2];\n                    iVar12 = piVar21[3];\n                    *piVar19 = *piVar21;\n                    piVar19[1] = iVar52;\n                    piVar19[2] = iVar14;\n                    piVar19[3] = iVar12;\n                    piVar3 = piVar21 + 4;\n                    piVar50 = piVar19 + 4;\n                  } while (piVar3 != (int *)(uStack_424 + 0x98));\n                  iVar12 = piVar21[5];\n                  piVar19[4] = *piVar3;\n                  piVar19[5] = iVar12;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar12,6,(uVar28 - uStack_434) + *(int *)(iVar12 + 0x298),\n                             (iVar51 - uStack_428) + *(int *)(iVar12 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar6 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar6 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar6)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar6 * in_f28_29;\n                  }\n                }\n                iVar12 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar12 + 0x28) != 0) {\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar12 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar45 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar45 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x38) * 4) = fVar45;\n                }\n              }" if (parenthesized_expression "(((int)dVar41 == uVar28) &&\n                 (dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar51 == (int)dVar41))" ( (binary_expression "((int)dVar41 == uVar28) &&\n                 (dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar51 == (int)dVar41)" (parenthesized_expression "((int)dVar41 == uVar28)" ( (binary_expression "(int)dVar41 == uVar28" (cast_expression "(int)dVar41" ( (type_descriptor "int" primitive_type) ) identifier) == identifier) )) && (parenthesized_expression "(dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar51 == (int)dVar41)" ( (comma_expression "dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar51 == (int)dVar41" (assignment_expression "dVar41 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23)" identifier = (cast_expression "(double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23)" (parenthesized_expression "(**(code **)(pcStack_440 + -0x7c78))" ( (pointer_expression "**(code **)(pcStack_440 + -0x7c78)" * (pointer_expression "*(code **)(pcStack_440 + -0x7c78)" * (cast_expression "(code **)(pcStack_440 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_440 + -0x7c78)" ( (binary_expression "pcStack_440 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(unaff_s6[1] - in_f22_23)" ( (binary_expression "unaff_s6[1] - in_f22_23" (subscript_expression "unaff_s6[1]" identifier [ number_literal ]) - identifier) ))))) , (binary_expression "iVar51 == (int)dVar41" identifier == (cast_expression "(int)dVar41" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\n                iVar12 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar12 == 0) {\n                  piVar3 = (int *)(uStack_424 + 0x48);\n                  piVar50 = aiStack_418;\n                  do {\n                    piVar19 = piVar50;\n                    piVar21 = piVar3;\n                    iVar52 = piVar21[1];\n                    iVar14 = piVar21[2];\n                    iVar12 = piVar21[3];\n                    *piVar19 = *piVar21;\n                    piVar19[1] = iVar52;\n                    piVar19[2] = iVar14;\n                    piVar19[3] = iVar12;\n                    piVar3 = piVar21 + 4;\n                    piVar50 = piVar19 + 4;\n                  } while (piVar3 != (int *)(uStack_424 + 0x98));\n                  iVar12 = piVar21[5];\n                  piVar19[4] = *piVar3;\n                  piVar19[5] = iVar12;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar12,6,(uVar28 - uStack_434) + *(int *)(iVar12 + 0x298),\n                             (iVar51 - uStack_428) + *(int *)(iVar12 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar6 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar6 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar6)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar6 * in_f28_29;\n                  }\n                }\n                iVar12 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar12 + 0x28) != 0) {\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar12 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar45 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar45 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x38) * 4) = fVar45;\n                }\n              }" { (expression_statement "iVar12 = *(int *)(uStack_424 + 0x1a8);" (assignment_expression "iVar12 = *(int *)(uStack_424 + 0x1a8)" identifier = (pointer_expression "*(int *)(uStack_424 + 0x1a8)" * (cast_expression "(int *)(uStack_424 + 0x1a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uStack_424 + 0x1a8)" ( (binary_expression "uStack_424 + 0x1a8" identifier + number_literal) ))))) ;) (if_statement "if (iVar12 == 0) {\n                  piVar3 = (int *)(uStack_424 + 0x48);\n                  piVar50 = aiStack_418;\n                  do {\n                    piVar19 = piVar50;\n                    piVar21 = piVar3;\n                    iVar52 = piVar21[1];\n                    iVar14 = piVar21[2];\n                    iVar12 = piVar21[3];\n                    *piVar19 = *piVar21;\n                    piVar19[1] = iVar52;\n                    piVar19[2] = iVar14;\n                    piVar19[3] = iVar12;\n                    piVar3 = piVar21 + 4;\n                    piVar50 = piVar19 + 4;\n                  } while (piVar3 != (int *)(uStack_424 + 0x98));\n                  iVar12 = piVar21[5];\n                  piVar19[4] = *piVar3;\n                  piVar19[5] = iVar12;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar12,6,(uVar28 - uStack_434) + *(int *)(iVar12 + 0x298),\n                             (iVar51 - uStack_428) + *(int *)(iVar12 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar6 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar6 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar6)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar6 * in_f28_29;\n                  }\n                }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n                  piVar3 = (int *)(uStack_424 + 0x48);\n                  piVar50 = aiStack_418;\n                  do {\n                    piVar19 = piVar50;\n                    piVar21 = piVar3;\n                    iVar52 = piVar21[1];\n                    iVar14 = piVar21[2];\n                    iVar12 = piVar21[3];\n                    *piVar19 = *piVar21;\n                    piVar19[1] = iVar52;\n                    piVar19[2] = iVar14;\n                    piVar19[3] = iVar12;\n                    piVar3 = piVar21 + 4;\n                    piVar50 = piVar19 + 4;\n                  } while (piVar3 != (int *)(uStack_424 + 0x98));\n                  iVar12 = piVar21[5];\n                  piVar19[4] = *piVar3;\n                  piVar19[5] = iVar12;\n                }" { (expression_statement "piVar3 = (int *)(uStack_424 + 0x48);" (assignment_expression "piVar3 = (int *)(uStack_424 + 0x48)" identifier = (cast_expression "(int *)(uStack_424 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uStack_424 + 0x48)" ( (binary_expression "uStack_424 + 0x48" identifier + number_literal) )))) ;) (expression_statement "piVar50 = aiStack_418;" (assignment_expression "piVar50 = aiStack_418" identifier = identifier) ;) (do_statement "do {\n                    piVar19 = piVar50;\n                    piVar21 = piVar3;\n                    iVar52 = piVar21[1];\n                    iVar14 = piVar21[2];\n                    iVar12 = piVar21[3];\n                    *piVar19 = *piVar21;\n                    piVar19[1] = iVar52;\n                    piVar19[2] = iVar14;\n                    piVar19[3] = iVar12;\n                    piVar3 = piVar21 + 4;\n                    piVar50 = piVar19 + 4;\n                  } while (piVar3 != (int *)(uStack_424 + 0x98));" do (compound_statement "{\n                    piVar19 = piVar50;\n                    piVar21 = piVar3;\n                    iVar52 = piVar21[1];\n                    iVar14 = piVar21[2];\n                    iVar12 = piVar21[3];\n                    *piVar19 = *piVar21;\n                    piVar19[1] = iVar52;\n                    piVar19[2] = iVar14;\n                    piVar19[3] = iVar12;\n                    piVar3 = piVar21 + 4;\n                    piVar50 = piVar19 + 4;\n                  }" { (expression_statement "piVar19 = piVar50;" (assignment_expression "piVar19 = piVar50" identifier = identifier) ;) (expression_statement "piVar21 = piVar3;" (assignment_expression "piVar21 = piVar3" identifier = identifier) ;) (expression_statement "iVar52 = piVar21[1];" (assignment_expression "iVar52 = piVar21[1]" identifier = (subscript_expression "piVar21[1]" identifier [ number_literal ])) ;) (expression_statement "iVar14 = piVar21[2];" (assignment_expression "iVar14 = piVar21[2]" identifier = (subscript_expression "piVar21[2]" identifier [ number_literal ])) ;) (expression_statement "iVar12 = piVar21[3];" (assignment_expression "iVar12 = piVar21[3]" identifier = (subscript_expression "piVar21[3]" identifier [ number_literal ])) ;) (expression_statement "*piVar19 = *piVar21;" (assignment_expression "*piVar19 = *piVar21" (pointer_expression "*piVar19" * identifier) = (pointer_expression "*piVar21" * identifier)) ;) (expression_statement "piVar19[1] = iVar52;" (assignment_expression "piVar19[1] = iVar52" (subscript_expression "piVar19[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar19[2] = iVar14;" (assignment_expression "piVar19[2] = iVar14" (subscript_expression "piVar19[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar19[3] = iVar12;" (assignment_expression "piVar19[3] = iVar12" (subscript_expression "piVar19[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar3 = piVar21 + 4;" (assignment_expression "piVar3 = piVar21 + 4" identifier = (binary_expression "piVar21 + 4" identifier + number_literal)) ;) (expression_statement "piVar50 = piVar19 + 4;" (assignment_expression "piVar50 = piVar19 + 4" identifier = (binary_expression "piVar19 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar3 != (int *)(uStack_424 + 0x98))" ( (binary_expression "piVar3 != (int *)(uStack_424 + 0x98)" identifier != (cast_expression "(int *)(uStack_424 + 0x98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uStack_424 + 0x98)" ( (binary_expression "uStack_424 + 0x98" identifier + number_literal) )))) )) ;) (expression_statement "iVar12 = piVar21[5];" (assignment_expression "iVar12 = piVar21[5]" identifier = (subscript_expression "piVar21[5]" identifier [ number_literal ])) ;) (expression_statement "piVar19[4] = *piVar3;" (assignment_expression "piVar19[4] = *piVar3" (subscript_expression "piVar19[4]" identifier [ number_literal ]) = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "piVar19[5] = iVar12;" (assignment_expression "piVar19[5] = iVar12" (subscript_expression "piVar19[5]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar12,6,(uVar28 - uStack_434) + *(int *)(iVar12 + 0x298),\n                             (iVar51 - uStack_428) + *(int *)(iVar12 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar6 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar6 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar6)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar6 * in_f28_29;\n                  }\n                }" else (compound_statement "{\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar12,6,(uVar28 - uStack_434) + *(int *)(iVar12 + 0x298),\n                             (iVar51 - uStack_428) + *(int *)(iVar12 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar6 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar6 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar6)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar6 * in_f28_29;\n                  }\n                }" { (expression_statement "uStack_444 = uStack_430;" (assignment_expression "uStack_444 = uStack_430" identifier = identifier) ;) (expression_statement "piStack_448 = aiStack_418;" (assignment_expression "piStack_448 = aiStack_418" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_440 + -0x747c))\n                            (iVar12,6,(uVar28 - uStack_434) + *(int *)(iVar12 + 0x298),\n                             (iVar51 - uStack_428) + *(int *)(iVar12 + 0x29c));" (call_expression "(**(code **)(pcStack_440 + -0x747c))\n                            (iVar12,6,(uVar28 - uStack_434) + *(int *)(iVar12 + 0x298),\n                             (iVar51 - uStack_428) + *(int *)(iVar12 + 0x29c))" (parenthesized_expression "(**(code **)(pcStack_440 + -0x747c))" ( (pointer_expression "**(code **)(pcStack_440 + -0x747c)" * (pointer_expression "*(code **)(pcStack_440 + -0x747c)" * (cast_expression "(code **)(pcStack_440 + -0x747c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_440 + -0x747c)" ( (binary_expression "pcStack_440 + -0x747c" identifier + number_literal) ))))) )) (argument_list "(iVar12,6,(uVar28 - uStack_434) + *(int *)(iVar12 + 0x298),\n                             (iVar51 - uStack_428) + *(int *)(iVar12 + 0x29c))" ( identifier , number_literal , (binary_expression "(uVar28 - uStack_434) + *(int *)(iVar12 + 0x298)" (parenthesized_expression "(uVar28 - uStack_434)" ( (binary_expression "uVar28 - uStack_434" identifier - identifier) )) + (pointer_expression "*(int *)(iVar12 + 0x298)" * (cast_expression "(int *)(iVar12 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x298)" ( (binary_expression "iVar12 + 0x298" identifier + number_literal) ))))) , (binary_expression "(iVar51 - uStack_428) + *(int *)(iVar12 + 0x29c)" (parenthesized_expression "(iVar51 - uStack_428)" ( (binary_expression "iVar51 - uStack_428" identifier - identifier) )) + (pointer_expression "*(int *)(iVar12 + 0x29c)" * (cast_expression "(int *)(iVar12 + 0x29c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x29c)" ( (binary_expression "iVar12 + 0x29c" identifier + number_literal) ))))) ))) ;) (expression_statement "uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);" (assignment_expression "uStack_41c = *(undefined4 *)(uStack_424 + 0x39c)" identifier = (pointer_expression "*(undefined4 *)(uStack_424 + 0x39c)" * (cast_expression "(undefined4 *)(uStack_424 + 0x39c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uStack_424 + 0x39c)" ( (binary_expression "uStack_424 + 0x39c" identifier + number_literal) ))))) ;) (expression_statement "pdVar6 = (double *)(uStack_424 + 0x398);" (assignment_expression "pdVar6 = (double *)(uStack_424 + 0x398)" identifier = (cast_expression "(double *)(uStack_424 + 0x398)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uStack_424 + 0x398)" ( (binary_expression "uStack_424 + 0x398" identifier + number_literal) )))) ;) (expression_statement "uStack_420 = *(uint *)pdVar6 & 0x7fffffff;" (assignment_expression "uStack_420 = *(uint *)pdVar6 & 0x7fffffff" identifier = (binary_expression "*(uint *)pdVar6 & 0x7fffffff" (pointer_expression "*(uint *)pdVar6" * (cast_expression "(uint *)pdVar6" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal)) ;) (if_statement "if (in_f26_27 <= ABS(*pdVar6)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar6 * in_f28_29;\n                  }" if (parenthesized_expression "(in_f26_27 <= ABS(*pdVar6))" ( (binary_expression "in_f26_27 <= ABS(*pdVar6)" identifier <= (call_expression "ABS(*pdVar6)" identifier (argument_list "(*pdVar6)" ( (pointer_expression "*pdVar6" * identifier) )))) )) (compound_statement "{\n                    dStack_3d0 = dStack_3d0 * *pdVar6 * in_f28_29;\n                  }" { (expression_statement "dStack_3d0 = dStack_3d0 * *pdVar6 * in_f28_29;" (assignment_expression "dStack_3d0 = dStack_3d0 * *pdVar6 * in_f28_29" identifier = (binary_expression "dStack_3d0 * *pdVar6 * in_f28_29" (binary_expression "dStack_3d0 * *pdVar6" identifier * (pointer_expression "*pdVar6" * identifier)) * identifier)) ;) })) }))) (expression_statement "iVar12 = *(int *)(unaff_s7 + 0x2d0);" (assignment_expression "iVar12 = *(int *)(unaff_s7 + 0x2d0)" identifier = (pointer_expression "*(int *)(unaff_s7 + 0x2d0)" * (cast_expression "(int *)(unaff_s7 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x2d0)" ( (binary_expression "unaff_s7 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "*(float *)((int)pdVar18 + *(int *)(iVar12 + 8) * 4) = (float)dStack_3f0;" (assignment_expression "*(float *)((int)pdVar18 + *(int *)(iVar12 + 8) * 4) = (float)dStack_3f0" (pointer_expression "*(float *)((int)pdVar18 + *(int *)(iVar12 + 8) * 4)" * (cast_expression "(float *)((int)pdVar18 + *(int *)(iVar12 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar18 + *(int *)(iVar12 + 8) * 4)" ( (binary_expression "(int)pdVar18 + *(int *)(iVar12 + 8) * 4" (cast_expression "(int)pdVar18" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar12 + 8) * 4" (pointer_expression "*(int *)(iVar12 + 8)" * (cast_expression "(int *)(iVar12 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)dStack_3f0" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "*(float *)((int)pdVar18 + *(int *)(iVar12 + 0x14) * 4) = (float)dStack_3e8;" (assignment_expression "*(float *)((int)pdVar18 + *(int *)(iVar12 + 0x14) * 4) = (float)dStack_3e8" (pointer_expression "*(float *)((int)pdVar18 + *(int *)(iVar12 + 0x14) * 4)" * (cast_expression "(float *)((int)pdVar18 + *(int *)(iVar12 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar18 + *(int *)(iVar12 + 0x14) * 4)" ( (binary_expression "(int)pdVar18 + *(int *)(iVar12 + 0x14) * 4" (cast_expression "(int)pdVar18" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar12 + 0x14) * 4" (pointer_expression "*(int *)(iVar12 + 0x14)" * (cast_expression "(int *)(iVar12 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x14)" ( (binary_expression "iVar12 + 0x14" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)dStack_3e8" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "*(float *)((int)pdVar18 + *(int *)(iVar12 + 0x20) * 4) = (float)dStack_3e0;" (assignment_expression "*(float *)((int)pdVar18 + *(int *)(iVar12 + 0x20) * 4) = (float)dStack_3e0" (pointer_expression "*(float *)((int)pdVar18 + *(int *)(iVar12 + 0x20) * 4)" * (cast_expression "(float *)((int)pdVar18 + *(int *)(iVar12 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar18 + *(int *)(iVar12 + 0x20) * 4)" ( (binary_expression "(int)pdVar18 + *(int *)(iVar12 + 0x20) * 4" (cast_expression "(int)pdVar18" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar12 + 0x20) * 4" (pointer_expression "*(int *)(iVar12 + 0x20)" * (cast_expression "(int *)(iVar12 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)dStack_3e0" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (if_statement "if (*(int *)(iVar12 + 0x28) != 0) {\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x2c) * 4) = (float)dStack_3d8;\n                }" if (parenthesized_expression "(*(int *)(iVar12 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar12 + 0x28) != 0" (pointer_expression "*(int *)(iVar12 + 0x28)" * (cast_expression "(int *)(iVar12 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x28)" ( (binary_expression "iVar12 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x2c) * 4) = (float)dStack_3d8;\n                }" { (expression_statement "*(float *)((int)pdVar18 + *(int *)(iVar12 + 0x2c) * 4) = (float)dStack_3d8;" (assignment_expression "*(float *)((int)pdVar18 + *(int *)(iVar12 + 0x2c) * 4) = (float)dStack_3d8" (pointer_expression "*(float *)((int)pdVar18 + *(int *)(iVar12 + 0x2c) * 4)" * (cast_expression "(float *)((int)pdVar18 + *(int *)(iVar12 + 0x2c) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar18 + *(int *)(iVar12 + 0x2c) * 4)" ( (binary_expression "(int)pdVar18 + *(int *)(iVar12 + 0x2c) * 4" (cast_expression "(int)pdVar18" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar12 + 0x2c) * 4" (pointer_expression "*(int *)(iVar12 + 0x2c)" * (cast_expression "(int *)(iVar12 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x2c)" ( (binary_expression "iVar12 + 0x2c" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)dStack_3d8" ( (type_descriptor "float" primitive_type) ) identifier)) ;) })) (if_statement "if (*(int *)(iVar12 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar45 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar45 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x38) * 4) = fVar45;\n                }" if (parenthesized_expression "(*(int *)(iVar12 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar12 + 0x34) != 0" (pointer_expression "*(int *)(iVar12 + 0x34)" * (cast_expression "(int *)(iVar12 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x34)" ( (binary_expression "iVar12 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                  if (aiStack_418[2] == 0) {\n                    fVar45 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar45 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar18 + *(int *)(iVar12 + 0x38) * 4) = fVar45;\n                }" { (if_statement "if (aiStack_418[2] == 0) {\n                    fVar45 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar45 = (float)dStack_3d0;\n                  }" if (parenthesized_expression "(aiStack_418[2] == 0)" ( (binary_expression "aiStack_418[2] == 0" (subscript_expression "aiStack_418[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                    fVar45 = SUB84(in_f24_25,0);\n                  }" { (expression_statement "fVar45 = SUB84(in_f24_25,0);" (assignment_expression "fVar45 = SUB84(in_f24_25,0)" identifier = (call_expression "SUB84(in_f24_25,0)" identifier (argument_list "(in_f24_25,0)" ( identifier , number_literal )))) ;) }) (else_clause "else {\n                    fVar45 = (float)dStack_3d0;\n                  }" else (compound_statement "{\n                    fVar45 = (float)dStack_3d0;\n                  }" { (expression_statement "fVar45 = (float)dStack_3d0;" (assignment_expression "fVar45 = (float)dStack_3d0" identifier = (cast_expression "(float)dStack_3d0" ( (type_descriptor "float" primitive_type) ) identifier)) ;) }))) (expression_statement "*(float *)((int)pdVar18 + *(int *)(iVar12 + 0x38) * 4) = fVar45;" (assignment_expression "*(float *)((int)pdVar18 + *(int *)(iVar12 + 0x38) * 4) = fVar45" (pointer_expression "*(float *)((int)pdVar18 + *(int *)(iVar12 + 0x38) * 4)" * (cast_expression "(float *)((int)pdVar18 + *(int *)(iVar12 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar18 + *(int *)(iVar12 + 0x38) * 4)" ( (binary_expression "(int)pdVar18 + *(int *)(iVar12 + 0x38) * 4" (cast_expression "(int)pdVar18" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar12 + 0x38) * 4" (pointer_expression "*(int *)(iVar12 + 0x38)" * (cast_expression "(int *)(iVar12 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x38)" ( (binary_expression "iVar12 + 0x38" identifier + number_literal) )))) * number_literal)) )))) = identifier) ;) })) })) (expression_statement "pdVar18 = (double *)((int)pdVar18 + *(int *)(unaff_s7 + 0x2c0) * 4);" (assignment_expression "pdVar18 = (double *)((int)pdVar18 + *(int *)(unaff_s7 + 0x2c0) * 4)" identifier = (cast_expression "(double *)((int)pdVar18 + *(int *)(unaff_s7 + 0x2c0) * 4)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar18 + *(int *)(unaff_s7 + 0x2c0) * 4)" ( (binary_expression "(int)pdVar18 + *(int *)(unaff_s7 + 0x2c0) * 4" (cast_expression "(int)pdVar18" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(unaff_s7 + 0x2c0) * 4" (pointer_expression "*(int *)(unaff_s7 + 0x2c0)" * (cast_expression "(int *)(unaff_s7 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x2c0)" ( (binary_expression "unaff_s7 + 0x2c0" identifier + number_literal) )))) * number_literal)) )))) ;) (expression_statement "uVar28 = uVar28 + 1;" (assignment_expression "uVar28 = uVar28 + 1" identifier = (binary_expression "uVar28 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((int)uVar28 <= (int)this)" ( (binary_expression "(int)uVar28 <= (int)this" (cast_expression "(int)uVar28" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "pdVar6 = pdStack_42c;" (assignment_expression "pdVar6 = pdStack_42c" identifier = identifier) ;) (expression_statement "iVar12 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);" (assignment_expression "iVar12 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430)" identifier = (call_expression "(**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430)" (parenthesized_expression "(**(code **)(pcStack_440 + -0x73a0))" ( (pointer_expression "**(code **)(pcStack_440 + -0x73a0)" * (pointer_expression "*(code **)(pcStack_440 + -0x73a0)" * (cast_expression "(code **)(pcStack_440 + -0x73a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_440 + -0x73a0)" ( (binary_expression "pcStack_440 + -0x73a0" identifier + number_literal) ))))) )) (argument_list "(pdStack_42c,uStack_430)" ( identifier , identifier )))) ;) (expression_statement "pcVar39 = pcStack_440;" (assignment_expression "pcVar39 = pcStack_440" identifier = identifier) ;) (if_statement "if (iVar12 == 0) {\n            *(uint *)(pdVar31 + 4) = 0;\n          }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n            *(uint *)(pdVar31 + 4) = 0;\n          }" { (expression_statement "*(uint *)(pdVar31 + 4) = 0;" (assignment_expression "*(uint *)(pdVar31 + 4) = 0" (pointer_expression "*(uint *)(pdVar31 + 4)" * (cast_expression "(uint *)(pdVar31 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar31 + 4)" ( (binary_expression "pdVar31 + 4" identifier + number_literal) )))) = number_literal) ;) })) }))) })) (expression_statement "iVar51 = iVar51 + 1;" (assignment_expression "iVar51 = iVar51 + 1" identifier = (binary_expression "iVar51 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar51 < iVar30)" ( (binary_expression "iVar51 < iVar30" identifier < identifier) )) ;) })) (if_statement "if (iStack_3bc == **(int **)(pcVar39 + -0x7668)) {\n    return;\n  }" if (parenthesized_expression "(iStack_3bc == **(int **)(pcVar39 + -0x7668))" ( (binary_expression "iStack_3bc == **(int **)(pcVar39 + -0x7668)" identifier == (pointer_expression "**(int **)(pcVar39 + -0x7668)" * (pointer_expression "*(int **)(pcVar39 + -0x7668)" * (cast_expression "(int **)(pcVar39 + -0x7668)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + -0x7668)" ( (binary_expression "pcVar39 + -0x7668" identifier + number_literal) )))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar39 = *(code **)(pcVar39 + -0x7834);" (assignment_expression "pcVar39 = *(code **)(pcVar39 + -0x7834)" identifier = (pointer_expression "*(code **)(pcVar39 + -0x7834)" * (cast_expression "(code **)(pcVar39 + -0x7834)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + -0x7834)" ( (binary_expression "pcVar39 + -0x7834" identifier + number_literal) ))))) ;) (expression_statement "pcVar40 = DrawGradientImage__omp_fn_1;" (assignment_expression "pcVar40 = DrawGradientImage__omp_fn_1" identifier = identifier) ;) (expression_statement "(*pcVar39)();" (call_expression "(*pcVar39)()" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_5a8 = pcVar39 + 0x35c414;" (assignment_expression "pcStack_5a8 = pcVar39 + 0x35c414" identifier = (binary_expression "pcVar39 + 0x35c414" identifier + number_literal)) ;) (expression_statement "iStack_4b4 = **(int **)(pcVar39 + 0x354dac);" (assignment_expression "iStack_4b4 = **(int **)(pcVar39 + 0x354dac)" identifier = (pointer_expression "**(int **)(pcVar39 + 0x354dac)" * (pointer_expression "*(int **)(pcVar39 + 0x354dac)" * (cast_expression "(int **)(pcVar39 + 0x354dac)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x354dac)" ( (binary_expression "pcVar39 + 0x354dac" identifier + number_literal) )))))) ;) (expression_statement "puVar34 = *(uint **)(pdVar6 + 4);" (assignment_expression "puVar34 = *(uint **)(pdVar6 + 4)" identifier = (pointer_expression "*(uint **)(pdVar6 + 4)" * (cast_expression "(uint **)(pdVar6 + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar6 + 4)" ( (binary_expression "pdVar6 + 4" identifier + number_literal) ))))) ;) (expression_statement "pdVar32 = (double *)puVar34[3];" (assignment_expression "pdVar32 = (double *)puVar34[3]" identifier = (cast_expression "(double *)puVar34[3]" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar34[3]" identifier [ number_literal ]))) ;) (expression_statement "pdVar16 = pdVar6;" (assignment_expression "pdVar16 = pdVar6" identifier = identifier) ;) (expression_statement "uStack_4b0 = uVar28;" (assignment_expression "uStack_4b0 = uVar28" identifier = identifier) ;) (expression_statement "iStack_4ac = iVar51;" (assignment_expression "iStack_4ac = iVar51" identifier = identifier) ;) (expression_statement "pdStack_4a8 = pdVar18;" (assignment_expression "pdStack_4a8 = pdVar18" identifier = identifier) ;) (expression_statement "pdStack_4a4 = pdVar31;" (assignment_expression "pdStack_4a4 = pdVar31" identifier = identifier) ;) (expression_statement "iStack_4a0 = iVar30;" (assignment_expression "iStack_4a0 = iVar30" identifier = identifier) ;) (expression_statement "pvStack_49c = this;" (assignment_expression "pvStack_49c = this" identifier = identifier) ;) (expression_statement "pdStack_498 = unaff_s6;" (assignment_expression "pdStack_498 = unaff_s6" identifier = identifier) ;) (expression_statement "uStack_494 = unaff_s7;" (assignment_expression "uStack_494 = unaff_s7" identifier = identifier) ;) (expression_statement "iStack_490 = iVar4;" (assignment_expression "iStack_490 = iVar4" identifier = identifier) ;) (expression_statement "pcStack_48c = pcVar40;" (assignment_expression "pcStack_48c = pcVar40" identifier = identifier) ;) (expression_statement "dStack_488 = in_f20_21;" (assignment_expression "dStack_488 = in_f20_21" identifier = identifier) ;) (expression_statement "dStack_480 = in_f22_23;" (assignment_expression "dStack_480 = in_f22_23" identifier = identifier) ;) (expression_statement "dStack_478 = in_f24_25;" (assignment_expression "dStack_478 = in_f24_25" identifier = identifier) ;) (expression_statement "dStack_470 = in_f26_27;" (assignment_expression "dStack_470 = in_f26_27" identifier = identifier) ;) (expression_statement "dStack_468 = in_f28_29;" (assignment_expression "dStack_468 = in_f28_29" identifier = identifier) ;) (expression_statement "dStack_460 = in_f30_31;" (assignment_expression "dStack_460 = in_f30_31" identifier = identifier) ;) (expression_statement "iVar4 = (**(code **)(pcVar39 + 0x355488))();" (assignment_expression "iVar4 = (**(code **)(pcVar39 + 0x355488))()" identifier = (call_expression "(**(code **)(pcVar39 + 0x355488))()" (parenthesized_expression "(**(code **)(pcVar39 + 0x355488))" ( (pointer_expression "**(code **)(pcVar39 + 0x355488)" * (pointer_expression "*(code **)(pcVar39 + 0x355488)" * (cast_expression "(code **)(pcVar39 + 0x355488)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x355488)" ( (binary_expression "pcVar39 + 0x355488" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar12 = (**(code **)(pcStack_5a8 + -0x7390))();" (assignment_expression "iVar12 = (**(code **)(pcStack_5a8 + -0x7390))()" identifier = (call_expression "(**(code **)(pcStack_5a8 + -0x7390))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7390))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7390)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7390)" * (cast_expression "(code **)(pcStack_5a8 + -0x7390)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7390)" ( (binary_expression "pcStack_5a8 + -0x7390" 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 "iVar51 = (int)(puVar34[1] - (int)pdVar32) / iVar4;" (assignment_expression "iVar51 = (int)(puVar34[1] - (int)pdVar32) / iVar4" identifier = (binary_expression "(int)(puVar34[1] - (int)pdVar32) / iVar4" (cast_expression "(int)(puVar34[1] - (int)pdVar32)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar34[1] - (int)pdVar32)" ( (binary_expression "puVar34[1] - (int)pdVar32" (subscript_expression "puVar34[1]" identifier [ number_literal ]) - (cast_expression "(int)pdVar32" ( (type_descriptor "int" primitive_type) ) identifier)) ))) / identifier)) ;) (expression_statement "piVar50 = (int *)((int)(puVar34[1] - (int)pdVar32) % iVar4);" (assignment_expression "piVar50 = (int *)((int)(puVar34[1] - (int)pdVar32) % iVar4)" identifier = (cast_expression "(int *)((int)(puVar34[1] - (int)pdVar32) % iVar4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(puVar34[1] - (int)pdVar32) % iVar4)" ( (binary_expression "(int)(puVar34[1] - (int)pdVar32) % iVar4" (cast_expression "(int)(puVar34[1] - (int)pdVar32)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar34[1] - (int)pdVar32)" ( (binary_expression "puVar34[1] - (int)pdVar32" (subscript_expression "puVar34[1]" identifier [ number_literal ]) - (cast_expression "(int)pdVar32" ( (type_descriptor "int" primitive_type) ) identifier)) ))) % identifier) )))) ;) (expression_statement "piVar3 = piVar50;" (assignment_expression "piVar3 = piVar50" identifier = identifier) ;) (if_statement "if (iVar12 < (int)piVar50) {\n    iVar51 = iVar51 + 1;\n    piVar3 = (int *)0x0;\n  }" if (parenthesized_expression "(iVar12 < (int)piVar50)" ( (binary_expression "iVar12 < (int)piVar50" identifier < (cast_expression "(int)piVar50" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    iVar51 = iVar51 + 1;\n    piVar3 = (int *)0x0;\n  }" { (expression_statement "iVar51 = iVar51 + 1;" (assignment_expression "iVar51 = iVar51 + 1" identifier = (binary_expression "iVar51 + 1" identifier + number_literal)) ;) (expression_statement "piVar3 = (int *)0x0;" (assignment_expression "piVar3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "piVar3 = (int *)(iVar51 * iVar12 + (int)piVar3);" (assignment_expression "piVar3 = (int *)(iVar51 * iVar12 + (int)piVar3)" identifier = (cast_expression "(int *)(iVar51 * iVar12 + (int)piVar3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar51 * iVar12 + (int)piVar3)" ( (binary_expression "iVar51 * iVar12 + (int)piVar3" (binary_expression "iVar51 * iVar12" identifier * identifier) + (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "puVar37 = (undefined1 *)((int)pdVar32 + (int)piVar3);" (assignment_expression "puVar37 = (undefined1 *)((int)pdVar32 + (int)piVar3)" identifier = (cast_expression "(undefined1 *)((int)pdVar32 + (int)piVar3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar32 + (int)piVar3)" ( (binary_expression "(int)pdVar32 + (int)piVar3" (cast_expression "(int)pdVar32" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pcVar39 = pcStack_5a8;" (assignment_expression "pcVar39 = pcStack_5a8" identifier = identifier) ;) (if_statement "if ((int)piVar3 < iVar51 + (int)piVar3) {\n    dStack_580 = *pdVar6;\n    pdStack_588 = *(double **)(pdVar6 + 3);\n    puVar34 = *(uint **)((int)pdVar6 + 0x14);\n    pdStack_568 = *(double **)(pdVar6 + 2);\n    uStack_564 = *(uint *)((int)pdVar6 + 0xc);\n    piVar50 = *(int **)(pdVar6 + 1);\n    puStack_56c = (undefined1 *)((int)pdVar32 + iVar51 + (int)piVar3);\n    dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n    if (dStack_580 < 0.0) {\n      dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n    }\n    iStack_570 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_598 = *(double *)(iStack_570 + 0x4a48);\n    iStack_584 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_560 = *(double *)(iStack_584 + 0x43d0);\n    unaff_s6 = *(double **)(pcStack_5a8 + -0x7fd0);\n    dStack_548 = unaff_s6[0x879];\n    do {\n      if (*(uint *)((int)pdVar6 + 0x24) != 0) {\n        uStack_5ac = uStack_564;\n        uStack_5b0 = 1;\n        pdVar16 = pdStack_568;\n        pdVar32 = (double *)(**(code **)(pcVar39 + -0x724c))(pdStack_568,0,puVar37,piVar50[6]);\n        if (pdVar32 == (double *)0x0) {\n          *(uint *)((int)pdVar6 + 0x24) = 0;\n          pcVar39 = pcStack_5a8;\n        }\n        else {\n          piVar19 = *(int **)((int)pdVar6 + 0x1c);\n          piVar3 = piVar19;\n          piVar21 = aiStack_510;\n          do {\n            piVar13 = piVar21;\n            piVar8 = piVar3;\n            iVar51 = piVar8[1];\n            iVar12 = piVar8[2];\n            iVar4 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar51;\n            piVar13[2] = iVar12;\n            piVar13[3] = iVar4;\n            piVar3 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar3 != piVar19 + 0x14);\n          iVar12 = *piVar3;\n          iVar4 = piVar8[5];\n          *piVar21 = iVar12;\n          piVar13[5] = iVar4;\n          in_f20_21 = *(double *)(piVar19 + 10);\n          in_f22_23 = *(double *)(piVar19 + 0xc);\n          in_f24_25 = *(double *)(piVar19 + 0xe);\n          dStack_590 = *(double *)(piVar19 + 0x10);\n          dVar41 = *(double *)(piVar19 + 0x12);\n          if (*puVar34 < 2) {\n            uStack_5a0 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n            dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar34 + 6);\n            dStack_530 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n            dVar43 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar43);\n            if (0.0 <= dVar43) {\n              dVar43 = dVar42 * dVar42;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar43 = dVar42 * dVar42;\n            }\n            dVar43 = uStack_5a0 * uStack_5a0 + dVar43;\n            in_f26_27 = SQRT(dVar43);\n            if (dVar43 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar43) {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar43 = dVar43 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar42 * dStack_530) * dVar43 * dStack_558;\nLAB_000a56c0:\n            uVar28 = *puVar34;\nLAB_000a56c4:\n            if (uVar28 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar43 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar43;\n            }\n          }\n          else {\n            if (*puVar34 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar34[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar42 = 0.0 - *(double *)(puVar34 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar34 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar21,iVar12,\n                         &dStack_518,&dStack_520);\n              dVar43 = *(double *)(puVar34 + 0x16);\n              if (in_f26_27 <= dVar43) {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar43 * dVar49) {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }\n              else {\n                dVar49 = dVar49 / unaff_s6[0x879];\n              }\n              dVar49 = (dVar42 * dStack_520 +\n                       ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) * dVar49;\n              dVar43 = *(double *)(puVar34 + 0x18);\n              if (0.0 <= dVar43) {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar43 * dVar46) {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }\n              else {\n                dVar46 = dVar46 / unaff_s6[0x879];\n              }\n              dVar46 = (dVar42 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) * dVar46;\n              dVar43 = dVar49 * dVar49 + dVar46 * dVar46;\n              uStack_5a0 = SQRT(dVar43);\n              if (0.0 <= dVar43) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar28 = *puVar34;\n              goto LAB_000a56c4;\n            }\n            dVar43 = (0.0 - *(double *)(puVar34 + 0x12)) * (0.0 - *(double *)(puVar34 + 0x12)) +\n                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n            uStack_5a0 = SQRT(dVar43);\n            if (dVar43 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar28 = *puVar34;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar30 = (*(int **)(pdVar6 + 4))[2];\n          pdVar31 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar30 < **(int **)(pdVar6 + 4)) {\n            dStack_540 = pdVar31[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar50 != (int *)0x0) {\n                aiStack_510[0] = *piVar50;\n                aiStack_510[1] = piVar50[1];\n                uStack_500 = *(undefined8 *)(piVar50 + 0x92);\n                iStack_4f8 = piVar50[8];\n                aiStack_510[2] = piVar50[0xaf];\n                if (pdVar32 != (double *)0x0) {\n                  iVar4 = piVar50[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4);\n                  if (*(int *)(iVar4 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar4 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar4 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar34[0x10];\n              if (unaff_s7 == 2) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      in_f26_27 = pdVar31[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                      in_f26_27 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar34 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar41 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar41 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar41;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar34 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar41 = *(double *)(puVar34 + 0x16);\n                  if (0.0 <= dVar41) {\n                    dVar49 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                    dVar49 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar49 = dVar49 / unaff_s6[0x879];\n                  }\n                  dVar41 = *(double *)(puVar34 + 0x18);\n                  dVar49 = (dVar42 * dStack_520 +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                           dVar49;\n                  if (0.0 <= dVar41) {\n                    dVar46 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                    dVar46 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar46 = dVar46 / unaff_s6[0x879];\n                  }\n                  dVar46 = (dVar42 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                           dVar46;\n                  dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar34 != 2) goto LAB_000a6378;\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar4 + 0x298));\n                if ((int)dVar41 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar31[0x881]);\n                }\n                else {\n                  dVar41 = pdVar31[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar41);\n                  uStack_5a0 = dVar41 - uStack_5a0;\n                }\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a6248;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar12 + 0x58)) /\n                               (*(double *)(iVar4 + 0x58) - *(double *)(iVar12 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6e58:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) goto LAB_000a6944;\n                if (*puVar34 < 2) {\n                  dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                  dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                  dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                  dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                  dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) {\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  dVar41 = dVar46 * dVar46 + dVar41;\n                  dVar44 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar44 = uStack_5a0 * dVar44;\n                  if (0.0 <= dVar44) {\n                    in_f26_27 = pdVar31[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                    in_f26_27 = pdVar31[0x881] / dVar44;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar28 = *puVar34;\nLAB_000a690c:\n                  if (uVar28 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar41 = pdVar31[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar41 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar41;\n                  }\n                }\n                else {\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar34 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar41 = *(double *)(puVar34 + 0x16);\n                    if (0.0 <= dVar41) {\n                      dVar49 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                      dVar49 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar49 = dVar49 / unaff_s6[0x879];\n                    }\n                    dVar41 = *(double *)(puVar34 + 0x18);\n                    dVar49 = (dVar42 * dStack_520 +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                             dVar49;\n                    if (0.0 <= dVar41) {\n                      dVar46 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                      dVar46 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar46 = dVar46 / unaff_s6[0x879];\n                    }\n                    dVar46 = (dVar42 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                             dVar46;\n                    dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                  dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                           ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                  uStack_5a0 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar41 = pdVar31[0x881];\n                        uVar20 = uVar28;\n                        goto LAB_000a6f20;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar41 = pdVar31[0x881], uVar20 != 0)) {\nLAB_000a6f20:\n                      if ((dVar41 < uStack_5a0) || (uVar28 == uVar20)) {\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar4 = uVar9 + uVar24 * 0x60;\n                      iVar12 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar4 + 0x58)) /\n                               (*(double *)(iVar12 + 0x58) - *(double *)(iVar4 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6740:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar4 + 0x28) +\n                                  dVar42 * *(double *)(iVar12 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar4 + 0x30) +\n                                  dVar42 * *(double *)(iVar12 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar4 + 0x38) +\n                                  dVar42 * *(double *)(iVar12 + 0x38)) * dVar47;\n                      if (*(int *)(iVar12 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar4 + 0x40) +\n                                     dVar42 * *(double *)(iVar12 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\n                  dVar42 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      dVar41 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * dVar41) {\n                      dVar41 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      dVar41 = dVar41 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * dVar41 * uStack_5a0;\nLAB_000a5e90:\n                    uVar28 = *puVar34;\nLAB_000a5e94:\n                    if (uVar28 == 1) {\n                      dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar41;\n                      if (0.0 <= dVar41) {\n                        dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar41,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar42 = dStack_580;\n                        dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580);\n                        dVar42 = dVar42 - dVar41;\n                      }\n                      bVar1 = dVar42 < dStack_580 && dStack_580 < dVar42 + pdVar31[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar31[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar42 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar34 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                             ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                    in_f26_27 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar28 = *puVar34;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  uStack_5a0 = dVar41;\n                  if (0.0 <= dVar41) {\n                    dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  }\n                  else {\n                    dVar42 = *(double *)(puVar34 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar41,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dVar42);\n                    dVar42 = dVar42 - dVar41;\n                  }\n                  bVar1 = *(double *)(puVar34 + 0x1a) < dVar42 + pdVar31[0x881];\n                  uStack_5a0 = dVar42 / *(double *)(puVar34 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a5db0;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      dVar41 = *(double *)(uVar9 + uVar24 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar41 = dStack_580;\n                        if (*puVar34 != 1) {\n                          dVar41 = *(double *)(puVar34 + 0x1a);\n                        }\n                        dVar41 = dVar41 - dVar42;\n                        uVar20 = uVar28 - 1;\n                        uVar24 = 0;\n                      }\n                      else {\n                        dVar41 = (uStack_5a0 - dVar41) /\n                                 (*(double *)(uVar9 + uVar20 * 0x60 + 0x58) - dVar41);\n                      }\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6d30:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\nLAB_000a5af8:\n              dVar46 = dVar41 * dVar43;\n              dVar49 = dStack_4c8 * dVar43;\n              dVar42 = (dVar46 + dVar49) - dVar46 * dVar49;\n              if (0.0 <= dVar42) {\n                dStack_4c8 = pdVar31[0x881];\n                if (dVar42 <= pdVar31[0x881]) {\n                  dStack_4c8 = dVar42;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar42) {\n                  dVar47 = pdVar31[0x881];\n                }\n                else {\n                  dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar42 * dVar47) {\n                dVar47 = pdVar31[0x881] / dVar42;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar42 = pdVar31[0x881] - dVar46;\n              dStack_4e8 = (dVar49 * dStack_4e8 * dVar42 + dVar46 * in_f20_21) * dVar47;\n              dStack_4e0 = (dVar49 * dStack_4e0 * dVar42 + in_f22_23 * dVar46) * dVar47;\n              dStack_4d8 = (dVar49 * dStack_4d8 * dVar42 + dVar46 * in_f24_25) * dVar47;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar49 * dStack_4d0 * dVar42 + dStack_590 * dVar46) * dVar47;\n              }\n              iVar4 = piVar50[0xb4];\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar4 + 0x28) != 0) {\n                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar4 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar45 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar45 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4) = fVar45;\n              }\n              pdVar32 = (double *)((int)pdVar32 + piVar50[0xb0] * 4);\n              iVar30 = iVar30 + 1;\n            } while (iVar30 < **(int **)(pdVar6 + 4));\n          }\n          pdVar16 = pdStack_568;\n          iVar4 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar39 = pcStack_5a8;\n          if (iVar4 == 0) {\n            *(uint *)((int)pdVar6 + 0x24) = 0;\n          }\n        }\n      }\n      puVar37 = puVar37 + 1;\n    } while ((int)puVar37 < (int)puStack_56c);\n  }" if (parenthesized_expression "((int)piVar3 < iVar51 + (int)piVar3)" ( (binary_expression "(int)piVar3 < iVar51 + (int)piVar3" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) < (binary_expression "iVar51 + (int)piVar3" identifier + (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier))) )) (compound_statement "{\n    dStack_580 = *pdVar6;\n    pdStack_588 = *(double **)(pdVar6 + 3);\n    puVar34 = *(uint **)((int)pdVar6 + 0x14);\n    pdStack_568 = *(double **)(pdVar6 + 2);\n    uStack_564 = *(uint *)((int)pdVar6 + 0xc);\n    piVar50 = *(int **)(pdVar6 + 1);\n    puStack_56c = (undefined1 *)((int)pdVar32 + iVar51 + (int)piVar3);\n    dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n    if (dStack_580 < 0.0) {\n      dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n    }\n    iStack_570 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_598 = *(double *)(iStack_570 + 0x4a48);\n    iStack_584 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_560 = *(double *)(iStack_584 + 0x43d0);\n    unaff_s6 = *(double **)(pcStack_5a8 + -0x7fd0);\n    dStack_548 = unaff_s6[0x879];\n    do {\n      if (*(uint *)((int)pdVar6 + 0x24) != 0) {\n        uStack_5ac = uStack_564;\n        uStack_5b0 = 1;\n        pdVar16 = pdStack_568;\n        pdVar32 = (double *)(**(code **)(pcVar39 + -0x724c))(pdStack_568,0,puVar37,piVar50[6]);\n        if (pdVar32 == (double *)0x0) {\n          *(uint *)((int)pdVar6 + 0x24) = 0;\n          pcVar39 = pcStack_5a8;\n        }\n        else {\n          piVar19 = *(int **)((int)pdVar6 + 0x1c);\n          piVar3 = piVar19;\n          piVar21 = aiStack_510;\n          do {\n            piVar13 = piVar21;\n            piVar8 = piVar3;\n            iVar51 = piVar8[1];\n            iVar12 = piVar8[2];\n            iVar4 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar51;\n            piVar13[2] = iVar12;\n            piVar13[3] = iVar4;\n            piVar3 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar3 != piVar19 + 0x14);\n          iVar12 = *piVar3;\n          iVar4 = piVar8[5];\n          *piVar21 = iVar12;\n          piVar13[5] = iVar4;\n          in_f20_21 = *(double *)(piVar19 + 10);\n          in_f22_23 = *(double *)(piVar19 + 0xc);\n          in_f24_25 = *(double *)(piVar19 + 0xe);\n          dStack_590 = *(double *)(piVar19 + 0x10);\n          dVar41 = *(double *)(piVar19 + 0x12);\n          if (*puVar34 < 2) {\n            uStack_5a0 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n            dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar34 + 6);\n            dStack_530 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n            dVar43 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar43);\n            if (0.0 <= dVar43) {\n              dVar43 = dVar42 * dVar42;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar43 = dVar42 * dVar42;\n            }\n            dVar43 = uStack_5a0 * uStack_5a0 + dVar43;\n            in_f26_27 = SQRT(dVar43);\n            if (dVar43 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar43) {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar43 = dVar43 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar42 * dStack_530) * dVar43 * dStack_558;\nLAB_000a56c0:\n            uVar28 = *puVar34;\nLAB_000a56c4:\n            if (uVar28 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar43 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar43;\n            }\n          }\n          else {\n            if (*puVar34 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar34[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar42 = 0.0 - *(double *)(puVar34 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar34 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar21,iVar12,\n                         &dStack_518,&dStack_520);\n              dVar43 = *(double *)(puVar34 + 0x16);\n              if (in_f26_27 <= dVar43) {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar43 * dVar49) {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }\n              else {\n                dVar49 = dVar49 / unaff_s6[0x879];\n              }\n              dVar49 = (dVar42 * dStack_520 +\n                       ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) * dVar49;\n              dVar43 = *(double *)(puVar34 + 0x18);\n              if (0.0 <= dVar43) {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar43 * dVar46) {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }\n              else {\n                dVar46 = dVar46 / unaff_s6[0x879];\n              }\n              dVar46 = (dVar42 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) * dVar46;\n              dVar43 = dVar49 * dVar49 + dVar46 * dVar46;\n              uStack_5a0 = SQRT(dVar43);\n              if (0.0 <= dVar43) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar28 = *puVar34;\n              goto LAB_000a56c4;\n            }\n            dVar43 = (0.0 - *(double *)(puVar34 + 0x12)) * (0.0 - *(double *)(puVar34 + 0x12)) +\n                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n            uStack_5a0 = SQRT(dVar43);\n            if (dVar43 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar28 = *puVar34;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar30 = (*(int **)(pdVar6 + 4))[2];\n          pdVar31 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar30 < **(int **)(pdVar6 + 4)) {\n            dStack_540 = pdVar31[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar50 != (int *)0x0) {\n                aiStack_510[0] = *piVar50;\n                aiStack_510[1] = piVar50[1];\n                uStack_500 = *(undefined8 *)(piVar50 + 0x92);\n                iStack_4f8 = piVar50[8];\n                aiStack_510[2] = piVar50[0xaf];\n                if (pdVar32 != (double *)0x0) {\n                  iVar4 = piVar50[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4);\n                  if (*(int *)(iVar4 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar4 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar4 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar34[0x10];\n              if (unaff_s7 == 2) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      in_f26_27 = pdVar31[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                      in_f26_27 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar34 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar41 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar41 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar41;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar34 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar41 = *(double *)(puVar34 + 0x16);\n                  if (0.0 <= dVar41) {\n                    dVar49 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                    dVar49 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar49 = dVar49 / unaff_s6[0x879];\n                  }\n                  dVar41 = *(double *)(puVar34 + 0x18);\n                  dVar49 = (dVar42 * dStack_520 +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                           dVar49;\n                  if (0.0 <= dVar41) {\n                    dVar46 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                    dVar46 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar46 = dVar46 / unaff_s6[0x879];\n                  }\n                  dVar46 = (dVar42 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                           dVar46;\n                  dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar34 != 2) goto LAB_000a6378;\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar4 + 0x298));\n                if ((int)dVar41 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar31[0x881]);\n                }\n                else {\n                  dVar41 = pdVar31[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar41);\n                  uStack_5a0 = dVar41 - uStack_5a0;\n                }\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a6248;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar12 + 0x58)) /\n                               (*(double *)(iVar4 + 0x58) - *(double *)(iVar12 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6e58:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) goto LAB_000a6944;\n                if (*puVar34 < 2) {\n                  dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                  dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                  dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                  dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                  dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) {\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  dVar41 = dVar46 * dVar46 + dVar41;\n                  dVar44 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar44 = uStack_5a0 * dVar44;\n                  if (0.0 <= dVar44) {\n                    in_f26_27 = pdVar31[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                    in_f26_27 = pdVar31[0x881] / dVar44;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar28 = *puVar34;\nLAB_000a690c:\n                  if (uVar28 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar41 = pdVar31[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar41 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar41;\n                  }\n                }\n                else {\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar34 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar41 = *(double *)(puVar34 + 0x16);\n                    if (0.0 <= dVar41) {\n                      dVar49 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                      dVar49 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar49 = dVar49 / unaff_s6[0x879];\n                    }\n                    dVar41 = *(double *)(puVar34 + 0x18);\n                    dVar49 = (dVar42 * dStack_520 +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                             dVar49;\n                    if (0.0 <= dVar41) {\n                      dVar46 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                      dVar46 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar46 = dVar46 / unaff_s6[0x879];\n                    }\n                    dVar46 = (dVar42 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                             dVar46;\n                    dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                  dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                           ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                  uStack_5a0 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar41 = pdVar31[0x881];\n                        uVar20 = uVar28;\n                        goto LAB_000a6f20;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar41 = pdVar31[0x881], uVar20 != 0)) {\nLAB_000a6f20:\n                      if ((dVar41 < uStack_5a0) || (uVar28 == uVar20)) {\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar4 = uVar9 + uVar24 * 0x60;\n                      iVar12 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar4 + 0x58)) /\n                               (*(double *)(iVar12 + 0x58) - *(double *)(iVar4 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6740:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar4 + 0x28) +\n                                  dVar42 * *(double *)(iVar12 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar4 + 0x30) +\n                                  dVar42 * *(double *)(iVar12 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar4 + 0x38) +\n                                  dVar42 * *(double *)(iVar12 + 0x38)) * dVar47;\n                      if (*(int *)(iVar12 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar4 + 0x40) +\n                                     dVar42 * *(double *)(iVar12 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\n                  dVar42 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      dVar41 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * dVar41) {\n                      dVar41 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      dVar41 = dVar41 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * dVar41 * uStack_5a0;\nLAB_000a5e90:\n                    uVar28 = *puVar34;\nLAB_000a5e94:\n                    if (uVar28 == 1) {\n                      dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar41;\n                      if (0.0 <= dVar41) {\n                        dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar41,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar42 = dStack_580;\n                        dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580);\n                        dVar42 = dVar42 - dVar41;\n                      }\n                      bVar1 = dVar42 < dStack_580 && dStack_580 < dVar42 + pdVar31[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar31[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar42 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar34 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                             ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                    in_f26_27 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar28 = *puVar34;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  uStack_5a0 = dVar41;\n                  if (0.0 <= dVar41) {\n                    dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  }\n                  else {\n                    dVar42 = *(double *)(puVar34 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar41,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dVar42);\n                    dVar42 = dVar42 - dVar41;\n                  }\n                  bVar1 = *(double *)(puVar34 + 0x1a) < dVar42 + pdVar31[0x881];\n                  uStack_5a0 = dVar42 / *(double *)(puVar34 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a5db0;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      dVar41 = *(double *)(uVar9 + uVar24 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar41 = dStack_580;\n                        if (*puVar34 != 1) {\n                          dVar41 = *(double *)(puVar34 + 0x1a);\n                        }\n                        dVar41 = dVar41 - dVar42;\n                        uVar20 = uVar28 - 1;\n                        uVar24 = 0;\n                      }\n                      else {\n                        dVar41 = (uStack_5a0 - dVar41) /\n                                 (*(double *)(uVar9 + uVar20 * 0x60 + 0x58) - dVar41);\n                      }\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6d30:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\nLAB_000a5af8:\n              dVar46 = dVar41 * dVar43;\n              dVar49 = dStack_4c8 * dVar43;\n              dVar42 = (dVar46 + dVar49) - dVar46 * dVar49;\n              if (0.0 <= dVar42) {\n                dStack_4c8 = pdVar31[0x881];\n                if (dVar42 <= pdVar31[0x881]) {\n                  dStack_4c8 = dVar42;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar42) {\n                  dVar47 = pdVar31[0x881];\n                }\n                else {\n                  dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar42 * dVar47) {\n                dVar47 = pdVar31[0x881] / dVar42;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar42 = pdVar31[0x881] - dVar46;\n              dStack_4e8 = (dVar49 * dStack_4e8 * dVar42 + dVar46 * in_f20_21) * dVar47;\n              dStack_4e0 = (dVar49 * dStack_4e0 * dVar42 + in_f22_23 * dVar46) * dVar47;\n              dStack_4d8 = (dVar49 * dStack_4d8 * dVar42 + dVar46 * in_f24_25) * dVar47;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar49 * dStack_4d0 * dVar42 + dStack_590 * dVar46) * dVar47;\n              }\n              iVar4 = piVar50[0xb4];\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar4 + 0x28) != 0) {\n                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar4 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar45 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar45 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4) = fVar45;\n              }\n              pdVar32 = (double *)((int)pdVar32 + piVar50[0xb0] * 4);\n              iVar30 = iVar30 + 1;\n            } while (iVar30 < **(int **)(pdVar6 + 4));\n          }\n          pdVar16 = pdStack_568;\n          iVar4 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar39 = pcStack_5a8;\n          if (iVar4 == 0) {\n            *(uint *)((int)pdVar6 + 0x24) = 0;\n          }\n        }\n      }\n      puVar37 = puVar37 + 1;\n    } while ((int)puVar37 < (int)puStack_56c);\n  }" { (expression_statement "dStack_580 = *pdVar6;" (assignment_expression "dStack_580 = *pdVar6" identifier = (pointer_expression "*pdVar6" * identifier)) ;) (expression_statement "pdStack_588 = *(double **)(pdVar6 + 3);" (assignment_expression "pdStack_588 = *(double **)(pdVar6 + 3)" identifier = (pointer_expression "*(double **)(pdVar6 + 3)" * (cast_expression "(double **)(pdVar6 + 3)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar6 + 3)" ( (binary_expression "pdVar6 + 3" identifier + number_literal) ))))) ;) (expression_statement "puVar34 = *(uint **)((int)pdVar6 + 0x14);" (assignment_expression "puVar34 = *(uint **)((int)pdVar6 + 0x14)" identifier = (pointer_expression "*(uint **)((int)pdVar6 + 0x14)" * (cast_expression "(uint **)((int)pdVar6 + 0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pdVar6 + 0x14)" ( (binary_expression "(int)pdVar6 + 0x14" (cast_expression "(int)pdVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pdStack_568 = *(double **)(pdVar6 + 2);" (assignment_expression "pdStack_568 = *(double **)(pdVar6 + 2)" identifier = (pointer_expression "*(double **)(pdVar6 + 2)" * (cast_expression "(double **)(pdVar6 + 2)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar6 + 2)" ( (binary_expression "pdVar6 + 2" identifier + number_literal) ))))) ;) (expression_statement "uStack_564 = *(uint *)((int)pdVar6 + 0xc);" (assignment_expression "uStack_564 = *(uint *)((int)pdVar6 + 0xc)" identifier = (pointer_expression "*(uint *)((int)pdVar6 + 0xc)" * (cast_expression "(uint *)((int)pdVar6 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar6 + 0xc)" ( (binary_expression "(int)pdVar6 + 0xc" (cast_expression "(int)pdVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "piVar50 = *(int **)(pdVar6 + 1);" (assignment_expression "piVar50 = *(int **)(pdVar6 + 1)" identifier = (pointer_expression "*(int **)(pdVar6 + 1)" * (cast_expression "(int **)(pdVar6 + 1)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar6 + 1)" ( (binary_expression "pdVar6 + 1" identifier + number_literal) ))))) ;) (expression_statement "puStack_56c = (undefined1 *)((int)pdVar32 + iVar51 + (int)piVar3);" (assignment_expression "puStack_56c = (undefined1 *)((int)pdVar32 + iVar51 + (int)piVar3)" identifier = (cast_expression "(undefined1 *)((int)pdVar32 + iVar51 + (int)piVar3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar32 + iVar51 + (int)piVar3)" ( (binary_expression "(int)pdVar32 + iVar51 + (int)piVar3" (binary_expression "(int)pdVar32 + iVar51" (cast_expression "(int)pdVar32" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);" (assignment_expression "dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (dStack_580 < 0.0) {\n      dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n    }" if (parenthesized_expression "(dStack_580 < 0.0)" ( (binary_expression "dStack_580 < 0.0" identifier < number_literal) )) (compound_statement "{\n      dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n    }" { (expression_statement "dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) })) (expression_statement "iStack_570 = *(int *)(pcStack_5a8 + -0x7fd0);" (assignment_expression "iStack_570 = *(int *)(pcStack_5a8 + -0x7fd0)" identifier = (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) ))))) ;) (expression_statement "dStack_598 = *(double *)(iStack_570 + 0x4a48);" (assignment_expression "dStack_598 = *(double *)(iStack_570 + 0x4a48)" identifier = (pointer_expression "*(double *)(iStack_570 + 0x4a48)" * (cast_expression "(double *)(iStack_570 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_570 + 0x4a48)" ( (binary_expression "iStack_570 + 0x4a48" identifier + number_literal) ))))) ;) (expression_statement "iStack_584 = *(int *)(pcStack_5a8 + -0x7fd0);" (assignment_expression "iStack_584 = *(int *)(pcStack_5a8 + -0x7fd0)" identifier = (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) ))))) ;) (expression_statement "dStack_560 = *(double *)(iStack_584 + 0x43d0);" (assignment_expression "dStack_560 = *(double *)(iStack_584 + 0x43d0)" identifier = (pointer_expression "*(double *)(iStack_584 + 0x43d0)" * (cast_expression "(double *)(iStack_584 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_584 + 0x43d0)" ( (binary_expression "iStack_584 + 0x43d0" identifier + number_literal) ))))) ;) (expression_statement "unaff_s6 = *(double **)(pcStack_5a8 + -0x7fd0);" (assignment_expression "unaff_s6 = *(double **)(pcStack_5a8 + -0x7fd0)" identifier = (pointer_expression "*(double **)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(double **)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) ))))) ;) (expression_statement "dStack_548 = unaff_s6[0x879];" (assignment_expression "dStack_548 = unaff_s6[0x879]" identifier = (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ])) ;) (do_statement "do {\n      if (*(uint *)((int)pdVar6 + 0x24) != 0) {\n        uStack_5ac = uStack_564;\n        uStack_5b0 = 1;\n        pdVar16 = pdStack_568;\n        pdVar32 = (double *)(**(code **)(pcVar39 + -0x724c))(pdStack_568,0,puVar37,piVar50[6]);\n        if (pdVar32 == (double *)0x0) {\n          *(uint *)((int)pdVar6 + 0x24) = 0;\n          pcVar39 = pcStack_5a8;\n        }\n        else {\n          piVar19 = *(int **)((int)pdVar6 + 0x1c);\n          piVar3 = piVar19;\n          piVar21 = aiStack_510;\n          do {\n            piVar13 = piVar21;\n            piVar8 = piVar3;\n            iVar51 = piVar8[1];\n            iVar12 = piVar8[2];\n            iVar4 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar51;\n            piVar13[2] = iVar12;\n            piVar13[3] = iVar4;\n            piVar3 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar3 != piVar19 + 0x14);\n          iVar12 = *piVar3;\n          iVar4 = piVar8[5];\n          *piVar21 = iVar12;\n          piVar13[5] = iVar4;\n          in_f20_21 = *(double *)(piVar19 + 10);\n          in_f22_23 = *(double *)(piVar19 + 0xc);\n          in_f24_25 = *(double *)(piVar19 + 0xe);\n          dStack_590 = *(double *)(piVar19 + 0x10);\n          dVar41 = *(double *)(piVar19 + 0x12);\n          if (*puVar34 < 2) {\n            uStack_5a0 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n            dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar34 + 6);\n            dStack_530 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n            dVar43 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar43);\n            if (0.0 <= dVar43) {\n              dVar43 = dVar42 * dVar42;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar43 = dVar42 * dVar42;\n            }\n            dVar43 = uStack_5a0 * uStack_5a0 + dVar43;\n            in_f26_27 = SQRT(dVar43);\n            if (dVar43 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar43) {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar43 = dVar43 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar42 * dStack_530) * dVar43 * dStack_558;\nLAB_000a56c0:\n            uVar28 = *puVar34;\nLAB_000a56c4:\n            if (uVar28 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar43 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar43;\n            }\n          }\n          else {\n            if (*puVar34 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar34[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar42 = 0.0 - *(double *)(puVar34 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar34 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar21,iVar12,\n                         &dStack_518,&dStack_520);\n              dVar43 = *(double *)(puVar34 + 0x16);\n              if (in_f26_27 <= dVar43) {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar43 * dVar49) {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }\n              else {\n                dVar49 = dVar49 / unaff_s6[0x879];\n              }\n              dVar49 = (dVar42 * dStack_520 +\n                       ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) * dVar49;\n              dVar43 = *(double *)(puVar34 + 0x18);\n              if (0.0 <= dVar43) {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar43 * dVar46) {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }\n              else {\n                dVar46 = dVar46 / unaff_s6[0x879];\n              }\n              dVar46 = (dVar42 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) * dVar46;\n              dVar43 = dVar49 * dVar49 + dVar46 * dVar46;\n              uStack_5a0 = SQRT(dVar43);\n              if (0.0 <= dVar43) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar28 = *puVar34;\n              goto LAB_000a56c4;\n            }\n            dVar43 = (0.0 - *(double *)(puVar34 + 0x12)) * (0.0 - *(double *)(puVar34 + 0x12)) +\n                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n            uStack_5a0 = SQRT(dVar43);\n            if (dVar43 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar28 = *puVar34;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar30 = (*(int **)(pdVar6 + 4))[2];\n          pdVar31 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar30 < **(int **)(pdVar6 + 4)) {\n            dStack_540 = pdVar31[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar50 != (int *)0x0) {\n                aiStack_510[0] = *piVar50;\n                aiStack_510[1] = piVar50[1];\n                uStack_500 = *(undefined8 *)(piVar50 + 0x92);\n                iStack_4f8 = piVar50[8];\n                aiStack_510[2] = piVar50[0xaf];\n                if (pdVar32 != (double *)0x0) {\n                  iVar4 = piVar50[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4);\n                  if (*(int *)(iVar4 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar4 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar4 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar34[0x10];\n              if (unaff_s7 == 2) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      in_f26_27 = pdVar31[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                      in_f26_27 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar34 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar41 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar41 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar41;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar34 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar41 = *(double *)(puVar34 + 0x16);\n                  if (0.0 <= dVar41) {\n                    dVar49 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                    dVar49 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar49 = dVar49 / unaff_s6[0x879];\n                  }\n                  dVar41 = *(double *)(puVar34 + 0x18);\n                  dVar49 = (dVar42 * dStack_520 +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                           dVar49;\n                  if (0.0 <= dVar41) {\n                    dVar46 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                    dVar46 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar46 = dVar46 / unaff_s6[0x879];\n                  }\n                  dVar46 = (dVar42 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                           dVar46;\n                  dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar34 != 2) goto LAB_000a6378;\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar4 + 0x298));\n                if ((int)dVar41 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar31[0x881]);\n                }\n                else {\n                  dVar41 = pdVar31[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar41);\n                  uStack_5a0 = dVar41 - uStack_5a0;\n                }\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a6248;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar12 + 0x58)) /\n                               (*(double *)(iVar4 + 0x58) - *(double *)(iVar12 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6e58:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) goto LAB_000a6944;\n                if (*puVar34 < 2) {\n                  dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                  dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                  dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                  dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                  dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) {\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  dVar41 = dVar46 * dVar46 + dVar41;\n                  dVar44 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar44 = uStack_5a0 * dVar44;\n                  if (0.0 <= dVar44) {\n                    in_f26_27 = pdVar31[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                    in_f26_27 = pdVar31[0x881] / dVar44;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar28 = *puVar34;\nLAB_000a690c:\n                  if (uVar28 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar41 = pdVar31[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar41 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar41;\n                  }\n                }\n                else {\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar34 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar41 = *(double *)(puVar34 + 0x16);\n                    if (0.0 <= dVar41) {\n                      dVar49 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                      dVar49 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar49 = dVar49 / unaff_s6[0x879];\n                    }\n                    dVar41 = *(double *)(puVar34 + 0x18);\n                    dVar49 = (dVar42 * dStack_520 +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                             dVar49;\n                    if (0.0 <= dVar41) {\n                      dVar46 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                      dVar46 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar46 = dVar46 / unaff_s6[0x879];\n                    }\n                    dVar46 = (dVar42 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                             dVar46;\n                    dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                  dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                           ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                  uStack_5a0 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar41 = pdVar31[0x881];\n                        uVar20 = uVar28;\n                        goto LAB_000a6f20;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar41 = pdVar31[0x881], uVar20 != 0)) {\nLAB_000a6f20:\n                      if ((dVar41 < uStack_5a0) || (uVar28 == uVar20)) {\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar4 = uVar9 + uVar24 * 0x60;\n                      iVar12 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar4 + 0x58)) /\n                               (*(double *)(iVar12 + 0x58) - *(double *)(iVar4 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6740:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar4 + 0x28) +\n                                  dVar42 * *(double *)(iVar12 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar4 + 0x30) +\n                                  dVar42 * *(double *)(iVar12 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar4 + 0x38) +\n                                  dVar42 * *(double *)(iVar12 + 0x38)) * dVar47;\n                      if (*(int *)(iVar12 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar4 + 0x40) +\n                                     dVar42 * *(double *)(iVar12 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\n                  dVar42 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      dVar41 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * dVar41) {\n                      dVar41 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      dVar41 = dVar41 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * dVar41 * uStack_5a0;\nLAB_000a5e90:\n                    uVar28 = *puVar34;\nLAB_000a5e94:\n                    if (uVar28 == 1) {\n                      dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar41;\n                      if (0.0 <= dVar41) {\n                        dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar41,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar42 = dStack_580;\n                        dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580);\n                        dVar42 = dVar42 - dVar41;\n                      }\n                      bVar1 = dVar42 < dStack_580 && dStack_580 < dVar42 + pdVar31[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar31[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar42 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar34 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                             ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                    in_f26_27 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar28 = *puVar34;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  uStack_5a0 = dVar41;\n                  if (0.0 <= dVar41) {\n                    dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  }\n                  else {\n                    dVar42 = *(double *)(puVar34 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar41,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dVar42);\n                    dVar42 = dVar42 - dVar41;\n                  }\n                  bVar1 = *(double *)(puVar34 + 0x1a) < dVar42 + pdVar31[0x881];\n                  uStack_5a0 = dVar42 / *(double *)(puVar34 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a5db0;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      dVar41 = *(double *)(uVar9 + uVar24 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar41 = dStack_580;\n                        if (*puVar34 != 1) {\n                          dVar41 = *(double *)(puVar34 + 0x1a);\n                        }\n                        dVar41 = dVar41 - dVar42;\n                        uVar20 = uVar28 - 1;\n                        uVar24 = 0;\n                      }\n                      else {\n                        dVar41 = (uStack_5a0 - dVar41) /\n                                 (*(double *)(uVar9 + uVar20 * 0x60 + 0x58) - dVar41);\n                      }\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6d30:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\nLAB_000a5af8:\n              dVar46 = dVar41 * dVar43;\n              dVar49 = dStack_4c8 * dVar43;\n              dVar42 = (dVar46 + dVar49) - dVar46 * dVar49;\n              if (0.0 <= dVar42) {\n                dStack_4c8 = pdVar31[0x881];\n                if (dVar42 <= pdVar31[0x881]) {\n                  dStack_4c8 = dVar42;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar42) {\n                  dVar47 = pdVar31[0x881];\n                }\n                else {\n                  dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar42 * dVar47) {\n                dVar47 = pdVar31[0x881] / dVar42;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar42 = pdVar31[0x881] - dVar46;\n              dStack_4e8 = (dVar49 * dStack_4e8 * dVar42 + dVar46 * in_f20_21) * dVar47;\n              dStack_4e0 = (dVar49 * dStack_4e0 * dVar42 + in_f22_23 * dVar46) * dVar47;\n              dStack_4d8 = (dVar49 * dStack_4d8 * dVar42 + dVar46 * in_f24_25) * dVar47;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar49 * dStack_4d0 * dVar42 + dStack_590 * dVar46) * dVar47;\n              }\n              iVar4 = piVar50[0xb4];\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar4 + 0x28) != 0) {\n                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar4 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar45 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar45 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4) = fVar45;\n              }\n              pdVar32 = (double *)((int)pdVar32 + piVar50[0xb0] * 4);\n              iVar30 = iVar30 + 1;\n            } while (iVar30 < **(int **)(pdVar6 + 4));\n          }\n          pdVar16 = pdStack_568;\n          iVar4 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar39 = pcStack_5a8;\n          if (iVar4 == 0) {\n            *(uint *)((int)pdVar6 + 0x24) = 0;\n          }\n        }\n      }\n      puVar37 = puVar37 + 1;\n    } while ((int)puVar37 < (int)puStack_56c);" do (compound_statement "{\n      if (*(uint *)((int)pdVar6 + 0x24) != 0) {\n        uStack_5ac = uStack_564;\n        uStack_5b0 = 1;\n        pdVar16 = pdStack_568;\n        pdVar32 = (double *)(**(code **)(pcVar39 + -0x724c))(pdStack_568,0,puVar37,piVar50[6]);\n        if (pdVar32 == (double *)0x0) {\n          *(uint *)((int)pdVar6 + 0x24) = 0;\n          pcVar39 = pcStack_5a8;\n        }\n        else {\n          piVar19 = *(int **)((int)pdVar6 + 0x1c);\n          piVar3 = piVar19;\n          piVar21 = aiStack_510;\n          do {\n            piVar13 = piVar21;\n            piVar8 = piVar3;\n            iVar51 = piVar8[1];\n            iVar12 = piVar8[2];\n            iVar4 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar51;\n            piVar13[2] = iVar12;\n            piVar13[3] = iVar4;\n            piVar3 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar3 != piVar19 + 0x14);\n          iVar12 = *piVar3;\n          iVar4 = piVar8[5];\n          *piVar21 = iVar12;\n          piVar13[5] = iVar4;\n          in_f20_21 = *(double *)(piVar19 + 10);\n          in_f22_23 = *(double *)(piVar19 + 0xc);\n          in_f24_25 = *(double *)(piVar19 + 0xe);\n          dStack_590 = *(double *)(piVar19 + 0x10);\n          dVar41 = *(double *)(piVar19 + 0x12);\n          if (*puVar34 < 2) {\n            uStack_5a0 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n            dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar34 + 6);\n            dStack_530 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n            dVar43 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar43);\n            if (0.0 <= dVar43) {\n              dVar43 = dVar42 * dVar42;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar43 = dVar42 * dVar42;\n            }\n            dVar43 = uStack_5a0 * uStack_5a0 + dVar43;\n            in_f26_27 = SQRT(dVar43);\n            if (dVar43 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar43) {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar43 = dVar43 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar42 * dStack_530) * dVar43 * dStack_558;\nLAB_000a56c0:\n            uVar28 = *puVar34;\nLAB_000a56c4:\n            if (uVar28 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar43 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar43;\n            }\n          }\n          else {\n            if (*puVar34 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar34[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar42 = 0.0 - *(double *)(puVar34 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar34 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar21,iVar12,\n                         &dStack_518,&dStack_520);\n              dVar43 = *(double *)(puVar34 + 0x16);\n              if (in_f26_27 <= dVar43) {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar43 * dVar49) {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }\n              else {\n                dVar49 = dVar49 / unaff_s6[0x879];\n              }\n              dVar49 = (dVar42 * dStack_520 +\n                       ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) * dVar49;\n              dVar43 = *(double *)(puVar34 + 0x18);\n              if (0.0 <= dVar43) {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar43 * dVar46) {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }\n              else {\n                dVar46 = dVar46 / unaff_s6[0x879];\n              }\n              dVar46 = (dVar42 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) * dVar46;\n              dVar43 = dVar49 * dVar49 + dVar46 * dVar46;\n              uStack_5a0 = SQRT(dVar43);\n              if (0.0 <= dVar43) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar28 = *puVar34;\n              goto LAB_000a56c4;\n            }\n            dVar43 = (0.0 - *(double *)(puVar34 + 0x12)) * (0.0 - *(double *)(puVar34 + 0x12)) +\n                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n            uStack_5a0 = SQRT(dVar43);\n            if (dVar43 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar28 = *puVar34;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar30 = (*(int **)(pdVar6 + 4))[2];\n          pdVar31 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar30 < **(int **)(pdVar6 + 4)) {\n            dStack_540 = pdVar31[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar50 != (int *)0x0) {\n                aiStack_510[0] = *piVar50;\n                aiStack_510[1] = piVar50[1];\n                uStack_500 = *(undefined8 *)(piVar50 + 0x92);\n                iStack_4f8 = piVar50[8];\n                aiStack_510[2] = piVar50[0xaf];\n                if (pdVar32 != (double *)0x0) {\n                  iVar4 = piVar50[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4);\n                  if (*(int *)(iVar4 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar4 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar4 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar34[0x10];\n              if (unaff_s7 == 2) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      in_f26_27 = pdVar31[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                      in_f26_27 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar34 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar41 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar41 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar41;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar34 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar41 = *(double *)(puVar34 + 0x16);\n                  if (0.0 <= dVar41) {\n                    dVar49 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                    dVar49 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar49 = dVar49 / unaff_s6[0x879];\n                  }\n                  dVar41 = *(double *)(puVar34 + 0x18);\n                  dVar49 = (dVar42 * dStack_520 +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                           dVar49;\n                  if (0.0 <= dVar41) {\n                    dVar46 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                    dVar46 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar46 = dVar46 / unaff_s6[0x879];\n                  }\n                  dVar46 = (dVar42 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                           dVar46;\n                  dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar34 != 2) goto LAB_000a6378;\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar4 + 0x298));\n                if ((int)dVar41 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar31[0x881]);\n                }\n                else {\n                  dVar41 = pdVar31[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar41);\n                  uStack_5a0 = dVar41 - uStack_5a0;\n                }\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a6248;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar12 + 0x58)) /\n                               (*(double *)(iVar4 + 0x58) - *(double *)(iVar12 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6e58:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) goto LAB_000a6944;\n                if (*puVar34 < 2) {\n                  dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                  dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                  dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                  dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                  dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) {\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  dVar41 = dVar46 * dVar46 + dVar41;\n                  dVar44 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar44 = uStack_5a0 * dVar44;\n                  if (0.0 <= dVar44) {\n                    in_f26_27 = pdVar31[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                    in_f26_27 = pdVar31[0x881] / dVar44;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar28 = *puVar34;\nLAB_000a690c:\n                  if (uVar28 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar41 = pdVar31[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar41 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar41;\n                  }\n                }\n                else {\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar34 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar41 = *(double *)(puVar34 + 0x16);\n                    if (0.0 <= dVar41) {\n                      dVar49 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                      dVar49 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar49 = dVar49 / unaff_s6[0x879];\n                    }\n                    dVar41 = *(double *)(puVar34 + 0x18);\n                    dVar49 = (dVar42 * dStack_520 +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                             dVar49;\n                    if (0.0 <= dVar41) {\n                      dVar46 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                      dVar46 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar46 = dVar46 / unaff_s6[0x879];\n                    }\n                    dVar46 = (dVar42 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                             dVar46;\n                    dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                  dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                           ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                  uStack_5a0 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar41 = pdVar31[0x881];\n                        uVar20 = uVar28;\n                        goto LAB_000a6f20;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar41 = pdVar31[0x881], uVar20 != 0)) {\nLAB_000a6f20:\n                      if ((dVar41 < uStack_5a0) || (uVar28 == uVar20)) {\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar4 = uVar9 + uVar24 * 0x60;\n                      iVar12 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar4 + 0x58)) /\n                               (*(double *)(iVar12 + 0x58) - *(double *)(iVar4 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6740:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar4 + 0x28) +\n                                  dVar42 * *(double *)(iVar12 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar4 + 0x30) +\n                                  dVar42 * *(double *)(iVar12 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar4 + 0x38) +\n                                  dVar42 * *(double *)(iVar12 + 0x38)) * dVar47;\n                      if (*(int *)(iVar12 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar4 + 0x40) +\n                                     dVar42 * *(double *)(iVar12 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\n                  dVar42 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      dVar41 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * dVar41) {\n                      dVar41 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      dVar41 = dVar41 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * dVar41 * uStack_5a0;\nLAB_000a5e90:\n                    uVar28 = *puVar34;\nLAB_000a5e94:\n                    if (uVar28 == 1) {\n                      dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar41;\n                      if (0.0 <= dVar41) {\n                        dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar41,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar42 = dStack_580;\n                        dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580);\n                        dVar42 = dVar42 - dVar41;\n                      }\n                      bVar1 = dVar42 < dStack_580 && dStack_580 < dVar42 + pdVar31[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar31[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar42 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar34 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                             ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                    in_f26_27 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar28 = *puVar34;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  uStack_5a0 = dVar41;\n                  if (0.0 <= dVar41) {\n                    dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  }\n                  else {\n                    dVar42 = *(double *)(puVar34 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar41,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dVar42);\n                    dVar42 = dVar42 - dVar41;\n                  }\n                  bVar1 = *(double *)(puVar34 + 0x1a) < dVar42 + pdVar31[0x881];\n                  uStack_5a0 = dVar42 / *(double *)(puVar34 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a5db0;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      dVar41 = *(double *)(uVar9 + uVar24 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar41 = dStack_580;\n                        if (*puVar34 != 1) {\n                          dVar41 = *(double *)(puVar34 + 0x1a);\n                        }\n                        dVar41 = dVar41 - dVar42;\n                        uVar20 = uVar28 - 1;\n                        uVar24 = 0;\n                      }\n                      else {\n                        dVar41 = (uStack_5a0 - dVar41) /\n                                 (*(double *)(uVar9 + uVar20 * 0x60 + 0x58) - dVar41);\n                      }\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6d30:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\nLAB_000a5af8:\n              dVar46 = dVar41 * dVar43;\n              dVar49 = dStack_4c8 * dVar43;\n              dVar42 = (dVar46 + dVar49) - dVar46 * dVar49;\n              if (0.0 <= dVar42) {\n                dStack_4c8 = pdVar31[0x881];\n                if (dVar42 <= pdVar31[0x881]) {\n                  dStack_4c8 = dVar42;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar42) {\n                  dVar47 = pdVar31[0x881];\n                }\n                else {\n                  dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar42 * dVar47) {\n                dVar47 = pdVar31[0x881] / dVar42;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar42 = pdVar31[0x881] - dVar46;\n              dStack_4e8 = (dVar49 * dStack_4e8 * dVar42 + dVar46 * in_f20_21) * dVar47;\n              dStack_4e0 = (dVar49 * dStack_4e0 * dVar42 + in_f22_23 * dVar46) * dVar47;\n              dStack_4d8 = (dVar49 * dStack_4d8 * dVar42 + dVar46 * in_f24_25) * dVar47;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar49 * dStack_4d0 * dVar42 + dStack_590 * dVar46) * dVar47;\n              }\n              iVar4 = piVar50[0xb4];\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar4 + 0x28) != 0) {\n                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar4 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar45 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar45 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4) = fVar45;\n              }\n              pdVar32 = (double *)((int)pdVar32 + piVar50[0xb0] * 4);\n              iVar30 = iVar30 + 1;\n            } while (iVar30 < **(int **)(pdVar6 + 4));\n          }\n          pdVar16 = pdStack_568;\n          iVar4 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar39 = pcStack_5a8;\n          if (iVar4 == 0) {\n            *(uint *)((int)pdVar6 + 0x24) = 0;\n          }\n        }\n      }\n      puVar37 = puVar37 + 1;\n    }" { (if_statement "if (*(uint *)((int)pdVar6 + 0x24) != 0) {\n        uStack_5ac = uStack_564;\n        uStack_5b0 = 1;\n        pdVar16 = pdStack_568;\n        pdVar32 = (double *)(**(code **)(pcVar39 + -0x724c))(pdStack_568,0,puVar37,piVar50[6]);\n        if (pdVar32 == (double *)0x0) {\n          *(uint *)((int)pdVar6 + 0x24) = 0;\n          pcVar39 = pcStack_5a8;\n        }\n        else {\n          piVar19 = *(int **)((int)pdVar6 + 0x1c);\n          piVar3 = piVar19;\n          piVar21 = aiStack_510;\n          do {\n            piVar13 = piVar21;\n            piVar8 = piVar3;\n            iVar51 = piVar8[1];\n            iVar12 = piVar8[2];\n            iVar4 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar51;\n            piVar13[2] = iVar12;\n            piVar13[3] = iVar4;\n            piVar3 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar3 != piVar19 + 0x14);\n          iVar12 = *piVar3;\n          iVar4 = piVar8[5];\n          *piVar21 = iVar12;\n          piVar13[5] = iVar4;\n          in_f20_21 = *(double *)(piVar19 + 10);\n          in_f22_23 = *(double *)(piVar19 + 0xc);\n          in_f24_25 = *(double *)(piVar19 + 0xe);\n          dStack_590 = *(double *)(piVar19 + 0x10);\n          dVar41 = *(double *)(piVar19 + 0x12);\n          if (*puVar34 < 2) {\n            uStack_5a0 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n            dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar34 + 6);\n            dStack_530 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n            dVar43 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar43);\n            if (0.0 <= dVar43) {\n              dVar43 = dVar42 * dVar42;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar43 = dVar42 * dVar42;\n            }\n            dVar43 = uStack_5a0 * uStack_5a0 + dVar43;\n            in_f26_27 = SQRT(dVar43);\n            if (dVar43 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar43) {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar43 = dVar43 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar42 * dStack_530) * dVar43 * dStack_558;\nLAB_000a56c0:\n            uVar28 = *puVar34;\nLAB_000a56c4:\n            if (uVar28 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar43 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar43;\n            }\n          }\n          else {\n            if (*puVar34 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar34[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar42 = 0.0 - *(double *)(puVar34 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar34 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar21,iVar12,\n                         &dStack_518,&dStack_520);\n              dVar43 = *(double *)(puVar34 + 0x16);\n              if (in_f26_27 <= dVar43) {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar43 * dVar49) {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }\n              else {\n                dVar49 = dVar49 / unaff_s6[0x879];\n              }\n              dVar49 = (dVar42 * dStack_520 +\n                       ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) * dVar49;\n              dVar43 = *(double *)(puVar34 + 0x18);\n              if (0.0 <= dVar43) {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar43 * dVar46) {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }\n              else {\n                dVar46 = dVar46 / unaff_s6[0x879];\n              }\n              dVar46 = (dVar42 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) * dVar46;\n              dVar43 = dVar49 * dVar49 + dVar46 * dVar46;\n              uStack_5a0 = SQRT(dVar43);\n              if (0.0 <= dVar43) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar28 = *puVar34;\n              goto LAB_000a56c4;\n            }\n            dVar43 = (0.0 - *(double *)(puVar34 + 0x12)) * (0.0 - *(double *)(puVar34 + 0x12)) +\n                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n            uStack_5a0 = SQRT(dVar43);\n            if (dVar43 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar28 = *puVar34;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar30 = (*(int **)(pdVar6 + 4))[2];\n          pdVar31 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar30 < **(int **)(pdVar6 + 4)) {\n            dStack_540 = pdVar31[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar50 != (int *)0x0) {\n                aiStack_510[0] = *piVar50;\n                aiStack_510[1] = piVar50[1];\n                uStack_500 = *(undefined8 *)(piVar50 + 0x92);\n                iStack_4f8 = piVar50[8];\n                aiStack_510[2] = piVar50[0xaf];\n                if (pdVar32 != (double *)0x0) {\n                  iVar4 = piVar50[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4);\n                  if (*(int *)(iVar4 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar4 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar4 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar34[0x10];\n              if (unaff_s7 == 2) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      in_f26_27 = pdVar31[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                      in_f26_27 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar34 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar41 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar41 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar41;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar34 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar41 = *(double *)(puVar34 + 0x16);\n                  if (0.0 <= dVar41) {\n                    dVar49 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                    dVar49 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar49 = dVar49 / unaff_s6[0x879];\n                  }\n                  dVar41 = *(double *)(puVar34 + 0x18);\n                  dVar49 = (dVar42 * dStack_520 +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                           dVar49;\n                  if (0.0 <= dVar41) {\n                    dVar46 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                    dVar46 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar46 = dVar46 / unaff_s6[0x879];\n                  }\n                  dVar46 = (dVar42 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                           dVar46;\n                  dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar34 != 2) goto LAB_000a6378;\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar4 + 0x298));\n                if ((int)dVar41 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar31[0x881]);\n                }\n                else {\n                  dVar41 = pdVar31[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar41);\n                  uStack_5a0 = dVar41 - uStack_5a0;\n                }\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a6248;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar12 + 0x58)) /\n                               (*(double *)(iVar4 + 0x58) - *(double *)(iVar12 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6e58:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) goto LAB_000a6944;\n                if (*puVar34 < 2) {\n                  dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                  dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                  dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                  dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                  dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) {\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  dVar41 = dVar46 * dVar46 + dVar41;\n                  dVar44 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar44 = uStack_5a0 * dVar44;\n                  if (0.0 <= dVar44) {\n                    in_f26_27 = pdVar31[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                    in_f26_27 = pdVar31[0x881] / dVar44;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar28 = *puVar34;\nLAB_000a690c:\n                  if (uVar28 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar41 = pdVar31[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar41 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar41;\n                  }\n                }\n                else {\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar34 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar41 = *(double *)(puVar34 + 0x16);\n                    if (0.0 <= dVar41) {\n                      dVar49 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                      dVar49 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar49 = dVar49 / unaff_s6[0x879];\n                    }\n                    dVar41 = *(double *)(puVar34 + 0x18);\n                    dVar49 = (dVar42 * dStack_520 +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                             dVar49;\n                    if (0.0 <= dVar41) {\n                      dVar46 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                      dVar46 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar46 = dVar46 / unaff_s6[0x879];\n                    }\n                    dVar46 = (dVar42 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                             dVar46;\n                    dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                  dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                           ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                  uStack_5a0 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar41 = pdVar31[0x881];\n                        uVar20 = uVar28;\n                        goto LAB_000a6f20;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar41 = pdVar31[0x881], uVar20 != 0)) {\nLAB_000a6f20:\n                      if ((dVar41 < uStack_5a0) || (uVar28 == uVar20)) {\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar4 = uVar9 + uVar24 * 0x60;\n                      iVar12 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar4 + 0x58)) /\n                               (*(double *)(iVar12 + 0x58) - *(double *)(iVar4 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6740:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar4 + 0x28) +\n                                  dVar42 * *(double *)(iVar12 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar4 + 0x30) +\n                                  dVar42 * *(double *)(iVar12 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar4 + 0x38) +\n                                  dVar42 * *(double *)(iVar12 + 0x38)) * dVar47;\n                      if (*(int *)(iVar12 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar4 + 0x40) +\n                                     dVar42 * *(double *)(iVar12 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\n                  dVar42 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      dVar41 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * dVar41) {\n                      dVar41 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      dVar41 = dVar41 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * dVar41 * uStack_5a0;\nLAB_000a5e90:\n                    uVar28 = *puVar34;\nLAB_000a5e94:\n                    if (uVar28 == 1) {\n                      dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar41;\n                      if (0.0 <= dVar41) {\n                        dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar41,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar42 = dStack_580;\n                        dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580);\n                        dVar42 = dVar42 - dVar41;\n                      }\n                      bVar1 = dVar42 < dStack_580 && dStack_580 < dVar42 + pdVar31[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar31[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar42 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar34 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                             ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                    in_f26_27 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar28 = *puVar34;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  uStack_5a0 = dVar41;\n                  if (0.0 <= dVar41) {\n                    dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  }\n                  else {\n                    dVar42 = *(double *)(puVar34 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar41,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dVar42);\n                    dVar42 = dVar42 - dVar41;\n                  }\n                  bVar1 = *(double *)(puVar34 + 0x1a) < dVar42 + pdVar31[0x881];\n                  uStack_5a0 = dVar42 / *(double *)(puVar34 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a5db0;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      dVar41 = *(double *)(uVar9 + uVar24 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar41 = dStack_580;\n                        if (*puVar34 != 1) {\n                          dVar41 = *(double *)(puVar34 + 0x1a);\n                        }\n                        dVar41 = dVar41 - dVar42;\n                        uVar20 = uVar28 - 1;\n                        uVar24 = 0;\n                      }\n                      else {\n                        dVar41 = (uStack_5a0 - dVar41) /\n                                 (*(double *)(uVar9 + uVar20 * 0x60 + 0x58) - dVar41);\n                      }\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6d30:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\nLAB_000a5af8:\n              dVar46 = dVar41 * dVar43;\n              dVar49 = dStack_4c8 * dVar43;\n              dVar42 = (dVar46 + dVar49) - dVar46 * dVar49;\n              if (0.0 <= dVar42) {\n                dStack_4c8 = pdVar31[0x881];\n                if (dVar42 <= pdVar31[0x881]) {\n                  dStack_4c8 = dVar42;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar42) {\n                  dVar47 = pdVar31[0x881];\n                }\n                else {\n                  dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar42 * dVar47) {\n                dVar47 = pdVar31[0x881] / dVar42;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar42 = pdVar31[0x881] - dVar46;\n              dStack_4e8 = (dVar49 * dStack_4e8 * dVar42 + dVar46 * in_f20_21) * dVar47;\n              dStack_4e0 = (dVar49 * dStack_4e0 * dVar42 + in_f22_23 * dVar46) * dVar47;\n              dStack_4d8 = (dVar49 * dStack_4d8 * dVar42 + dVar46 * in_f24_25) * dVar47;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar49 * dStack_4d0 * dVar42 + dStack_590 * dVar46) * dVar47;\n              }\n              iVar4 = piVar50[0xb4];\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar4 + 0x28) != 0) {\n                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar4 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar45 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar45 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4) = fVar45;\n              }\n              pdVar32 = (double *)((int)pdVar32 + piVar50[0xb0] * 4);\n              iVar30 = iVar30 + 1;\n            } while (iVar30 < **(int **)(pdVar6 + 4));\n          }\n          pdVar16 = pdStack_568;\n          iVar4 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar39 = pcStack_5a8;\n          if (iVar4 == 0) {\n            *(uint *)((int)pdVar6 + 0x24) = 0;\n          }\n        }\n      }" if (parenthesized_expression "(*(uint *)((int)pdVar6 + 0x24) != 0)" ( (binary_expression "*(uint *)((int)pdVar6 + 0x24) != 0" (pointer_expression "*(uint *)((int)pdVar6 + 0x24)" * (cast_expression "(uint *)((int)pdVar6 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar6 + 0x24)" ( (binary_expression "(int)pdVar6 + 0x24" (cast_expression "(int)pdVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n        uStack_5ac = uStack_564;\n        uStack_5b0 = 1;\n        pdVar16 = pdStack_568;\n        pdVar32 = (double *)(**(code **)(pcVar39 + -0x724c))(pdStack_568,0,puVar37,piVar50[6]);\n        if (pdVar32 == (double *)0x0) {\n          *(uint *)((int)pdVar6 + 0x24) = 0;\n          pcVar39 = pcStack_5a8;\n        }\n        else {\n          piVar19 = *(int **)((int)pdVar6 + 0x1c);\n          piVar3 = piVar19;\n          piVar21 = aiStack_510;\n          do {\n            piVar13 = piVar21;\n            piVar8 = piVar3;\n            iVar51 = piVar8[1];\n            iVar12 = piVar8[2];\n            iVar4 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar51;\n            piVar13[2] = iVar12;\n            piVar13[3] = iVar4;\n            piVar3 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar3 != piVar19 + 0x14);\n          iVar12 = *piVar3;\n          iVar4 = piVar8[5];\n          *piVar21 = iVar12;\n          piVar13[5] = iVar4;\n          in_f20_21 = *(double *)(piVar19 + 10);\n          in_f22_23 = *(double *)(piVar19 + 0xc);\n          in_f24_25 = *(double *)(piVar19 + 0xe);\n          dStack_590 = *(double *)(piVar19 + 0x10);\n          dVar41 = *(double *)(piVar19 + 0x12);\n          if (*puVar34 < 2) {\n            uStack_5a0 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n            dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar34 + 6);\n            dStack_530 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n            dVar43 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar43);\n            if (0.0 <= dVar43) {\n              dVar43 = dVar42 * dVar42;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar43 = dVar42 * dVar42;\n            }\n            dVar43 = uStack_5a0 * uStack_5a0 + dVar43;\n            in_f26_27 = SQRT(dVar43);\n            if (dVar43 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar43) {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar43 = dVar43 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar42 * dStack_530) * dVar43 * dStack_558;\nLAB_000a56c0:\n            uVar28 = *puVar34;\nLAB_000a56c4:\n            if (uVar28 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar43 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar43;\n            }\n          }\n          else {\n            if (*puVar34 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar34[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar42 = 0.0 - *(double *)(puVar34 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar34 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar21,iVar12,\n                         &dStack_518,&dStack_520);\n              dVar43 = *(double *)(puVar34 + 0x16);\n              if (in_f26_27 <= dVar43) {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar43 * dVar49) {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }\n              else {\n                dVar49 = dVar49 / unaff_s6[0x879];\n              }\n              dVar49 = (dVar42 * dStack_520 +\n                       ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) * dVar49;\n              dVar43 = *(double *)(puVar34 + 0x18);\n              if (0.0 <= dVar43) {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar43 * dVar46) {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }\n              else {\n                dVar46 = dVar46 / unaff_s6[0x879];\n              }\n              dVar46 = (dVar42 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) * dVar46;\n              dVar43 = dVar49 * dVar49 + dVar46 * dVar46;\n              uStack_5a0 = SQRT(dVar43);\n              if (0.0 <= dVar43) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar28 = *puVar34;\n              goto LAB_000a56c4;\n            }\n            dVar43 = (0.0 - *(double *)(puVar34 + 0x12)) * (0.0 - *(double *)(puVar34 + 0x12)) +\n                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n            uStack_5a0 = SQRT(dVar43);\n            if (dVar43 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar28 = *puVar34;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar30 = (*(int **)(pdVar6 + 4))[2];\n          pdVar31 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar30 < **(int **)(pdVar6 + 4)) {\n            dStack_540 = pdVar31[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar50 != (int *)0x0) {\n                aiStack_510[0] = *piVar50;\n                aiStack_510[1] = piVar50[1];\n                uStack_500 = *(undefined8 *)(piVar50 + 0x92);\n                iStack_4f8 = piVar50[8];\n                aiStack_510[2] = piVar50[0xaf];\n                if (pdVar32 != (double *)0x0) {\n                  iVar4 = piVar50[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4);\n                  if (*(int *)(iVar4 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar4 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar4 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar34[0x10];\n              if (unaff_s7 == 2) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      in_f26_27 = pdVar31[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                      in_f26_27 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar34 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar41 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar41 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar41;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar34 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar41 = *(double *)(puVar34 + 0x16);\n                  if (0.0 <= dVar41) {\n                    dVar49 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                    dVar49 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar49 = dVar49 / unaff_s6[0x879];\n                  }\n                  dVar41 = *(double *)(puVar34 + 0x18);\n                  dVar49 = (dVar42 * dStack_520 +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                           dVar49;\n                  if (0.0 <= dVar41) {\n                    dVar46 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                    dVar46 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar46 = dVar46 / unaff_s6[0x879];\n                  }\n                  dVar46 = (dVar42 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                           dVar46;\n                  dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar34 != 2) goto LAB_000a6378;\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar4 + 0x298));\n                if ((int)dVar41 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar31[0x881]);\n                }\n                else {\n                  dVar41 = pdVar31[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar41);\n                  uStack_5a0 = dVar41 - uStack_5a0;\n                }\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a6248;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar12 + 0x58)) /\n                               (*(double *)(iVar4 + 0x58) - *(double *)(iVar12 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6e58:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) goto LAB_000a6944;\n                if (*puVar34 < 2) {\n                  dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                  dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                  dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                  dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                  dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) {\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  dVar41 = dVar46 * dVar46 + dVar41;\n                  dVar44 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar44 = uStack_5a0 * dVar44;\n                  if (0.0 <= dVar44) {\n                    in_f26_27 = pdVar31[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                    in_f26_27 = pdVar31[0x881] / dVar44;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar28 = *puVar34;\nLAB_000a690c:\n                  if (uVar28 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar41 = pdVar31[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar41 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar41;\n                  }\n                }\n                else {\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar34 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar41 = *(double *)(puVar34 + 0x16);\n                    if (0.0 <= dVar41) {\n                      dVar49 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                      dVar49 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar49 = dVar49 / unaff_s6[0x879];\n                    }\n                    dVar41 = *(double *)(puVar34 + 0x18);\n                    dVar49 = (dVar42 * dStack_520 +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                             dVar49;\n                    if (0.0 <= dVar41) {\n                      dVar46 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                      dVar46 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar46 = dVar46 / unaff_s6[0x879];\n                    }\n                    dVar46 = (dVar42 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                             dVar46;\n                    dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                  dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                           ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                  uStack_5a0 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar41 = pdVar31[0x881];\n                        uVar20 = uVar28;\n                        goto LAB_000a6f20;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar41 = pdVar31[0x881], uVar20 != 0)) {\nLAB_000a6f20:\n                      if ((dVar41 < uStack_5a0) || (uVar28 == uVar20)) {\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar4 = uVar9 + uVar24 * 0x60;\n                      iVar12 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar4 + 0x58)) /\n                               (*(double *)(iVar12 + 0x58) - *(double *)(iVar4 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6740:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar4 + 0x28) +\n                                  dVar42 * *(double *)(iVar12 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar4 + 0x30) +\n                                  dVar42 * *(double *)(iVar12 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar4 + 0x38) +\n                                  dVar42 * *(double *)(iVar12 + 0x38)) * dVar47;\n                      if (*(int *)(iVar12 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar4 + 0x40) +\n                                     dVar42 * *(double *)(iVar12 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\n                  dVar42 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      dVar41 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * dVar41) {\n                      dVar41 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      dVar41 = dVar41 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * dVar41 * uStack_5a0;\nLAB_000a5e90:\n                    uVar28 = *puVar34;\nLAB_000a5e94:\n                    if (uVar28 == 1) {\n                      dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar41;\n                      if (0.0 <= dVar41) {\n                        dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar41,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar42 = dStack_580;\n                        dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580);\n                        dVar42 = dVar42 - dVar41;\n                      }\n                      bVar1 = dVar42 < dStack_580 && dStack_580 < dVar42 + pdVar31[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar31[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar42 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar34 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                             ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                    in_f26_27 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar28 = *puVar34;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  uStack_5a0 = dVar41;\n                  if (0.0 <= dVar41) {\n                    dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  }\n                  else {\n                    dVar42 = *(double *)(puVar34 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar41,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dVar42);\n                    dVar42 = dVar42 - dVar41;\n                  }\n                  bVar1 = *(double *)(puVar34 + 0x1a) < dVar42 + pdVar31[0x881];\n                  uStack_5a0 = dVar42 / *(double *)(puVar34 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a5db0;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      dVar41 = *(double *)(uVar9 + uVar24 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar41 = dStack_580;\n                        if (*puVar34 != 1) {\n                          dVar41 = *(double *)(puVar34 + 0x1a);\n                        }\n                        dVar41 = dVar41 - dVar42;\n                        uVar20 = uVar28 - 1;\n                        uVar24 = 0;\n                      }\n                      else {\n                        dVar41 = (uStack_5a0 - dVar41) /\n                                 (*(double *)(uVar9 + uVar20 * 0x60 + 0x58) - dVar41);\n                      }\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6d30:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\nLAB_000a5af8:\n              dVar46 = dVar41 * dVar43;\n              dVar49 = dStack_4c8 * dVar43;\n              dVar42 = (dVar46 + dVar49) - dVar46 * dVar49;\n              if (0.0 <= dVar42) {\n                dStack_4c8 = pdVar31[0x881];\n                if (dVar42 <= pdVar31[0x881]) {\n                  dStack_4c8 = dVar42;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar42) {\n                  dVar47 = pdVar31[0x881];\n                }\n                else {\n                  dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar42 * dVar47) {\n                dVar47 = pdVar31[0x881] / dVar42;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar42 = pdVar31[0x881] - dVar46;\n              dStack_4e8 = (dVar49 * dStack_4e8 * dVar42 + dVar46 * in_f20_21) * dVar47;\n              dStack_4e0 = (dVar49 * dStack_4e0 * dVar42 + in_f22_23 * dVar46) * dVar47;\n              dStack_4d8 = (dVar49 * dStack_4d8 * dVar42 + dVar46 * in_f24_25) * dVar47;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar49 * dStack_4d0 * dVar42 + dStack_590 * dVar46) * dVar47;\n              }\n              iVar4 = piVar50[0xb4];\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar4 + 0x28) != 0) {\n                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar4 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar45 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar45 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4) = fVar45;\n              }\n              pdVar32 = (double *)((int)pdVar32 + piVar50[0xb0] * 4);\n              iVar30 = iVar30 + 1;\n            } while (iVar30 < **(int **)(pdVar6 + 4));\n          }\n          pdVar16 = pdStack_568;\n          iVar4 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar39 = pcStack_5a8;\n          if (iVar4 == 0) {\n            *(uint *)((int)pdVar6 + 0x24) = 0;\n          }\n        }\n      }" { (expression_statement "uStack_5ac = uStack_564;" (assignment_expression "uStack_5ac = uStack_564" identifier = identifier) ;) (expression_statement "uStack_5b0 = 1;" (assignment_expression "uStack_5b0 = 1" identifier = number_literal) ;) (expression_statement "pdVar16 = pdStack_568;" (assignment_expression "pdVar16 = pdStack_568" identifier = identifier) ;) (expression_statement "pdVar32 = (double *)(**(code **)(pcVar39 + -0x724c))(pdStack_568,0,puVar37,piVar50[6]);" (assignment_expression "pdVar32 = (double *)(**(code **)(pcVar39 + -0x724c))(pdStack_568,0,puVar37,piVar50[6])" identifier = (cast_expression "(double *)(**(code **)(pcVar39 + -0x724c))(pdStack_568,0,puVar37,piVar50[6])" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar39 + -0x724c))(pdStack_568,0,puVar37,piVar50[6])" (parenthesized_expression "(**(code **)(pcVar39 + -0x724c))" ( (pointer_expression "**(code **)(pcVar39 + -0x724c)" * (pointer_expression "*(code **)(pcVar39 + -0x724c)" * (cast_expression "(code **)(pcVar39 + -0x724c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + -0x724c)" ( (binary_expression "pcVar39 + -0x724c" identifier + number_literal) ))))) )) (argument_list "(pdStack_568,0,puVar37,piVar50[6])" ( identifier , number_literal , identifier , (subscript_expression "piVar50[6]" identifier [ number_literal ]) ))))) ;) (if_statement "if (pdVar32 == (double *)0x0) {\n          *(uint *)((int)pdVar6 + 0x24) = 0;\n          pcVar39 = pcStack_5a8;\n        }\n        else {\n          piVar19 = *(int **)((int)pdVar6 + 0x1c);\n          piVar3 = piVar19;\n          piVar21 = aiStack_510;\n          do {\n            piVar13 = piVar21;\n            piVar8 = piVar3;\n            iVar51 = piVar8[1];\n            iVar12 = piVar8[2];\n            iVar4 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar51;\n            piVar13[2] = iVar12;\n            piVar13[3] = iVar4;\n            piVar3 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar3 != piVar19 + 0x14);\n          iVar12 = *piVar3;\n          iVar4 = piVar8[5];\n          *piVar21 = iVar12;\n          piVar13[5] = iVar4;\n          in_f20_21 = *(double *)(piVar19 + 10);\n          in_f22_23 = *(double *)(piVar19 + 0xc);\n          in_f24_25 = *(double *)(piVar19 + 0xe);\n          dStack_590 = *(double *)(piVar19 + 0x10);\n          dVar41 = *(double *)(piVar19 + 0x12);\n          if (*puVar34 < 2) {\n            uStack_5a0 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n            dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar34 + 6);\n            dStack_530 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n            dVar43 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar43);\n            if (0.0 <= dVar43) {\n              dVar43 = dVar42 * dVar42;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar43 = dVar42 * dVar42;\n            }\n            dVar43 = uStack_5a0 * uStack_5a0 + dVar43;\n            in_f26_27 = SQRT(dVar43);\n            if (dVar43 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar43) {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar43 = dVar43 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar42 * dStack_530) * dVar43 * dStack_558;\nLAB_000a56c0:\n            uVar28 = *puVar34;\nLAB_000a56c4:\n            if (uVar28 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar43 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar43;\n            }\n          }\n          else {\n            if (*puVar34 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar34[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar42 = 0.0 - *(double *)(puVar34 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar34 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar21,iVar12,\n                         &dStack_518,&dStack_520);\n              dVar43 = *(double *)(puVar34 + 0x16);\n              if (in_f26_27 <= dVar43) {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar43 * dVar49) {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }\n              else {\n                dVar49 = dVar49 / unaff_s6[0x879];\n              }\n              dVar49 = (dVar42 * dStack_520 +\n                       ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) * dVar49;\n              dVar43 = *(double *)(puVar34 + 0x18);\n              if (0.0 <= dVar43) {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar43 * dVar46) {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }\n              else {\n                dVar46 = dVar46 / unaff_s6[0x879];\n              }\n              dVar46 = (dVar42 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) * dVar46;\n              dVar43 = dVar49 * dVar49 + dVar46 * dVar46;\n              uStack_5a0 = SQRT(dVar43);\n              if (0.0 <= dVar43) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar28 = *puVar34;\n              goto LAB_000a56c4;\n            }\n            dVar43 = (0.0 - *(double *)(puVar34 + 0x12)) * (0.0 - *(double *)(puVar34 + 0x12)) +\n                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n            uStack_5a0 = SQRT(dVar43);\n            if (dVar43 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar28 = *puVar34;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar30 = (*(int **)(pdVar6 + 4))[2];\n          pdVar31 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar30 < **(int **)(pdVar6 + 4)) {\n            dStack_540 = pdVar31[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar50 != (int *)0x0) {\n                aiStack_510[0] = *piVar50;\n                aiStack_510[1] = piVar50[1];\n                uStack_500 = *(undefined8 *)(piVar50 + 0x92);\n                iStack_4f8 = piVar50[8];\n                aiStack_510[2] = piVar50[0xaf];\n                if (pdVar32 != (double *)0x0) {\n                  iVar4 = piVar50[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4);\n                  if (*(int *)(iVar4 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar4 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar4 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar34[0x10];\n              if (unaff_s7 == 2) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      in_f26_27 = pdVar31[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                      in_f26_27 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar34 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar41 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar41 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar41;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar34 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar41 = *(double *)(puVar34 + 0x16);\n                  if (0.0 <= dVar41) {\n                    dVar49 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                    dVar49 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar49 = dVar49 / unaff_s6[0x879];\n                  }\n                  dVar41 = *(double *)(puVar34 + 0x18);\n                  dVar49 = (dVar42 * dStack_520 +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                           dVar49;\n                  if (0.0 <= dVar41) {\n                    dVar46 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                    dVar46 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar46 = dVar46 / unaff_s6[0x879];\n                  }\n                  dVar46 = (dVar42 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                           dVar46;\n                  dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar34 != 2) goto LAB_000a6378;\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar4 + 0x298));\n                if ((int)dVar41 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar31[0x881]);\n                }\n                else {\n                  dVar41 = pdVar31[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar41);\n                  uStack_5a0 = dVar41 - uStack_5a0;\n                }\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a6248;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar12 + 0x58)) /\n                               (*(double *)(iVar4 + 0x58) - *(double *)(iVar12 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6e58:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) goto LAB_000a6944;\n                if (*puVar34 < 2) {\n                  dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                  dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                  dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                  dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                  dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) {\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  dVar41 = dVar46 * dVar46 + dVar41;\n                  dVar44 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar44 = uStack_5a0 * dVar44;\n                  if (0.0 <= dVar44) {\n                    in_f26_27 = pdVar31[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                    in_f26_27 = pdVar31[0x881] / dVar44;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar28 = *puVar34;\nLAB_000a690c:\n                  if (uVar28 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar41 = pdVar31[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar41 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar41;\n                  }\n                }\n                else {\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar34 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar41 = *(double *)(puVar34 + 0x16);\n                    if (0.0 <= dVar41) {\n                      dVar49 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                      dVar49 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar49 = dVar49 / unaff_s6[0x879];\n                    }\n                    dVar41 = *(double *)(puVar34 + 0x18);\n                    dVar49 = (dVar42 * dStack_520 +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                             dVar49;\n                    if (0.0 <= dVar41) {\n                      dVar46 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                      dVar46 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar46 = dVar46 / unaff_s6[0x879];\n                    }\n                    dVar46 = (dVar42 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                             dVar46;\n                    dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                  dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                           ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                  uStack_5a0 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar41 = pdVar31[0x881];\n                        uVar20 = uVar28;\n                        goto LAB_000a6f20;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar41 = pdVar31[0x881], uVar20 != 0)) {\nLAB_000a6f20:\n                      if ((dVar41 < uStack_5a0) || (uVar28 == uVar20)) {\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar4 = uVar9 + uVar24 * 0x60;\n                      iVar12 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar4 + 0x58)) /\n                               (*(double *)(iVar12 + 0x58) - *(double *)(iVar4 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6740:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar4 + 0x28) +\n                                  dVar42 * *(double *)(iVar12 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar4 + 0x30) +\n                                  dVar42 * *(double *)(iVar12 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar4 + 0x38) +\n                                  dVar42 * *(double *)(iVar12 + 0x38)) * dVar47;\n                      if (*(int *)(iVar12 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar4 + 0x40) +\n                                     dVar42 * *(double *)(iVar12 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\n                  dVar42 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      dVar41 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * dVar41) {\n                      dVar41 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      dVar41 = dVar41 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * dVar41 * uStack_5a0;\nLAB_000a5e90:\n                    uVar28 = *puVar34;\nLAB_000a5e94:\n                    if (uVar28 == 1) {\n                      dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar41;\n                      if (0.0 <= dVar41) {\n                        dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar41,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar42 = dStack_580;\n                        dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580);\n                        dVar42 = dVar42 - dVar41;\n                      }\n                      bVar1 = dVar42 < dStack_580 && dStack_580 < dVar42 + pdVar31[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar31[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar42 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar34 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                             ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                    in_f26_27 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar28 = *puVar34;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  uStack_5a0 = dVar41;\n                  if (0.0 <= dVar41) {\n                    dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  }\n                  else {\n                    dVar42 = *(double *)(puVar34 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar41,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dVar42);\n                    dVar42 = dVar42 - dVar41;\n                  }\n                  bVar1 = *(double *)(puVar34 + 0x1a) < dVar42 + pdVar31[0x881];\n                  uStack_5a0 = dVar42 / *(double *)(puVar34 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a5db0;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      dVar41 = *(double *)(uVar9 + uVar24 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar41 = dStack_580;\n                        if (*puVar34 != 1) {\n                          dVar41 = *(double *)(puVar34 + 0x1a);\n                        }\n                        dVar41 = dVar41 - dVar42;\n                        uVar20 = uVar28 - 1;\n                        uVar24 = 0;\n                      }\n                      else {\n                        dVar41 = (uStack_5a0 - dVar41) /\n                                 (*(double *)(uVar9 + uVar20 * 0x60 + 0x58) - dVar41);\n                      }\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6d30:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\nLAB_000a5af8:\n              dVar46 = dVar41 * dVar43;\n              dVar49 = dStack_4c8 * dVar43;\n              dVar42 = (dVar46 + dVar49) - dVar46 * dVar49;\n              if (0.0 <= dVar42) {\n                dStack_4c8 = pdVar31[0x881];\n                if (dVar42 <= pdVar31[0x881]) {\n                  dStack_4c8 = dVar42;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar42) {\n                  dVar47 = pdVar31[0x881];\n                }\n                else {\n                  dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar42 * dVar47) {\n                dVar47 = pdVar31[0x881] / dVar42;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar42 = pdVar31[0x881] - dVar46;\n              dStack_4e8 = (dVar49 * dStack_4e8 * dVar42 + dVar46 * in_f20_21) * dVar47;\n              dStack_4e0 = (dVar49 * dStack_4e0 * dVar42 + in_f22_23 * dVar46) * dVar47;\n              dStack_4d8 = (dVar49 * dStack_4d8 * dVar42 + dVar46 * in_f24_25) * dVar47;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar49 * dStack_4d0 * dVar42 + dStack_590 * dVar46) * dVar47;\n              }\n              iVar4 = piVar50[0xb4];\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar4 + 0x28) != 0) {\n                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar4 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar45 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar45 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4) = fVar45;\n              }\n              pdVar32 = (double *)((int)pdVar32 + piVar50[0xb0] * 4);\n              iVar30 = iVar30 + 1;\n            } while (iVar30 < **(int **)(pdVar6 + 4));\n          }\n          pdVar16 = pdStack_568;\n          iVar4 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar39 = pcStack_5a8;\n          if (iVar4 == 0) {\n            *(uint *)((int)pdVar6 + 0x24) = 0;\n          }\n        }" if (parenthesized_expression "(pdVar32 == (double *)0x0)" ( (binary_expression "pdVar32 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *(uint *)((int)pdVar6 + 0x24) = 0;\n          pcVar39 = pcStack_5a8;\n        }" { (expression_statement "*(uint *)((int)pdVar6 + 0x24) = 0;" (assignment_expression "*(uint *)((int)pdVar6 + 0x24) = 0" (pointer_expression "*(uint *)((int)pdVar6 + 0x24)" * (cast_expression "(uint *)((int)pdVar6 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar6 + 0x24)" ( (binary_expression "(int)pdVar6 + 0x24" (cast_expression "(int)pdVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "pcVar39 = pcStack_5a8;" (assignment_expression "pcVar39 = pcStack_5a8" identifier = identifier) ;) }) (else_clause "else {\n          piVar19 = *(int **)((int)pdVar6 + 0x1c);\n          piVar3 = piVar19;\n          piVar21 = aiStack_510;\n          do {\n            piVar13 = piVar21;\n            piVar8 = piVar3;\n            iVar51 = piVar8[1];\n            iVar12 = piVar8[2];\n            iVar4 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar51;\n            piVar13[2] = iVar12;\n            piVar13[3] = iVar4;\n            piVar3 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar3 != piVar19 + 0x14);\n          iVar12 = *piVar3;\n          iVar4 = piVar8[5];\n          *piVar21 = iVar12;\n          piVar13[5] = iVar4;\n          in_f20_21 = *(double *)(piVar19 + 10);\n          in_f22_23 = *(double *)(piVar19 + 0xc);\n          in_f24_25 = *(double *)(piVar19 + 0xe);\n          dStack_590 = *(double *)(piVar19 + 0x10);\n          dVar41 = *(double *)(piVar19 + 0x12);\n          if (*puVar34 < 2) {\n            uStack_5a0 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n            dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar34 + 6);\n            dStack_530 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n            dVar43 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar43);\n            if (0.0 <= dVar43) {\n              dVar43 = dVar42 * dVar42;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar43 = dVar42 * dVar42;\n            }\n            dVar43 = uStack_5a0 * uStack_5a0 + dVar43;\n            in_f26_27 = SQRT(dVar43);\n            if (dVar43 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar43) {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar43 = dVar43 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar42 * dStack_530) * dVar43 * dStack_558;\nLAB_000a56c0:\n            uVar28 = *puVar34;\nLAB_000a56c4:\n            if (uVar28 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar43 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar43;\n            }\n          }\n          else {\n            if (*puVar34 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar34[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar42 = 0.0 - *(double *)(puVar34 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar34 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar21,iVar12,\n                         &dStack_518,&dStack_520);\n              dVar43 = *(double *)(puVar34 + 0x16);\n              if (in_f26_27 <= dVar43) {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar43 * dVar49) {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }\n              else {\n                dVar49 = dVar49 / unaff_s6[0x879];\n              }\n              dVar49 = (dVar42 * dStack_520 +\n                       ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) * dVar49;\n              dVar43 = *(double *)(puVar34 + 0x18);\n              if (0.0 <= dVar43) {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar43 * dVar46) {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }\n              else {\n                dVar46 = dVar46 / unaff_s6[0x879];\n              }\n              dVar46 = (dVar42 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) * dVar46;\n              dVar43 = dVar49 * dVar49 + dVar46 * dVar46;\n              uStack_5a0 = SQRT(dVar43);\n              if (0.0 <= dVar43) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar28 = *puVar34;\n              goto LAB_000a56c4;\n            }\n            dVar43 = (0.0 - *(double *)(puVar34 + 0x12)) * (0.0 - *(double *)(puVar34 + 0x12)) +\n                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n            uStack_5a0 = SQRT(dVar43);\n            if (dVar43 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar28 = *puVar34;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar30 = (*(int **)(pdVar6 + 4))[2];\n          pdVar31 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar30 < **(int **)(pdVar6 + 4)) {\n            dStack_540 = pdVar31[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar50 != (int *)0x0) {\n                aiStack_510[0] = *piVar50;\n                aiStack_510[1] = piVar50[1];\n                uStack_500 = *(undefined8 *)(piVar50 + 0x92);\n                iStack_4f8 = piVar50[8];\n                aiStack_510[2] = piVar50[0xaf];\n                if (pdVar32 != (double *)0x0) {\n                  iVar4 = piVar50[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4);\n                  if (*(int *)(iVar4 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar4 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar4 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar34[0x10];\n              if (unaff_s7 == 2) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      in_f26_27 = pdVar31[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                      in_f26_27 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar34 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar41 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar41 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar41;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar34 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar41 = *(double *)(puVar34 + 0x16);\n                  if (0.0 <= dVar41) {\n                    dVar49 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                    dVar49 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar49 = dVar49 / unaff_s6[0x879];\n                  }\n                  dVar41 = *(double *)(puVar34 + 0x18);\n                  dVar49 = (dVar42 * dStack_520 +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                           dVar49;\n                  if (0.0 <= dVar41) {\n                    dVar46 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                    dVar46 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar46 = dVar46 / unaff_s6[0x879];\n                  }\n                  dVar46 = (dVar42 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                           dVar46;\n                  dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar34 != 2) goto LAB_000a6378;\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar4 + 0x298));\n                if ((int)dVar41 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar31[0x881]);\n                }\n                else {\n                  dVar41 = pdVar31[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar41);\n                  uStack_5a0 = dVar41 - uStack_5a0;\n                }\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a6248;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar12 + 0x58)) /\n                               (*(double *)(iVar4 + 0x58) - *(double *)(iVar12 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6e58:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) goto LAB_000a6944;\n                if (*puVar34 < 2) {\n                  dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                  dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                  dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                  dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                  dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) {\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  dVar41 = dVar46 * dVar46 + dVar41;\n                  dVar44 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar44 = uStack_5a0 * dVar44;\n                  if (0.0 <= dVar44) {\n                    in_f26_27 = pdVar31[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                    in_f26_27 = pdVar31[0x881] / dVar44;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar28 = *puVar34;\nLAB_000a690c:\n                  if (uVar28 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar41 = pdVar31[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar41 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar41;\n                  }\n                }\n                else {\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar34 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar41 = *(double *)(puVar34 + 0x16);\n                    if (0.0 <= dVar41) {\n                      dVar49 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                      dVar49 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar49 = dVar49 / unaff_s6[0x879];\n                    }\n                    dVar41 = *(double *)(puVar34 + 0x18);\n                    dVar49 = (dVar42 * dStack_520 +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                             dVar49;\n                    if (0.0 <= dVar41) {\n                      dVar46 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                      dVar46 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar46 = dVar46 / unaff_s6[0x879];\n                    }\n                    dVar46 = (dVar42 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                             dVar46;\n                    dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                  dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                           ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                  uStack_5a0 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar41 = pdVar31[0x881];\n                        uVar20 = uVar28;\n                        goto LAB_000a6f20;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar41 = pdVar31[0x881], uVar20 != 0)) {\nLAB_000a6f20:\n                      if ((dVar41 < uStack_5a0) || (uVar28 == uVar20)) {\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar4 = uVar9 + uVar24 * 0x60;\n                      iVar12 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar4 + 0x58)) /\n                               (*(double *)(iVar12 + 0x58) - *(double *)(iVar4 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6740:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar4 + 0x28) +\n                                  dVar42 * *(double *)(iVar12 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar4 + 0x30) +\n                                  dVar42 * *(double *)(iVar12 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar4 + 0x38) +\n                                  dVar42 * *(double *)(iVar12 + 0x38)) * dVar47;\n                      if (*(int *)(iVar12 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar4 + 0x40) +\n                                     dVar42 * *(double *)(iVar12 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\n                  dVar42 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      dVar41 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * dVar41) {\n                      dVar41 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      dVar41 = dVar41 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * dVar41 * uStack_5a0;\nLAB_000a5e90:\n                    uVar28 = *puVar34;\nLAB_000a5e94:\n                    if (uVar28 == 1) {\n                      dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar41;\n                      if (0.0 <= dVar41) {\n                        dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar41,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar42 = dStack_580;\n                        dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580);\n                        dVar42 = dVar42 - dVar41;\n                      }\n                      bVar1 = dVar42 < dStack_580 && dStack_580 < dVar42 + pdVar31[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar31[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar42 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar34 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                             ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                    in_f26_27 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar28 = *puVar34;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  uStack_5a0 = dVar41;\n                  if (0.0 <= dVar41) {\n                    dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  }\n                  else {\n                    dVar42 = *(double *)(puVar34 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar41,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dVar42);\n                    dVar42 = dVar42 - dVar41;\n                  }\n                  bVar1 = *(double *)(puVar34 + 0x1a) < dVar42 + pdVar31[0x881];\n                  uStack_5a0 = dVar42 / *(double *)(puVar34 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a5db0;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      dVar41 = *(double *)(uVar9 + uVar24 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar41 = dStack_580;\n                        if (*puVar34 != 1) {\n                          dVar41 = *(double *)(puVar34 + 0x1a);\n                        }\n                        dVar41 = dVar41 - dVar42;\n                        uVar20 = uVar28 - 1;\n                        uVar24 = 0;\n                      }\n                      else {\n                        dVar41 = (uStack_5a0 - dVar41) /\n                                 (*(double *)(uVar9 + uVar20 * 0x60 + 0x58) - dVar41);\n                      }\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6d30:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\nLAB_000a5af8:\n              dVar46 = dVar41 * dVar43;\n              dVar49 = dStack_4c8 * dVar43;\n              dVar42 = (dVar46 + dVar49) - dVar46 * dVar49;\n              if (0.0 <= dVar42) {\n                dStack_4c8 = pdVar31[0x881];\n                if (dVar42 <= pdVar31[0x881]) {\n                  dStack_4c8 = dVar42;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar42) {\n                  dVar47 = pdVar31[0x881];\n                }\n                else {\n                  dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar42 * dVar47) {\n                dVar47 = pdVar31[0x881] / dVar42;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar42 = pdVar31[0x881] - dVar46;\n              dStack_4e8 = (dVar49 * dStack_4e8 * dVar42 + dVar46 * in_f20_21) * dVar47;\n              dStack_4e0 = (dVar49 * dStack_4e0 * dVar42 + in_f22_23 * dVar46) * dVar47;\n              dStack_4d8 = (dVar49 * dStack_4d8 * dVar42 + dVar46 * in_f24_25) * dVar47;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar49 * dStack_4d0 * dVar42 + dStack_590 * dVar46) * dVar47;\n              }\n              iVar4 = piVar50[0xb4];\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar4 + 0x28) != 0) {\n                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar4 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar45 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar45 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4) = fVar45;\n              }\n              pdVar32 = (double *)((int)pdVar32 + piVar50[0xb0] * 4);\n              iVar30 = iVar30 + 1;\n            } while (iVar30 < **(int **)(pdVar6 + 4));\n          }\n          pdVar16 = pdStack_568;\n          iVar4 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar39 = pcStack_5a8;\n          if (iVar4 == 0) {\n            *(uint *)((int)pdVar6 + 0x24) = 0;\n          }\n        }" else (compound_statement "{\n          piVar19 = *(int **)((int)pdVar6 + 0x1c);\n          piVar3 = piVar19;\n          piVar21 = aiStack_510;\n          do {\n            piVar13 = piVar21;\n            piVar8 = piVar3;\n            iVar51 = piVar8[1];\n            iVar12 = piVar8[2];\n            iVar4 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar51;\n            piVar13[2] = iVar12;\n            piVar13[3] = iVar4;\n            piVar3 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar3 != piVar19 + 0x14);\n          iVar12 = *piVar3;\n          iVar4 = piVar8[5];\n          *piVar21 = iVar12;\n          piVar13[5] = iVar4;\n          in_f20_21 = *(double *)(piVar19 + 10);\n          in_f22_23 = *(double *)(piVar19 + 0xc);\n          in_f24_25 = *(double *)(piVar19 + 0xe);\n          dStack_590 = *(double *)(piVar19 + 0x10);\n          dVar41 = *(double *)(piVar19 + 0x12);\n          if (*puVar34 < 2) {\n            uStack_5a0 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n            dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar34 + 6);\n            dStack_530 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n            dVar43 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar43);\n            if (0.0 <= dVar43) {\n              dVar43 = dVar42 * dVar42;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar43 = dVar42 * dVar42;\n            }\n            dVar43 = uStack_5a0 * uStack_5a0 + dVar43;\n            in_f26_27 = SQRT(dVar43);\n            if (dVar43 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar43) {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar43 = dVar43 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar42 * dStack_530) * dVar43 * dStack_558;\nLAB_000a56c0:\n            uVar28 = *puVar34;\nLAB_000a56c4:\n            if (uVar28 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar43 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar43;\n            }\n          }\n          else {\n            if (*puVar34 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar34[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar42 = 0.0 - *(double *)(puVar34 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar34 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar21,iVar12,\n                         &dStack_518,&dStack_520);\n              dVar43 = *(double *)(puVar34 + 0x16);\n              if (in_f26_27 <= dVar43) {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar43 * dVar49) {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }\n              else {\n                dVar49 = dVar49 / unaff_s6[0x879];\n              }\n              dVar49 = (dVar42 * dStack_520 +\n                       ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) * dVar49;\n              dVar43 = *(double *)(puVar34 + 0x18);\n              if (0.0 <= dVar43) {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar43 * dVar46) {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }\n              else {\n                dVar46 = dVar46 / unaff_s6[0x879];\n              }\n              dVar46 = (dVar42 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) * dVar46;\n              dVar43 = dVar49 * dVar49 + dVar46 * dVar46;\n              uStack_5a0 = SQRT(dVar43);\n              if (0.0 <= dVar43) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar28 = *puVar34;\n              goto LAB_000a56c4;\n            }\n            dVar43 = (0.0 - *(double *)(puVar34 + 0x12)) * (0.0 - *(double *)(puVar34 + 0x12)) +\n                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n            uStack_5a0 = SQRT(dVar43);\n            if (dVar43 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar28 = *puVar34;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar30 = (*(int **)(pdVar6 + 4))[2];\n          pdVar31 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar30 < **(int **)(pdVar6 + 4)) {\n            dStack_540 = pdVar31[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar50 != (int *)0x0) {\n                aiStack_510[0] = *piVar50;\n                aiStack_510[1] = piVar50[1];\n                uStack_500 = *(undefined8 *)(piVar50 + 0x92);\n                iStack_4f8 = piVar50[8];\n                aiStack_510[2] = piVar50[0xaf];\n                if (pdVar32 != (double *)0x0) {\n                  iVar4 = piVar50[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4);\n                  if (*(int *)(iVar4 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar4 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar4 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar34[0x10];\n              if (unaff_s7 == 2) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      in_f26_27 = pdVar31[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                      in_f26_27 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar34 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar41 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar41 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar41;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar34 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar41 = *(double *)(puVar34 + 0x16);\n                  if (0.0 <= dVar41) {\n                    dVar49 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                    dVar49 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar49 = dVar49 / unaff_s6[0x879];\n                  }\n                  dVar41 = *(double *)(puVar34 + 0x18);\n                  dVar49 = (dVar42 * dStack_520 +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                           dVar49;\n                  if (0.0 <= dVar41) {\n                    dVar46 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                    dVar46 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar46 = dVar46 / unaff_s6[0x879];\n                  }\n                  dVar46 = (dVar42 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                           dVar46;\n                  dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar34 != 2) goto LAB_000a6378;\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar4 + 0x298));\n                if ((int)dVar41 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar31[0x881]);\n                }\n                else {\n                  dVar41 = pdVar31[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar41);\n                  uStack_5a0 = dVar41 - uStack_5a0;\n                }\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a6248;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar12 + 0x58)) /\n                               (*(double *)(iVar4 + 0x58) - *(double *)(iVar12 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6e58:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) goto LAB_000a6944;\n                if (*puVar34 < 2) {\n                  dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                  dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                  dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                  dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                  dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) {\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  dVar41 = dVar46 * dVar46 + dVar41;\n                  dVar44 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar44 = uStack_5a0 * dVar44;\n                  if (0.0 <= dVar44) {\n                    in_f26_27 = pdVar31[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                    in_f26_27 = pdVar31[0x881] / dVar44;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar28 = *puVar34;\nLAB_000a690c:\n                  if (uVar28 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar41 = pdVar31[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar41 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar41;\n                  }\n                }\n                else {\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar34 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar41 = *(double *)(puVar34 + 0x16);\n                    if (0.0 <= dVar41) {\n                      dVar49 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                      dVar49 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar49 = dVar49 / unaff_s6[0x879];\n                    }\n                    dVar41 = *(double *)(puVar34 + 0x18);\n                    dVar49 = (dVar42 * dStack_520 +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                             dVar49;\n                    if (0.0 <= dVar41) {\n                      dVar46 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                      dVar46 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar46 = dVar46 / unaff_s6[0x879];\n                    }\n                    dVar46 = (dVar42 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                             dVar46;\n                    dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                  dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                           ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                  uStack_5a0 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar41 = pdVar31[0x881];\n                        uVar20 = uVar28;\n                        goto LAB_000a6f20;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar41 = pdVar31[0x881], uVar20 != 0)) {\nLAB_000a6f20:\n                      if ((dVar41 < uStack_5a0) || (uVar28 == uVar20)) {\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar4 = uVar9 + uVar24 * 0x60;\n                      iVar12 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar4 + 0x58)) /\n                               (*(double *)(iVar12 + 0x58) - *(double *)(iVar4 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6740:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar4 + 0x28) +\n                                  dVar42 * *(double *)(iVar12 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar4 + 0x30) +\n                                  dVar42 * *(double *)(iVar12 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar4 + 0x38) +\n                                  dVar42 * *(double *)(iVar12 + 0x38)) * dVar47;\n                      if (*(int *)(iVar12 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar4 + 0x40) +\n                                     dVar42 * *(double *)(iVar12 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\n                  dVar42 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      dVar41 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * dVar41) {\n                      dVar41 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      dVar41 = dVar41 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * dVar41 * uStack_5a0;\nLAB_000a5e90:\n                    uVar28 = *puVar34;\nLAB_000a5e94:\n                    if (uVar28 == 1) {\n                      dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar41;\n                      if (0.0 <= dVar41) {\n                        dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar41,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar42 = dStack_580;\n                        dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580);\n                        dVar42 = dVar42 - dVar41;\n                      }\n                      bVar1 = dVar42 < dStack_580 && dStack_580 < dVar42 + pdVar31[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar31[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar42 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar34 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                             ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                    in_f26_27 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar28 = *puVar34;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  uStack_5a0 = dVar41;\n                  if (0.0 <= dVar41) {\n                    dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  }\n                  else {\n                    dVar42 = *(double *)(puVar34 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar41,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dVar42);\n                    dVar42 = dVar42 - dVar41;\n                  }\n                  bVar1 = *(double *)(puVar34 + 0x1a) < dVar42 + pdVar31[0x881];\n                  uStack_5a0 = dVar42 / *(double *)(puVar34 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a5db0;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      dVar41 = *(double *)(uVar9 + uVar24 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar41 = dStack_580;\n                        if (*puVar34 != 1) {\n                          dVar41 = *(double *)(puVar34 + 0x1a);\n                        }\n                        dVar41 = dVar41 - dVar42;\n                        uVar20 = uVar28 - 1;\n                        uVar24 = 0;\n                      }\n                      else {\n                        dVar41 = (uStack_5a0 - dVar41) /\n                                 (*(double *)(uVar9 + uVar20 * 0x60 + 0x58) - dVar41);\n                      }\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6d30:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\nLAB_000a5af8:\n              dVar46 = dVar41 * dVar43;\n              dVar49 = dStack_4c8 * dVar43;\n              dVar42 = (dVar46 + dVar49) - dVar46 * dVar49;\n              if (0.0 <= dVar42) {\n                dStack_4c8 = pdVar31[0x881];\n                if (dVar42 <= pdVar31[0x881]) {\n                  dStack_4c8 = dVar42;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar42) {\n                  dVar47 = pdVar31[0x881];\n                }\n                else {\n                  dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar42 * dVar47) {\n                dVar47 = pdVar31[0x881] / dVar42;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar42 = pdVar31[0x881] - dVar46;\n              dStack_4e8 = (dVar49 * dStack_4e8 * dVar42 + dVar46 * in_f20_21) * dVar47;\n              dStack_4e0 = (dVar49 * dStack_4e0 * dVar42 + in_f22_23 * dVar46) * dVar47;\n              dStack_4d8 = (dVar49 * dStack_4d8 * dVar42 + dVar46 * in_f24_25) * dVar47;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar49 * dStack_4d0 * dVar42 + dStack_590 * dVar46) * dVar47;\n              }\n              iVar4 = piVar50[0xb4];\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar4 + 0x28) != 0) {\n                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar4 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar45 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar45 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4) = fVar45;\n              }\n              pdVar32 = (double *)((int)pdVar32 + piVar50[0xb0] * 4);\n              iVar30 = iVar30 + 1;\n            } while (iVar30 < **(int **)(pdVar6 + 4));\n          }\n          pdVar16 = pdStack_568;\n          iVar4 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar39 = pcStack_5a8;\n          if (iVar4 == 0) {\n            *(uint *)((int)pdVar6 + 0x24) = 0;\n          }\n        }" { (expression_statement "piVar19 = *(int **)((int)pdVar6 + 0x1c);" (assignment_expression "piVar19 = *(int **)((int)pdVar6 + 0x1c)" identifier = (pointer_expression "*(int **)((int)pdVar6 + 0x1c)" * (cast_expression "(int **)((int)pdVar6 + 0x1c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pdVar6 + 0x1c)" ( (binary_expression "(int)pdVar6 + 0x1c" (cast_expression "(int)pdVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "piVar3 = piVar19;" (assignment_expression "piVar3 = piVar19" identifier = identifier) ;) (expression_statement "piVar21 = aiStack_510;" (assignment_expression "piVar21 = aiStack_510" identifier = identifier) ;) (do_statement "do {\n            piVar13 = piVar21;\n            piVar8 = piVar3;\n            iVar51 = piVar8[1];\n            iVar12 = piVar8[2];\n            iVar4 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar51;\n            piVar13[2] = iVar12;\n            piVar13[3] = iVar4;\n            piVar3 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          } while (piVar3 != piVar19 + 0x14);" do (compound_statement "{\n            piVar13 = piVar21;\n            piVar8 = piVar3;\n            iVar51 = piVar8[1];\n            iVar12 = piVar8[2];\n            iVar4 = piVar8[3];\n            *piVar13 = *piVar8;\n            piVar13[1] = iVar51;\n            piVar13[2] = iVar12;\n            piVar13[3] = iVar4;\n            piVar3 = piVar8 + 4;\n            piVar21 = piVar13 + 4;\n          }" { (expression_statement "piVar13 = piVar21;" (assignment_expression "piVar13 = piVar21" identifier = identifier) ;) (expression_statement "piVar8 = piVar3;" (assignment_expression "piVar8 = piVar3" identifier = identifier) ;) (expression_statement "iVar51 = piVar8[1];" (assignment_expression "iVar51 = piVar8[1]" identifier = (subscript_expression "piVar8[1]" identifier [ number_literal ])) ;) (expression_statement "iVar12 = piVar8[2];" (assignment_expression "iVar12 = piVar8[2]" identifier = (subscript_expression "piVar8[2]" identifier [ number_literal ])) ;) (expression_statement "iVar4 = piVar8[3];" (assignment_expression "iVar4 = piVar8[3]" identifier = (subscript_expression "piVar8[3]" identifier [ number_literal ])) ;) (expression_statement "*piVar13 = *piVar8;" (assignment_expression "*piVar13 = *piVar8" (pointer_expression "*piVar13" * identifier) = (pointer_expression "*piVar8" * identifier)) ;) (expression_statement "piVar13[1] = iVar51;" (assignment_expression "piVar13[1] = iVar51" (subscript_expression "piVar13[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar13[2] = iVar12;" (assignment_expression "piVar13[2] = iVar12" (subscript_expression "piVar13[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar13[3] = iVar4;" (assignment_expression "piVar13[3] = iVar4" (subscript_expression "piVar13[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar3 = piVar8 + 4;" (assignment_expression "piVar3 = piVar8 + 4" identifier = (binary_expression "piVar8 + 4" identifier + number_literal)) ;) (expression_statement "piVar21 = piVar13 + 4;" (assignment_expression "piVar21 = piVar13 + 4" identifier = (binary_expression "piVar13 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar3 != piVar19 + 0x14)" ( (binary_expression "piVar3 != piVar19 + 0x14" identifier != (binary_expression "piVar19 + 0x14" identifier + number_literal)) )) ;) (expression_statement "iVar12 = *piVar3;" (assignment_expression "iVar12 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "iVar4 = piVar8[5];" (assignment_expression "iVar4 = piVar8[5]" identifier = (subscript_expression "piVar8[5]" identifier [ number_literal ])) ;) (expression_statement "*piVar21 = iVar12;" (assignment_expression "*piVar21 = iVar12" (pointer_expression "*piVar21" * identifier) = identifier) ;) (expression_statement "piVar13[5] = iVar4;" (assignment_expression "piVar13[5] = iVar4" (subscript_expression "piVar13[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "in_f20_21 = *(double *)(piVar19 + 10);" (assignment_expression "in_f20_21 = *(double *)(piVar19 + 10)" identifier = (pointer_expression "*(double *)(piVar19 + 10)" * (cast_expression "(double *)(piVar19 + 10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar19 + 10)" ( (binary_expression "piVar19 + 10" identifier + number_literal) ))))) ;) (expression_statement "in_f22_23 = *(double *)(piVar19 + 0xc);" (assignment_expression "in_f22_23 = *(double *)(piVar19 + 0xc)" identifier = (pointer_expression "*(double *)(piVar19 + 0xc)" * (cast_expression "(double *)(piVar19 + 0xc)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar19 + 0xc)" ( (binary_expression "piVar19 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "in_f24_25 = *(double *)(piVar19 + 0xe);" (assignment_expression "in_f24_25 = *(double *)(piVar19 + 0xe)" identifier = (pointer_expression "*(double *)(piVar19 + 0xe)" * (cast_expression "(double *)(piVar19 + 0xe)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar19 + 0xe)" ( (binary_expression "piVar19 + 0xe" identifier + number_literal) ))))) ;) (expression_statement "dStack_590 = *(double *)(piVar19 + 0x10);" (assignment_expression "dStack_590 = *(double *)(piVar19 + 0x10)" identifier = (pointer_expression "*(double *)(piVar19 + 0x10)" * (cast_expression "(double *)(piVar19 + 0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar19 + 0x10)" ( (binary_expression "piVar19 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "dVar41 = *(double *)(piVar19 + 0x12);" (assignment_expression "dVar41 = *(double *)(piVar19 + 0x12)" identifier = (pointer_expression "*(double *)(piVar19 + 0x12)" * (cast_expression "(double *)(piVar19 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar19 + 0x12)" ( (binary_expression "piVar19 + 0x12" identifier + number_literal) ))))) ;) (if_statement "if (*puVar34 < 2) {\n            uStack_5a0 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n            dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar34 + 6);\n            dStack_530 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n            dVar43 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar43);\n            if (0.0 <= dVar43) {\n              dVar43 = dVar42 * dVar42;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar43 = dVar42 * dVar42;\n            }\n            dVar43 = uStack_5a0 * uStack_5a0 + dVar43;\n            in_f26_27 = SQRT(dVar43);\n            if (dVar43 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar43) {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar43 = dVar43 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar42 * dStack_530) * dVar43 * dStack_558;\nLAB_000a56c0:\n            uVar28 = *puVar34;\nLAB_000a56c4:\n            if (uVar28 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar43 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar43;\n            }\n          }\n          else {\n            if (*puVar34 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar34[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar42 = 0.0 - *(double *)(puVar34 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar34 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar21,iVar12,\n                         &dStack_518,&dStack_520);\n              dVar43 = *(double *)(puVar34 + 0x16);\n              if (in_f26_27 <= dVar43) {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar43 * dVar49) {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }\n              else {\n                dVar49 = dVar49 / unaff_s6[0x879];\n              }\n              dVar49 = (dVar42 * dStack_520 +\n                       ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) * dVar49;\n              dVar43 = *(double *)(puVar34 + 0x18);\n              if (0.0 <= dVar43) {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar43 * dVar46) {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }\n              else {\n                dVar46 = dVar46 / unaff_s6[0x879];\n              }\n              dVar46 = (dVar42 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) * dVar46;\n              dVar43 = dVar49 * dVar49 + dVar46 * dVar46;\n              uStack_5a0 = SQRT(dVar43);\n              if (0.0 <= dVar43) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar28 = *puVar34;\n              goto LAB_000a56c4;\n            }\n            dVar43 = (0.0 - *(double *)(puVar34 + 0x12)) * (0.0 - *(double *)(puVar34 + 0x12)) +\n                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n            uStack_5a0 = SQRT(dVar43);\n            if (dVar43 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar28 = *puVar34;\n              goto LAB_000a56c4;\n            }\n          }" if (parenthesized_expression "(*puVar34 < 2)" ( (binary_expression "*puVar34 < 2" (pointer_expression "*puVar34" * identifier) < number_literal) )) (compound_statement "{\n            uStack_5a0 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n            dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar34 + 6);\n            dStack_530 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n            dVar43 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar43);\n            if (0.0 <= dVar43) {\n              dVar43 = dVar42 * dVar42;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar43 = dVar42 * dVar42;\n            }\n            dVar43 = uStack_5a0 * uStack_5a0 + dVar43;\n            in_f26_27 = SQRT(dVar43);\n            if (dVar43 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar43) {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar43 = dVar43 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar42 * dStack_530) * dVar43 * dStack_558;\nLAB_000a56c0:\n            uVar28 = *puVar34;\nLAB_000a56c4:\n            if (uVar28 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar43 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar43;\n            }\n          }" { (expression_statement "uStack_5a0 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);" (assignment_expression "uStack_5a0 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6)" identifier = (binary_expression "*(double *)(puVar34 + 10) - *(double *)(puVar34 + 6)" (pointer_expression "*(double *)(puVar34 + 10)" * (cast_expression "(double *)(puVar34 + 10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 10)" ( (binary_expression "puVar34 + 10" identifier + number_literal) )))) - (pointer_expression "*(double *)(puVar34 + 6)" * (cast_expression "(double *)(puVar34 + 6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 6)" ( (binary_expression "puVar34 + 6" identifier + number_literal) )))))) ;) (expression_statement "dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);" (assignment_expression "dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8)" identifier = (binary_expression "*(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8)" (pointer_expression "*(double *)(puVar34 + 0xc)" * (cast_expression "(double *)(puVar34 + 0xc)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0xc)" ( (binary_expression "puVar34 + 0xc" identifier + number_literal) )))) - (pointer_expression "*(double *)(puVar34 + 8)" * (cast_expression "(double *)(puVar34 + 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 8)" ( (binary_expression "puVar34 + 8" identifier + number_literal) )))))) ;) (expression_statement "dStack_540 = 0.0 - *(double *)(puVar34 + 6);" (assignment_expression "dStack_540 = 0.0 - *(double *)(puVar34 + 6)" identifier = (binary_expression "0.0 - *(double *)(puVar34 + 6)" number_literal - (pointer_expression "*(double *)(puVar34 + 6)" * (cast_expression "(double *)(puVar34 + 6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 6)" ( (binary_expression "puVar34 + 6" identifier + number_literal) )))))) ;) (expression_statement "dStack_530 = (double)(int)puVar37 - *(double *)(puVar34 + 8);" (assignment_expression "dStack_530 = (double)(int)puVar37 - *(double *)(puVar34 + 8)" identifier = (binary_expression "(double)(int)puVar37 - *(double *)(puVar34 + 8)" (cast_expression "(double)(int)puVar37" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar37" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar34 + 8)" * (cast_expression "(double *)(puVar34 + 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 8)" ( (binary_expression "puVar34 + 8" identifier + number_literal) )))))) ;) (expression_statement "dVar43 = dStack_540 * dStack_540 + dStack_530 * dStack_530;" (assignment_expression "dVar43 = dStack_540 * dStack_540 + dStack_530 * dStack_530" identifier = (binary_expression "dStack_540 * dStack_540 + dStack_530 * dStack_530" (binary_expression "dStack_540 * dStack_540" identifier * identifier) + (binary_expression "dStack_530 * dStack_530" identifier * identifier))) ;) (expression_statement "dStack_558 = SQRT(dVar43);" (assignment_expression "dStack_558 = SQRT(dVar43)" identifier = (call_expression "SQRT(dVar43)" identifier (argument_list "(dVar43)" ( identifier )))) ;) (if_statement "if (0.0 <= dVar43) {\n              dVar43 = dVar42 * dVar42;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar43 = dVar42 * dVar42;\n            }" if (parenthesized_expression "(0.0 <= dVar43)" ( (binary_expression "0.0 <= dVar43" number_literal <= identifier) )) (compound_statement "{\n              dVar43 = dVar42 * dVar42;\n            }" { (expression_statement "dVar43 = dVar42 * dVar42;" (assignment_expression "dVar43 = dVar42 * dVar42" identifier = (binary_expression "dVar42 * dVar42" identifier * identifier)) ;) }) (else_clause "else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar43 = dVar42 * dVar42;\n            }" else (compound_statement "{\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar43 = dVar42 * dVar42;\n            }" { (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "dVar43 = dVar42 * dVar42;" (assignment_expression "dVar43 = dVar42 * dVar42" identifier = (binary_expression "dVar42 * dVar42" identifier * identifier)) ;) }))) (expression_statement "dVar43 = uStack_5a0 * uStack_5a0 + dVar43;" (assignment_expression "dVar43 = uStack_5a0 * uStack_5a0 + dVar43" identifier = (binary_expression "uStack_5a0 * uStack_5a0 + dVar43" (binary_expression "uStack_5a0 * uStack_5a0" identifier * identifier) + identifier)) ;) (expression_statement "in_f26_27 = SQRT(dVar43);" (assignment_expression "in_f26_27 = SQRT(dVar43)" identifier = (call_expression "SQRT(dVar43)" identifier (argument_list "(dVar43)" ( identifier )))) ;) (if_statement "if (dVar43 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }" if (parenthesized_expression "(dVar43 < 0.0)" ( (binary_expression "dVar43 < 0.0" identifier < number_literal) )) (compound_statement "{\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }" { (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "in_f26_27 = dStack_558 * in_f26_27;" (assignment_expression "in_f26_27 = dStack_558 * in_f26_27" identifier = (binary_expression "dStack_558 * in_f26_27" identifier * identifier)) ;) (if_statement "if (0.0 <= in_f26_27) {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }" if (parenthesized_expression "(0.0 <= in_f26_27)" ( (binary_expression "0.0 <= in_f26_27" number_literal <= identifier) )) (compound_statement "{\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }" { (expression_statement "dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);" (assignment_expression "dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }" else (compound_statement "{\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }" { (expression_statement "dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (unaff_s6[0x879] <= in_f26_27 * dVar43) {\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar43 = dVar43 / in_f26_27;\n            }" if (parenthesized_expression "(unaff_s6[0x879] <= in_f26_27 * dVar43)" ( (binary_expression "unaff_s6[0x879] <= in_f26_27 * dVar43" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "in_f26_27 * dVar43" identifier * identifier)) )) (compound_statement "{\n              dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }" { (expression_statement "dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;" (assignment_expression "dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27" identifier = (binary_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27" (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))) / identifier)) ;) }) (else_clause "else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar43 = dVar43 / in_f26_27;\n            }" else (compound_statement "{\n              in_f26_27 = unaff_s6[0x879];\n              dVar43 = dVar43 / in_f26_27;\n            }" { (expression_statement "in_f26_27 = unaff_s6[0x879];" (assignment_expression "in_f26_27 = unaff_s6[0x879]" identifier = (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ])) ;) (expression_statement "dVar43 = dVar43 / in_f26_27;" (assignment_expression "dVar43 = dVar43 / in_f26_27" identifier = (binary_expression "dVar43 / in_f26_27" identifier / identifier)) ;) }))) (expression_statement "uStack_5a0 = (uStack_5a0 * dStack_540 + dVar42 * dStack_530) * dVar43 * dStack_558;" (assignment_expression "uStack_5a0 = (uStack_5a0 * dStack_540 + dVar42 * dStack_530) * dVar43 * dStack_558" identifier = (binary_expression "(uStack_5a0 * dStack_540 + dVar42 * dStack_530) * dVar43 * dStack_558" (binary_expression "(uStack_5a0 * dStack_540 + dVar42 * dStack_530) * dVar43" (parenthesized_expression "(uStack_5a0 * dStack_540 + dVar42 * dStack_530)" ( (binary_expression "uStack_5a0 * dStack_540 + dVar42 * dStack_530" (binary_expression "uStack_5a0 * dStack_540" identifier * identifier) + (binary_expression "dVar42 * dStack_530" identifier * identifier)) )) * identifier) * identifier)) ;) (labeled_statement "LAB_000a56c0:\n            uVar28 = *puVar34;" statement_identifier : (expression_statement "uVar28 = *puVar34;" (assignment_expression "uVar28 = *puVar34" identifier = (pointer_expression "*puVar34" * identifier)) ;)) (labeled_statement "LAB_000a56c4:\n            if (uVar28 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar43 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar43;\n            }" statement_identifier : (if_statement "if (uVar28 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar43 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar43;\n            }" if (parenthesized_expression "(uVar28 != 2)" ( (binary_expression "uVar28 != 2" identifier != number_literal) )) (compound_statement "{\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar43 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar43;\n            }" { (if_statement "if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar43 = dStack_578 / unaff_s6[0x879];\n              }" if (parenthesized_expression "(unaff_s6[0x879] <= dStack_580 * dStack_578)" ( (binary_expression "unaff_s6[0x879] <= dStack_580 * dStack_578" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dStack_580 * dStack_578" identifier * identifier)) )) (compound_statement "{\n                dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }" { (expression_statement "dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;" (assignment_expression "dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580" identifier = (binary_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580" (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))) / identifier)) ;) }) (else_clause "else {\n                dVar43 = dStack_578 / unaff_s6[0x879];\n              }" else (compound_statement "{\n                dVar43 = dStack_578 / unaff_s6[0x879];\n              }" { (expression_statement "dVar43 = dStack_578 / unaff_s6[0x879];" (assignment_expression "dVar43 = dStack_578 / unaff_s6[0x879]" identifier = (binary_expression "dStack_578 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "uStack_5a0 = uStack_5a0 * dVar43;" (assignment_expression "uStack_5a0 = uStack_5a0 * dVar43" identifier = (binary_expression "uStack_5a0 * dVar43" identifier * identifier)) ;) }))) }) (else_clause "else {\n            if (*puVar34 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar34[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar42 = 0.0 - *(double *)(puVar34 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar34 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar21,iVar12,\n                         &dStack_518,&dStack_520);\n              dVar43 = *(double *)(puVar34 + 0x16);\n              if (in_f26_27 <= dVar43) {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar43 * dVar49) {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }\n              else {\n                dVar49 = dVar49 / unaff_s6[0x879];\n              }\n              dVar49 = (dVar42 * dStack_520 +\n                       ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) * dVar49;\n              dVar43 = *(double *)(puVar34 + 0x18);\n              if (0.0 <= dVar43) {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar43 * dVar46) {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }\n              else {\n                dVar46 = dVar46 / unaff_s6[0x879];\n              }\n              dVar46 = (dVar42 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) * dVar46;\n              dVar43 = dVar49 * dVar49 + dVar46 * dVar46;\n              uStack_5a0 = SQRT(dVar43);\n              if (0.0 <= dVar43) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar28 = *puVar34;\n              goto LAB_000a56c4;\n            }\n            dVar43 = (0.0 - *(double *)(puVar34 + 0x12)) * (0.0 - *(double *)(puVar34 + 0x12)) +\n                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n            uStack_5a0 = SQRT(dVar43);\n            if (dVar43 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar28 = *puVar34;\n              goto LAB_000a56c4;\n            }\n          }" else (compound_statement "{\n            if (*puVar34 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar34[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar42 = 0.0 - *(double *)(puVar34 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar34 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar21,iVar12,\n                         &dStack_518,&dStack_520);\n              dVar43 = *(double *)(puVar34 + 0x16);\n              if (in_f26_27 <= dVar43) {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar43 * dVar49) {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }\n              else {\n                dVar49 = dVar49 / unaff_s6[0x879];\n              }\n              dVar49 = (dVar42 * dStack_520 +\n                       ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) * dVar49;\n              dVar43 = *(double *)(puVar34 + 0x18);\n              if (0.0 <= dVar43) {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar43 * dVar46) {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }\n              else {\n                dVar46 = dVar46 / unaff_s6[0x879];\n              }\n              dVar46 = (dVar42 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) * dVar46;\n              dVar43 = dVar49 * dVar49 + dVar46 * dVar46;\n              uStack_5a0 = SQRT(dVar43);\n              if (0.0 <= dVar43) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar28 = *puVar34;\n              goto LAB_000a56c4;\n            }\n            dVar43 = (0.0 - *(double *)(puVar34 + 0x12)) * (0.0 - *(double *)(puVar34 + 0x12)) +\n                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n            uStack_5a0 = SQRT(dVar43);\n            if (dVar43 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar28 = *puVar34;\n              goto LAB_000a56c4;\n            }\n          }" { (if_statement "if (*puVar34 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }" if (parenthesized_expression "(*puVar34 != 2)" ( (binary_expression "*puVar34 != 2" (pointer_expression "*puVar34" * identifier) != number_literal) )) (compound_statement "{\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }" { (expression_statement "uStack_5a0 = 0.0;" (assignment_expression "uStack_5a0 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_000a56c0;" goto statement_identifier ;) })) (if_statement "if (puVar34[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar42 = 0.0 - *(double *)(puVar34 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar34 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar21,iVar12,\n                         &dStack_518,&dStack_520);\n              dVar43 = *(double *)(puVar34 + 0x16);\n              if (in_f26_27 <= dVar43) {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar43 * dVar49) {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }\n              else {\n                dVar49 = dVar49 / unaff_s6[0x879];\n              }\n              dVar49 = (dVar42 * dStack_520 +\n                       ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) * dVar49;\n              dVar43 = *(double *)(puVar34 + 0x18);\n              if (0.0 <= dVar43) {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar43 * dVar46) {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }\n              else {\n                dVar46 = dVar46 / unaff_s6[0x879];\n              }\n              dVar46 = (dVar42 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) * dVar46;\n              dVar43 = dVar49 * dVar49 + dVar46 * dVar46;\n              uStack_5a0 = SQRT(dVar43);\n              if (0.0 <= dVar43) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar28 = *puVar34;\n              goto LAB_000a56c4;\n            }" if (parenthesized_expression "(puVar34[0x10] != 3)" ( (binary_expression "puVar34[0x10] != 3" (subscript_expression "puVar34[0x10]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n              in_f26_27 = 0.0;\n              dVar42 = 0.0 - *(double *)(puVar34 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar34 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar21,iVar12,\n                         &dStack_518,&dStack_520);\n              dVar43 = *(double *)(puVar34 + 0x16);\n              if (in_f26_27 <= dVar43) {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar43 * dVar49) {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }\n              else {\n                dVar49 = dVar49 / unaff_s6[0x879];\n              }\n              dVar49 = (dVar42 * dStack_520 +\n                       ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) * dVar49;\n              dVar43 = *(double *)(puVar34 + 0x18);\n              if (0.0 <= dVar43) {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar43 * dVar46) {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }\n              else {\n                dVar46 = dVar46 / unaff_s6[0x879];\n              }\n              dVar46 = (dVar42 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) * dVar46;\n              dVar43 = dVar49 * dVar49 + dVar46 * dVar46;\n              uStack_5a0 = SQRT(dVar43);\n              if (0.0 <= dVar43) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar28 = *puVar34;\n              goto LAB_000a56c4;\n            }" { (expression_statement "in_f26_27 = 0.0;" (assignment_expression "in_f26_27 = 0.0" identifier = number_literal) ;) (expression_statement "dVar42 = 0.0 - *(double *)(puVar34 + 0x12);" (assignment_expression "dVar42 = 0.0 - *(double *)(puVar34 + 0x12)" identifier = (binary_expression "0.0 - *(double *)(puVar34 + 0x12)" number_literal - (pointer_expression "*(double *)(puVar34 + 0x12)" * (cast_expression "(double *)(puVar34 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x12)" ( (binary_expression "puVar34 + 0x12" identifier + number_literal) )))))) ;) (expression_statement "(**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar34 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar21,iVar12,\n                         &dStack_518,&dStack_520);" (call_expression "(**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar34 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar21,iVar12,\n                         &dStack_518,&dStack_520)" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x78e0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x78e0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x78e0)" * (cast_expression "(code **)(pcStack_5a8 + -0x78e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x78e0)" ( (binary_expression "pcStack_5a8 + -0x78e0" identifier + number_literal) ))))) )) (argument_list "((*(double *)(puVar34 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar21,iVar12,\n                         &dStack_518,&dStack_520)" ( (binary_expression "(*(double *)(puVar34 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" (parenthesized_expression "(*(double *)(puVar34 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88))" ( (binary_expression "*(double *)(puVar34 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" (pointer_expression "*(double *)(puVar34 + 0x1c)" * (cast_expression "(double *)(puVar34 + 0x1c)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x1c)" ( (binary_expression "puVar34 + 0x1c" identifier + number_literal) )))) * (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) )) / (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) , identifier , identifier , (pointer_expression "&dStack_518" & identifier) , (pointer_expression "&dStack_520" & identifier) ))) ;) (expression_statement "dVar43 = *(double *)(puVar34 + 0x16);" (assignment_expression "dVar43 = *(double *)(puVar34 + 0x16)" identifier = (pointer_expression "*(double *)(puVar34 + 0x16)" * (cast_expression "(double *)(puVar34 + 0x16)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x16)" ( (binary_expression "puVar34 + 0x16" identifier + number_literal) ))))) ;) (if_statement "if (in_f26_27 <= dVar43) {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }" if (parenthesized_expression "(in_f26_27 <= dVar43)" ( (binary_expression "in_f26_27 <= dVar43" identifier <= identifier) )) (compound_statement "{\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }" { (expression_statement "dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);" (assignment_expression "dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }" else (compound_statement "{\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }" { (expression_statement "dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar43 * dVar49) {\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }\n              else {\n                dVar49 = dVar49 / unaff_s6[0x879];\n              }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar43 * dVar49)" ( (binary_expression "unaff_s6[0x879] <= dVar43 * dVar49" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar43 * dVar49" identifier * identifier)) )) (compound_statement "{\n                dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }" { (expression_statement "dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;" (assignment_expression "dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43" identifier = (binary_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43" (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))) / identifier)) ;) }) (else_clause "else {\n                dVar49 = dVar49 / unaff_s6[0x879];\n              }" else (compound_statement "{\n                dVar49 = dVar49 / unaff_s6[0x879];\n              }" { (expression_statement "dVar49 = dVar49 / unaff_s6[0x879];" (assignment_expression "dVar49 = dVar49 / unaff_s6[0x879]" identifier = (binary_expression "dVar49 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "dVar49 = (dVar42 * dStack_520 +\n                       ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) * dVar49;" (assignment_expression "dVar49 = (dVar42 * dStack_520 +\n                       ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) * dVar49" identifier = (binary_expression "(dVar42 * dStack_520 +\n                       ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) * dVar49" (parenthesized_expression "(dVar42 * dStack_520 +\n                       ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518)" ( (binary_expression "dVar42 * dStack_520 +\n                       ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518" (binary_expression "dVar42 * dStack_520" identifier * identifier) + (binary_expression "((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518" (parenthesized_expression "((double)(int)puVar37 - *(double *)(puVar34 + 0x14))" ( (binary_expression "(double)(int)puVar37 - *(double *)(puVar34 + 0x14)" (cast_expression "(double)(int)puVar37" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar37" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar34 + 0x14)" * (cast_expression "(double *)(puVar34 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x14)" ( (binary_expression "puVar34 + 0x14" identifier + number_literal) ))))) )) * identifier)) )) * identifier)) ;) (expression_statement "dVar43 = *(double *)(puVar34 + 0x18);" (assignment_expression "dVar43 = *(double *)(puVar34 + 0x18)" identifier = (pointer_expression "*(double *)(puVar34 + 0x18)" * (cast_expression "(double *)(puVar34 + 0x18)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x18)" ( (binary_expression "puVar34 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (0.0 <= dVar43) {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }" if (parenthesized_expression "(0.0 <= dVar43)" ( (binary_expression "0.0 <= dVar43" number_literal <= identifier) )) (compound_statement "{\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }" { (expression_statement "dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);" (assignment_expression "dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }" else (compound_statement "{\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }" { (expression_statement "dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar43 * dVar46) {\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }\n              else {\n                dVar46 = dVar46 / unaff_s6[0x879];\n              }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar43 * dVar46)" ( (binary_expression "unaff_s6[0x879] <= dVar43 * dVar46" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar43 * dVar46" identifier * identifier)) )) (compound_statement "{\n                dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;\n              }" { (expression_statement "dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43;" (assignment_expression "dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43" identifier = (binary_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar43" (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))) / identifier)) ;) }) (else_clause "else {\n                dVar46 = dVar46 / unaff_s6[0x879];\n              }" else (compound_statement "{\n                dVar46 = dVar46 / unaff_s6[0x879];\n              }" { (expression_statement "dVar46 = dVar46 / unaff_s6[0x879];" (assignment_expression "dVar46 = dVar46 / unaff_s6[0x879]" identifier = (binary_expression "dVar46 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "dVar46 = (dVar42 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) * dVar46;" (assignment_expression "dVar46 = (dVar42 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) * dVar46" identifier = (binary_expression "(dVar42 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) * dVar46" (parenthesized_expression "(dVar42 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)))" ( (binary_expression "dVar42 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))" (binary_expression "dVar42 * dStack_518" identifier * identifier) - (binary_expression "dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))" identifier * (parenthesized_expression "((double)(int)puVar37 - *(double *)(puVar34 + 0x14))" ( (binary_expression "(double)(int)puVar37 - *(double *)(puVar34 + 0x14)" (cast_expression "(double)(int)puVar37" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar37" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar34 + 0x14)" * (cast_expression "(double *)(puVar34 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x14)" ( (binary_expression "puVar34 + 0x14" identifier + number_literal) ))))) )))) )) * identifier)) ;) (expression_statement "dVar43 = dVar49 * dVar49 + dVar46 * dVar46;" (assignment_expression "dVar43 = dVar49 * dVar49 + dVar46 * dVar46" identifier = (binary_expression "dVar49 * dVar49 + dVar46 * dVar46" (binary_expression "dVar49 * dVar49" identifier * identifier) + (binary_expression "dVar46 * dVar46" identifier * identifier))) ;) (expression_statement "uStack_5a0 = SQRT(dVar43);" (assignment_expression "uStack_5a0 = SQRT(dVar43)" identifier = (call_expression "SQRT(dVar43)" identifier (argument_list "(dVar43)" ( identifier )))) ;) (if_statement "if (0.0 <= dVar43) goto LAB_000a5700;" if (parenthesized_expression "(0.0 <= dVar43)" ( (binary_expression "0.0 <= dVar43" number_literal <= identifier) )) (goto_statement "goto LAB_000a5700;" goto statement_identifier ;)) (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar28 = *puVar34;" (assignment_expression "uVar28 = *puVar34" identifier = (pointer_expression "*puVar34" * identifier)) ;) (goto_statement "goto LAB_000a56c4;" goto statement_identifier ;) })) (expression_statement "dVar43 = (0.0 - *(double *)(puVar34 + 0x12)) * (0.0 - *(double *)(puVar34 + 0x12)) +\n                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));" (assignment_expression "dVar43 = (0.0 - *(double *)(puVar34 + 0x12)) * (0.0 - *(double *)(puVar34 + 0x12)) +\n                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))" identifier = (binary_expression "(0.0 - *(double *)(puVar34 + 0x12)) * (0.0 - *(double *)(puVar34 + 0x12)) +\n                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))" (binary_expression "(0.0 - *(double *)(puVar34 + 0x12)) * (0.0 - *(double *)(puVar34 + 0x12))" (parenthesized_expression "(0.0 - *(double *)(puVar34 + 0x12))" ( (binary_expression "0.0 - *(double *)(puVar34 + 0x12)" number_literal - (pointer_expression "*(double *)(puVar34 + 0x12)" * (cast_expression "(double *)(puVar34 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x12)" ( (binary_expression "puVar34 + 0x12" identifier + number_literal) ))))) )) * (parenthesized_expression "(0.0 - *(double *)(puVar34 + 0x12))" ( (binary_expression "0.0 - *(double *)(puVar34 + 0x12)" number_literal - (pointer_expression "*(double *)(puVar34 + 0x12)" * (cast_expression "(double *)(puVar34 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x12)" ( (binary_expression "puVar34 + 0x12" identifier + number_literal) ))))) ))) + (binary_expression "((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                     ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))" (parenthesized_expression "((double)(int)puVar37 - *(double *)(puVar34 + 0x14))" ( (binary_expression "(double)(int)puVar37 - *(double *)(puVar34 + 0x14)" (cast_expression "(double)(int)puVar37" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar37" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar34 + 0x14)" * (cast_expression "(double *)(puVar34 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x14)" ( (binary_expression "puVar34 + 0x14" identifier + number_literal) ))))) )) * (parenthesized_expression "((double)(int)puVar37 - *(double *)(puVar34 + 0x14))" ( (binary_expression "(double)(int)puVar37 - *(double *)(puVar34 + 0x14)" (cast_expression "(double)(int)puVar37" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar37" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar34 + 0x14)" * (cast_expression "(double *)(puVar34 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x14)" ( (binary_expression "puVar34 + 0x14" identifier + number_literal) ))))) ))))) ;) (expression_statement "uStack_5a0 = SQRT(dVar43);" (assignment_expression "uStack_5a0 = SQRT(dVar43)" identifier = (call_expression "SQRT(dVar43)" identifier (argument_list "(dVar43)" ( identifier )))) ;) (if_statement "if (dVar43 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar28 = *puVar34;\n              goto LAB_000a56c4;\n            }" if (parenthesized_expression "(dVar43 < 0.0)" ( (binary_expression "dVar43 < 0.0" identifier < number_literal) )) (compound_statement "{\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar28 = *puVar34;\n              goto LAB_000a56c4;\n            }" { (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar28 = *puVar34;" (assignment_expression "uVar28 = *puVar34" identifier = (pointer_expression "*puVar34" * identifier)) ;) (goto_statement "goto LAB_000a56c4;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_000a5700:\n          iVar30 = (*(int **)(pdVar6 + 4))[2];" statement_identifier : (expression_statement "iVar30 = (*(int **)(pdVar6 + 4))[2];" (assignment_expression "iVar30 = (*(int **)(pdVar6 + 4))[2]" identifier = (subscript_expression "(*(int **)(pdVar6 + 4))[2]" (parenthesized_expression "(*(int **)(pdVar6 + 4))" ( (pointer_expression "*(int **)(pdVar6 + 4)" * (cast_expression "(int **)(pdVar6 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar6 + 4)" ( (binary_expression "pdVar6 + 4" identifier + number_literal) )))) )) [ number_literal ])) ;)) (expression_statement "pdVar31 = *(double **)(pcStack_5a8 + -0x7fd0);" (assignment_expression "pdVar31 = *(double **)(pcStack_5a8 + -0x7fd0)" identifier = (pointer_expression "*(double **)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(double **)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) ))))) ;) (if_statement "if (iVar30 < **(int **)(pdVar6 + 4)) {\n            dStack_540 = pdVar31[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar50 != (int *)0x0) {\n                aiStack_510[0] = *piVar50;\n                aiStack_510[1] = piVar50[1];\n                uStack_500 = *(undefined8 *)(piVar50 + 0x92);\n                iStack_4f8 = piVar50[8];\n                aiStack_510[2] = piVar50[0xaf];\n                if (pdVar32 != (double *)0x0) {\n                  iVar4 = piVar50[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4);\n                  if (*(int *)(iVar4 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar4 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar4 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar34[0x10];\n              if (unaff_s7 == 2) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      in_f26_27 = pdVar31[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                      in_f26_27 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar34 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar41 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar41 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar41;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar34 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar41 = *(double *)(puVar34 + 0x16);\n                  if (0.0 <= dVar41) {\n                    dVar49 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                    dVar49 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar49 = dVar49 / unaff_s6[0x879];\n                  }\n                  dVar41 = *(double *)(puVar34 + 0x18);\n                  dVar49 = (dVar42 * dStack_520 +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                           dVar49;\n                  if (0.0 <= dVar41) {\n                    dVar46 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                    dVar46 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar46 = dVar46 / unaff_s6[0x879];\n                  }\n                  dVar46 = (dVar42 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                           dVar46;\n                  dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar34 != 2) goto LAB_000a6378;\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar4 + 0x298));\n                if ((int)dVar41 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar31[0x881]);\n                }\n                else {\n                  dVar41 = pdVar31[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar41);\n                  uStack_5a0 = dVar41 - uStack_5a0;\n                }\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a6248;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar12 + 0x58)) /\n                               (*(double *)(iVar4 + 0x58) - *(double *)(iVar12 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6e58:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) goto LAB_000a6944;\n                if (*puVar34 < 2) {\n                  dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                  dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                  dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                  dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                  dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) {\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  dVar41 = dVar46 * dVar46 + dVar41;\n                  dVar44 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar44 = uStack_5a0 * dVar44;\n                  if (0.0 <= dVar44) {\n                    in_f26_27 = pdVar31[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                    in_f26_27 = pdVar31[0x881] / dVar44;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar28 = *puVar34;\nLAB_000a690c:\n                  if (uVar28 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar41 = pdVar31[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar41 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar41;\n                  }\n                }\n                else {\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar34 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar41 = *(double *)(puVar34 + 0x16);\n                    if (0.0 <= dVar41) {\n                      dVar49 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                      dVar49 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar49 = dVar49 / unaff_s6[0x879];\n                    }\n                    dVar41 = *(double *)(puVar34 + 0x18);\n                    dVar49 = (dVar42 * dStack_520 +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                             dVar49;\n                    if (0.0 <= dVar41) {\n                      dVar46 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                      dVar46 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar46 = dVar46 / unaff_s6[0x879];\n                    }\n                    dVar46 = (dVar42 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                             dVar46;\n                    dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                  dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                           ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                  uStack_5a0 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar41 = pdVar31[0x881];\n                        uVar20 = uVar28;\n                        goto LAB_000a6f20;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar41 = pdVar31[0x881], uVar20 != 0)) {\nLAB_000a6f20:\n                      if ((dVar41 < uStack_5a0) || (uVar28 == uVar20)) {\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar4 = uVar9 + uVar24 * 0x60;\n                      iVar12 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar4 + 0x58)) /\n                               (*(double *)(iVar12 + 0x58) - *(double *)(iVar4 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6740:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar4 + 0x28) +\n                                  dVar42 * *(double *)(iVar12 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar4 + 0x30) +\n                                  dVar42 * *(double *)(iVar12 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar4 + 0x38) +\n                                  dVar42 * *(double *)(iVar12 + 0x38)) * dVar47;\n                      if (*(int *)(iVar12 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar4 + 0x40) +\n                                     dVar42 * *(double *)(iVar12 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\n                  dVar42 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      dVar41 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * dVar41) {\n                      dVar41 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      dVar41 = dVar41 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * dVar41 * uStack_5a0;\nLAB_000a5e90:\n                    uVar28 = *puVar34;\nLAB_000a5e94:\n                    if (uVar28 == 1) {\n                      dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar41;\n                      if (0.0 <= dVar41) {\n                        dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar41,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar42 = dStack_580;\n                        dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580);\n                        dVar42 = dVar42 - dVar41;\n                      }\n                      bVar1 = dVar42 < dStack_580 && dStack_580 < dVar42 + pdVar31[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar31[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar42 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar34 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                             ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                    in_f26_27 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar28 = *puVar34;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  uStack_5a0 = dVar41;\n                  if (0.0 <= dVar41) {\n                    dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  }\n                  else {\n                    dVar42 = *(double *)(puVar34 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar41,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dVar42);\n                    dVar42 = dVar42 - dVar41;\n                  }\n                  bVar1 = *(double *)(puVar34 + 0x1a) < dVar42 + pdVar31[0x881];\n                  uStack_5a0 = dVar42 / *(double *)(puVar34 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a5db0;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      dVar41 = *(double *)(uVar9 + uVar24 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar41 = dStack_580;\n                        if (*puVar34 != 1) {\n                          dVar41 = *(double *)(puVar34 + 0x1a);\n                        }\n                        dVar41 = dVar41 - dVar42;\n                        uVar20 = uVar28 - 1;\n                        uVar24 = 0;\n                      }\n                      else {\n                        dVar41 = (uStack_5a0 - dVar41) /\n                                 (*(double *)(uVar9 + uVar20 * 0x60 + 0x58) - dVar41);\n                      }\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6d30:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\nLAB_000a5af8:\n              dVar46 = dVar41 * dVar43;\n              dVar49 = dStack_4c8 * dVar43;\n              dVar42 = (dVar46 + dVar49) - dVar46 * dVar49;\n              if (0.0 <= dVar42) {\n                dStack_4c8 = pdVar31[0x881];\n                if (dVar42 <= pdVar31[0x881]) {\n                  dStack_4c8 = dVar42;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar42) {\n                  dVar47 = pdVar31[0x881];\n                }\n                else {\n                  dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar42 * dVar47) {\n                dVar47 = pdVar31[0x881] / dVar42;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar42 = pdVar31[0x881] - dVar46;\n              dStack_4e8 = (dVar49 * dStack_4e8 * dVar42 + dVar46 * in_f20_21) * dVar47;\n              dStack_4e0 = (dVar49 * dStack_4e0 * dVar42 + in_f22_23 * dVar46) * dVar47;\n              dStack_4d8 = (dVar49 * dStack_4d8 * dVar42 + dVar46 * in_f24_25) * dVar47;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar49 * dStack_4d0 * dVar42 + dStack_590 * dVar46) * dVar47;\n              }\n              iVar4 = piVar50[0xb4];\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar4 + 0x28) != 0) {\n                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar4 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar45 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar45 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4) = fVar45;\n              }\n              pdVar32 = (double *)((int)pdVar32 + piVar50[0xb0] * 4);\n              iVar30 = iVar30 + 1;\n            } while (iVar30 < **(int **)(pdVar6 + 4));\n          }" if (parenthesized_expression "(iVar30 < **(int **)(pdVar6 + 4))" ( (binary_expression "iVar30 < **(int **)(pdVar6 + 4)" identifier < (pointer_expression "**(int **)(pdVar6 + 4)" * (pointer_expression "*(int **)(pdVar6 + 4)" * (cast_expression "(int **)(pdVar6 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar6 + 4)" ( (binary_expression "pdVar6 + 4" identifier + number_literal) )))))) )) (compound_statement "{\n            dStack_540 = pdVar31[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar50 != (int *)0x0) {\n                aiStack_510[0] = *piVar50;\n                aiStack_510[1] = piVar50[1];\n                uStack_500 = *(undefined8 *)(piVar50 + 0x92);\n                iStack_4f8 = piVar50[8];\n                aiStack_510[2] = piVar50[0xaf];\n                if (pdVar32 != (double *)0x0) {\n                  iVar4 = piVar50[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4);\n                  if (*(int *)(iVar4 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar4 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar4 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar34[0x10];\n              if (unaff_s7 == 2) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      in_f26_27 = pdVar31[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                      in_f26_27 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar34 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar41 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar41 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar41;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar34 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar41 = *(double *)(puVar34 + 0x16);\n                  if (0.0 <= dVar41) {\n                    dVar49 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                    dVar49 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar49 = dVar49 / unaff_s6[0x879];\n                  }\n                  dVar41 = *(double *)(puVar34 + 0x18);\n                  dVar49 = (dVar42 * dStack_520 +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                           dVar49;\n                  if (0.0 <= dVar41) {\n                    dVar46 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                    dVar46 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar46 = dVar46 / unaff_s6[0x879];\n                  }\n                  dVar46 = (dVar42 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                           dVar46;\n                  dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar34 != 2) goto LAB_000a6378;\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar4 + 0x298));\n                if ((int)dVar41 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar31[0x881]);\n                }\n                else {\n                  dVar41 = pdVar31[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar41);\n                  uStack_5a0 = dVar41 - uStack_5a0;\n                }\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a6248;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar12 + 0x58)) /\n                               (*(double *)(iVar4 + 0x58) - *(double *)(iVar12 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6e58:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) goto LAB_000a6944;\n                if (*puVar34 < 2) {\n                  dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                  dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                  dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                  dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                  dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) {\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  dVar41 = dVar46 * dVar46 + dVar41;\n                  dVar44 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar44 = uStack_5a0 * dVar44;\n                  if (0.0 <= dVar44) {\n                    in_f26_27 = pdVar31[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                    in_f26_27 = pdVar31[0x881] / dVar44;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar28 = *puVar34;\nLAB_000a690c:\n                  if (uVar28 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar41 = pdVar31[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar41 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar41;\n                  }\n                }\n                else {\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar34 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar41 = *(double *)(puVar34 + 0x16);\n                    if (0.0 <= dVar41) {\n                      dVar49 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                      dVar49 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar49 = dVar49 / unaff_s6[0x879];\n                    }\n                    dVar41 = *(double *)(puVar34 + 0x18);\n                    dVar49 = (dVar42 * dStack_520 +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                             dVar49;\n                    if (0.0 <= dVar41) {\n                      dVar46 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                      dVar46 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar46 = dVar46 / unaff_s6[0x879];\n                    }\n                    dVar46 = (dVar42 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                             dVar46;\n                    dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                  dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                           ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                  uStack_5a0 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar41 = pdVar31[0x881];\n                        uVar20 = uVar28;\n                        goto LAB_000a6f20;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar41 = pdVar31[0x881], uVar20 != 0)) {\nLAB_000a6f20:\n                      if ((dVar41 < uStack_5a0) || (uVar28 == uVar20)) {\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar4 = uVar9 + uVar24 * 0x60;\n                      iVar12 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar4 + 0x58)) /\n                               (*(double *)(iVar12 + 0x58) - *(double *)(iVar4 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6740:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar4 + 0x28) +\n                                  dVar42 * *(double *)(iVar12 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar4 + 0x30) +\n                                  dVar42 * *(double *)(iVar12 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar4 + 0x38) +\n                                  dVar42 * *(double *)(iVar12 + 0x38)) * dVar47;\n                      if (*(int *)(iVar12 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar4 + 0x40) +\n                                     dVar42 * *(double *)(iVar12 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\n                  dVar42 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      dVar41 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * dVar41) {\n                      dVar41 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      dVar41 = dVar41 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * dVar41 * uStack_5a0;\nLAB_000a5e90:\n                    uVar28 = *puVar34;\nLAB_000a5e94:\n                    if (uVar28 == 1) {\n                      dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar41;\n                      if (0.0 <= dVar41) {\n                        dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar41,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar42 = dStack_580;\n                        dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580);\n                        dVar42 = dVar42 - dVar41;\n                      }\n                      bVar1 = dVar42 < dStack_580 && dStack_580 < dVar42 + pdVar31[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar31[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar42 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar34 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                             ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                    in_f26_27 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar28 = *puVar34;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  uStack_5a0 = dVar41;\n                  if (0.0 <= dVar41) {\n                    dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  }\n                  else {\n                    dVar42 = *(double *)(puVar34 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar41,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dVar42);\n                    dVar42 = dVar42 - dVar41;\n                  }\n                  bVar1 = *(double *)(puVar34 + 0x1a) < dVar42 + pdVar31[0x881];\n                  uStack_5a0 = dVar42 / *(double *)(puVar34 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a5db0;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      dVar41 = *(double *)(uVar9 + uVar24 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar41 = dStack_580;\n                        if (*puVar34 != 1) {\n                          dVar41 = *(double *)(puVar34 + 0x1a);\n                        }\n                        dVar41 = dVar41 - dVar42;\n                        uVar20 = uVar28 - 1;\n                        uVar24 = 0;\n                      }\n                      else {\n                        dVar41 = (uStack_5a0 - dVar41) /\n                                 (*(double *)(uVar9 + uVar20 * 0x60 + 0x58) - dVar41);\n                      }\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6d30:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\nLAB_000a5af8:\n              dVar46 = dVar41 * dVar43;\n              dVar49 = dStack_4c8 * dVar43;\n              dVar42 = (dVar46 + dVar49) - dVar46 * dVar49;\n              if (0.0 <= dVar42) {\n                dStack_4c8 = pdVar31[0x881];\n                if (dVar42 <= pdVar31[0x881]) {\n                  dStack_4c8 = dVar42;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar42) {\n                  dVar47 = pdVar31[0x881];\n                }\n                else {\n                  dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar42 * dVar47) {\n                dVar47 = pdVar31[0x881] / dVar42;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar42 = pdVar31[0x881] - dVar46;\n              dStack_4e8 = (dVar49 * dStack_4e8 * dVar42 + dVar46 * in_f20_21) * dVar47;\n              dStack_4e0 = (dVar49 * dStack_4e0 * dVar42 + in_f22_23 * dVar46) * dVar47;\n              dStack_4d8 = (dVar49 * dStack_4d8 * dVar42 + dVar46 * in_f24_25) * dVar47;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar49 * dStack_4d0 * dVar42 + dStack_590 * dVar46) * dVar47;\n              }\n              iVar4 = piVar50[0xb4];\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar4 + 0x28) != 0) {\n                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar4 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar45 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar45 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4) = fVar45;\n              }\n              pdVar32 = (double *)((int)pdVar32 + piVar50[0xb0] * 4);\n              iVar30 = iVar30 + 1;\n            } while (iVar30 < **(int **)(pdVar6 + 4));\n          }" { (expression_statement "dStack_540 = pdVar31[0x881];" (assignment_expression "dStack_540 = pdVar31[0x881]" identifier = (subscript_expression "pdVar31[0x881]" identifier [ number_literal ])) ;) (expression_statement "dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);" (assignment_expression "dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_)" identifier = (cast_expression "(double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_)" identifier (argument_list "(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_)" ( (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) , (field_expression "dStack_558._4_4_" identifier . field_identifier) ))))) ;) (expression_statement "dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);" (assignment_expression "dVar43 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) (do_statement "do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar50 != (int *)0x0) {\n                aiStack_510[0] = *piVar50;\n                aiStack_510[1] = piVar50[1];\n                uStack_500 = *(undefined8 *)(piVar50 + 0x92);\n                iStack_4f8 = piVar50[8];\n                aiStack_510[2] = piVar50[0xaf];\n                if (pdVar32 != (double *)0x0) {\n                  iVar4 = piVar50[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4);\n                  if (*(int *)(iVar4 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar4 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar4 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar34[0x10];\n              if (unaff_s7 == 2) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      in_f26_27 = pdVar31[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                      in_f26_27 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar34 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar41 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar41 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar41;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar34 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar41 = *(double *)(puVar34 + 0x16);\n                  if (0.0 <= dVar41) {\n                    dVar49 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                    dVar49 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar49 = dVar49 / unaff_s6[0x879];\n                  }\n                  dVar41 = *(double *)(puVar34 + 0x18);\n                  dVar49 = (dVar42 * dStack_520 +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                           dVar49;\n                  if (0.0 <= dVar41) {\n                    dVar46 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                    dVar46 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar46 = dVar46 / unaff_s6[0x879];\n                  }\n                  dVar46 = (dVar42 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                           dVar46;\n                  dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar34 != 2) goto LAB_000a6378;\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar4 + 0x298));\n                if ((int)dVar41 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar31[0x881]);\n                }\n                else {\n                  dVar41 = pdVar31[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar41);\n                  uStack_5a0 = dVar41 - uStack_5a0;\n                }\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a6248;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar12 + 0x58)) /\n                               (*(double *)(iVar4 + 0x58) - *(double *)(iVar12 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6e58:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) goto LAB_000a6944;\n                if (*puVar34 < 2) {\n                  dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                  dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                  dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                  dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                  dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) {\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  dVar41 = dVar46 * dVar46 + dVar41;\n                  dVar44 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar44 = uStack_5a0 * dVar44;\n                  if (0.0 <= dVar44) {\n                    in_f26_27 = pdVar31[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                    in_f26_27 = pdVar31[0x881] / dVar44;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar28 = *puVar34;\nLAB_000a690c:\n                  if (uVar28 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar41 = pdVar31[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar41 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar41;\n                  }\n                }\n                else {\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar34 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar41 = *(double *)(puVar34 + 0x16);\n                    if (0.0 <= dVar41) {\n                      dVar49 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                      dVar49 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar49 = dVar49 / unaff_s6[0x879];\n                    }\n                    dVar41 = *(double *)(puVar34 + 0x18);\n                    dVar49 = (dVar42 * dStack_520 +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                             dVar49;\n                    if (0.0 <= dVar41) {\n                      dVar46 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                      dVar46 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar46 = dVar46 / unaff_s6[0x879];\n                    }\n                    dVar46 = (dVar42 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                             dVar46;\n                    dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                  dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                           ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                  uStack_5a0 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar41 = pdVar31[0x881];\n                        uVar20 = uVar28;\n                        goto LAB_000a6f20;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar41 = pdVar31[0x881], uVar20 != 0)) {\nLAB_000a6f20:\n                      if ((dVar41 < uStack_5a0) || (uVar28 == uVar20)) {\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar4 = uVar9 + uVar24 * 0x60;\n                      iVar12 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar4 + 0x58)) /\n                               (*(double *)(iVar12 + 0x58) - *(double *)(iVar4 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6740:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar4 + 0x28) +\n                                  dVar42 * *(double *)(iVar12 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar4 + 0x30) +\n                                  dVar42 * *(double *)(iVar12 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar4 + 0x38) +\n                                  dVar42 * *(double *)(iVar12 + 0x38)) * dVar47;\n                      if (*(int *)(iVar12 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar4 + 0x40) +\n                                     dVar42 * *(double *)(iVar12 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\n                  dVar42 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      dVar41 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * dVar41) {\n                      dVar41 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      dVar41 = dVar41 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * dVar41 * uStack_5a0;\nLAB_000a5e90:\n                    uVar28 = *puVar34;\nLAB_000a5e94:\n                    if (uVar28 == 1) {\n                      dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar41;\n                      if (0.0 <= dVar41) {\n                        dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar41,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar42 = dStack_580;\n                        dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580);\n                        dVar42 = dVar42 - dVar41;\n                      }\n                      bVar1 = dVar42 < dStack_580 && dStack_580 < dVar42 + pdVar31[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar31[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar42 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar34 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                             ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                    in_f26_27 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar28 = *puVar34;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  uStack_5a0 = dVar41;\n                  if (0.0 <= dVar41) {\n                    dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  }\n                  else {\n                    dVar42 = *(double *)(puVar34 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar41,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dVar42);\n                    dVar42 = dVar42 - dVar41;\n                  }\n                  bVar1 = *(double *)(puVar34 + 0x1a) < dVar42 + pdVar31[0x881];\n                  uStack_5a0 = dVar42 / *(double *)(puVar34 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a5db0;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      dVar41 = *(double *)(uVar9 + uVar24 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar41 = dStack_580;\n                        if (*puVar34 != 1) {\n                          dVar41 = *(double *)(puVar34 + 0x1a);\n                        }\n                        dVar41 = dVar41 - dVar42;\n                        uVar20 = uVar28 - 1;\n                        uVar24 = 0;\n                      }\n                      else {\n                        dVar41 = (uStack_5a0 - dVar41) /\n                                 (*(double *)(uVar9 + uVar20 * 0x60 + 0x58) - dVar41);\n                      }\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6d30:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\nLAB_000a5af8:\n              dVar46 = dVar41 * dVar43;\n              dVar49 = dStack_4c8 * dVar43;\n              dVar42 = (dVar46 + dVar49) - dVar46 * dVar49;\n              if (0.0 <= dVar42) {\n                dStack_4c8 = pdVar31[0x881];\n                if (dVar42 <= pdVar31[0x881]) {\n                  dStack_4c8 = dVar42;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar42) {\n                  dVar47 = pdVar31[0x881];\n                }\n                else {\n                  dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar42 * dVar47) {\n                dVar47 = pdVar31[0x881] / dVar42;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar42 = pdVar31[0x881] - dVar46;\n              dStack_4e8 = (dVar49 * dStack_4e8 * dVar42 + dVar46 * in_f20_21) * dVar47;\n              dStack_4e0 = (dVar49 * dStack_4e0 * dVar42 + in_f22_23 * dVar46) * dVar47;\n              dStack_4d8 = (dVar49 * dStack_4d8 * dVar42 + dVar46 * in_f24_25) * dVar47;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar49 * dStack_4d0 * dVar42 + dStack_590 * dVar46) * dVar47;\n              }\n              iVar4 = piVar50[0xb4];\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar4 + 0x28) != 0) {\n                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar4 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar45 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar45 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4) = fVar45;\n              }\n              pdVar32 = (double *)((int)pdVar32 + piVar50[0xb0] * 4);\n              iVar30 = iVar30 + 1;\n            } while (iVar30 < **(int **)(pdVar6 + 4));" do (compound_statement "{\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar50 != (int *)0x0) {\n                aiStack_510[0] = *piVar50;\n                aiStack_510[1] = piVar50[1];\n                uStack_500 = *(undefined8 *)(piVar50 + 0x92);\n                iStack_4f8 = piVar50[8];\n                aiStack_510[2] = piVar50[0xaf];\n                if (pdVar32 != (double *)0x0) {\n                  iVar4 = piVar50[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4);\n                  if (*(int *)(iVar4 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar4 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar4 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar34[0x10];\n              if (unaff_s7 == 2) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      in_f26_27 = pdVar31[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                      in_f26_27 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar34 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar41 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar41 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar41;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar34 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar41 = *(double *)(puVar34 + 0x16);\n                  if (0.0 <= dVar41) {\n                    dVar49 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                    dVar49 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar49 = dVar49 / unaff_s6[0x879];\n                  }\n                  dVar41 = *(double *)(puVar34 + 0x18);\n                  dVar49 = (dVar42 * dStack_520 +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                           dVar49;\n                  if (0.0 <= dVar41) {\n                    dVar46 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                    dVar46 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar46 = dVar46 / unaff_s6[0x879];\n                  }\n                  dVar46 = (dVar42 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                           dVar46;\n                  dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar34 != 2) goto LAB_000a6378;\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar4 + 0x298));\n                if ((int)dVar41 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar31[0x881]);\n                }\n                else {\n                  dVar41 = pdVar31[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar41);\n                  uStack_5a0 = dVar41 - uStack_5a0;\n                }\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a6248;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar12 + 0x58)) /\n                               (*(double *)(iVar4 + 0x58) - *(double *)(iVar12 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6e58:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) goto LAB_000a6944;\n                if (*puVar34 < 2) {\n                  dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                  dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                  dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                  dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                  dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) {\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  dVar41 = dVar46 * dVar46 + dVar41;\n                  dVar44 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar44 = uStack_5a0 * dVar44;\n                  if (0.0 <= dVar44) {\n                    in_f26_27 = pdVar31[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                    in_f26_27 = pdVar31[0x881] / dVar44;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar28 = *puVar34;\nLAB_000a690c:\n                  if (uVar28 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar41 = pdVar31[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar41 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar41;\n                  }\n                }\n                else {\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar34 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar41 = *(double *)(puVar34 + 0x16);\n                    if (0.0 <= dVar41) {\n                      dVar49 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                      dVar49 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar49 = dVar49 / unaff_s6[0x879];\n                    }\n                    dVar41 = *(double *)(puVar34 + 0x18);\n                    dVar49 = (dVar42 * dStack_520 +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                             dVar49;\n                    if (0.0 <= dVar41) {\n                      dVar46 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                      dVar46 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar46 = dVar46 / unaff_s6[0x879];\n                    }\n                    dVar46 = (dVar42 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                             dVar46;\n                    dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                  dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                           ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                  uStack_5a0 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar41 = pdVar31[0x881];\n                        uVar20 = uVar28;\n                        goto LAB_000a6f20;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar41 = pdVar31[0x881], uVar20 != 0)) {\nLAB_000a6f20:\n                      if ((dVar41 < uStack_5a0) || (uVar28 == uVar20)) {\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar4 = uVar9 + uVar24 * 0x60;\n                      iVar12 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar4 + 0x58)) /\n                               (*(double *)(iVar12 + 0x58) - *(double *)(iVar4 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6740:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar4 + 0x28) +\n                                  dVar42 * *(double *)(iVar12 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar4 + 0x30) +\n                                  dVar42 * *(double *)(iVar12 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar4 + 0x38) +\n                                  dVar42 * *(double *)(iVar12 + 0x38)) * dVar47;\n                      if (*(int *)(iVar12 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar4 + 0x40) +\n                                     dVar42 * *(double *)(iVar12 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\n                  dVar42 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      dVar41 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * dVar41) {\n                      dVar41 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      dVar41 = dVar41 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * dVar41 * uStack_5a0;\nLAB_000a5e90:\n                    uVar28 = *puVar34;\nLAB_000a5e94:\n                    if (uVar28 == 1) {\n                      dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar41;\n                      if (0.0 <= dVar41) {\n                        dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar41,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar42 = dStack_580;\n                        dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580);\n                        dVar42 = dVar42 - dVar41;\n                      }\n                      bVar1 = dVar42 < dStack_580 && dStack_580 < dVar42 + pdVar31[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar31[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar42 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar34 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                             ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                    in_f26_27 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar28 = *puVar34;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  uStack_5a0 = dVar41;\n                  if (0.0 <= dVar41) {\n                    dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  }\n                  else {\n                    dVar42 = *(double *)(puVar34 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar41,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dVar42);\n                    dVar42 = dVar42 - dVar41;\n                  }\n                  bVar1 = *(double *)(puVar34 + 0x1a) < dVar42 + pdVar31[0x881];\n                  uStack_5a0 = dVar42 / *(double *)(puVar34 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a5db0;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      dVar41 = *(double *)(uVar9 + uVar24 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar41 = dStack_580;\n                        if (*puVar34 != 1) {\n                          dVar41 = *(double *)(puVar34 + 0x1a);\n                        }\n                        dVar41 = dVar41 - dVar42;\n                        uVar20 = uVar28 - 1;\n                        uVar24 = 0;\n                      }\n                      else {\n                        dVar41 = (uStack_5a0 - dVar41) /\n                                 (*(double *)(uVar9 + uVar20 * 0x60 + 0x58) - dVar41);\n                      }\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6d30:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\nLAB_000a5af8:\n              dVar46 = dVar41 * dVar43;\n              dVar49 = dStack_4c8 * dVar43;\n              dVar42 = (dVar46 + dVar49) - dVar46 * dVar49;\n              if (0.0 <= dVar42) {\n                dStack_4c8 = pdVar31[0x881];\n                if (dVar42 <= pdVar31[0x881]) {\n                  dStack_4c8 = dVar42;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar42) {\n                  dVar47 = pdVar31[0x881];\n                }\n                else {\n                  dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar42 * dVar47) {\n                dVar47 = pdVar31[0x881] / dVar42;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar42 = pdVar31[0x881] - dVar46;\n              dStack_4e8 = (dVar49 * dStack_4e8 * dVar42 + dVar46 * in_f20_21) * dVar47;\n              dStack_4e0 = (dVar49 * dStack_4e0 * dVar42 + in_f22_23 * dVar46) * dVar47;\n              dStack_4d8 = (dVar49 * dStack_4d8 * dVar42 + dVar46 * in_f24_25) * dVar47;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar49 * dStack_4d0 * dVar42 + dStack_590 * dVar46) * dVar47;\n              }\n              iVar4 = piVar50[0xb4];\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar4 + 0x28) != 0) {\n                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar4 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar45 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar45 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4) = fVar45;\n              }\n              pdVar32 = (double *)((int)pdVar32 + piVar50[0xb0] * 4);\n              iVar30 = iVar30 + 1;\n            }" { (expression_statement "(**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);" (call_expression "(**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58)" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x78a4))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x78a4)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x78a4)" * (cast_expression "(code **)(pcStack_5a8 + -0x78a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x78a4)" ( (binary_expression "pcStack_5a8 + -0x78a4" identifier + number_literal) ))))) )) (argument_list "(aiStack_510,0,0x58)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "aiStack_510[0] = 1;" (assignment_expression "aiStack_510[0] = 1" (subscript_expression "aiStack_510[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_510[1] = 0x17;" (assignment_expression "aiStack_510[1] = 0x17" (subscript_expression "aiStack_510[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iStack_4f8 = 0x10;" (assignment_expression "iStack_4f8 = 0x10" identifier = number_literal) ;) (expression_statement "aiStack_510[2] = 0;" (assignment_expression "aiStack_510[2] = 0" (subscript_expression "aiStack_510[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "dStack_4c8 = dStack_598;" (assignment_expression "dStack_4c8 = dStack_598" identifier = identifier) ;) (if_statement "if (piVar50 != (int *)0x0) {\n                aiStack_510[0] = *piVar50;\n                aiStack_510[1] = piVar50[1];\n                uStack_500 = *(undefined8 *)(piVar50 + 0x92);\n                iStack_4f8 = piVar50[8];\n                aiStack_510[2] = piVar50[0xaf];\n                if (pdVar32 != (double *)0x0) {\n                  iVar4 = piVar50[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4);\n                  if (*(int *)(iVar4 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar4 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar4 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x44) * 4);\n                  }\n                }\n              }" if (parenthesized_expression "(piVar50 != (int *)0x0)" ( (binary_expression "piVar50 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                aiStack_510[0] = *piVar50;\n                aiStack_510[1] = piVar50[1];\n                uStack_500 = *(undefined8 *)(piVar50 + 0x92);\n                iStack_4f8 = piVar50[8];\n                aiStack_510[2] = piVar50[0xaf];\n                if (pdVar32 != (double *)0x0) {\n                  iVar4 = piVar50[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4);\n                  if (*(int *)(iVar4 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar4 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar4 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x44) * 4);\n                  }\n                }\n              }" { (expression_statement "aiStack_510[0] = *piVar50;" (assignment_expression "aiStack_510[0] = *piVar50" (subscript_expression "aiStack_510[0]" identifier [ number_literal ]) = (pointer_expression "*piVar50" * identifier)) ;) (expression_statement "aiStack_510[1] = piVar50[1];" (assignment_expression "aiStack_510[1] = piVar50[1]" (subscript_expression "aiStack_510[1]" identifier [ number_literal ]) = (subscript_expression "piVar50[1]" identifier [ number_literal ])) ;) (expression_statement "uStack_500 = *(undefined8 *)(piVar50 + 0x92);" (assignment_expression "uStack_500 = *(undefined8 *)(piVar50 + 0x92)" identifier = (pointer_expression "*(undefined8 *)(piVar50 + 0x92)" * (cast_expression "(undefined8 *)(piVar50 + 0x92)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar50 + 0x92)" ( (binary_expression "piVar50 + 0x92" identifier + number_literal) ))))) ;) (expression_statement "iStack_4f8 = piVar50[8];" (assignment_expression "iStack_4f8 = piVar50[8]" identifier = (subscript_expression "piVar50[8]" identifier [ number_literal ])) ;) (expression_statement "aiStack_510[2] = piVar50[0xaf];" (assignment_expression "aiStack_510[2] = piVar50[0xaf]" (subscript_expression "aiStack_510[2]" identifier [ number_literal ]) = (subscript_expression "piVar50[0xaf]" identifier [ number_literal ])) ;) (if_statement "if (pdVar32 != (double *)0x0) {\n                  iVar4 = piVar50[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4);\n                  if (*(int *)(iVar4 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar4 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar4 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x44) * 4);\n                  }\n                }" if (parenthesized_expression "(pdVar32 != (double *)0x0)" ( (binary_expression "pdVar32 != (double *)0x0" identifier != (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  iVar4 = piVar50[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4);\n                  if (*(int *)(iVar4 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar4 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar4 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x44) * 4);\n                  }\n                }" { (expression_statement "iVar4 = piVar50[0xb4];" (assignment_expression "iVar4 = piVar50[0xb4]" identifier = (subscript_expression "piVar50[0xb4]" identifier [ number_literal ])) ;) (expression_statement "dStack_4e8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4);" (assignment_expression "dStack_4e8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4)" identifier = (cast_expression "(double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4)" * (cast_expression "(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar32 + *(int *)(iVar4 + 8) * 4)" ( (binary_expression "(int)pdVar32 + *(int *)(iVar4 + 8) * 4" (cast_expression "(int)pdVar32" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar4 + 8) * 4" (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "dStack_4e0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4);" (assignment_expression "dStack_4e0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4)" identifier = (cast_expression "(double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4)" * (cast_expression "(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4)" ( (binary_expression "(int)pdVar32 + *(int *)(iVar4 + 0x14) * 4" (cast_expression "(int)pdVar32" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar4 + 0x14) * 4" (pointer_expression "*(int *)(iVar4 + 0x14)" * (cast_expression "(int *)(iVar4 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "dStack_4d8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4);" (assignment_expression "dStack_4d8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4)" identifier = (cast_expression "(double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4)" * (cast_expression "(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4)" ( (binary_expression "(int)pdVar32 + *(int *)(iVar4 + 0x20) * 4" (cast_expression "(int)pdVar32" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar4 + 0x20) * 4" (pointer_expression "*(int *)(iVar4 + 0x20)" * (cast_expression "(int *)(iVar4 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x20)" ( (binary_expression "iVar4 + 0x20" identifier + number_literal) )))) * number_literal)) )))))) ;) (if_statement "if (*(int *)(iVar4 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4);\n                  }" if (parenthesized_expression "(*(int *)(iVar4 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar4 + 0x28) != 0" (pointer_expression "*(int *)(iVar4 + 0x28)" * (cast_expression "(int *)(iVar4 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x28)" ( (binary_expression "iVar4 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    dStack_4d0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4);\n                  }" { (expression_statement "dStack_4d0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4);" (assignment_expression "dStack_4d0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4)" identifier = (cast_expression "(double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4)" * (cast_expression "(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4)" ( (binary_expression "(int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4" (cast_expression "(int)pdVar32" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar4 + 0x2c) * 4" (pointer_expression "*(int *)(iVar4 + 0x2c)" * (cast_expression "(int *)(iVar4 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2c)" ( (binary_expression "iVar4 + 0x2c" identifier + number_literal) )))) * number_literal)) )))))) ;) })) (if_statement "if (*(int *)(iVar4 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }" if (parenthesized_expression "(*(int *)(iVar4 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar4 + 0x34) != 0" (pointer_expression "*(int *)(iVar4 + 0x34)" * (cast_expression "(int *)(iVar4 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x34)" ( (binary_expression "iVar4 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    dStack_4c8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }" { (expression_statement "dStack_4c8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4);" (assignment_expression "dStack_4c8 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4)" identifier = (cast_expression "(double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4)" * (cast_expression "(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4)" ( (binary_expression "(int)pdVar32 + *(int *)(iVar4 + 0x38) * 4" (cast_expression "(int)pdVar32" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar4 + 0x38) * 4" (pointer_expression "*(int *)(iVar4 + 0x38)" * (cast_expression "(int *)(iVar4 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x38)" ( (binary_expression "iVar4 + 0x38" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "aiStack_510[2] = 4;" (assignment_expression "aiStack_510[2] = 4" (subscript_expression "aiStack_510[2]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if (*(int *)(iVar4 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x44) * 4);\n                  }" if (parenthesized_expression "(*(int *)(iVar4 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar4 + 0x40) != 0" (pointer_expression "*(int *)(iVar4 + 0x40)" * (cast_expression "(int *)(iVar4 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x40)" ( (binary_expression "iVar4 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    dStack_4c0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x44) * 4);\n                  }" { (expression_statement "dStack_4c0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x44) * 4);" (assignment_expression "dStack_4c0 = (double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x44) * 4)" identifier = (cast_expression "(double)*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x44) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x44) * 4)" * (cast_expression "(float *)((int)pdVar32 + *(int *)(iVar4 + 0x44) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar32 + *(int *)(iVar4 + 0x44) * 4)" ( (binary_expression "(int)pdVar32 + *(int *)(iVar4 + 0x44) * 4" (cast_expression "(int)pdVar32" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar4 + 0x44) * 4" (pointer_expression "*(int *)(iVar4 + 0x44)" * (cast_expression "(int *)(iVar4 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x44)" ( (binary_expression "iVar4 + 0x44" identifier + number_literal) )))) * number_literal)) )))))) ;) })) })) })) (expression_statement "unaff_s7 = puVar34[0x10];" (assignment_expression "unaff_s7 = puVar34[0x10]" identifier = (subscript_expression "puVar34[0x10]" identifier [ number_literal ])) ;) (if_statement "if (unaff_s7 == 2) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      in_f26_27 = pdVar31[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                      in_f26_27 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar34 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar41 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar41 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar41;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar34 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar41 = *(double *)(puVar34 + 0x16);\n                  if (0.0 <= dVar41) {\n                    dVar49 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                    dVar49 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar49 = dVar49 / unaff_s6[0x879];\n                  }\n                  dVar41 = *(double *)(puVar34 + 0x18);\n                  dVar49 = (dVar42 * dStack_520 +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                           dVar49;\n                  if (0.0 <= dVar41) {\n                    dVar46 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                    dVar46 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar46 = dVar46 / unaff_s6[0x879];\n                  }\n                  dVar46 = (dVar42 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                           dVar46;\n                  dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar34 != 2) goto LAB_000a6378;\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar4 + 0x298));\n                if ((int)dVar41 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar31[0x881]);\n                }\n                else {\n                  dVar41 = pdVar31[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar41);\n                  uStack_5a0 = dVar41 - uStack_5a0;\n                }\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a6248;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar12 + 0x58)) /\n                               (*(double *)(iVar4 + 0x58) - *(double *)(iVar12 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6e58:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) goto LAB_000a6944;\n                if (*puVar34 < 2) {\n                  dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                  dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                  dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                  dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                  dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) {\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  dVar41 = dVar46 * dVar46 + dVar41;\n                  dVar44 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar44 = uStack_5a0 * dVar44;\n                  if (0.0 <= dVar44) {\n                    in_f26_27 = pdVar31[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                    in_f26_27 = pdVar31[0x881] / dVar44;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar28 = *puVar34;\nLAB_000a690c:\n                  if (uVar28 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar41 = pdVar31[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar41 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar41;\n                  }\n                }\n                else {\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar34 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar41 = *(double *)(puVar34 + 0x16);\n                    if (0.0 <= dVar41) {\n                      dVar49 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                      dVar49 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar49 = dVar49 / unaff_s6[0x879];\n                    }\n                    dVar41 = *(double *)(puVar34 + 0x18);\n                    dVar49 = (dVar42 * dStack_520 +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                             dVar49;\n                    if (0.0 <= dVar41) {\n                      dVar46 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                      dVar46 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar46 = dVar46 / unaff_s6[0x879];\n                    }\n                    dVar46 = (dVar42 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                             dVar46;\n                    dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                  dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                           ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                  uStack_5a0 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar41 = pdVar31[0x881];\n                        uVar20 = uVar28;\n                        goto LAB_000a6f20;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar41 = pdVar31[0x881], uVar20 != 0)) {\nLAB_000a6f20:\n                      if ((dVar41 < uStack_5a0) || (uVar28 == uVar20)) {\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar4 = uVar9 + uVar24 * 0x60;\n                      iVar12 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar4 + 0x58)) /\n                               (*(double *)(iVar12 + 0x58) - *(double *)(iVar4 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6740:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar4 + 0x28) +\n                                  dVar42 * *(double *)(iVar12 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar4 + 0x30) +\n                                  dVar42 * *(double *)(iVar12 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar4 + 0x38) +\n                                  dVar42 * *(double *)(iVar12 + 0x38)) * dVar47;\n                      if (*(int *)(iVar12 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar4 + 0x40) +\n                                     dVar42 * *(double *)(iVar12 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\n                  dVar42 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      dVar41 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * dVar41) {\n                      dVar41 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      dVar41 = dVar41 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * dVar41 * uStack_5a0;\nLAB_000a5e90:\n                    uVar28 = *puVar34;\nLAB_000a5e94:\n                    if (uVar28 == 1) {\n                      dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar41;\n                      if (0.0 <= dVar41) {\n                        dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar41,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar42 = dStack_580;\n                        dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580);\n                        dVar42 = dVar42 - dVar41;\n                      }\n                      bVar1 = dVar42 < dStack_580 && dStack_580 < dVar42 + pdVar31[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar31[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar42 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar34 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                             ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                    in_f26_27 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar28 = *puVar34;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  uStack_5a0 = dVar41;\n                  if (0.0 <= dVar41) {\n                    dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  }\n                  else {\n                    dVar42 = *(double *)(puVar34 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar41,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dVar42);\n                    dVar42 = dVar42 - dVar41;\n                  }\n                  bVar1 = *(double *)(puVar34 + 0x1a) < dVar42 + pdVar31[0x881];\n                  uStack_5a0 = dVar42 / *(double *)(puVar34 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a5db0;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      dVar41 = *(double *)(uVar9 + uVar24 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar41 = dStack_580;\n                        if (*puVar34 != 1) {\n                          dVar41 = *(double *)(puVar34 + 0x1a);\n                        }\n                        dVar41 = dVar41 - dVar42;\n                        uVar20 = uVar28 - 1;\n                        uVar24 = 0;\n                      }\n                      else {\n                        dVar41 = (uStack_5a0 - dVar41) /\n                                 (*(double *)(uVar9 + uVar20 * 0x60 + 0x58) - dVar41);\n                      }\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6d30:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }" if (parenthesized_expression "(unaff_s7 == 2)" ( (binary_expression "unaff_s7 == 2" identifier == number_literal) )) (compound_statement "{\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      in_f26_27 = pdVar31[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                      in_f26_27 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar34 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar41 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar41 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar41;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar34 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar41 = *(double *)(puVar34 + 0x16);\n                  if (0.0 <= dVar41) {\n                    dVar49 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                    dVar49 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar49 = dVar49 / unaff_s6[0x879];\n                  }\n                  dVar41 = *(double *)(puVar34 + 0x18);\n                  dVar49 = (dVar42 * dStack_520 +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                           dVar49;\n                  if (0.0 <= dVar41) {\n                    dVar46 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                    dVar46 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar46 = dVar46 / unaff_s6[0x879];\n                  }\n                  dVar46 = (dVar42 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                           dVar46;\n                  dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar34 != 2) goto LAB_000a6378;\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar4 + 0x298));\n                if ((int)dVar41 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar31[0x881]);\n                }\n                else {\n                  dVar41 = pdVar31[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar41);\n                  uStack_5a0 = dVar41 - uStack_5a0;\n                }\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a6248;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar12 + 0x58)) /\n                               (*(double *)(iVar4 + 0x58) - *(double *)(iVar12 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6e58:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }" { (expression_statement "dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);" (assignment_expression "dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560)" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560)" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7c78))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7c78)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7c78)" * (cast_expression "(code **)(pcStack_5a8 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7c78)" ( (binary_expression "pcStack_5a8 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(*pdStack_588 - dStack_560)" ( (binary_expression "*pdStack_588 - dStack_560" (pointer_expression "*pdStack_588" * identifier) - identifier) ))))) ;) (if_statement "if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      in_f26_27 = pdVar31[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                      in_f26_27 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar34 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar41 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar41 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar41;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar34 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar41 = *(double *)(puVar34 + 0x16);\n                  if (0.0 <= dVar41) {\n                    dVar49 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                    dVar49 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar49 = dVar49 / unaff_s6[0x879];\n                  }\n                  dVar41 = *(double *)(puVar34 + 0x18);\n                  dVar49 = (dVar42 * dStack_520 +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                           dVar49;\n                  if (0.0 <= dVar41) {\n                    dVar46 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                    dVar46 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar46 = dVar46 / unaff_s6[0x879];\n                  }\n                  dVar46 = (dVar42 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                           dVar46;\n                  dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar34 != 2) goto LAB_000a6378;\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }" if (parenthesized_expression "(((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41))" ( (binary_expression "((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)" (parenthesized_expression "((int)dVar41 == iVar30)" ( (binary_expression "(int)dVar41 == iVar30" (cast_expression "(int)dVar41" ( (type_descriptor "int" primitive_type) ) identifier) == identifier) )) && (parenthesized_expression "(dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)" ( (comma_expression "dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41" (assignment_expression "dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7c78))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7c78)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7c78)" * (cast_expression "(code **)(pcStack_5a8 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7c78)" ( (binary_expression "pcStack_5a8 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" ( (binary_expression "pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)" (subscript_expression "pdStack_588[1]" identifier [ number_literal ]) - (pointer_expression "*(double *)(iStack_584 + 0x43d0)" * (cast_expression "(double *)(iStack_584 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_584 + 0x43d0)" ( (binary_expression "iStack_584 + 0x43d0" identifier + number_literal) ))))) ))))) , (binary_expression "puVar37 == (undefined1 *)(int)dVar41" identifier == (cast_expression "(undefined1 *)(int)dVar41" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)dVar41" ( (type_descriptor "int" primitive_type) ) identifier)))) ))) )) (compound_statement "{\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }" { (labeled_statement "LAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }" statement_identifier : (if_statement "if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }" if (parenthesized_expression "(uStack_5a0 < 0.0)" ( (binary_expression "uStack_5a0 < 0.0" identifier < number_literal) )) (compound_statement "{\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }" { (expression_statement "uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;" (assignment_expression "uStack_550 = uStack_5a0._0_4_ ^ 0x80000000" identifier = (binary_expression "uStack_5a0._0_4_ ^ 0x80000000" (field_expression "uStack_5a0._0_4_" identifier . field_identifier) ^ number_literal)) ;) (expression_statement "uStack_54c = uStack_5a0._4_4_;" (assignment_expression "uStack_54c = uStack_5a0._4_4_" identifier = (field_expression "uStack_5a0._4_4_" identifier . field_identifier)) ;) (expression_statement "uStack_5a0 = -uStack_5a0;" (assignment_expression "uStack_5a0 = -uStack_5a0" identifier = (unary_expression "-uStack_5a0" - identifier)) ;) }))) (labeled_statement "LAB_000a63bc:\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);" statement_identifier : (expression_statement "iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);" (assignment_expression "iVar4 = *(int *)(pcStack_5a8 + -0x7fcc)" identifier = (pointer_expression "*(int *)(pcStack_5a8 + -0x7fcc)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fcc)" ( (binary_expression "pcStack_5a8 + -0x7fcc" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      in_f26_27 = pdVar31[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                      in_f26_27 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar34 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar41 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar41 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar41;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar34 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar41 = *(double *)(puVar34 + 0x16);\n                  if (0.0 <= dVar41) {\n                    dVar49 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                    dVar49 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar49 = dVar49 / unaff_s6[0x879];\n                  }\n                  dVar41 = *(double *)(puVar34 + 0x18);\n                  dVar49 = (dVar42 * dStack_520 +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                           dVar49;\n                  if (0.0 <= dVar41) {\n                    dVar46 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                    dVar46 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar46 = dVar46 / unaff_s6[0x879];\n                  }\n                  dVar46 = (dVar42 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                           dVar46;\n                  dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar34 != 2) goto LAB_000a6378;\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }" else (compound_statement "{\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      in_f26_27 = pdVar31[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                      in_f26_27 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar34 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar41 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar41 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar41;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar34 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar41 = *(double *)(puVar34 + 0x16);\n                  if (0.0 <= dVar41) {\n                    dVar49 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                    dVar49 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar49 = dVar49 / unaff_s6[0x879];\n                  }\n                  dVar41 = *(double *)(puVar34 + 0x18);\n                  dVar49 = (dVar42 * dStack_520 +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                           dVar49;\n                  if (0.0 <= dVar41) {\n                    dVar46 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                    dVar46 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar46 = dVar46 / unaff_s6[0x879];\n                  }\n                  dVar46 = (dVar42 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                           dVar46;\n                  dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar34 != 2) goto LAB_000a6378;\n                  iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }" { (if_statement "if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      in_f26_27 = pdVar31[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                      in_f26_27 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar34 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar41 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar41 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar41;\n                    }\n                    goto LAB_000a63a4;\n                  }" if (parenthesized_expression "(*puVar34 < 2)" ( (binary_expression "*puVar34 < 2" (pointer_expression "*puVar34" * identifier) < number_literal) )) (compound_statement "{\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      in_f26_27 = pdVar31[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                      in_f26_27 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar34 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar41 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar41 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar41;\n                    }\n                    goto LAB_000a63a4;\n                  }" { (expression_statement "dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);" (assignment_expression "dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6)" identifier = (binary_expression "*(double *)(puVar34 + 10) - *(double *)(puVar34 + 6)" (pointer_expression "*(double *)(puVar34 + 10)" * (cast_expression "(double *)(puVar34 + 10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 10)" ( (binary_expression "puVar34 + 10" identifier + number_literal) )))) - (pointer_expression "*(double *)(puVar34 + 6)" * (cast_expression "(double *)(puVar34 + 6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 6)" ( (binary_expression "puVar34 + 6" identifier + number_literal) )))))) ;) (expression_statement "dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);" (assignment_expression "dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8)" identifier = (binary_expression "*(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8)" (pointer_expression "*(double *)(puVar34 + 0xc)" * (cast_expression "(double *)(puVar34 + 0xc)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0xc)" ( (binary_expression "puVar34 + 0xc" identifier + number_literal) )))) - (pointer_expression "*(double *)(puVar34 + 8)" * (cast_expression "(double *)(puVar34 + 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 8)" ( (binary_expression "puVar34 + 8" identifier + number_literal) )))))) ;) (expression_statement "dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);" (assignment_expression "dVar47 = (double)iVar30 - *(double *)(puVar34 + 6)" identifier = (binary_expression "(double)iVar30 - *(double *)(puVar34 + 6)" (cast_expression "(double)iVar30" ( (type_descriptor "double" primitive_type) ) identifier) - (pointer_expression "*(double *)(puVar34 + 6)" * (cast_expression "(double *)(puVar34 + 6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 6)" ( (binary_expression "puVar34 + 6" identifier + number_literal) )))))) ;) (expression_statement "dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);" (assignment_expression "dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8)" identifier = (binary_expression "(double)(int)puVar37 - *(double *)(puVar34 + 8)" (cast_expression "(double)(int)puVar37" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar37" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar34 + 8)" * (cast_expression "(double *)(puVar34 + 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 8)" ( (binary_expression "puVar34 + 8" identifier + number_literal) )))))) ;) (expression_statement "dVar41 = dVar47 * dVar47 + dVar49 * dVar49;" (assignment_expression "dVar41 = dVar47 * dVar47 + dVar49 * dVar49" identifier = (binary_expression "dVar47 * dVar47 + dVar49 * dVar49" (binary_expression "dVar47 * dVar47" identifier * identifier) + (binary_expression "dVar49 * dVar49" identifier * identifier))) ;) (expression_statement "uStack_5a0 = SQRT(dVar41);" (assignment_expression "uStack_5a0 = SQRT(dVar41)" identifier = (call_expression "SQRT(dVar41)" identifier (argument_list "(dVar41)" ( identifier )))) ;) (if_statement "if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }" if (parenthesized_expression "(0.0 <= dVar41)" ( (binary_expression "0.0 <= dVar41" number_literal <= identifier) )) (compound_statement "{\n                      dVar41 = dVar42 * dVar42;\n                    }" { (expression_statement "dVar41 = dVar42 * dVar42;" (assignment_expression "dVar41 = dVar42 * dVar42" identifier = (binary_expression "dVar42 * dVar42" identifier * identifier)) ;) }) (else_clause "else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }" else (compound_statement "{\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }" { (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "dVar41 = dVar42 * dVar42;" (assignment_expression "dVar41 = dVar42 * dVar42" identifier = (binary_expression "dVar42 * dVar42" identifier * identifier)) ;) }))) (expression_statement "dVar41 = dVar46 * dVar46 + dVar41;" (assignment_expression "dVar41 = dVar46 * dVar46 + dVar41" identifier = (binary_expression "dVar46 * dVar46 + dVar41" (binary_expression "dVar46 * dVar46" identifier * identifier) + identifier)) ;) (expression_statement "dVar44 = SQRT(dVar41);" (assignment_expression "dVar44 = SQRT(dVar41)" identifier = (call_expression "SQRT(dVar41)" identifier (argument_list "(dVar41)" ( identifier )))) ;) (if_statement "if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }" if (parenthesized_expression "(dVar41 < 0.0)" ( (binary_expression "dVar41 < 0.0" identifier < number_literal) )) (compound_statement "{\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }" { (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "dVar44 = uStack_5a0 * dVar44;" (assignment_expression "dVar44 = uStack_5a0 * dVar44" identifier = (binary_expression "uStack_5a0 * dVar44" identifier * identifier)) ;) (if_statement "if (0.0 <= dVar44) {\n                      in_f26_27 = pdVar31[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" if (parenthesized_expression "(0.0 <= dVar44)" ( (binary_expression "0.0 <= dVar44" number_literal <= identifier) )) (compound_statement "{\n                      in_f26_27 = pdVar31[0x881];\n                    }" { (expression_statement "in_f26_27 = pdVar31[0x881];" (assignment_expression "in_f26_27 = pdVar31[0x881]" identifier = (subscript_expression "pdVar31[0x881]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" else (compound_statement "{\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" { (expression_statement "in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                      in_f26_27 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar44 * in_f26_27)" ( (binary_expression "unaff_s6[0x879] <= dVar44 * in_f26_27" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar44 * in_f26_27" identifier * identifier)) )) (compound_statement "{\n                      in_f26_27 = pdVar31[0x881] / dVar44;\n                    }" { (expression_statement "in_f26_27 = pdVar31[0x881] / dVar44;" (assignment_expression "in_f26_27 = pdVar31[0x881] / dVar44" identifier = (binary_expression "pdVar31[0x881] / dVar44" (subscript_expression "pdVar31[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }" else (compound_statement "{\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }" { (expression_statement "in_f26_27 = in_f26_27 / unaff_s6[0x879];" (assignment_expression "in_f26_27 = in_f26_27 / unaff_s6[0x879]" identifier = (binary_expression "in_f26_27 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;" (assignment_expression "in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27" identifier = (binary_expression "(dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27" (parenthesized_expression "(dVar46 * dVar47 + dVar42 * dVar49)" ( (binary_expression "dVar46 * dVar47 + dVar42 * dVar49" (binary_expression "dVar46 * dVar47" identifier * identifier) + (binary_expression "dVar42 * dVar49" identifier * identifier)) )) * identifier)) ;) (expression_statement "uStack_5a0 = in_f26_27 * uStack_5a0;" (assignment_expression "uStack_5a0 = in_f26_27 * uStack_5a0" identifier = (binary_expression "in_f26_27 * uStack_5a0" identifier * identifier)) ;) (labeled_statement "LAB_000a6368:\n                    if (*puVar34 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar41 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar41 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar41;\n                    }" statement_identifier : (if_statement "if (*puVar34 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar41 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar41 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar41;\n                    }" if (parenthesized_expression "(*puVar34 != 2)" ( (binary_expression "*puVar34 != 2" (pointer_expression "*puVar34" * identifier) != number_literal) )) (compound_statement "{\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar41 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar41 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar41;\n                    }" { (labeled_statement "LAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar41 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar41 = dStack_578 / unaff_s6[0x879];\n                      }" statement_identifier : (if_statement "if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar41 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar41 = dStack_578 / unaff_s6[0x879];\n                      }" if (parenthesized_expression "(dStack_548 <= dStack_580 * dStack_578)" ( (binary_expression "dStack_548 <= dStack_580 * dStack_578" identifier <= (binary_expression "dStack_580 * dStack_578" identifier * identifier)) )) (compound_statement "{\n                        dVar41 = dStack_540 / dStack_580;\n                      }" { (expression_statement "dVar41 = dStack_540 / dStack_580;" (assignment_expression "dVar41 = dStack_540 / dStack_580" identifier = (binary_expression "dStack_540 / dStack_580" identifier / identifier)) ;) }) (else_clause "else {\n                        dVar41 = dStack_578 / unaff_s6[0x879];\n                      }" else (compound_statement "{\n                        dVar41 = dStack_578 / unaff_s6[0x879];\n                      }" { (expression_statement "dVar41 = dStack_578 / unaff_s6[0x879];" (assignment_expression "dVar41 = dStack_578 / unaff_s6[0x879]" identifier = (binary_expression "dStack_578 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) })))) (expression_statement "uStack_5a0 = uStack_5a0 * dVar41;" (assignment_expression "uStack_5a0 = uStack_5a0 * dVar41" identifier = (binary_expression "uStack_5a0 * dVar41" identifier * identifier)) ;) }))) (goto_statement "goto LAB_000a63a4;" goto statement_identifier ;) })) (if_statement "if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }" if (parenthesized_expression "(*puVar34 != 2)" ( (binary_expression "*puVar34 != 2" (pointer_expression "*puVar34" * identifier) != number_literal) )) (compound_statement "{\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }" { (expression_statement "uStack_5a0 = 0.0;" (assignment_expression "uStack_5a0 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_000a6368;" goto statement_identifier ;) })) (expression_statement "dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);" (assignment_expression "dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12)" identifier = (binary_expression "(double)iVar30 - *(double *)(puVar34 + 0x12)" (cast_expression "(double)iVar30" ( (type_descriptor "double" primitive_type) ) identifier) - (pointer_expression "*(double *)(puVar34 + 0x12)" * (cast_expression "(double *)(puVar34 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x12)" ( (binary_expression "puVar34 + 0x12" identifier + number_literal) )))))) ;) (expression_statement "(**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar34 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));" (call_expression "(**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar34 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x78e0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x78e0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x78e0)" * (cast_expression "(code **)(pcStack_5a8 + -0x78e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x78e0)" ( (binary_expression "pcStack_5a8 + -0x78e0" identifier + number_literal) ))))) )) (argument_list "((*(double *)(puVar34 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80))" ( (binary_expression "(*(double *)(puVar34 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" (parenthesized_expression "(*(double *)(puVar34 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88))" ( (binary_expression "*(double *)(puVar34 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" (pointer_expression "*(double *)(puVar34 + 0x1c)" * (cast_expression "(double *)(puVar34 + 0x1c)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x1c)" ( (binary_expression "puVar34 + 0x1c" identifier + number_literal) )))) * (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) )) / (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ))) ;) (expression_statement "dVar41 = *(double *)(puVar34 + 0x16);" (assignment_expression "dVar41 = *(double *)(puVar34 + 0x16)" identifier = (pointer_expression "*(double *)(puVar34 + 0x16)" * (cast_expression "(double *)(puVar34 + 0x16)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x16)" ( (binary_expression "puVar34 + 0x16" identifier + number_literal) ))))) ;) (if_statement "if (0.0 <= dVar41) {\n                    dVar49 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }" if (parenthesized_expression "(0.0 <= dVar41)" ( (binary_expression "0.0 <= dVar41" number_literal <= identifier) )) (compound_statement "{\n                    dVar49 = pdVar31[0x881];\n                  }" { (expression_statement "dVar49 = pdVar31[0x881];" (assignment_expression "dVar49 = pdVar31[0x881]" identifier = (subscript_expression "pdVar31[0x881]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                    dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }" else (compound_statement "{\n                    dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }" { (expression_statement "dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                    dVar49 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar49 = dVar49 / unaff_s6[0x879];\n                  }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar41 * dVar49)" ( (binary_expression "unaff_s6[0x879] <= dVar41 * dVar49" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar41 * dVar49" identifier * identifier)) )) (compound_statement "{\n                    dVar49 = pdVar31[0x881] / dVar41;\n                  }" { (expression_statement "dVar49 = pdVar31[0x881] / dVar41;" (assignment_expression "dVar49 = pdVar31[0x881] / dVar41" identifier = (binary_expression "pdVar31[0x881] / dVar41" (subscript_expression "pdVar31[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                    dVar49 = dVar49 / unaff_s6[0x879];\n                  }" else (compound_statement "{\n                    dVar49 = dVar49 / unaff_s6[0x879];\n                  }" { (expression_statement "dVar49 = dVar49 / unaff_s6[0x879];" (assignment_expression "dVar49 = dVar49 / unaff_s6[0x879]" identifier = (binary_expression "dVar49 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "dVar41 = *(double *)(puVar34 + 0x18);" (assignment_expression "dVar41 = *(double *)(puVar34 + 0x18)" identifier = (pointer_expression "*(double *)(puVar34 + 0x18)" * (cast_expression "(double *)(puVar34 + 0x18)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x18)" ( (binary_expression "puVar34 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "dVar49 = (dVar42 * dStack_520 +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                           dVar49;" (assignment_expression "dVar49 = (dVar42 * dStack_520 +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                           dVar49" identifier = (binary_expression "(dVar42 * dStack_520 +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                           dVar49" (parenthesized_expression "(dVar42 * dStack_520 +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518)" ( (binary_expression "dVar42 * dStack_520 +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518" (binary_expression "dVar42 * dStack_520" identifier * identifier) + (binary_expression "((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518" (parenthesized_expression "((double)(int)puVar37 - *(double *)(puVar34 + 0x14))" ( (binary_expression "(double)(int)puVar37 - *(double *)(puVar34 + 0x14)" (cast_expression "(double)(int)puVar37" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar37" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar34 + 0x14)" * (cast_expression "(double *)(puVar34 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x14)" ( (binary_expression "puVar34 + 0x14" identifier + number_literal) ))))) )) * identifier)) )) * identifier)) ;) (if_statement "if (0.0 <= dVar41) {\n                    dVar46 = pdVar31[0x881];\n                  }\n                  else {\n                    dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }" if (parenthesized_expression "(0.0 <= dVar41)" ( (binary_expression "0.0 <= dVar41" number_literal <= identifier) )) (compound_statement "{\n                    dVar46 = pdVar31[0x881];\n                  }" { (expression_statement "dVar46 = pdVar31[0x881];" (assignment_expression "dVar46 = pdVar31[0x881]" identifier = (subscript_expression "pdVar31[0x881]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                    dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }" else (compound_statement "{\n                    dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }" { (expression_statement "dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                    dVar46 = pdVar31[0x881] / dVar41;\n                  }\n                  else {\n                    dVar46 = dVar46 / unaff_s6[0x879];\n                  }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar41 * dVar46)" ( (binary_expression "unaff_s6[0x879] <= dVar41 * dVar46" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar41 * dVar46" identifier * identifier)) )) (compound_statement "{\n                    dVar46 = pdVar31[0x881] / dVar41;\n                  }" { (expression_statement "dVar46 = pdVar31[0x881] / dVar41;" (assignment_expression "dVar46 = pdVar31[0x881] / dVar41" identifier = (binary_expression "pdVar31[0x881] / dVar41" (subscript_expression "pdVar31[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                    dVar46 = dVar46 / unaff_s6[0x879];\n                  }" else (compound_statement "{\n                    dVar46 = dVar46 / unaff_s6[0x879];\n                  }" { (expression_statement "dVar46 = dVar46 / unaff_s6[0x879];" (assignment_expression "dVar46 = dVar46 / unaff_s6[0x879]" identifier = (binary_expression "dVar46 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "dVar46 = (dVar42 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                           dVar46;" (assignment_expression "dVar46 = (dVar42 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                           dVar46" identifier = (binary_expression "(dVar42 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                           dVar46" (parenthesized_expression "(dVar42 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)))" ( (binary_expression "dVar42 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))" (binary_expression "dVar42 * dStack_518" identifier * identifier) - (binary_expression "dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))" identifier * (parenthesized_expression "((double)(int)puVar37 - *(double *)(puVar34 + 0x14))" ( (binary_expression "(double)(int)puVar37 - *(double *)(puVar34 + 0x14)" (cast_expression "(double)(int)puVar37" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar37" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar34 + 0x14)" * (cast_expression "(double *)(puVar34 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x14)" ( (binary_expression "puVar34 + 0x14" identifier + number_literal) ))))) )))) )) * identifier)) ;) (expression_statement "dVar41 = dVar49 * dVar49 + dVar46 * dVar46;" (assignment_expression "dVar41 = dVar49 * dVar49 + dVar46 * dVar46" identifier = (binary_expression "dVar49 * dVar49 + dVar46 * dVar46" (binary_expression "dVar49 * dVar49" identifier * identifier) + (binary_expression "dVar46 * dVar46" identifier * identifier))) ;) (expression_statement "uStack_5a0 = SQRT(dVar41);" (assignment_expression "uStack_5a0 = SQRT(dVar41)" identifier = (call_expression "SQRT(dVar41)" identifier (argument_list "(dVar41)" ( identifier )))) ;) (if_statement "if (0.0 <= dVar41) goto LAB_000a63bc;" if (parenthesized_expression "(0.0 <= dVar41)" ( (binary_expression "0.0 <= dVar41" number_literal <= identifier) )) (goto_statement "goto LAB_000a63bc;" goto statement_identifier ;)) (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (if_statement "if (*puVar34 != 2) goto LAB_000a6378;" if (parenthesized_expression "(*puVar34 != 2)" ( (binary_expression "*puVar34 != 2" (pointer_expression "*puVar34" * identifier) != number_literal) )) (goto_statement "goto LAB_000a6378;" goto statement_identifier ;)) (expression_statement "iVar4 = *(int *)(pcStack_5a8 + -0x7fcc);" (assignment_expression "iVar4 = *(int *)(pcStack_5a8 + -0x7fcc)" identifier = (pointer_expression "*(int *)(pcStack_5a8 + -0x7fcc)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fcc)" ( (binary_expression "pcStack_5a8 + -0x7fcc" identifier + number_literal) ))))) ;) }))) (expression_statement "dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar4 + 0x298));" (assignment_expression "dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar4 + 0x298))" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar4 + 0x298))" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar4 + 0x298))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x6ee0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x6ee0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x6ee0)" * (cast_expression "(code **)(pcStack_5a8 + -0x6ee0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x6ee0)" ( (binary_expression "pcStack_5a8 + -0x6ee0" identifier + number_literal) ))))) )) (argument_list "(uStack_5a0,*(undefined8 *)(iVar4 + 0x298))" ( identifier , (pointer_expression "*(undefined8 *)(iVar4 + 0x298)" * (cast_expression "(undefined8 *)(iVar4 + 0x298)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x298)" ( (binary_expression "iVar4 + 0x298" identifier + number_literal) )))) ))))) ;) (if_statement "if ((int)dVar41 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar31[0x881]);\n                }\n                else {\n                  dVar41 = pdVar31[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar41);\n                  uStack_5a0 = dVar41 - uStack_5a0;\n                }" if (parenthesized_expression "((int)dVar41 == 0)" ( (binary_expression "(int)dVar41 == 0" (cast_expression "(int)dVar41" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar31[0x881]);\n                }" { (expression_statement "uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar31[0x881]);" (assignment_expression "uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar31[0x881])" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar31[0x881])" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar31[0x881])" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x6ee0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x6ee0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x6ee0)" * (cast_expression "(code **)(pcStack_5a8 + -0x6ee0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x6ee0)" ( (binary_expression "pcStack_5a8 + -0x6ee0" identifier + number_literal) ))))) )) (argument_list "(uStack_5a0,pdVar31[0x881])" ( identifier , (subscript_expression "pdVar31[0x881]" identifier [ number_literal ]) ))))) ;) }) (else_clause "else {\n                  dVar41 = pdVar31[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar41);\n                  uStack_5a0 = dVar41 - uStack_5a0;\n                }" else (compound_statement "{\n                  dVar41 = pdVar31[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar41);\n                  uStack_5a0 = dVar41 - uStack_5a0;\n                }" { (expression_statement "dVar41 = pdVar31[0x881];" (assignment_expression "dVar41 = pdVar31[0x881]" identifier = (subscript_expression "pdVar31[0x881]" identifier [ number_literal ])) ;) (expression_statement "uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar41);" (assignment_expression "uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar41)" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar41)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar41)" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x6ee0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x6ee0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x6ee0)" * (cast_expression "(code **)(pcStack_5a8 + -0x6ee0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x6ee0)" ( (binary_expression "pcStack_5a8 + -0x6ee0" identifier + number_literal) ))))) )) (argument_list "(uStack_5a0,dVar41)" ( identifier , identifier ))))) ;) (expression_statement "uStack_5a0 = dVar41 - uStack_5a0;" (assignment_expression "uStack_5a0 = dVar41 - uStack_5a0" identifier = (binary_expression "dVar41 - uStack_5a0" identifier - identifier)) ;) }))) (expression_statement "uVar28 = puVar34[0xf];" (assignment_expression "uVar28 = puVar34[0xf]" identifier = (subscript_expression "puVar34[0xf]" identifier [ number_literal ])) ;) (if_statement "if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a6248;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar12 + 0x58)) /\n                               (*(double *)(iVar4 + 0x58) - *(double *)(iVar12 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6e58:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }" if (parenthesized_expression "(0 < (int)uVar28)" ( (binary_expression "0 < (int)uVar28" number_literal < (cast_expression "(int)uVar28" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a6248;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar12 + 0x58)) /\n                               (*(double *)(iVar4 + 0x58) - *(double *)(iVar12 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6e58:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }" { (expression_statement "uVar9 = puVar34[0xe];" (assignment_expression "uVar9 = puVar34[0xe]" identifier = (subscript_expression "puVar34[0xe]" identifier [ number_literal ])) ;) (if_statement "if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a6248;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar12 + 0x58)) /\n                               (*(double *)(iVar4 + 0x58) - *(double *)(iVar12 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6e58:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }" if (parenthesized_expression "(*(double *)(uVar9 + 0x58) <= uStack_5a0)" ( (binary_expression "*(double *)(uVar9 + 0x58) <= uStack_5a0" (pointer_expression "*(double *)(uVar9 + 0x58)" * (cast_expression "(double *)(uVar9 + 0x58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x58)" ( (binary_expression "uVar9 + 0x58" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a6248;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar12 + 0x58)) /\n                               (*(double *)(iVar4 + 0x58) - *(double *)(iVar12 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6e58:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }" { (expression_statement "pdVar18 = (double *)(uVar9 + 0xb8);" (assignment_expression "pdVar18 = (double *)(uVar9 + 0xb8)" identifier = (cast_expression "(double *)(uVar9 + 0xb8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0xb8)" ( (binary_expression "uVar9 + 0xb8" identifier + number_literal) )))) ;) (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (do_statement "do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a6248;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);" do (compound_statement "{\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a6248;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    }" { (expression_statement "uVar24 = uVar20;" (assignment_expression "uVar24 = uVar20" identifier = identifier) ;) (expression_statement "uVar20 = uVar24 + 1;" (assignment_expression "uVar20 = uVar24 + 1" identifier = (binary_expression "uVar24 + 1" identifier + number_literal)) ;) (if_statement "if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a6248;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }" if (parenthesized_expression "(uVar20 == uVar28)" ( (binary_expression "uVar20 == uVar28" identifier == identifier) )) (compound_statement "{\n                        if (uVar20 == 0) goto LAB_000a6248;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }" { (if_statement "if (uVar20 == 0) goto LAB_000a6248;" if (parenthesized_expression "(uVar20 == 0)" ( (binary_expression "uVar20 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000a6248;" goto statement_identifier ;)) (expression_statement "iVar4 = uVar9 + uVar28 * 0x60 + -0x60;" (assignment_expression "iVar4 = uVar9 + uVar28 * 0x60 + -0x60" identifier = (binary_expression "uVar9 + uVar28 * 0x60 + -0x60" (binary_expression "uVar9 + uVar28 * 0x60" identifier + (binary_expression "uVar28 * 0x60" identifier * number_literal)) + number_literal)) ;) (expression_statement "in_f20_21 = *(double *)(iVar4 + 0x28);" (assignment_expression "in_f20_21 = *(double *)(iVar4 + 0x28)" identifier = (pointer_expression "*(double *)(iVar4 + 0x28)" * (cast_expression "(double *)(iVar4 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x28)" ( (binary_expression "iVar4 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "in_f22_23 = *(double *)(iVar4 + 0x30);" (assignment_expression "in_f22_23 = *(double *)(iVar4 + 0x30)" identifier = (pointer_expression "*(double *)(iVar4 + 0x30)" * (cast_expression "(double *)(iVar4 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x30)" ( (binary_expression "iVar4 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "in_f24_25 = *(double *)(iVar4 + 0x38);" (assignment_expression "in_f24_25 = *(double *)(iVar4 + 0x38)" identifier = (pointer_expression "*(double *)(iVar4 + 0x38)" * (cast_expression "(double *)(iVar4 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x38)" ( (binary_expression "iVar4 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "dStack_590 = *(double *)(iVar4 + 0x40);" (assignment_expression "dStack_590 = *(double *)(iVar4 + 0x40)" identifier = (pointer_expression "*(double *)(iVar4 + 0x40)" * (cast_expression "(double *)(iVar4 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x40)" ( (binary_expression "iVar4 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "dVar41 = *(double *)(iVar4 + 0x48);" (assignment_expression "dVar41 = *(double *)(iVar4 + 0x48)" identifier = (pointer_expression "*(double *)(iVar4 + 0x48)" * (cast_expression "(double *)(iVar4 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x48)" ( (binary_expression "iVar4 + 0x48" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000a5af8;" goto statement_identifier ;) })) (expression_statement "dVar41 = *pdVar18;" (assignment_expression "dVar41 = *pdVar18" identifier = (pointer_expression "*pdVar18" * identifier)) ;) (expression_statement "pdVar18 = pdVar18 + 0xc;" (assignment_expression "pdVar18 = pdVar18 + 0xc" identifier = (binary_expression "pdVar18 + 0xc" identifier + number_literal)) ;) }) while (parenthesized_expression "(dVar41 <= uStack_5a0)" ( (binary_expression "dVar41 <= uStack_5a0" identifier <= identifier) )) ;) (if_statement "if (uVar20 != 0) {\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar12 + 0x58)) /\n                               (*(double *)(iVar4 + 0x58) - *(double *)(iVar12 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6e58:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }" if (parenthesized_expression "(uVar20 != 0)" ( (binary_expression "uVar20 != 0" identifier != number_literal) )) (compound_statement "{\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar12 + 0x58)) /\n                               (*(double *)(iVar4 + 0x58) - *(double *)(iVar12 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6e58:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }" { (expression_statement "iVar12 = uVar9 + uVar24 * 0x60;" (assignment_expression "iVar12 = uVar9 + uVar24 * 0x60" identifier = (binary_expression "uVar9 + uVar24 * 0x60" identifier + (binary_expression "uVar24 * 0x60" identifier * number_literal))) ;) (expression_statement "iVar4 = uVar9 + uVar20 * 0x60;" (assignment_expression "iVar4 = uVar9 + uVar20 * 0x60" identifier = (binary_expression "uVar9 + uVar20 * 0x60" identifier + (binary_expression "uVar20 * 0x60" identifier * number_literal))) ;) (expression_statement "dVar41 = (uStack_5a0 - *(double *)(iVar12 + 0x58)) /\n                               (*(double *)(iVar4 + 0x58) - *(double *)(iVar12 + 0x58));" (assignment_expression "dVar41 = (uStack_5a0 - *(double *)(iVar12 + 0x58)) /\n                               (*(double *)(iVar4 + 0x58) - *(double *)(iVar12 + 0x58))" identifier = (binary_expression "(uStack_5a0 - *(double *)(iVar12 + 0x58)) /\n                               (*(double *)(iVar4 + 0x58) - *(double *)(iVar12 + 0x58))" (parenthesized_expression "(uStack_5a0 - *(double *)(iVar12 + 0x58))" ( (binary_expression "uStack_5a0 - *(double *)(iVar12 + 0x58)" identifier - (pointer_expression "*(double *)(iVar12 + 0x58)" * (cast_expression "(double *)(iVar12 + 0x58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x58)" ( (binary_expression "iVar12 + 0x58" identifier + number_literal) ))))) )) / (parenthesized_expression "(*(double *)(iVar4 + 0x58) - *(double *)(iVar12 + 0x58))" ( (binary_expression "*(double *)(iVar4 + 0x58) - *(double *)(iVar12 + 0x58)" (pointer_expression "*(double *)(iVar4 + 0x58)" * (cast_expression "(double *)(iVar4 + 0x58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x58)" ( (binary_expression "iVar4 + 0x58" identifier + number_literal) )))) - (pointer_expression "*(double *)(iVar12 + 0x58)" * (cast_expression "(double *)(iVar12 + 0x58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x58)" ( (binary_expression "iVar12 + 0x58" identifier + number_literal) ))))) )))) ;) (expression_statement "dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);" (assignment_expression "dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" identifier = (binary_expression "(pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" (binary_expression "(pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48)" (parenthesized_expression "(pdVar31[0x881] - dVar41)" ( (binary_expression "pdVar31[0x881] - dVar41" (subscript_expression "pdVar31[0x881]" identifier [ number_literal ]) - identifier) )) * (pointer_expression "*(double *)(iVar12 + 0x48)" * (cast_expression "(double *)(iVar12 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x48)" ( (binary_expression "iVar12 + 0x48" identifier + number_literal) ))))) * (pointer_expression "*(double *)(dStack_558._0_4_ + 0x4410)" * (cast_expression "(double *)(dStack_558._0_4_ + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(dStack_558._0_4_ + 0x4410)" ( (binary_expression "dStack_558._0_4_ + 0x4410" (field_expression "dStack_558._0_4_" identifier . field_identifier) + number_literal) )))))) ;) (expression_statement "dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);" (assignment_expression "dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" identifier = (binary_expression "dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" (binary_expression "dVar41 * *(double *)(iVar4 + 0x48)" identifier * (pointer_expression "*(double *)(iVar4 + 0x48)" * (cast_expression "(double *)(iVar4 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x48)" ( (binary_expression "iVar4 + 0x48" identifier + number_literal) ))))) * (pointer_expression "*(double *)(dStack_558._0_4_ + 0x4410)" * (cast_expression "(double *)(dStack_558._0_4_ + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(dStack_558._0_4_ + 0x4410)" ( (binary_expression "dStack_558._0_4_ + 0x4410" (field_expression "dStack_558._0_4_" identifier . field_identifier) + number_literal) )))))) ;) (expression_statement "dVar46 = dVar49 + dVar42;" (assignment_expression "dVar46 = dVar49 + dVar42" identifier = (binary_expression "dVar49 + dVar42" identifier + identifier)) ;) (if_statement "if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6e58:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }" if (parenthesized_expression "(0.0 <= dVar46)" ( (binary_expression "0.0 <= dVar46" number_literal <= identifier) )) (compound_statement "{\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }" { (if_statement "if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6e58;\n                        }" if (parenthesized_expression "(pdVar31[0x881] < dVar46)" ( (binary_expression "pdVar31[0x881] < dVar46" (subscript_expression "pdVar31[0x881]" identifier [ number_literal ]) < identifier) )) (compound_statement "{\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6e58;\n                        }" { (expression_statement "dVar46 = pdVar31[0x881];" (assignment_expression "dVar46 = pdVar31[0x881]" identifier = (subscript_expression "pdVar31[0x881]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_000a6e58;" goto statement_identifier ;) })) (if_statement "if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }" if (parenthesized_expression "(0.0 <= dVar46)" ( (binary_expression "0.0 <= dVar46" number_literal <= identifier) )) (compound_statement "{\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }" { (expression_statement "dVar41 = dVar46;" (assignment_expression "dVar41 = dVar46" identifier = identifier) ;) (if_statement "if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }" if (parenthesized_expression "(pdVar31[0x881] < dVar46)" ( (binary_expression "pdVar31[0x881] < dVar46" (subscript_expression "pdVar31[0x881]" identifier [ number_literal ]) < identifier) )) (compound_statement "{\n                            dVar41 = pdVar31[0x881];\n                          }" { (expression_statement "dVar41 = pdVar31[0x881];" (assignment_expression "dVar41 = pdVar31[0x881]" identifier = (subscript_expression "pdVar31[0x881]" identifier [ number_literal ])) ;) })) (expression_statement "dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);" (assignment_expression "dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48)" identifier = (binary_expression "dVar41 * *(double *)(iStack_570 + 0x4a48)" identifier * (pointer_expression "*(double *)(iStack_570 + 0x4a48)" * (cast_expression "(double *)(iStack_570 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_570 + 0x4a48)" ( (binary_expression "iStack_570 + 0x4a48" identifier + number_literal) )))))) ;) (if_statement "if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }" if (parenthesized_expression "(dVar46 < 0.0)" ( (binary_expression "dVar46 < 0.0" identifier < number_literal) )) (compound_statement "{\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }" { (expression_statement "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n                            dVar47 = pdVar31[0x881];\n                          }" else (compound_statement "{\n                            dVar47 = pdVar31[0x881];\n                          }" { (expression_statement "dVar47 = pdVar31[0x881];" (assignment_expression "dVar47 = pdVar31[0x881]" identifier = (subscript_expression "pdVar31[0x881]" identifier [ number_literal ])) ;) }))) }) (else_clause "else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }" else (compound_statement "{\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }" { (expression_statement "dVar41 = 0.0;" (assignment_expression "dVar41 = 0.0" identifier = number_literal) ;) (expression_statement "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) }) (else_clause "else {\n                        dVar46 = 0.0;\nLAB_000a6e58:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }" else (compound_statement "{\n                        dVar46 = 0.0;\nLAB_000a6e58:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }" { (expression_statement "dVar46 = 0.0;" (assignment_expression "dVar46 = 0.0" identifier = number_literal) ;) (labeled_statement "LAB_000a6e58:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);" statement_identifier : (expression_statement "dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);" (assignment_expression "dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48)" identifier = (binary_expression "dVar46 * *(double *)(iStack_570 + 0x4a48)" identifier * (pointer_expression "*(double *)(iStack_570 + 0x4a48)" * (cast_expression "(double *)(iStack_570 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_570 + 0x4a48)" ( (binary_expression "iStack_570 + 0x4a48" identifier + number_literal) )))))) ;)) (expression_statement "dVar47 = pdVar31[0x881];" (assignment_expression "dVar47 = pdVar31[0x881]" identifier = (subscript_expression "pdVar31[0x881]" identifier [ number_literal ])) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar47 * dVar46)" ( (binary_expression "unaff_s6[0x879] <= dVar47 * dVar46" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar47 * dVar46" identifier * identifier)) )) (compound_statement "{\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }" { (expression_statement "dVar47 = pdVar31[0x881] / dVar46;" (assignment_expression "dVar47 = pdVar31[0x881] / dVar46" identifier = (binary_expression "pdVar31[0x881] / dVar46" (subscript_expression "pdVar31[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }" else (compound_statement "{\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }" { (expression_statement "dVar47 = dVar47 / unaff_s6[0x879];" (assignment_expression "dVar47 = dVar47 / unaff_s6[0x879]" identifier = (binary_expression "dVar47 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;" (assignment_expression "in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47" identifier = (binary_expression "(dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47" (parenthesized_expression "(dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28))" ( (binary_expression "dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)" (binary_expression "dVar49 * *(double *)(iVar12 + 0x28)" identifier * (pointer_expression "*(double *)(iVar12 + 0x28)" * (cast_expression "(double *)(iVar12 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x28)" ( (binary_expression "iVar12 + 0x28" identifier + number_literal) ))))) + (binary_expression "dVar42 * *(double *)(iVar4 + 0x28)" identifier * (pointer_expression "*(double *)(iVar4 + 0x28)" * (cast_expression "(double *)(iVar4 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x28)" ( (binary_expression "iVar4 + 0x28" identifier + number_literal) )))))) )) * identifier)) ;) (expression_statement "in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;" (assignment_expression "in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47" identifier = (binary_expression "(dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47" (parenthesized_expression "(dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30))" ( (binary_expression "dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)" (binary_expression "dVar49 * *(double *)(iVar12 + 0x30)" identifier * (pointer_expression "*(double *)(iVar12 + 0x30)" * (cast_expression "(double *)(iVar12 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x30)" ( (binary_expression "iVar12 + 0x30" identifier + number_literal) ))))) + (binary_expression "dVar42 * *(double *)(iVar4 + 0x30)" identifier * (pointer_expression "*(double *)(iVar4 + 0x30)" * (cast_expression "(double *)(iVar4 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x30)" ( (binary_expression "iVar4 + 0x30" identifier + number_literal) )))))) )) * identifier)) ;) (expression_statement "in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;" (assignment_expression "in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47" identifier = (binary_expression "(dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47" (parenthesized_expression "(dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38))" ( (binary_expression "dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)" (binary_expression "dVar49 * *(double *)(iVar12 + 0x38)" identifier * (pointer_expression "*(double *)(iVar12 + 0x38)" * (cast_expression "(double *)(iVar12 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x38)" ( (binary_expression "iVar12 + 0x38" identifier + number_literal) ))))) + (binary_expression "dVar42 * *(double *)(iVar4 + 0x38)" identifier * (pointer_expression "*(double *)(iVar4 + 0x38)" * (cast_expression "(double *)(iVar4 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x38)" ( (binary_expression "iVar4 + 0x38" identifier + number_literal) )))))) )) * identifier)) ;) (if_statement "if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }" if (parenthesized_expression "(*(int *)(iVar4 + 4) == 2)" ( (binary_expression "*(int *)(iVar4 + 4) == 2" (pointer_expression "*(int *)(iVar4 + 4)" * (cast_expression "(int *)(iVar4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }" { (expression_statement "dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;" (assignment_expression "dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47" identifier = (binary_expression "(dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47" (parenthesized_expression "(dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40))" ( (binary_expression "dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)" (binary_expression "dVar49 * *(double *)(iVar12 + 0x40)" identifier * (pointer_expression "*(double *)(iVar12 + 0x40)" * (cast_expression "(double *)(iVar12 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x40)" ( (binary_expression "iVar12 + 0x40" identifier + number_literal) ))))) + (binary_expression "dVar42 * *(double *)(iVar4 + 0x40)" identifier * (pointer_expression "*(double *)(iVar4 + 0x40)" * (cast_expression "(double *)(iVar4 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x40)" ( (binary_expression "iVar4 + 0x40" identifier + number_literal) )))))) )) * identifier)) ;) })) (goto_statement "goto LAB_000a5af8;" goto statement_identifier ;) })) })) })) (labeled_statement "LAB_000a6248:\n                uVar28 = puVar34[0xe];" statement_identifier : (expression_statement "uVar28 = puVar34[0xe];" (assignment_expression "uVar28 = puVar34[0xe]" identifier = (subscript_expression "puVar34[0xe]" identifier [ number_literal ])) ;)) (expression_statement "in_f20_21 = *(double *)(uVar28 + 0x28);" (assignment_expression "in_f20_21 = *(double *)(uVar28 + 0x28)" identifier = (pointer_expression "*(double *)(uVar28 + 0x28)" * (cast_expression "(double *)(uVar28 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar28 + 0x28)" ( (binary_expression "uVar28 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "in_f22_23 = *(double *)(uVar28 + 0x30);" (assignment_expression "in_f22_23 = *(double *)(uVar28 + 0x30)" identifier = (pointer_expression "*(double *)(uVar28 + 0x30)" * (cast_expression "(double *)(uVar28 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar28 + 0x30)" ( (binary_expression "uVar28 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "in_f24_25 = *(double *)(uVar28 + 0x38);" (assignment_expression "in_f24_25 = *(double *)(uVar28 + 0x38)" identifier = (pointer_expression "*(double *)(uVar28 + 0x38)" * (cast_expression "(double *)(uVar28 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar28 + 0x38)" ( (binary_expression "uVar28 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "dStack_590 = *(double *)(uVar28 + 0x40);" (assignment_expression "dStack_590 = *(double *)(uVar28 + 0x40)" identifier = (pointer_expression "*(double *)(uVar28 + 0x40)" * (cast_expression "(double *)(uVar28 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar28 + 0x40)" ( (binary_expression "uVar28 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "dVar41 = *(double *)(uVar28 + 0x48);" (assignment_expression "dVar41 = *(double *)(uVar28 + 0x48)" identifier = (pointer_expression "*(double *)(uVar28 + 0x48)" * (cast_expression "(double *)(uVar28 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar28 + 0x48)" ( (binary_expression "uVar28 + 0x48" identifier + number_literal) ))))) ;) }) (else_clause "else if (unaff_s7 < 2) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) goto LAB_000a6944;\n                if (*puVar34 < 2) {\n                  dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                  dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                  dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                  dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                  dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) {\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  dVar41 = dVar46 * dVar46 + dVar41;\n                  dVar44 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar44 = uStack_5a0 * dVar44;\n                  if (0.0 <= dVar44) {\n                    in_f26_27 = pdVar31[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                    in_f26_27 = pdVar31[0x881] / dVar44;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar28 = *puVar34;\nLAB_000a690c:\n                  if (uVar28 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar41 = pdVar31[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar41 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar41;\n                  }\n                }\n                else {\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar34 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar41 = *(double *)(puVar34 + 0x16);\n                    if (0.0 <= dVar41) {\n                      dVar49 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                      dVar49 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar49 = dVar49 / unaff_s6[0x879];\n                    }\n                    dVar41 = *(double *)(puVar34 + 0x18);\n                    dVar49 = (dVar42 * dStack_520 +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                             dVar49;\n                    if (0.0 <= dVar41) {\n                      dVar46 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                      dVar46 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar46 = dVar46 / unaff_s6[0x879];\n                    }\n                    dVar46 = (dVar42 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                             dVar46;\n                    dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                  dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                           ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                  uStack_5a0 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar41 = pdVar31[0x881];\n                        uVar20 = uVar28;\n                        goto LAB_000a6f20;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar41 = pdVar31[0x881], uVar20 != 0)) {\nLAB_000a6f20:\n                      if ((dVar41 < uStack_5a0) || (uVar28 == uVar20)) {\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar4 = uVar9 + uVar24 * 0x60;\n                      iVar12 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar4 + 0x58)) /\n                               (*(double *)(iVar12 + 0x58) - *(double *)(iVar4 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6740:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar4 + 0x28) +\n                                  dVar42 * *(double *)(iVar12 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar4 + 0x30) +\n                                  dVar42 * *(double *)(iVar12 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar4 + 0x38) +\n                                  dVar42 * *(double *)(iVar12 + 0x38)) * dVar47;\n                      if (*(int *)(iVar12 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar4 + 0x40) +\n                                     dVar42 * *(double *)(iVar12 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\n                  dVar42 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      dVar41 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * dVar41) {\n                      dVar41 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      dVar41 = dVar41 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * dVar41 * uStack_5a0;\nLAB_000a5e90:\n                    uVar28 = *puVar34;\nLAB_000a5e94:\n                    if (uVar28 == 1) {\n                      dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar41;\n                      if (0.0 <= dVar41) {\n                        dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar41,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar42 = dStack_580;\n                        dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580);\n                        dVar42 = dVar42 - dVar41;\n                      }\n                      bVar1 = dVar42 < dStack_580 && dStack_580 < dVar42 + pdVar31[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar31[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar42 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar34 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                             ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                    in_f26_27 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar28 = *puVar34;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  uStack_5a0 = dVar41;\n                  if (0.0 <= dVar41) {\n                    dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  }\n                  else {\n                    dVar42 = *(double *)(puVar34 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar41,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dVar42);\n                    dVar42 = dVar42 - dVar41;\n                  }\n                  bVar1 = *(double *)(puVar34 + 0x1a) < dVar42 + pdVar31[0x881];\n                  uStack_5a0 = dVar42 / *(double *)(puVar34 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a5db0;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      dVar41 = *(double *)(uVar9 + uVar24 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar41 = dStack_580;\n                        if (*puVar34 != 1) {\n                          dVar41 = *(double *)(puVar34 + 0x1a);\n                        }\n                        dVar41 = dVar41 - dVar42;\n                        uVar20 = uVar28 - 1;\n                        uVar24 = 0;\n                      }\n                      else {\n                        dVar41 = (uStack_5a0 - dVar41) /\n                                 (*(double *)(uVar9 + uVar20 * 0x60 + 0x58) - dVar41);\n                      }\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6d30:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }" else (if_statement "if (unaff_s7 < 2) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) goto LAB_000a6944;\n                if (*puVar34 < 2) {\n                  dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                  dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                  dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                  dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                  dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) {\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  dVar41 = dVar46 * dVar46 + dVar41;\n                  dVar44 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar44 = uStack_5a0 * dVar44;\n                  if (0.0 <= dVar44) {\n                    in_f26_27 = pdVar31[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                    in_f26_27 = pdVar31[0x881] / dVar44;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar28 = *puVar34;\nLAB_000a690c:\n                  if (uVar28 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar41 = pdVar31[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar41 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar41;\n                  }\n                }\n                else {\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar34 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar41 = *(double *)(puVar34 + 0x16);\n                    if (0.0 <= dVar41) {\n                      dVar49 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                      dVar49 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar49 = dVar49 / unaff_s6[0x879];\n                    }\n                    dVar41 = *(double *)(puVar34 + 0x18);\n                    dVar49 = (dVar42 * dStack_520 +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                             dVar49;\n                    if (0.0 <= dVar41) {\n                      dVar46 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                      dVar46 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar46 = dVar46 / unaff_s6[0x879];\n                    }\n                    dVar46 = (dVar42 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                             dVar46;\n                    dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                  dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                           ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                  uStack_5a0 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar41 = pdVar31[0x881];\n                        uVar20 = uVar28;\n                        goto LAB_000a6f20;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar41 = pdVar31[0x881], uVar20 != 0)) {\nLAB_000a6f20:\n                      if ((dVar41 < uStack_5a0) || (uVar28 == uVar20)) {\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar4 = uVar9 + uVar24 * 0x60;\n                      iVar12 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar4 + 0x58)) /\n                               (*(double *)(iVar12 + 0x58) - *(double *)(iVar4 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6740:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar4 + 0x28) +\n                                  dVar42 * *(double *)(iVar12 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar4 + 0x30) +\n                                  dVar42 * *(double *)(iVar12 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar4 + 0x38) +\n                                  dVar42 * *(double *)(iVar12 + 0x38)) * dVar47;\n                      if (*(int *)(iVar12 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar4 + 0x40) +\n                                     dVar42 * *(double *)(iVar12 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\n                  dVar42 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      dVar41 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * dVar41) {\n                      dVar41 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      dVar41 = dVar41 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * dVar41 * uStack_5a0;\nLAB_000a5e90:\n                    uVar28 = *puVar34;\nLAB_000a5e94:\n                    if (uVar28 == 1) {\n                      dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar41;\n                      if (0.0 <= dVar41) {\n                        dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar41,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar42 = dStack_580;\n                        dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580);\n                        dVar42 = dVar42 - dVar41;\n                      }\n                      bVar1 = dVar42 < dStack_580 && dStack_580 < dVar42 + pdVar31[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar31[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar42 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar34 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                             ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                    in_f26_27 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar28 = *puVar34;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  uStack_5a0 = dVar41;\n                  if (0.0 <= dVar41) {\n                    dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  }\n                  else {\n                    dVar42 = *(double *)(puVar34 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar41,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dVar42);\n                    dVar42 = dVar42 - dVar41;\n                  }\n                  bVar1 = *(double *)(puVar34 + 0x1a) < dVar42 + pdVar31[0x881];\n                  uStack_5a0 = dVar42 / *(double *)(puVar34 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a5db0;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      dVar41 = *(double *)(uVar9 + uVar24 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar41 = dStack_580;\n                        if (*puVar34 != 1) {\n                          dVar41 = *(double *)(puVar34 + 0x1a);\n                        }\n                        dVar41 = dVar41 - dVar42;\n                        uVar20 = uVar28 - 1;\n                        uVar24 = 0;\n                      }\n                      else {\n                        dVar41 = (uStack_5a0 - dVar41) /\n                                 (*(double *)(uVar9 + uVar20 * 0x60 + 0x58) - dVar41);\n                      }\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6d30:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }" if (parenthesized_expression "(unaff_s7 < 2)" ( (binary_expression "unaff_s7 < 2" identifier < number_literal) )) (compound_statement "{\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) goto LAB_000a6944;\n                if (*puVar34 < 2) {\n                  dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                  dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                  dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                  dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                  dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) {\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  dVar41 = dVar46 * dVar46 + dVar41;\n                  dVar44 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar44 = uStack_5a0 * dVar44;\n                  if (0.0 <= dVar44) {\n                    in_f26_27 = pdVar31[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                    in_f26_27 = pdVar31[0x881] / dVar44;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar28 = *puVar34;\nLAB_000a690c:\n                  if (uVar28 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar41 = pdVar31[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar41 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar41;\n                  }\n                }\n                else {\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar34 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar41 = *(double *)(puVar34 + 0x16);\n                    if (0.0 <= dVar41) {\n                      dVar49 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                      dVar49 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar49 = dVar49 / unaff_s6[0x879];\n                    }\n                    dVar41 = *(double *)(puVar34 + 0x18);\n                    dVar49 = (dVar42 * dStack_520 +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                             dVar49;\n                    if (0.0 <= dVar41) {\n                      dVar46 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                      dVar46 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar46 = dVar46 / unaff_s6[0x879];\n                    }\n                    dVar46 = (dVar42 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                             dVar46;\n                    dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                  dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                           ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                  uStack_5a0 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar41 = pdVar31[0x881];\n                        uVar20 = uVar28;\n                        goto LAB_000a6f20;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar41 = pdVar31[0x881], uVar20 != 0)) {\nLAB_000a6f20:\n                      if ((dVar41 < uStack_5a0) || (uVar28 == uVar20)) {\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar4 = uVar9 + uVar24 * 0x60;\n                      iVar12 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar4 + 0x58)) /\n                               (*(double *)(iVar12 + 0x58) - *(double *)(iVar4 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6740:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar4 + 0x28) +\n                                  dVar42 * *(double *)(iVar12 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar4 + 0x30) +\n                                  dVar42 * *(double *)(iVar12 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar4 + 0x38) +\n                                  dVar42 * *(double *)(iVar12 + 0x38)) * dVar47;\n                      if (*(int *)(iVar12 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar4 + 0x40) +\n                                     dVar42 * *(double *)(iVar12 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }" { (expression_statement "dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));" (assignment_expression "dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0))" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0))" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7c78))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7c78)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7c78)" * (cast_expression "(code **)(pcStack_5a8 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7c78)" ( (binary_expression "pcStack_5a8 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(*pdStack_588 - *(double *)(iStack_584 + 0x43d0))" ( (binary_expression "*pdStack_588 - *(double *)(iStack_584 + 0x43d0)" (pointer_expression "*pdStack_588" * identifier) - (pointer_expression "*(double *)(iStack_584 + 0x43d0)" * (cast_expression "(double *)(iStack_584 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_584 + 0x43d0)" ( (binary_expression "iStack_584 + 0x43d0" identifier + number_literal) ))))) ))))) ;) (if_statement "if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) goto LAB_000a6944;" if (parenthesized_expression "(((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41))" ( (binary_expression "((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)" (parenthesized_expression "((int)dVar41 == iVar30)" ( (binary_expression "(int)dVar41 == iVar30" (cast_expression "(int)dVar41" ( (type_descriptor "int" primitive_type) ) identifier) == identifier) )) && (parenthesized_expression "(dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)" ( (comma_expression "dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41" (assignment_expression "dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7c78))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7c78)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7c78)" * (cast_expression "(code **)(pcStack_5a8 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7c78)" ( (binary_expression "pcStack_5a8 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" ( (binary_expression "pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)" (subscript_expression "pdStack_588[1]" identifier [ number_literal ]) - (pointer_expression "*(double *)(iStack_584 + 0x43d0)" * (cast_expression "(double *)(iStack_584 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_584 + 0x43d0)" ( (binary_expression "iStack_584 + 0x43d0" identifier + number_literal) ))))) ))))) , (binary_expression "puVar37 == (undefined1 *)(int)dVar41" identifier == (cast_expression "(undefined1 *)(int)dVar41" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)dVar41" ( (type_descriptor "int" primitive_type) ) identifier)))) ))) )) (goto_statement "goto LAB_000a6944;" goto statement_identifier ;)) (if_statement "if (*puVar34 < 2) {\n                  dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                  dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                  dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                  dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                  dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) {\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  dVar41 = dVar46 * dVar46 + dVar41;\n                  dVar44 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar44 = uStack_5a0 * dVar44;\n                  if (0.0 <= dVar44) {\n                    in_f26_27 = pdVar31[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                    in_f26_27 = pdVar31[0x881] / dVar44;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar28 = *puVar34;\nLAB_000a690c:\n                  if (uVar28 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar41 = pdVar31[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar41 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar41;\n                  }\n                }\n                else {\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar34 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar41 = *(double *)(puVar34 + 0x16);\n                    if (0.0 <= dVar41) {\n                      dVar49 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                      dVar49 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar49 = dVar49 / unaff_s6[0x879];\n                    }\n                    dVar41 = *(double *)(puVar34 + 0x18);\n                    dVar49 = (dVar42 * dStack_520 +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                             dVar49;\n                    if (0.0 <= dVar41) {\n                      dVar46 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                      dVar46 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar46 = dVar46 / unaff_s6[0x879];\n                    }\n                    dVar46 = (dVar42 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                             dVar46;\n                    dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                  dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                           ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                  uStack_5a0 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                }" if (parenthesized_expression "(*puVar34 < 2)" ( (binary_expression "*puVar34 < 2" (pointer_expression "*puVar34" * identifier) < number_literal) )) (compound_statement "{\n                  dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                  dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                  dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                  dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                  dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                  uStack_5a0 = SQRT(dVar41);\n                  if (0.0 <= dVar41) {\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  dVar41 = dVar46 * dVar46 + dVar41;\n                  dVar44 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar44 = uStack_5a0 * dVar44;\n                  if (0.0 <= dVar44) {\n                    in_f26_27 = pdVar31[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                    in_f26_27 = pdVar31[0x881] / dVar44;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar28 = *puVar34;\nLAB_000a690c:\n                  if (uVar28 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar41 = pdVar31[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar41 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar41;\n                  }\n                }" { (expression_statement "dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);" (assignment_expression "dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6)" identifier = (binary_expression "*(double *)(puVar34 + 10) - *(double *)(puVar34 + 6)" (pointer_expression "*(double *)(puVar34 + 10)" * (cast_expression "(double *)(puVar34 + 10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 10)" ( (binary_expression "puVar34 + 10" identifier + number_literal) )))) - (pointer_expression "*(double *)(puVar34 + 6)" * (cast_expression "(double *)(puVar34 + 6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 6)" ( (binary_expression "puVar34 + 6" identifier + number_literal) )))))) ;) (expression_statement "dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);" (assignment_expression "dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8)" identifier = (binary_expression "*(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8)" (pointer_expression "*(double *)(puVar34 + 0xc)" * (cast_expression "(double *)(puVar34 + 0xc)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0xc)" ( (binary_expression "puVar34 + 0xc" identifier + number_literal) )))) - (pointer_expression "*(double *)(puVar34 + 8)" * (cast_expression "(double *)(puVar34 + 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 8)" ( (binary_expression "puVar34 + 8" identifier + number_literal) )))))) ;) (expression_statement "dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);" (assignment_expression "dVar47 = (double)iVar30 - *(double *)(puVar34 + 6)" identifier = (binary_expression "(double)iVar30 - *(double *)(puVar34 + 6)" (cast_expression "(double)iVar30" ( (type_descriptor "double" primitive_type) ) identifier) - (pointer_expression "*(double *)(puVar34 + 6)" * (cast_expression "(double *)(puVar34 + 6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 6)" ( (binary_expression "puVar34 + 6" identifier + number_literal) )))))) ;) (expression_statement "dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);" (assignment_expression "dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8)" identifier = (binary_expression "(double)(int)puVar37 - *(double *)(puVar34 + 8)" (cast_expression "(double)(int)puVar37" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar37" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar34 + 8)" * (cast_expression "(double *)(puVar34 + 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 8)" ( (binary_expression "puVar34 + 8" identifier + number_literal) )))))) ;) (expression_statement "dVar41 = dVar47 * dVar47 + dVar49 * dVar49;" (assignment_expression "dVar41 = dVar47 * dVar47 + dVar49 * dVar49" identifier = (binary_expression "dVar47 * dVar47 + dVar49 * dVar49" (binary_expression "dVar47 * dVar47" identifier * identifier) + (binary_expression "dVar49 * dVar49" identifier * identifier))) ;) (expression_statement "uStack_5a0 = SQRT(dVar41);" (assignment_expression "uStack_5a0 = SQRT(dVar41)" identifier = (call_expression "SQRT(dVar41)" identifier (argument_list "(dVar41)" ( identifier )))) ;) (if_statement "if (0.0 <= dVar41) {\n                    dVar41 = dVar42 * dVar42;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar41 = dVar42 * dVar42;\n                  }" if (parenthesized_expression "(0.0 <= dVar41)" ( (binary_expression "0.0 <= dVar41" number_literal <= identifier) )) (compound_statement "{\n                    dVar41 = dVar42 * dVar42;\n                  }" { (expression_statement "dVar41 = dVar42 * dVar42;" (assignment_expression "dVar41 = dVar42 * dVar42" identifier = (binary_expression "dVar42 * dVar42" identifier * identifier)) ;) }) (else_clause "else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar41 = dVar42 * dVar42;\n                  }" else (compound_statement "{\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar41 = dVar42 * dVar42;\n                  }" { (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "dVar41 = dVar42 * dVar42;" (assignment_expression "dVar41 = dVar42 * dVar42" identifier = (binary_expression "dVar42 * dVar42" identifier * identifier)) ;) }))) (expression_statement "dVar41 = dVar46 * dVar46 + dVar41;" (assignment_expression "dVar41 = dVar46 * dVar46 + dVar41" identifier = (binary_expression "dVar46 * dVar46 + dVar41" (binary_expression "dVar46 * dVar46" identifier * identifier) + identifier)) ;) (expression_statement "dVar44 = SQRT(dVar41);" (assignment_expression "dVar44 = SQRT(dVar41)" identifier = (call_expression "SQRT(dVar41)" identifier (argument_list "(dVar41)" ( identifier )))) ;) (if_statement "if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }" if (parenthesized_expression "(dVar41 < 0.0)" ( (binary_expression "dVar41 < 0.0" identifier < number_literal) )) (compound_statement "{\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }" { (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "dVar44 = uStack_5a0 * dVar44;" (assignment_expression "dVar44 = uStack_5a0 * dVar44" identifier = (binary_expression "uStack_5a0 * dVar44" identifier * identifier)) ;) (if_statement "if (0.0 <= dVar44) {\n                    in_f26_27 = pdVar31[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }" if (parenthesized_expression "(0.0 <= dVar44)" ( (binary_expression "0.0 <= dVar44" number_literal <= identifier) )) (compound_statement "{\n                    in_f26_27 = pdVar31[0x881];\n                  }" { (expression_statement "in_f26_27 = pdVar31[0x881];" (assignment_expression "in_f26_27 = pdVar31[0x881]" identifier = (subscript_expression "pdVar31[0x881]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }" else (compound_statement "{\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }" { (expression_statement "in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar44 * in_f26_27) {\n                    in_f26_27 = pdVar31[0x881] / dVar44;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar44 * in_f26_27)" ( (binary_expression "unaff_s6[0x879] <= dVar44 * in_f26_27" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar44 * in_f26_27" identifier * identifier)) )) (compound_statement "{\n                    in_f26_27 = pdVar31[0x881] / dVar44;\n                  }" { (expression_statement "in_f26_27 = pdVar31[0x881] / dVar44;" (assignment_expression "in_f26_27 = pdVar31[0x881] / dVar44" identifier = (binary_expression "pdVar31[0x881] / dVar44" (subscript_expression "pdVar31[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }" else (compound_statement "{\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }" { (expression_statement "in_f26_27 = in_f26_27 / unaff_s6[0x879];" (assignment_expression "in_f26_27 = in_f26_27 / unaff_s6[0x879]" identifier = (binary_expression "in_f26_27 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27;" (assignment_expression "in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27" identifier = (binary_expression "(dVar46 * dVar47 + dVar42 * dVar49) * in_f26_27" (parenthesized_expression "(dVar46 * dVar47 + dVar42 * dVar49)" ( (binary_expression "dVar46 * dVar47 + dVar42 * dVar49" (binary_expression "dVar46 * dVar47" identifier * identifier) + (binary_expression "dVar42 * dVar49" identifier * identifier)) )) * identifier)) ;) (expression_statement "uStack_5a0 = in_f26_27 * uStack_5a0;" (assignment_expression "uStack_5a0 = in_f26_27 * uStack_5a0" identifier = (binary_expression "in_f26_27 * uStack_5a0" identifier * identifier)) ;) (labeled_statement "LAB_000a6908:\n                  uVar28 = *puVar34;" statement_identifier : (expression_statement "uVar28 = *puVar34;" (assignment_expression "uVar28 = *puVar34" identifier = (pointer_expression "*puVar34" * identifier)) ;)) (labeled_statement "LAB_000a690c:\n                  if (uVar28 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar41 = pdVar31[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar41 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar41;\n                  }" statement_identifier : (if_statement "if (uVar28 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar41 = pdVar31[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar41 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar41;\n                  }" if (parenthesized_expression "(uVar28 != 2)" ( (binary_expression "uVar28 != 2" identifier != number_literal) )) (compound_statement "{\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar41 = pdVar31[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar41 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar41;\n                  }" { (if_statement "if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar41 = pdVar31[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar41 = dStack_578 / unaff_s6[0x879];\n                    }" if (parenthesized_expression "(unaff_s6[0x879] <= dStack_580 * dStack_578)" ( (binary_expression "unaff_s6[0x879] <= dStack_580 * dStack_578" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dStack_580 * dStack_578" identifier * identifier)) )) (compound_statement "{\n                      dVar41 = pdVar31[0x881] / dStack_580;\n                    }" { (expression_statement "dVar41 = pdVar31[0x881] / dStack_580;" (assignment_expression "dVar41 = pdVar31[0x881] / dStack_580" identifier = (binary_expression "pdVar31[0x881] / dStack_580" (subscript_expression "pdVar31[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                      dVar41 = dStack_578 / unaff_s6[0x879];\n                    }" else (compound_statement "{\n                      dVar41 = dStack_578 / unaff_s6[0x879];\n                    }" { (expression_statement "dVar41 = dStack_578 / unaff_s6[0x879];" (assignment_expression "dVar41 = dStack_578 / unaff_s6[0x879]" identifier = (binary_expression "dStack_578 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "uStack_5a0 = uStack_5a0 * dVar41;" (assignment_expression "uStack_5a0 = uStack_5a0 * dVar41" identifier = (binary_expression "uStack_5a0 * dVar41" identifier * identifier)) ;) }))) }) (else_clause "else {\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar34 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar41 = *(double *)(puVar34 + 0x16);\n                    if (0.0 <= dVar41) {\n                      dVar49 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                      dVar49 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar49 = dVar49 / unaff_s6[0x879];\n                    }\n                    dVar41 = *(double *)(puVar34 + 0x18);\n                    dVar49 = (dVar42 * dStack_520 +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                             dVar49;\n                    if (0.0 <= dVar41) {\n                      dVar46 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                      dVar46 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar46 = dVar46 / unaff_s6[0x879];\n                    }\n                    dVar46 = (dVar42 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                             dVar46;\n                    dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                  dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                           ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                  uStack_5a0 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                }" else (compound_statement "{\n                  if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar34 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar41 = *(double *)(puVar34 + 0x16);\n                    if (0.0 <= dVar41) {\n                      dVar49 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                      dVar49 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar49 = dVar49 / unaff_s6[0x879];\n                    }\n                    dVar41 = *(double *)(puVar34 + 0x18);\n                    dVar49 = (dVar42 * dStack_520 +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                             dVar49;\n                    if (0.0 <= dVar41) {\n                      dVar46 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                      dVar46 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar46 = dVar46 / unaff_s6[0x879];\n                    }\n                    dVar46 = (dVar42 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                             dVar46;\n                    dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                  dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                           ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                  uStack_5a0 = SQRT(dVar41);\n                  if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }\n                }" { (if_statement "if (*puVar34 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }" if (parenthesized_expression "(*puVar34 != 2)" ( (binary_expression "*puVar34 != 2" (pointer_expression "*puVar34" * identifier) != number_literal) )) (compound_statement "{\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }" { (expression_statement "uStack_5a0 = 0.0;" (assignment_expression "uStack_5a0 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_000a6908;" goto statement_identifier ;) })) (if_statement "if (unaff_s7 != 3) {\n                    dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar34 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar41 = *(double *)(puVar34 + 0x16);\n                    if (0.0 <= dVar41) {\n                      dVar49 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                      dVar49 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar49 = dVar49 / unaff_s6[0x879];\n                    }\n                    dVar41 = *(double *)(puVar34 + 0x18);\n                    dVar49 = (dVar42 * dStack_520 +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                             dVar49;\n                    if (0.0 <= dVar41) {\n                      dVar46 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                      dVar46 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar46 = dVar46 / unaff_s6[0x879];\n                    }\n                    dVar46 = (dVar42 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                             dVar46;\n                    dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }" if (parenthesized_expression "(unaff_s7 != 3)" ( (binary_expression "unaff_s7 != 3" identifier != number_literal) )) (compound_statement "{\n                    dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar34 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar41 = *(double *)(puVar34 + 0x16);\n                    if (0.0 <= dVar41) {\n                      dVar49 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                      dVar49 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar49 = dVar49 / unaff_s6[0x879];\n                    }\n                    dVar41 = *(double *)(puVar34 + 0x18);\n                    dVar49 = (dVar42 * dStack_520 +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                             dVar49;\n                    if (0.0 <= dVar41) {\n                      dVar46 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                      dVar46 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar46 = dVar46 / unaff_s6[0x879];\n                    }\n                    dVar46 = (dVar42 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                             dVar46;\n                    dVar41 = dVar49 * dVar49 + dVar46 * dVar46;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }" { (expression_statement "dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12);" (assignment_expression "dVar42 = (double)iVar30 - *(double *)(puVar34 + 0x12)" identifier = (binary_expression "(double)iVar30 - *(double *)(puVar34 + 0x12)" (cast_expression "(double)iVar30" ( (type_descriptor "double" primitive_type) ) identifier) - (pointer_expression "*(double *)(puVar34 + 0x12)" * (cast_expression "(double *)(puVar34 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x12)" ( (binary_expression "puVar34 + 0x12" identifier + number_literal) )))))) ;) (expression_statement "(**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar34 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));" (call_expression "(**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar34 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x78e0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x78e0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x78e0)" * (cast_expression "(code **)(pcStack_5a8 + -0x78e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x78e0)" ( (binary_expression "pcStack_5a8 + -0x78e0" identifier + number_literal) ))))) )) (argument_list "((*(double *)(puVar34 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80))" ( (binary_expression "(*(double *)(puVar34 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" (parenthesized_expression "(*(double *)(puVar34 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88))" ( (binary_expression "*(double *)(puVar34 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" (pointer_expression "*(double *)(puVar34 + 0x1c)" * (cast_expression "(double *)(puVar34 + 0x1c)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x1c)" ( (binary_expression "puVar34 + 0x1c" identifier + number_literal) )))) * (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) )) / (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ))) ;) (expression_statement "dVar41 = *(double *)(puVar34 + 0x16);" (assignment_expression "dVar41 = *(double *)(puVar34 + 0x16)" identifier = (pointer_expression "*(double *)(puVar34 + 0x16)" * (cast_expression "(double *)(puVar34 + 0x16)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x16)" ( (binary_expression "puVar34 + 0x16" identifier + number_literal) ))))) ;) (if_statement "if (0.0 <= dVar41) {\n                      dVar49 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" if (parenthesized_expression "(0.0 <= dVar41)" ( (binary_expression "0.0 <= dVar41" number_literal <= identifier) )) (compound_statement "{\n                      dVar49 = pdVar31[0x881];\n                    }" { (expression_statement "dVar49 = pdVar31[0x881];" (assignment_expression "dVar49 = pdVar31[0x881]" identifier = (subscript_expression "pdVar31[0x881]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                      dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" else (compound_statement "{\n                      dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" { (expression_statement "dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar49 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar41 * dVar49) {\n                      dVar49 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar49 = dVar49 / unaff_s6[0x879];\n                    }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar41 * dVar49)" ( (binary_expression "unaff_s6[0x879] <= dVar41 * dVar49" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar41 * dVar49" identifier * identifier)) )) (compound_statement "{\n                      dVar49 = pdVar31[0x881] / dVar41;\n                    }" { (expression_statement "dVar49 = pdVar31[0x881] / dVar41;" (assignment_expression "dVar49 = pdVar31[0x881] / dVar41" identifier = (binary_expression "pdVar31[0x881] / dVar41" (subscript_expression "pdVar31[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                      dVar49 = dVar49 / unaff_s6[0x879];\n                    }" else (compound_statement "{\n                      dVar49 = dVar49 / unaff_s6[0x879];\n                    }" { (expression_statement "dVar49 = dVar49 / unaff_s6[0x879];" (assignment_expression "dVar49 = dVar49 / unaff_s6[0x879]" identifier = (binary_expression "dVar49 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "dVar41 = *(double *)(puVar34 + 0x18);" (assignment_expression "dVar41 = *(double *)(puVar34 + 0x18)" identifier = (pointer_expression "*(double *)(puVar34 + 0x18)" * (cast_expression "(double *)(puVar34 + 0x18)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x18)" ( (binary_expression "puVar34 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "dVar49 = (dVar42 * dStack_520 +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                             dVar49;" (assignment_expression "dVar49 = (dVar42 * dStack_520 +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                             dVar49" identifier = (binary_expression "(dVar42 * dStack_520 +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518) *\n                             dVar49" (parenthesized_expression "(dVar42 * dStack_520 +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518)" ( (binary_expression "dVar42 * dStack_520 +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518" (binary_expression "dVar42 * dStack_520" identifier * identifier) + (binary_expression "((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) * dStack_518" (parenthesized_expression "((double)(int)puVar37 - *(double *)(puVar34 + 0x14))" ( (binary_expression "(double)(int)puVar37 - *(double *)(puVar34 + 0x14)" (cast_expression "(double)(int)puVar37" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar37" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar34 + 0x14)" * (cast_expression "(double *)(puVar34 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x14)" ( (binary_expression "puVar34 + 0x14" identifier + number_literal) ))))) )) * identifier)) )) * identifier)) ;) (if_statement "if (0.0 <= dVar41) {\n                      dVar46 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" if (parenthesized_expression "(0.0 <= dVar41)" ( (binary_expression "0.0 <= dVar41" number_literal <= identifier) )) (compound_statement "{\n                      dVar46 = pdVar31[0x881];\n                    }" { (expression_statement "dVar46 = pdVar31[0x881];" (assignment_expression "dVar46 = pdVar31[0x881]" identifier = (subscript_expression "pdVar31[0x881]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                      dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" else (compound_statement "{\n                      dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" { (expression_statement "dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar46 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar41 * dVar46) {\n                      dVar46 = pdVar31[0x881] / dVar41;\n                    }\n                    else {\n                      dVar46 = dVar46 / unaff_s6[0x879];\n                    }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar41 * dVar46)" ( (binary_expression "unaff_s6[0x879] <= dVar41 * dVar46" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar41 * dVar46" identifier * identifier)) )) (compound_statement "{\n                      dVar46 = pdVar31[0x881] / dVar41;\n                    }" { (expression_statement "dVar46 = pdVar31[0x881] / dVar41;" (assignment_expression "dVar46 = pdVar31[0x881] / dVar41" identifier = (binary_expression "pdVar31[0x881] / dVar41" (subscript_expression "pdVar31[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                      dVar46 = dVar46 / unaff_s6[0x879];\n                    }" else (compound_statement "{\n                      dVar46 = dVar46 / unaff_s6[0x879];\n                    }" { (expression_statement "dVar46 = dVar46 / unaff_s6[0x879];" (assignment_expression "dVar46 = dVar46 / unaff_s6[0x879]" identifier = (binary_expression "dVar46 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "dVar46 = (dVar42 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                             dVar46;" (assignment_expression "dVar46 = (dVar42 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                             dVar46" identifier = (binary_expression "(dVar42 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))) *\n                             dVar46" (parenthesized_expression "(dVar42 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)))" ( (binary_expression "dVar42 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))" (binary_expression "dVar42 * dStack_518" identifier * identifier) - (binary_expression "dStack_520 * ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))" identifier * (parenthesized_expression "((double)(int)puVar37 - *(double *)(puVar34 + 0x14))" ( (binary_expression "(double)(int)puVar37 - *(double *)(puVar34 + 0x14)" (cast_expression "(double)(int)puVar37" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar37" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar34 + 0x14)" * (cast_expression "(double *)(puVar34 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x14)" ( (binary_expression "puVar34 + 0x14" identifier + number_literal) ))))) )))) )) * identifier)) ;) (expression_statement "dVar41 = dVar49 * dVar49 + dVar46 * dVar46;" (assignment_expression "dVar41 = dVar49 * dVar49 + dVar46 * dVar46" identifier = (binary_expression "dVar49 * dVar49 + dVar46 * dVar46" (binary_expression "dVar49 * dVar49" identifier * identifier) + (binary_expression "dVar46 * dVar46" identifier * identifier))) ;) (expression_statement "uStack_5a0 = SQRT(dVar41);" (assignment_expression "uStack_5a0 = SQRT(dVar41)" identifier = (call_expression "SQRT(dVar41)" identifier (argument_list "(dVar41)" ( identifier )))) ;) (if_statement "if (0.0 <= dVar41) goto LAB_000a6944;" if (parenthesized_expression "(0.0 <= dVar41)" ( (binary_expression "0.0 <= dVar41" number_literal <= identifier) )) (goto_statement "goto LAB_000a6944;" goto statement_identifier ;)) (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar28 = *puVar34;" (assignment_expression "uVar28 = *puVar34" identifier = (pointer_expression "*puVar34" * identifier)) ;) (goto_statement "goto LAB_000a690c;" goto statement_identifier ;) })) (expression_statement "dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                           ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));" (assignment_expression "dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                           ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))" identifier = (binary_expression "((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                           ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))" (binary_expression "((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                           ((double)iVar30 - *(double *)(puVar34 + 0x12))" (parenthesized_expression "((double)iVar30 - *(double *)(puVar34 + 0x12))" ( (binary_expression "(double)iVar30 - *(double *)(puVar34 + 0x12)" (cast_expression "(double)iVar30" ( (type_descriptor "double" primitive_type) ) identifier) - (pointer_expression "*(double *)(puVar34 + 0x12)" * (cast_expression "(double *)(puVar34 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x12)" ( (binary_expression "puVar34 + 0x12" identifier + number_literal) ))))) )) * (parenthesized_expression "((double)iVar30 - *(double *)(puVar34 + 0x12))" ( (binary_expression "(double)iVar30 - *(double *)(puVar34 + 0x12)" (cast_expression "(double)iVar30" ( (type_descriptor "double" primitive_type) ) identifier) - (pointer_expression "*(double *)(puVar34 + 0x12)" * (cast_expression "(double *)(puVar34 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x12)" ( (binary_expression "puVar34 + 0x12" identifier + number_literal) ))))) ))) + (binary_expression "((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                           ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))" (parenthesized_expression "((double)(int)puVar37 - *(double *)(puVar34 + 0x14))" ( (binary_expression "(double)(int)puVar37 - *(double *)(puVar34 + 0x14)" (cast_expression "(double)(int)puVar37" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar37" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar34 + 0x14)" * (cast_expression "(double *)(puVar34 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x14)" ( (binary_expression "puVar34 + 0x14" identifier + number_literal) ))))) )) * (parenthesized_expression "((double)(int)puVar37 - *(double *)(puVar34 + 0x14))" ( (binary_expression "(double)(int)puVar37 - *(double *)(puVar34 + 0x14)" (cast_expression "(double)(int)puVar37" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar37" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar34 + 0x14)" * (cast_expression "(double *)(puVar34 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x14)" ( (binary_expression "puVar34 + 0x14" identifier + number_literal) ))))) ))))) ;) (expression_statement "uStack_5a0 = SQRT(dVar41);" (assignment_expression "uStack_5a0 = SQRT(dVar41)" identifier = (call_expression "SQRT(dVar41)" identifier (argument_list "(dVar41)" ( identifier )))) ;) (if_statement "if (dVar41 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }" if (parenthesized_expression "(dVar41 < 0.0)" ( (binary_expression "dVar41 < 0.0" identifier < number_literal) )) (compound_statement "{\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar28 = *puVar34;\n                    goto LAB_000a690c;\n                  }" { (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar28 = *puVar34;" (assignment_expression "uVar28 = *puVar34" identifier = (pointer_expression "*puVar34" * identifier)) ;) (goto_statement "goto LAB_000a690c;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_000a6944:\n                uVar28 = puVar34[0xf];" statement_identifier : (expression_statement "uVar28 = puVar34[0xf];" (assignment_expression "uVar28 = puVar34[0xf]" identifier = (subscript_expression "puVar34[0xf]" identifier [ number_literal ])) ;)) (if_statement "if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar41 = pdVar31[0x881];\n                        uVar20 = uVar28;\n                        goto LAB_000a6f20;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar41 = pdVar31[0x881], uVar20 != 0)) {\nLAB_000a6f20:\n                      if ((dVar41 < uStack_5a0) || (uVar28 == uVar20)) {\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar4 = uVar9 + uVar24 * 0x60;\n                      iVar12 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar4 + 0x58)) /\n                               (*(double *)(iVar12 + 0x58) - *(double *)(iVar4 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6740:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar4 + 0x28) +\n                                  dVar42 * *(double *)(iVar12 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar4 + 0x30) +\n                                  dVar42 * *(double *)(iVar12 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar4 + 0x38) +\n                                  dVar42 * *(double *)(iVar12 + 0x38)) * dVar47;\n                      if (*(int *)(iVar12 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar4 + 0x40) +\n                                     dVar42 * *(double *)(iVar12 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }" if (parenthesized_expression "(0 < (int)uVar28)" ( (binary_expression "0 < (int)uVar28" number_literal < (cast_expression "(int)uVar28" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar41 = pdVar31[0x881];\n                        uVar20 = uVar28;\n                        goto LAB_000a6f20;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar41 = pdVar31[0x881], uVar20 != 0)) {\nLAB_000a6f20:\n                      if ((dVar41 < uStack_5a0) || (uVar28 == uVar20)) {\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar4 = uVar9 + uVar24 * 0x60;\n                      iVar12 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar4 + 0x58)) /\n                               (*(double *)(iVar12 + 0x58) - *(double *)(iVar4 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6740:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar4 + 0x28) +\n                                  dVar42 * *(double *)(iVar12 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar4 + 0x30) +\n                                  dVar42 * *(double *)(iVar12 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar4 + 0x38) +\n                                  dVar42 * *(double *)(iVar12 + 0x38)) * dVar47;\n                      if (*(int *)(iVar12 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar4 + 0x40) +\n                                     dVar42 * *(double *)(iVar12 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }" { (expression_statement "uVar9 = puVar34[0xe];" (assignment_expression "uVar9 = puVar34[0xe]" identifier = (subscript_expression "puVar34[0xe]" identifier [ number_literal ])) ;) (if_statement "if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar41 = pdVar31[0x881];\n                        uVar20 = uVar28;\n                        goto LAB_000a6f20;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar41 = pdVar31[0x881], uVar20 != 0)) {\nLAB_000a6f20:\n                      if ((dVar41 < uStack_5a0) || (uVar28 == uVar20)) {\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar4 = uVar9 + uVar24 * 0x60;\n                      iVar12 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar4 + 0x58)) /\n                               (*(double *)(iVar12 + 0x58) - *(double *)(iVar4 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6740:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar4 + 0x28) +\n                                  dVar42 * *(double *)(iVar12 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar4 + 0x30) +\n                                  dVar42 * *(double *)(iVar12 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar4 + 0x38) +\n                                  dVar42 * *(double *)(iVar12 + 0x38)) * dVar47;\n                      if (*(int *)(iVar12 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar4 + 0x40) +\n                                     dVar42 * *(double *)(iVar12 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }" if (parenthesized_expression "(*(double *)(uVar9 + 0x58) <= uStack_5a0)" ( (binary_expression "*(double *)(uVar9 + 0x58) <= uStack_5a0" (pointer_expression "*(double *)(uVar9 + 0x58)" * (cast_expression "(double *)(uVar9 + 0x58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x58)" ( (binary_expression "uVar9 + 0x58" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar41 = pdVar31[0x881];\n                        uVar20 = uVar28;\n                        goto LAB_000a6f20;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar41 = pdVar31[0x881], uVar20 != 0)) {\nLAB_000a6f20:\n                      if ((dVar41 < uStack_5a0) || (uVar28 == uVar20)) {\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar4 = uVar9 + uVar24 * 0x60;\n                      iVar12 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar4 + 0x58)) /\n                               (*(double *)(iVar12 + 0x58) - *(double *)(iVar4 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6740:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar4 + 0x28) +\n                                  dVar42 * *(double *)(iVar12 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar4 + 0x30) +\n                                  dVar42 * *(double *)(iVar12 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar4 + 0x38) +\n                                  dVar42 * *(double *)(iVar12 + 0x38)) * dVar47;\n                      if (*(int *)(iVar12 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar4 + 0x40) +\n                                     dVar42 * *(double *)(iVar12 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }" { (expression_statement "pdVar18 = (double *)(uVar9 + 0xb8);" (assignment_expression "pdVar18 = (double *)(uVar9 + 0xb8)" identifier = (cast_expression "(double *)(uVar9 + 0xb8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0xb8)" ( (binary_expression "uVar9 + 0xb8" identifier + number_literal) )))) ;) (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (do_statement "do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar41 = pdVar31[0x881];\n                        uVar20 = uVar28;\n                        goto LAB_000a6f20;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);" do (compound_statement "{\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar41 = pdVar31[0x881];\n                        uVar20 = uVar28;\n                        goto LAB_000a6f20;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    }" { (expression_statement "uVar24 = uVar20;" (assignment_expression "uVar24 = uVar20" identifier = identifier) ;) (expression_statement "uVar20 = uVar24 + 1;" (assignment_expression "uVar20 = uVar24 + 1" identifier = (binary_expression "uVar24 + 1" identifier + number_literal)) ;) (if_statement "if (uVar20 == uVar28) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar41 = pdVar31[0x881];\n                        uVar20 = uVar28;\n                        goto LAB_000a6f20;\n                      }" if (parenthesized_expression "(uVar20 == uVar28)" ( (binary_expression "uVar20 == uVar28" identifier == identifier) )) (compound_statement "{\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar41 = pdVar31[0x881];\n                        uVar20 = uVar28;\n                        goto LAB_000a6f20;\n                      }" { (if_statement "if (uStack_5a0 < 0.0) goto LAB_000a6694;" if (parenthesized_expression "(uStack_5a0 < 0.0)" ( (binary_expression "uStack_5a0 < 0.0" identifier < number_literal) )) (goto_statement "goto LAB_000a6694;" goto statement_identifier ;)) (expression_statement "dVar41 = pdVar31[0x881];" (assignment_expression "dVar41 = pdVar31[0x881]" identifier = (subscript_expression "pdVar31[0x881]" identifier [ number_literal ])) ;) (expression_statement "uVar20 = uVar28;" (assignment_expression "uVar20 = uVar28" identifier = identifier) ;) (goto_statement "goto LAB_000a6f20;" goto statement_identifier ;) })) (expression_statement "dVar41 = *pdVar18;" (assignment_expression "dVar41 = *pdVar18" identifier = (pointer_expression "*pdVar18" * identifier)) ;) (expression_statement "pdVar18 = pdVar18 + 0xc;" (assignment_expression "pdVar18 = pdVar18 + 0xc" identifier = (binary_expression "pdVar18 + 0xc" identifier + number_literal)) ;) }) while (parenthesized_expression "(dVar41 <= uStack_5a0)" ( (binary_expression "dVar41 <= uStack_5a0" identifier <= identifier) )) ;) (if_statement "if ((0.0 <= uStack_5a0) && (dVar41 = pdVar31[0x881], uVar20 != 0)) {\nLAB_000a6f20:\n                      if ((dVar41 < uStack_5a0) || (uVar28 == uVar20)) {\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar4 = uVar9 + uVar24 * 0x60;\n                      iVar12 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar4 + 0x58)) /\n                               (*(double *)(iVar12 + 0x58) - *(double *)(iVar4 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6740:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar4 + 0x28) +\n                                  dVar42 * *(double *)(iVar12 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar4 + 0x30) +\n                                  dVar42 * *(double *)(iVar12 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar4 + 0x38) +\n                                  dVar42 * *(double *)(iVar12 + 0x38)) * dVar47;\n                      if (*(int *)(iVar12 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar4 + 0x40) +\n                                     dVar42 * *(double *)(iVar12 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }" if (parenthesized_expression "((0.0 <= uStack_5a0) && (dVar41 = pdVar31[0x881], uVar20 != 0))" ( (binary_expression "(0.0 <= uStack_5a0) && (dVar41 = pdVar31[0x881], uVar20 != 0)" (parenthesized_expression "(0.0 <= uStack_5a0)" ( (binary_expression "0.0 <= uStack_5a0" number_literal <= identifier) )) && (parenthesized_expression "(dVar41 = pdVar31[0x881], uVar20 != 0)" ( (comma_expression "dVar41 = pdVar31[0x881], uVar20 != 0" (assignment_expression "dVar41 = pdVar31[0x881]" identifier = (subscript_expression "pdVar31[0x881]" identifier [ number_literal ])) , (binary_expression "uVar20 != 0" identifier != number_literal)) ))) )) (compound_statement "{\nLAB_000a6f20:\n                      if ((dVar41 < uStack_5a0) || (uVar28 == uVar20)) {\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar4 = uVar9 + uVar24 * 0x60;\n                      iVar12 = uVar9 + uVar20 * 0x60;\n                      dVar41 = (uStack_5a0 - *(double *)(iVar4 + 0x58)) /\n                               (*(double *)(iVar12 + 0x58) - *(double *)(iVar4 + 0x58));\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6740:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar4 + 0x28) +\n                                  dVar42 * *(double *)(iVar12 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar4 + 0x30) +\n                                  dVar42 * *(double *)(iVar12 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar4 + 0x38) +\n                                  dVar42 * *(double *)(iVar12 + 0x38)) * dVar47;\n                      if (*(int *)(iVar12 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar4 + 0x40) +\n                                     dVar42 * *(double *)(iVar12 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }" { (labeled_statement "LAB_000a6f20:\n                      if ((dVar41 < uStack_5a0) || (uVar28 == uVar20)) {\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }" statement_identifier : (if_statement "if ((dVar41 < uStack_5a0) || (uVar28 == uVar20)) {\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }" if (parenthesized_expression "((dVar41 < uStack_5a0) || (uVar28 == uVar20))" ( (binary_expression "(dVar41 < uStack_5a0) || (uVar28 == uVar20)" (parenthesized_expression "(dVar41 < uStack_5a0)" ( (binary_expression "dVar41 < uStack_5a0" identifier < identifier) )) || (parenthesized_expression "(uVar28 == uVar20)" ( (binary_expression "uVar28 == uVar20" identifier == identifier) ))) )) (compound_statement "{\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }" { (expression_statement "iVar4 = uVar9 + uVar28 * 0x60 + -0x60;" (assignment_expression "iVar4 = uVar9 + uVar28 * 0x60 + -0x60" identifier = (binary_expression "uVar9 + uVar28 * 0x60 + -0x60" (binary_expression "uVar9 + uVar28 * 0x60" identifier + (binary_expression "uVar28 * 0x60" identifier * number_literal)) + number_literal)) ;) (expression_statement "in_f20_21 = *(double *)(iVar4 + 0x28);" (assignment_expression "in_f20_21 = *(double *)(iVar4 + 0x28)" identifier = (pointer_expression "*(double *)(iVar4 + 0x28)" * (cast_expression "(double *)(iVar4 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x28)" ( (binary_expression "iVar4 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "in_f22_23 = *(double *)(iVar4 + 0x30);" (assignment_expression "in_f22_23 = *(double *)(iVar4 + 0x30)" identifier = (pointer_expression "*(double *)(iVar4 + 0x30)" * (cast_expression "(double *)(iVar4 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x30)" ( (binary_expression "iVar4 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "in_f24_25 = *(double *)(iVar4 + 0x38);" (assignment_expression "in_f24_25 = *(double *)(iVar4 + 0x38)" identifier = (pointer_expression "*(double *)(iVar4 + 0x38)" * (cast_expression "(double *)(iVar4 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x38)" ( (binary_expression "iVar4 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "dStack_590 = *(double *)(iVar4 + 0x40);" (assignment_expression "dStack_590 = *(double *)(iVar4 + 0x40)" identifier = (pointer_expression "*(double *)(iVar4 + 0x40)" * (cast_expression "(double *)(iVar4 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x40)" ( (binary_expression "iVar4 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "dVar41 = *(double *)(iVar4 + 0x48);" (assignment_expression "dVar41 = *(double *)(iVar4 + 0x48)" identifier = (pointer_expression "*(double *)(iVar4 + 0x48)" * (cast_expression "(double *)(iVar4 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x48)" ( (binary_expression "iVar4 + 0x48" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000a5af8;" goto statement_identifier ;) }))) (expression_statement "iVar4 = uVar9 + uVar24 * 0x60;" (assignment_expression "iVar4 = uVar9 + uVar24 * 0x60" identifier = (binary_expression "uVar9 + uVar24 * 0x60" identifier + (binary_expression "uVar24 * 0x60" identifier * number_literal))) ;) (expression_statement "iVar12 = uVar9 + uVar20 * 0x60;" (assignment_expression "iVar12 = uVar9 + uVar20 * 0x60" identifier = (binary_expression "uVar9 + uVar20 * 0x60" identifier + (binary_expression "uVar20 * 0x60" identifier * number_literal))) ;) (expression_statement "dVar41 = (uStack_5a0 - *(double *)(iVar4 + 0x58)) /\n                               (*(double *)(iVar12 + 0x58) - *(double *)(iVar4 + 0x58));" (assignment_expression "dVar41 = (uStack_5a0 - *(double *)(iVar4 + 0x58)) /\n                               (*(double *)(iVar12 + 0x58) - *(double *)(iVar4 + 0x58))" identifier = (binary_expression "(uStack_5a0 - *(double *)(iVar4 + 0x58)) /\n                               (*(double *)(iVar12 + 0x58) - *(double *)(iVar4 + 0x58))" (parenthesized_expression "(uStack_5a0 - *(double *)(iVar4 + 0x58))" ( (binary_expression "uStack_5a0 - *(double *)(iVar4 + 0x58)" identifier - (pointer_expression "*(double *)(iVar4 + 0x58)" * (cast_expression "(double *)(iVar4 + 0x58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x58)" ( (binary_expression "iVar4 + 0x58" identifier + number_literal) ))))) )) / (parenthesized_expression "(*(double *)(iVar12 + 0x58) - *(double *)(iVar4 + 0x58))" ( (binary_expression "*(double *)(iVar12 + 0x58) - *(double *)(iVar4 + 0x58)" (pointer_expression "*(double *)(iVar12 + 0x58)" * (cast_expression "(double *)(iVar12 + 0x58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x58)" ( (binary_expression "iVar12 + 0x58" identifier + number_literal) )))) - (pointer_expression "*(double *)(iVar4 + 0x58)" * (cast_expression "(double *)(iVar4 + 0x58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x58)" ( (binary_expression "iVar4 + 0x58" identifier + number_literal) ))))) )))) ;) (expression_statement "dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);" (assignment_expression "dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" identifier = (binary_expression "(pdVar31[0x881] - dVar41) * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" (binary_expression "(pdVar31[0x881] - dVar41) * *(double *)(iVar4 + 0x48)" (parenthesized_expression "(pdVar31[0x881] - dVar41)" ( (binary_expression "pdVar31[0x881] - dVar41" (subscript_expression "pdVar31[0x881]" identifier [ number_literal ]) - identifier) )) * (pointer_expression "*(double *)(iVar4 + 0x48)" * (cast_expression "(double *)(iVar4 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x48)" ( (binary_expression "iVar4 + 0x48" identifier + number_literal) ))))) * (pointer_expression "*(double *)(dStack_558._0_4_ + 0x4410)" * (cast_expression "(double *)(dStack_558._0_4_ + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(dStack_558._0_4_ + 0x4410)" ( (binary_expression "dStack_558._0_4_ + 0x4410" (field_expression "dStack_558._0_4_" identifier . field_identifier) + number_literal) )))))) ;) (expression_statement "dVar42 = dVar41 * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);" (assignment_expression "dVar42 = dVar41 * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" identifier = (binary_expression "dVar41 * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" (binary_expression "dVar41 * *(double *)(iVar12 + 0x48)" identifier * (pointer_expression "*(double *)(iVar12 + 0x48)" * (cast_expression "(double *)(iVar12 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x48)" ( (binary_expression "iVar12 + 0x48" identifier + number_literal) ))))) * (pointer_expression "*(double *)(dStack_558._0_4_ + 0x4410)" * (cast_expression "(double *)(dStack_558._0_4_ + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(dStack_558._0_4_ + 0x4410)" ( (binary_expression "dStack_558._0_4_ + 0x4410" (field_expression "dStack_558._0_4_" identifier . field_identifier) + number_literal) )))))) ;) (expression_statement "dVar46 = dVar49 + dVar42;" (assignment_expression "dVar46 = dVar49 + dVar42" identifier = (binary_expression "dVar49 + dVar42" identifier + identifier)) ;) (if_statement "if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6740:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }" if (parenthesized_expression "(0.0 <= dVar46)" ( (binary_expression "0.0 <= dVar46" number_literal <= identifier) )) (compound_statement "{\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }" { (if_statement "if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6740;\n                        }" if (parenthesized_expression "(pdVar31[0x881] < dVar46)" ( (binary_expression "pdVar31[0x881] < dVar46" (subscript_expression "pdVar31[0x881]" identifier [ number_literal ]) < identifier) )) (compound_statement "{\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6740;\n                        }" { (expression_statement "dVar46 = pdVar31[0x881];" (assignment_expression "dVar46 = pdVar31[0x881]" identifier = (subscript_expression "pdVar31[0x881]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_000a6740;" goto statement_identifier ;) })) (if_statement "if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }" if (parenthesized_expression "(0.0 <= dVar46)" ( (binary_expression "0.0 <= dVar46" number_literal <= identifier) )) (compound_statement "{\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }" { (expression_statement "dVar41 = dVar46;" (assignment_expression "dVar41 = dVar46" identifier = identifier) ;) (if_statement "if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }" if (parenthesized_expression "(pdVar31[0x881] < dVar46)" ( (binary_expression "pdVar31[0x881] < dVar46" (subscript_expression "pdVar31[0x881]" identifier [ number_literal ]) < identifier) )) (compound_statement "{\n                            dVar41 = pdVar31[0x881];\n                          }" { (expression_statement "dVar41 = pdVar31[0x881];" (assignment_expression "dVar41 = pdVar31[0x881]" identifier = (subscript_expression "pdVar31[0x881]" identifier [ number_literal ])) ;) })) (expression_statement "dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);" (assignment_expression "dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48)" identifier = (binary_expression "dVar41 * *(double *)(iStack_570 + 0x4a48)" identifier * (pointer_expression "*(double *)(iStack_570 + 0x4a48)" * (cast_expression "(double *)(iStack_570 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_570 + 0x4a48)" ( (binary_expression "iStack_570 + 0x4a48" identifier + number_literal) )))))) ;) (if_statement "if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }" if (parenthesized_expression "(dVar46 < 0.0)" ( (binary_expression "dVar46 < 0.0" identifier < number_literal) )) (compound_statement "{\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }" { (expression_statement "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n                            dVar47 = pdVar31[0x881];\n                          }" else (compound_statement "{\n                            dVar47 = pdVar31[0x881];\n                          }" { (expression_statement "dVar47 = pdVar31[0x881];" (assignment_expression "dVar47 = pdVar31[0x881]" identifier = (subscript_expression "pdVar31[0x881]" identifier [ number_literal ])) ;) }))) }) (else_clause "else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }" else (compound_statement "{\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }" { (expression_statement "dVar41 = 0.0;" (assignment_expression "dVar41 = 0.0" identifier = number_literal) ;) (expression_statement "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) }) (else_clause "else {\n                        dVar46 = 0.0;\nLAB_000a6740:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }" else (compound_statement "{\n                        dVar46 = 0.0;\nLAB_000a6740:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }" { (expression_statement "dVar46 = 0.0;" (assignment_expression "dVar46 = 0.0" identifier = number_literal) ;) (labeled_statement "LAB_000a6740:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);" statement_identifier : (expression_statement "dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);" (assignment_expression "dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48)" identifier = (binary_expression "dVar46 * *(double *)(iStack_570 + 0x4a48)" identifier * (pointer_expression "*(double *)(iStack_570 + 0x4a48)" * (cast_expression "(double *)(iStack_570 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_570 + 0x4a48)" ( (binary_expression "iStack_570 + 0x4a48" identifier + number_literal) )))))) ;)) (expression_statement "dVar47 = pdVar31[0x881];" (assignment_expression "dVar47 = pdVar31[0x881]" identifier = (subscript_expression "pdVar31[0x881]" identifier [ number_literal ])) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar47 * dVar46)" ( (binary_expression "unaff_s6[0x879] <= dVar47 * dVar46" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar47 * dVar46" identifier * identifier)) )) (compound_statement "{\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }" { (expression_statement "dVar47 = pdVar31[0x881] / dVar46;" (assignment_expression "dVar47 = pdVar31[0x881] / dVar46" identifier = (binary_expression "pdVar31[0x881] / dVar46" (subscript_expression "pdVar31[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }" else (compound_statement "{\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }" { (expression_statement "dVar47 = dVar47 / unaff_s6[0x879];" (assignment_expression "dVar47 = dVar47 / unaff_s6[0x879]" identifier = (binary_expression "dVar47 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "in_f20_21 = (dVar49 * *(double *)(iVar4 + 0x28) +\n                                  dVar42 * *(double *)(iVar12 + 0x28)) * dVar47;" (assignment_expression "in_f20_21 = (dVar49 * *(double *)(iVar4 + 0x28) +\n                                  dVar42 * *(double *)(iVar12 + 0x28)) * dVar47" identifier = (binary_expression "(dVar49 * *(double *)(iVar4 + 0x28) +\n                                  dVar42 * *(double *)(iVar12 + 0x28)) * dVar47" (parenthesized_expression "(dVar49 * *(double *)(iVar4 + 0x28) +\n                                  dVar42 * *(double *)(iVar12 + 0x28))" ( (binary_expression "dVar49 * *(double *)(iVar4 + 0x28) +\n                                  dVar42 * *(double *)(iVar12 + 0x28)" (binary_expression "dVar49 * *(double *)(iVar4 + 0x28)" identifier * (pointer_expression "*(double *)(iVar4 + 0x28)" * (cast_expression "(double *)(iVar4 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x28)" ( (binary_expression "iVar4 + 0x28" identifier + number_literal) ))))) + (binary_expression "dVar42 * *(double *)(iVar12 + 0x28)" identifier * (pointer_expression "*(double *)(iVar12 + 0x28)" * (cast_expression "(double *)(iVar12 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x28)" ( (binary_expression "iVar12 + 0x28" identifier + number_literal) )))))) )) * identifier)) ;) (expression_statement "in_f22_23 = (dVar49 * *(double *)(iVar4 + 0x30) +\n                                  dVar42 * *(double *)(iVar12 + 0x30)) * dVar47;" (assignment_expression "in_f22_23 = (dVar49 * *(double *)(iVar4 + 0x30) +\n                                  dVar42 * *(double *)(iVar12 + 0x30)) * dVar47" identifier = (binary_expression "(dVar49 * *(double *)(iVar4 + 0x30) +\n                                  dVar42 * *(double *)(iVar12 + 0x30)) * dVar47" (parenthesized_expression "(dVar49 * *(double *)(iVar4 + 0x30) +\n                                  dVar42 * *(double *)(iVar12 + 0x30))" ( (binary_expression "dVar49 * *(double *)(iVar4 + 0x30) +\n                                  dVar42 * *(double *)(iVar12 + 0x30)" (binary_expression "dVar49 * *(double *)(iVar4 + 0x30)" identifier * (pointer_expression "*(double *)(iVar4 + 0x30)" * (cast_expression "(double *)(iVar4 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x30)" ( (binary_expression "iVar4 + 0x30" identifier + number_literal) ))))) + (binary_expression "dVar42 * *(double *)(iVar12 + 0x30)" identifier * (pointer_expression "*(double *)(iVar12 + 0x30)" * (cast_expression "(double *)(iVar12 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x30)" ( (binary_expression "iVar12 + 0x30" identifier + number_literal) )))))) )) * identifier)) ;) (expression_statement "in_f24_25 = (dVar49 * *(double *)(iVar4 + 0x38) +\n                                  dVar42 * *(double *)(iVar12 + 0x38)) * dVar47;" (assignment_expression "in_f24_25 = (dVar49 * *(double *)(iVar4 + 0x38) +\n                                  dVar42 * *(double *)(iVar12 + 0x38)) * dVar47" identifier = (binary_expression "(dVar49 * *(double *)(iVar4 + 0x38) +\n                                  dVar42 * *(double *)(iVar12 + 0x38)) * dVar47" (parenthesized_expression "(dVar49 * *(double *)(iVar4 + 0x38) +\n                                  dVar42 * *(double *)(iVar12 + 0x38))" ( (binary_expression "dVar49 * *(double *)(iVar4 + 0x38) +\n                                  dVar42 * *(double *)(iVar12 + 0x38)" (binary_expression "dVar49 * *(double *)(iVar4 + 0x38)" identifier * (pointer_expression "*(double *)(iVar4 + 0x38)" * (cast_expression "(double *)(iVar4 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x38)" ( (binary_expression "iVar4 + 0x38" identifier + number_literal) ))))) + (binary_expression "dVar42 * *(double *)(iVar12 + 0x38)" identifier * (pointer_expression "*(double *)(iVar12 + 0x38)" * (cast_expression "(double *)(iVar12 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x38)" ( (binary_expression "iVar12 + 0x38" identifier + number_literal) )))))) )) * identifier)) ;) (if_statement "if (*(int *)(iVar12 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar4 + 0x40) +\n                                     dVar42 * *(double *)(iVar12 + 0x40)) * dVar47;\n                      }" if (parenthesized_expression "(*(int *)(iVar12 + 4) == 2)" ( (binary_expression "*(int *)(iVar12 + 4) == 2" (pointer_expression "*(int *)(iVar12 + 4)" * (cast_expression "(int *)(iVar12 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                        dStack_590 = (dVar49 * *(double *)(iVar4 + 0x40) +\n                                     dVar42 * *(double *)(iVar12 + 0x40)) * dVar47;\n                      }" { (expression_statement "dStack_590 = (dVar49 * *(double *)(iVar4 + 0x40) +\n                                     dVar42 * *(double *)(iVar12 + 0x40)) * dVar47;" (assignment_expression "dStack_590 = (dVar49 * *(double *)(iVar4 + 0x40) +\n                                     dVar42 * *(double *)(iVar12 + 0x40)) * dVar47" identifier = (binary_expression "(dVar49 * *(double *)(iVar4 + 0x40) +\n                                     dVar42 * *(double *)(iVar12 + 0x40)) * dVar47" (parenthesized_expression "(dVar49 * *(double *)(iVar4 + 0x40) +\n                                     dVar42 * *(double *)(iVar12 + 0x40))" ( (binary_expression "dVar49 * *(double *)(iVar4 + 0x40) +\n                                     dVar42 * *(double *)(iVar12 + 0x40)" (binary_expression "dVar49 * *(double *)(iVar4 + 0x40)" identifier * (pointer_expression "*(double *)(iVar4 + 0x40)" * (cast_expression "(double *)(iVar4 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x40)" ( (binary_expression "iVar4 + 0x40" identifier + number_literal) ))))) + (binary_expression "dVar42 * *(double *)(iVar12 + 0x40)" identifier * (pointer_expression "*(double *)(iVar12 + 0x40)" * (cast_expression "(double *)(iVar12 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x40)" ( (binary_expression "iVar12 + 0x40" identifier + number_literal) )))))) )) * identifier)) ;) })) (goto_statement "goto LAB_000a5af8;" goto statement_identifier ;) })) })) })) (labeled_statement "LAB_000a6694:\n                uVar28 = puVar34[0xe];" statement_identifier : (expression_statement "uVar28 = puVar34[0xe];" (assignment_expression "uVar28 = puVar34[0xe]" identifier = (subscript_expression "puVar34[0xe]" identifier [ number_literal ])) ;)) (expression_statement "in_f20_21 = *(double *)(uVar28 + 0x28);" (assignment_expression "in_f20_21 = *(double *)(uVar28 + 0x28)" identifier = (pointer_expression "*(double *)(uVar28 + 0x28)" * (cast_expression "(double *)(uVar28 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar28 + 0x28)" ( (binary_expression "uVar28 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "in_f22_23 = *(double *)(uVar28 + 0x30);" (assignment_expression "in_f22_23 = *(double *)(uVar28 + 0x30)" identifier = (pointer_expression "*(double *)(uVar28 + 0x30)" * (cast_expression "(double *)(uVar28 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar28 + 0x30)" ( (binary_expression "uVar28 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "in_f24_25 = *(double *)(uVar28 + 0x38);" (assignment_expression "in_f24_25 = *(double *)(uVar28 + 0x38)" identifier = (pointer_expression "*(double *)(uVar28 + 0x38)" * (cast_expression "(double *)(uVar28 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar28 + 0x38)" ( (binary_expression "uVar28 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "dStack_590 = *(double *)(uVar28 + 0x40);" (assignment_expression "dStack_590 = *(double *)(uVar28 + 0x40)" identifier = (pointer_expression "*(double *)(uVar28 + 0x40)" * (cast_expression "(double *)(uVar28 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar28 + 0x40)" ( (binary_expression "uVar28 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "dVar41 = *(double *)(uVar28 + 0x48);" (assignment_expression "dVar41 = *(double *)(uVar28 + 0x48)" identifier = (pointer_expression "*(double *)(uVar28 + 0x48)" * (cast_expression "(double *)(uVar28 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar28 + 0x48)" ( (binary_expression "uVar28 + 0x48" identifier + number_literal) ))))) ;) }) (else_clause "else if (unaff_s7 == 3) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\n                  dVar42 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      dVar41 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * dVar41) {\n                      dVar41 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      dVar41 = dVar41 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * dVar41 * uStack_5a0;\nLAB_000a5e90:\n                    uVar28 = *puVar34;\nLAB_000a5e94:\n                    if (uVar28 == 1) {\n                      dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar41;\n                      if (0.0 <= dVar41) {\n                        dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar41,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar42 = dStack_580;\n                        dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580);\n                        dVar42 = dVar42 - dVar41;\n                      }\n                      bVar1 = dVar42 < dStack_580 && dStack_580 < dVar42 + pdVar31[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar31[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar42 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar34 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                             ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                    in_f26_27 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar28 = *puVar34;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  uStack_5a0 = dVar41;\n                  if (0.0 <= dVar41) {\n                    dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  }\n                  else {\n                    dVar42 = *(double *)(puVar34 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar41,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dVar42);\n                    dVar42 = dVar42 - dVar41;\n                  }\n                  bVar1 = *(double *)(puVar34 + 0x1a) < dVar42 + pdVar31[0x881];\n                  uStack_5a0 = dVar42 / *(double *)(puVar34 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a5db0;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      dVar41 = *(double *)(uVar9 + uVar24 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar41 = dStack_580;\n                        if (*puVar34 != 1) {\n                          dVar41 = *(double *)(puVar34 + 0x1a);\n                        }\n                        dVar41 = dVar41 - dVar42;\n                        uVar20 = uVar28 - 1;\n                        uVar24 = 0;\n                      }\n                      else {\n                        dVar41 = (uStack_5a0 - dVar41) /\n                                 (*(double *)(uVar9 + uVar20 * 0x60 + 0x58) - dVar41);\n                      }\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6d30:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }" else (if_statement "if (unaff_s7 == 3) {\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\n                  dVar42 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      dVar41 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * dVar41) {\n                      dVar41 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      dVar41 = dVar41 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * dVar41 * uStack_5a0;\nLAB_000a5e90:\n                    uVar28 = *puVar34;\nLAB_000a5e94:\n                    if (uVar28 == 1) {\n                      dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar41;\n                      if (0.0 <= dVar41) {\n                        dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar41,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar42 = dStack_580;\n                        dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580);\n                        dVar42 = dVar42 - dVar41;\n                      }\n                      bVar1 = dVar42 < dStack_580 && dStack_580 < dVar42 + pdVar31[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar31[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar42 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar34 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                             ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                    in_f26_27 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar28 = *puVar34;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  uStack_5a0 = dVar41;\n                  if (0.0 <= dVar41) {\n                    dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  }\n                  else {\n                    dVar42 = *(double *)(puVar34 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar41,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dVar42);\n                    dVar42 = dVar42 - dVar41;\n                  }\n                  bVar1 = *(double *)(puVar34 + 0x1a) < dVar42 + pdVar31[0x881];\n                  uStack_5a0 = dVar42 / *(double *)(puVar34 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a5db0;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      dVar41 = *(double *)(uVar9 + uVar24 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar41 = dStack_580;\n                        if (*puVar34 != 1) {\n                          dVar41 = *(double *)(puVar34 + 0x1a);\n                        }\n                        dVar41 = dVar41 - dVar42;\n                        uVar20 = uVar28 - 1;\n                        uVar24 = 0;\n                      }\n                      else {\n                        dVar41 = (uStack_5a0 - dVar41) /\n                                 (*(double *)(uVar9 + uVar20 * 0x60 + 0x58) - dVar41);\n                      }\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6d30:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }" if (parenthesized_expression "(unaff_s7 == 3)" ( (binary_expression "unaff_s7 == 3" identifier == number_literal) )) (compound_statement "{\n                dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\n                  dVar42 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      dVar41 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * dVar41) {\n                      dVar41 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      dVar41 = dVar41 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * dVar41 * uStack_5a0;\nLAB_000a5e90:\n                    uVar28 = *puVar34;\nLAB_000a5e94:\n                    if (uVar28 == 1) {\n                      dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar41;\n                      if (0.0 <= dVar41) {\n                        dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar41,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar42 = dStack_580;\n                        dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580);\n                        dVar42 = dVar42 - dVar41;\n                      }\n                      bVar1 = dVar42 < dStack_580 && dStack_580 < dVar42 + pdVar31[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar31[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar42 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar34 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                             ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                    in_f26_27 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar28 = *puVar34;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  uStack_5a0 = dVar41;\n                  if (0.0 <= dVar41) {\n                    dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  }\n                  else {\n                    dVar42 = *(double *)(puVar34 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar41,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dVar42);\n                    dVar42 = dVar42 - dVar41;\n                  }\n                  bVar1 = *(double *)(puVar34 + 0x1a) < dVar42 + pdVar31[0x881];\n                  uStack_5a0 = dVar42 / *(double *)(puVar34 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar28 = puVar34[0xf];\n                if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a5db0;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      dVar41 = *(double *)(uVar9 + uVar24 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar41 = dStack_580;\n                        if (*puVar34 != 1) {\n                          dVar41 = *(double *)(puVar34 + 0x1a);\n                        }\n                        dVar41 = dVar41 - dVar42;\n                        uVar20 = uVar28 - 1;\n                        uVar24 = 0;\n                      }\n                      else {\n                        dVar41 = (uStack_5a0 - dVar41) /\n                                 (*(double *)(uVar9 + uVar20 * 0x60 + 0x58) - dVar41);\n                      }\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6d30:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar28 = puVar34[0xe];\n                in_f20_21 = *(double *)(uVar28 + 0x28);\n                in_f22_23 = *(double *)(uVar28 + 0x30);\n                in_f24_25 = *(double *)(uVar28 + 0x38);\n                dStack_590 = *(double *)(uVar28 + 0x40);\n                dVar41 = *(double *)(uVar28 + 0x48);\n              }" { (expression_statement "dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));" (assignment_expression "dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0))" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0))" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7c78))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7c78)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7c78)" * (cast_expression "(code **)(pcStack_5a8 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7c78)" ( (binary_expression "pcStack_5a8 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(*pdStack_588 - *(double *)(iStack_584 + 0x43d0))" ( (binary_expression "*pdStack_588 - *(double *)(iStack_584 + 0x43d0)" (pointer_expression "*pdStack_588" * identifier) - (pointer_expression "*(double *)(iStack_584 + 0x43d0)" * (cast_expression "(double *)(iStack_584 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_584 + 0x43d0)" ( (binary_expression "iStack_584 + 0x43d0" identifier + number_literal) ))))) ))))) ;) (if_statement "if (((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)) {\n                  dVar42 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      dVar41 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * dVar41) {\n                      dVar41 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      dVar41 = dVar41 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * dVar41 * uStack_5a0;\nLAB_000a5e90:\n                    uVar28 = *puVar34;\nLAB_000a5e94:\n                    if (uVar28 == 1) {\n                      dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar41;\n                      if (0.0 <= dVar41) {\n                        dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar41,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar42 = dStack_580;\n                        dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580);\n                        dVar42 = dVar42 - dVar41;\n                      }\n                      bVar1 = dVar42 < dStack_580 && dStack_580 < dVar42 + pdVar31[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar31[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar42 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar34 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                             ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                    in_f26_27 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar28 = *puVar34;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  uStack_5a0 = dVar41;\n                  if (0.0 <= dVar41) {\n                    dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  }\n                  else {\n                    dVar42 = *(double *)(puVar34 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar41,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dVar42);\n                    dVar42 = dVar42 - dVar41;\n                  }\n                  bVar1 = *(double *)(puVar34 + 0x1a) < dVar42 + pdVar31[0x881];\n                  uStack_5a0 = dVar42 / *(double *)(puVar34 + 0x1a);\n                }" if (parenthesized_expression "(((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41))" ( (binary_expression "((int)dVar41 == iVar30) &&\n                   (dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)" (parenthesized_expression "((int)dVar41 == iVar30)" ( (binary_expression "(int)dVar41 == iVar30" (cast_expression "(int)dVar41" ( (type_descriptor "int" primitive_type) ) identifier) == identifier) )) && (parenthesized_expression "(dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41)" ( (comma_expression "dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar37 == (undefined1 *)(int)dVar41" (assignment_expression "dVar41 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7c78))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7c78)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7c78)" * (cast_expression "(code **)(pcStack_5a8 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7c78)" ( (binary_expression "pcStack_5a8 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" ( (binary_expression "pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)" (subscript_expression "pdStack_588[1]" identifier [ number_literal ]) - (pointer_expression "*(double *)(iStack_584 + 0x43d0)" * (cast_expression "(double *)(iStack_584 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_584 + 0x43d0)" ( (binary_expression "iStack_584 + 0x43d0" identifier + number_literal) ))))) ))))) , (binary_expression "puVar37 == (undefined1 *)(int)dVar41" identifier == (cast_expression "(undefined1 *)(int)dVar41" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)dVar41" ( (type_descriptor "int" primitive_type) ) identifier)))) ))) )) (compound_statement "{\n                  dVar42 = 0.0;\n                  bVar1 = false;\n                }" { (expression_statement "dVar42 = 0.0;" (assignment_expression "dVar42 = 0.0" identifier = number_literal) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) }) (else_clause "else {\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      dVar41 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * dVar41) {\n                      dVar41 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      dVar41 = dVar41 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * dVar41 * uStack_5a0;\nLAB_000a5e90:\n                    uVar28 = *puVar34;\nLAB_000a5e94:\n                    if (uVar28 == 1) {\n                      dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar41;\n                      if (0.0 <= dVar41) {\n                        dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar41,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar42 = dStack_580;\n                        dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580);\n                        dVar42 = dVar42 - dVar41;\n                      }\n                      bVar1 = dVar42 < dStack_580 && dStack_580 < dVar42 + pdVar31[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar31[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar42 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar34 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                             ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                    in_f26_27 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar28 = *puVar34;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  uStack_5a0 = dVar41;\n                  if (0.0 <= dVar41) {\n                    dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  }\n                  else {\n                    dVar42 = *(double *)(puVar34 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar41,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dVar42);\n                    dVar42 = dVar42 - dVar41;\n                  }\n                  bVar1 = *(double *)(puVar34 + 0x1a) < dVar42 + pdVar31[0x881];\n                  uStack_5a0 = dVar42 / *(double *)(puVar34 + 0x1a);\n                }" else (compound_statement "{\n                  if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      dVar41 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * dVar41) {\n                      dVar41 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      dVar41 = dVar41 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * dVar41 * uStack_5a0;\nLAB_000a5e90:\n                    uVar28 = *puVar34;\nLAB_000a5e94:\n                    if (uVar28 == 1) {\n                      dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar41;\n                      if (0.0 <= dVar41) {\n                        dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar41,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar42 = dStack_580;\n                        dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580);\n                        dVar42 = dVar42 - dVar41;\n                      }\n                      bVar1 = dVar42 < dStack_580 && dStack_580 < dVar42 + pdVar31[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar31[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar42 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar34 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                             ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                    in_f26_27 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar28 = *puVar34;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  uStack_5a0 = dVar41;\n                  if (0.0 <= dVar41) {\n                    dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  }\n                  else {\n                    dVar42 = *(double *)(puVar34 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar41,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dVar42);\n                    dVar42 = dVar42 - dVar41;\n                  }\n                  bVar1 = *(double *)(puVar34 + 0x1a) < dVar42 + pdVar31[0x881];\n                  uStack_5a0 = dVar42 / *(double *)(puVar34 + 0x1a);\n                }" { (if_statement "if (*puVar34 < 2) {\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      dVar41 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * dVar41) {\n                      dVar41 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      dVar41 = dVar41 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * dVar41 * uStack_5a0;\nLAB_000a5e90:\n                    uVar28 = *puVar34;\nLAB_000a5e94:\n                    if (uVar28 == 1) {\n                      dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar41;\n                      if (0.0 <= dVar41) {\n                        dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar41,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar42 = dStack_580;\n                        dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580);\n                        dVar42 = dVar42 - dVar41;\n                      }\n                      bVar1 = dVar42 < dStack_580 && dStack_580 < dVar42 + pdVar31[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar31[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar42 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar34 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                             ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                    in_f26_27 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar28 = *puVar34;\n                      goto LAB_000a5e94;\n                    }\n                  }" if (parenthesized_expression "(*puVar34 < 2)" ( (binary_expression "*puVar34 < 2" (pointer_expression "*puVar34" * identifier) < number_literal) )) (compound_statement "{\n                    dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);\n                    dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);\n                    dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);\n                    dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);\n                    dVar41 = dVar47 * dVar47 + dVar49 * dVar49;\n                    uStack_5a0 = SQRT(dVar41);\n                    if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    dVar41 = dVar46 * dVar46 + dVar41;\n                    dVar44 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar44 = uStack_5a0 * dVar44;\n                    if (0.0 <= dVar44) {\n                      dVar41 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar44 * dVar41) {\n                      dVar41 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      dVar41 = dVar41 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * dVar41 * uStack_5a0;\nLAB_000a5e90:\n                    uVar28 = *puVar34;\nLAB_000a5e94:\n                    if (uVar28 == 1) {\n                      dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar41;\n                      if (0.0 <= dVar41) {\n                        dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar41,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar42 = dStack_580;\n                        dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580);\n                        dVar42 = dVar42 - dVar41;\n                      }\n                      bVar1 = dVar42 < dStack_580 && dStack_580 < dVar42 + pdVar31[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar31[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar42 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }" { (expression_statement "dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6);" (assignment_expression "dVar46 = *(double *)(puVar34 + 10) - *(double *)(puVar34 + 6)" identifier = (binary_expression "*(double *)(puVar34 + 10) - *(double *)(puVar34 + 6)" (pointer_expression "*(double *)(puVar34 + 10)" * (cast_expression "(double *)(puVar34 + 10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 10)" ( (binary_expression "puVar34 + 10" identifier + number_literal) )))) - (pointer_expression "*(double *)(puVar34 + 6)" * (cast_expression "(double *)(puVar34 + 6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 6)" ( (binary_expression "puVar34 + 6" identifier + number_literal) )))))) ;) (expression_statement "dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8);" (assignment_expression "dVar42 = *(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8)" identifier = (binary_expression "*(double *)(puVar34 + 0xc) - *(double *)(puVar34 + 8)" (pointer_expression "*(double *)(puVar34 + 0xc)" * (cast_expression "(double *)(puVar34 + 0xc)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0xc)" ( (binary_expression "puVar34 + 0xc" identifier + number_literal) )))) - (pointer_expression "*(double *)(puVar34 + 8)" * (cast_expression "(double *)(puVar34 + 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 8)" ( (binary_expression "puVar34 + 8" identifier + number_literal) )))))) ;) (expression_statement "dVar47 = (double)iVar30 - *(double *)(puVar34 + 6);" (assignment_expression "dVar47 = (double)iVar30 - *(double *)(puVar34 + 6)" identifier = (binary_expression "(double)iVar30 - *(double *)(puVar34 + 6)" (cast_expression "(double)iVar30" ( (type_descriptor "double" primitive_type) ) identifier) - (pointer_expression "*(double *)(puVar34 + 6)" * (cast_expression "(double *)(puVar34 + 6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 6)" ( (binary_expression "puVar34 + 6" identifier + number_literal) )))))) ;) (expression_statement "dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8);" (assignment_expression "dVar49 = (double)(int)puVar37 - *(double *)(puVar34 + 8)" identifier = (binary_expression "(double)(int)puVar37 - *(double *)(puVar34 + 8)" (cast_expression "(double)(int)puVar37" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar37" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar34 + 8)" * (cast_expression "(double *)(puVar34 + 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 8)" ( (binary_expression "puVar34 + 8" identifier + number_literal) )))))) ;) (expression_statement "dVar41 = dVar47 * dVar47 + dVar49 * dVar49;" (assignment_expression "dVar41 = dVar47 * dVar47 + dVar49 * dVar49" identifier = (binary_expression "dVar47 * dVar47 + dVar49 * dVar49" (binary_expression "dVar47 * dVar47" identifier * identifier) + (binary_expression "dVar49 * dVar49" identifier * identifier))) ;) (expression_statement "uStack_5a0 = SQRT(dVar41);" (assignment_expression "uStack_5a0 = SQRT(dVar41)" identifier = (call_expression "SQRT(dVar41)" identifier (argument_list "(dVar41)" ( identifier )))) ;) (if_statement "if (0.0 <= dVar41) {\n                      dVar41 = dVar42 * dVar42;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }" if (parenthesized_expression "(0.0 <= dVar41)" ( (binary_expression "0.0 <= dVar41" number_literal <= identifier) )) (compound_statement "{\n                      dVar41 = dVar42 * dVar42;\n                    }" { (expression_statement "dVar41 = dVar42 * dVar42;" (assignment_expression "dVar41 = dVar42 * dVar42" identifier = (binary_expression "dVar42 * dVar42" identifier * identifier)) ;) }) (else_clause "else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }" else (compound_statement "{\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar41 = dVar42 * dVar42;\n                    }" { (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "dVar41 = dVar42 * dVar42;" (assignment_expression "dVar41 = dVar42 * dVar42" identifier = (binary_expression "dVar42 * dVar42" identifier * identifier)) ;) }))) (expression_statement "dVar41 = dVar46 * dVar46 + dVar41;" (assignment_expression "dVar41 = dVar46 * dVar46 + dVar41" identifier = (binary_expression "dVar46 * dVar46 + dVar41" (binary_expression "dVar46 * dVar46" identifier * identifier) + identifier)) ;) (expression_statement "dVar44 = SQRT(dVar41);" (assignment_expression "dVar44 = SQRT(dVar41)" identifier = (call_expression "SQRT(dVar41)" identifier (argument_list "(dVar41)" ( identifier )))) ;) (if_statement "if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }" if (parenthesized_expression "(dVar41 < 0.0)" ( (binary_expression "dVar41 < 0.0" identifier < number_literal) )) (compound_statement "{\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }" { (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "dVar44 = uStack_5a0 * dVar44;" (assignment_expression "dVar44 = uStack_5a0 * dVar44" identifier = (binary_expression "uStack_5a0 * dVar44" identifier * identifier)) ;) (if_statement "if (0.0 <= dVar44) {\n                      dVar41 = pdVar31[0x881];\n                    }\n                    else {\n                      dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" if (parenthesized_expression "(0.0 <= dVar44)" ( (binary_expression "0.0 <= dVar44" number_literal <= identifier) )) (compound_statement "{\n                      dVar41 = pdVar31[0x881];\n                    }" { (expression_statement "dVar41 = pdVar31[0x881];" (assignment_expression "dVar41 = pdVar31[0x881]" identifier = (subscript_expression "pdVar31[0x881]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                      dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" else (compound_statement "{\n                      dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" { (expression_statement "dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar44 * dVar41) {\n                      dVar41 = pdVar31[0x881] / dVar44;\n                    }\n                    else {\n                      dVar41 = dVar41 / unaff_s6[0x879];\n                    }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar44 * dVar41)" ( (binary_expression "unaff_s6[0x879] <= dVar44 * dVar41" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar44 * dVar41" identifier * identifier)) )) (compound_statement "{\n                      dVar41 = pdVar31[0x881] / dVar44;\n                    }" { (expression_statement "dVar41 = pdVar31[0x881] / dVar44;" (assignment_expression "dVar41 = pdVar31[0x881] / dVar44" identifier = (binary_expression "pdVar31[0x881] / dVar44" (subscript_expression "pdVar31[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                      dVar41 = dVar41 / unaff_s6[0x879];\n                    }" else (compound_statement "{\n                      dVar41 = dVar41 / unaff_s6[0x879];\n                    }" { (expression_statement "dVar41 = dVar41 / unaff_s6[0x879];" (assignment_expression "dVar41 = dVar41 / unaff_s6[0x879]" identifier = (binary_expression "dVar41 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * dVar41 * uStack_5a0;" (assignment_expression "in_f26_27 = (dVar46 * dVar47 + dVar42 * dVar49) * dVar41 * uStack_5a0" identifier = (binary_expression "(dVar46 * dVar47 + dVar42 * dVar49) * dVar41 * uStack_5a0" (binary_expression "(dVar46 * dVar47 + dVar42 * dVar49) * dVar41" (parenthesized_expression "(dVar46 * dVar47 + dVar42 * dVar49)" ( (binary_expression "dVar46 * dVar47 + dVar42 * dVar49" (binary_expression "dVar46 * dVar47" identifier * identifier) + (binary_expression "dVar42 * dVar49" identifier * identifier)) )) * identifier) * identifier)) ;) (labeled_statement "LAB_000a5e90:\n                    uVar28 = *puVar34;" statement_identifier : (expression_statement "uVar28 = *puVar34;" (assignment_expression "uVar28 = *puVar34" identifier = (pointer_expression "*puVar34" * identifier)) ;)) (labeled_statement "LAB_000a5e94:\n                    if (uVar28 == 1) {\n                      dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar41;\n                      if (0.0 <= dVar41) {\n                        dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar41,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar42 = dStack_580;\n                        dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580);\n                        dVar42 = dVar42 - dVar41;\n                      }\n                      bVar1 = dVar42 < dStack_580 && dStack_580 < dVar42 + pdVar31[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar31[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar42 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }" statement_identifier : (if_statement "if (uVar28 == 1) {\n                      dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar41;\n                      if (0.0 <= dVar41) {\n                        dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar41,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar42 = dStack_580;\n                        dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580);\n                        dVar42 = dVar42 - dVar41;\n                      }\n                      bVar1 = dVar42 < dStack_580 && dStack_580 < dVar42 + pdVar31[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar31[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar42 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }" if (parenthesized_expression "(uVar28 == 1)" ( (binary_expression "uVar28 == 1" identifier == number_literal) )) (compound_statement "{\n                      dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar41;\n                      if (0.0 <= dVar41) {\n                        dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar41,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar42 = dStack_580;\n                        dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580);\n                        dVar42 = dVar42 - dVar41;\n                      }\n                      bVar1 = dVar42 < dStack_580 && dStack_580 < dVar42 + pdVar31[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar31[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar42 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }" { (expression_statement "dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);" (assignment_expression "dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580)" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580)" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x6ee0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x6ee0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x6ee0)" * (cast_expression "(code **)(pcStack_5a8 + -0x6ee0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x6ee0)" ( (binary_expression "pcStack_5a8 + -0x6ee0" identifier + number_literal) ))))) )) (argument_list "(in_f26_27,dStack_580)" ( identifier , identifier ))))) ;) (expression_statement "uStack_5a0 = dVar41;" (assignment_expression "uStack_5a0 = dVar41" identifier = identifier) ;) (if_statement "if (0.0 <= dVar41) {\n                        dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar41,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar42 = dStack_580;\n                        dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580);\n                        dVar42 = dVar42 - dVar41;\n                      }" if (parenthesized_expression "(0.0 <= dVar41)" ( (binary_expression "0.0 <= dVar41" number_literal <= identifier) )) (compound_statement "{\n                        dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }" { (expression_statement "dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);" (assignment_expression "dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580)" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580)" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x6ee0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x6ee0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x6ee0)" * (cast_expression "(code **)(pcStack_5a8 + -0x6ee0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x6ee0)" ( (binary_expression "pcStack_5a8 + -0x6ee0" identifier + number_literal) ))))) )) (argument_list "(in_f26_27,dStack_580)" ( identifier , identifier ))))) ;) }) (else_clause "else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar41,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar42 = dStack_580;\n                        dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580);\n                        dVar42 = dVar42 - dVar41;\n                      }" else (compound_statement "{\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar41,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar42 = dStack_580;\n                        dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580);\n                        dVar42 = dVar42 - dVar41;\n                      }" { (expression_statement "uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);" (assignment_expression "uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20)" (field_expression "uStack_5a0._0_4_" identifier . field_identifier) = (call_expression "(uint)((ulonglong)dVar41 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;" (assignment_expression "uStack_528 = uStack_5a0._0_4_ ^ 0x80000000" identifier = (binary_expression "uStack_5a0._0_4_ ^ 0x80000000" (field_expression "uStack_5a0._0_4_" identifier . field_identifier) ^ number_literal)) ;) (expression_statement "uStack_5a0._4_4_ = SUB84(dVar41,0);" (assignment_expression "uStack_5a0._4_4_ = SUB84(dVar41,0)" (field_expression "uStack_5a0._4_4_" identifier . field_identifier) = (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal )))) ;) (expression_statement "uStack_524 = uStack_5a0._4_4_;" (assignment_expression "uStack_524 = uStack_5a0._4_4_" identifier = (field_expression "uStack_5a0._4_4_" identifier . field_identifier)) ;) (expression_statement "dVar42 = dStack_580;" (assignment_expression "dVar42 = dStack_580" identifier = identifier) ;) (expression_statement "dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580);" (assignment_expression "dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580)" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dStack_580)" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x6ee0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x6ee0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x6ee0)" * (cast_expression "(code **)(pcStack_5a8 + -0x6ee0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x6ee0)" ( (binary_expression "pcStack_5a8 + -0x6ee0" identifier + number_literal) ))))) )) (argument_list "(-dVar41,dStack_580)" ( (unary_expression "-dVar41" - identifier) , identifier ))))) ;) (expression_statement "dVar42 = dVar42 - dVar41;" (assignment_expression "dVar42 = dVar42 - dVar41" identifier = (binary_expression "dVar42 - dVar41" identifier - identifier)) ;) }))) (expression_statement "bVar1 = dVar42 < dStack_580 && dStack_580 < dVar42 + pdVar31[0x881];" (assignment_expression "bVar1 = dVar42 < dStack_580 && dStack_580 < dVar42 + pdVar31[0x881]" identifier = (binary_expression "dVar42 < dStack_580 && dStack_580 < dVar42 + pdVar31[0x881]" (binary_expression "dVar42 < dStack_580" identifier < identifier) && (binary_expression "dStack_580 < dVar42 + pdVar31[0x881]" identifier < (binary_expression "dVar42 + pdVar31[0x881]" identifier + (subscript_expression "pdVar31[0x881]" identifier [ number_literal ]))))) ;) (if_statement "if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar31[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }" if (parenthesized_expression "(unaff_s6[0x879] <= dStack_580 * dStack_578)" ( (binary_expression "unaff_s6[0x879] <= dStack_580 * dStack_578" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dStack_580 * dStack_578" identifier * identifier)) )) (compound_statement "{\n                        uStack_5a0 = pdVar31[0x881] / dStack_580;\n                      }" { (expression_statement "uStack_5a0 = pdVar31[0x881] / dStack_580;" (assignment_expression "uStack_5a0 = pdVar31[0x881] / dStack_580" identifier = (binary_expression "pdVar31[0x881] / dStack_580" (subscript_expression "pdVar31[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }" else (compound_statement "{\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }" { (expression_statement "uStack_5a0 = dStack_578 / unaff_s6[0x879];" (assignment_expression "uStack_5a0 = dStack_578 / unaff_s6[0x879]" identifier = (binary_expression "dStack_578 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "uStack_5a0 = dVar42 * uStack_5a0;" (assignment_expression "uStack_5a0 = dVar42 * uStack_5a0" identifier = (binary_expression "dVar42 * uStack_5a0" identifier * identifier)) ;) (goto_statement "goto LAB_000a5f08;" goto statement_identifier ;) }))) }) (else_clause "else {\n                    if (*puVar34 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                             ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                    in_f26_27 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar28 = *puVar34;\n                      goto LAB_000a5e94;\n                    }\n                  }" else (compound_statement "{\n                    if (*puVar34 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                             ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));\n                    in_f26_27 = SQRT(dVar41);\n                    if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar28 = *puVar34;\n                      goto LAB_000a5e94;\n                    }\n                  }" { (if_statement "if (*puVar34 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }" if (parenthesized_expression "(*puVar34 != 2)" ( (binary_expression "*puVar34 != 2" (pointer_expression "*puVar34" * identifier) != number_literal) )) (compound_statement "{\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }" { (expression_statement "in_f26_27 = 0.0;" (assignment_expression "in_f26_27 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_000a5e90;" goto statement_identifier ;) })) (expression_statement "dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                             ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14));" (assignment_expression "dVar41 = ((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                             ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))" identifier = (binary_expression "((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                             ((double)iVar30 - *(double *)(puVar34 + 0x12)) +\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))" (binary_expression "((double)iVar30 - *(double *)(puVar34 + 0x12)) *\n                             ((double)iVar30 - *(double *)(puVar34 + 0x12))" (parenthesized_expression "((double)iVar30 - *(double *)(puVar34 + 0x12))" ( (binary_expression "(double)iVar30 - *(double *)(puVar34 + 0x12)" (cast_expression "(double)iVar30" ( (type_descriptor "double" primitive_type) ) identifier) - (pointer_expression "*(double *)(puVar34 + 0x12)" * (cast_expression "(double *)(puVar34 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x12)" ( (binary_expression "puVar34 + 0x12" identifier + number_literal) ))))) )) * (parenthesized_expression "((double)iVar30 - *(double *)(puVar34 + 0x12))" ( (binary_expression "(double)iVar30 - *(double *)(puVar34 + 0x12)" (cast_expression "(double)iVar30" ( (type_descriptor "double" primitive_type) ) identifier) - (pointer_expression "*(double *)(puVar34 + 0x12)" * (cast_expression "(double *)(puVar34 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x12)" ( (binary_expression "puVar34 + 0x12" identifier + number_literal) ))))) ))) + (binary_expression "((double)(int)puVar37 - *(double *)(puVar34 + 0x14)) *\n                             ((double)(int)puVar37 - *(double *)(puVar34 + 0x14))" (parenthesized_expression "((double)(int)puVar37 - *(double *)(puVar34 + 0x14))" ( (binary_expression "(double)(int)puVar37 - *(double *)(puVar34 + 0x14)" (cast_expression "(double)(int)puVar37" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar37" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar34 + 0x14)" * (cast_expression "(double *)(puVar34 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x14)" ( (binary_expression "puVar34 + 0x14" identifier + number_literal) ))))) )) * (parenthesized_expression "((double)(int)puVar37 - *(double *)(puVar34 + 0x14))" ( (binary_expression "(double)(int)puVar37 - *(double *)(puVar34 + 0x14)" (cast_expression "(double)(int)puVar37" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar37" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar34 + 0x14)" * (cast_expression "(double *)(puVar34 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x14)" ( (binary_expression "puVar34 + 0x14" identifier + number_literal) ))))) ))))) ;) (expression_statement "in_f26_27 = SQRT(dVar41);" (assignment_expression "in_f26_27 = SQRT(dVar41)" identifier = (call_expression "SQRT(dVar41)" identifier (argument_list "(dVar41)" ( identifier )))) ;) (if_statement "if (dVar41 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar28 = *puVar34;\n                      goto LAB_000a5e94;\n                    }" if (parenthesized_expression "(dVar41 < 0.0)" ( (binary_expression "dVar41 < 0.0" identifier < number_literal) )) (compound_statement "{\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar28 = *puVar34;\n                      goto LAB_000a5e94;\n                    }" { (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar28 = *puVar34;" (assignment_expression "uVar28 = *puVar34" identifier = (pointer_expression "*puVar34" * identifier)) ;) (goto_statement "goto LAB_000a5e94;" goto statement_identifier ;) })) }))) (expression_statement "dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));" (assignment_expression "dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar34 + 0x1a))" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar34 + 0x1a))" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar34 + 0x1a))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x6ee0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x6ee0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x6ee0)" * (cast_expression "(code **)(pcStack_5a8 + -0x6ee0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x6ee0)" ( (binary_expression "pcStack_5a8 + -0x6ee0" identifier + number_literal) ))))) )) (argument_list "(in_f26_27,*(undefined8 *)(puVar34 + 0x1a))" ( identifier , (pointer_expression "*(undefined8 *)(puVar34 + 0x1a)" * (cast_expression "(undefined8 *)(puVar34 + 0x1a)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x1a)" ( (binary_expression "puVar34 + 0x1a" identifier + number_literal) )))) ))))) ;) (expression_statement "uStack_5a0 = dVar41;" (assignment_expression "uStack_5a0 = dVar41" identifier = identifier) ;) (if_statement "if (0.0 <= dVar41) {\n                    dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  }\n                  else {\n                    dVar42 = *(double *)(puVar34 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar41,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dVar42);\n                    dVar42 = dVar42 - dVar41;\n                  }" if (parenthesized_expression "(0.0 <= dVar41)" ( (binary_expression "0.0 <= dVar41" number_literal <= identifier) )) (compound_statement "{\n                    dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));\n                  }" { (expression_statement "dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar34 + 0x1a));" (assignment_expression "dVar42 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar34 + 0x1a))" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar34 + 0x1a))" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar34 + 0x1a))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x6ee0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x6ee0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x6ee0)" * (cast_expression "(code **)(pcStack_5a8 + -0x6ee0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x6ee0)" ( (binary_expression "pcStack_5a8 + -0x6ee0" identifier + number_literal) ))))) )) (argument_list "(in_f26_27,*(undefined8 *)(puVar34 + 0x1a))" ( identifier , (pointer_expression "*(undefined8 *)(puVar34 + 0x1a)" * (cast_expression "(undefined8 *)(puVar34 + 0x1a)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x1a)" ( (binary_expression "puVar34 + 0x1a" identifier + number_literal) )))) ))))) ;) }) (else_clause "else {\n                    dVar42 = *(double *)(puVar34 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar41,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dVar42);\n                    dVar42 = dVar42 - dVar41;\n                  }" else (compound_statement "{\n                    dVar42 = *(double *)(puVar34 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar41,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dVar42);\n                    dVar42 = dVar42 - dVar41;\n                  }" { (expression_statement "dVar42 = *(double *)(puVar34 + 0x1a);" (assignment_expression "dVar42 = *(double *)(puVar34 + 0x1a)" identifier = (pointer_expression "*(double *)(puVar34 + 0x1a)" * (cast_expression "(double *)(puVar34 + 0x1a)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x1a)" ( (binary_expression "puVar34 + 0x1a" identifier + number_literal) ))))) ;) (expression_statement "uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20);" (assignment_expression "uStack_5a0._0_4_ = (uint)((ulonglong)dVar41 >> 0x20)" (field_expression "uStack_5a0._0_4_" identifier . field_identifier) = (call_expression "(uint)((ulonglong)dVar41 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)dVar41 >> 0x20)" ( (binary_expression "(ulonglong)dVar41 >> 0x20" (cast_expression "(ulonglong)dVar41" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;" (assignment_expression "uStack_538 = uStack_5a0._0_4_ ^ 0x80000000" identifier = (binary_expression "uStack_5a0._0_4_ ^ 0x80000000" (field_expression "uStack_5a0._0_4_" identifier . field_identifier) ^ number_literal)) ;) (expression_statement "uStack_5a0._4_4_ = SUB84(dVar41,0);" (assignment_expression "uStack_5a0._4_4_ = SUB84(dVar41,0)" (field_expression "uStack_5a0._4_4_" identifier . field_identifier) = (call_expression "SUB84(dVar41,0)" identifier (argument_list "(dVar41,0)" ( identifier , number_literal )))) ;) (expression_statement "uStack_534 = uStack_5a0._4_4_;" (assignment_expression "uStack_534 = uStack_5a0._4_4_" identifier = (field_expression "uStack_5a0._4_4_" identifier . field_identifier)) ;) (expression_statement "dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dVar42);" (assignment_expression "dVar41 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dVar42)" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dVar42)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar41,dVar42)" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x6ee0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x6ee0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x6ee0)" * (cast_expression "(code **)(pcStack_5a8 + -0x6ee0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x6ee0)" ( (binary_expression "pcStack_5a8 + -0x6ee0" identifier + number_literal) ))))) )) (argument_list "(-dVar41,dVar42)" ( (unary_expression "-dVar41" - identifier) , identifier ))))) ;) (expression_statement "dVar42 = dVar42 - dVar41;" (assignment_expression "dVar42 = dVar42 - dVar41" identifier = (binary_expression "dVar42 - dVar41" identifier - identifier)) ;) }))) (expression_statement "bVar1 = *(double *)(puVar34 + 0x1a) < dVar42 + pdVar31[0x881];" (assignment_expression "bVar1 = *(double *)(puVar34 + 0x1a) < dVar42 + pdVar31[0x881]" identifier = (binary_expression "*(double *)(puVar34 + 0x1a) < dVar42 + pdVar31[0x881]" (pointer_expression "*(double *)(puVar34 + 0x1a)" * (cast_expression "(double *)(puVar34 + 0x1a)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x1a)" ( (binary_expression "puVar34 + 0x1a" identifier + number_literal) )))) < (binary_expression "dVar42 + pdVar31[0x881]" identifier + (subscript_expression "pdVar31[0x881]" identifier [ number_literal ])))) ;) (expression_statement "uStack_5a0 = dVar42 / *(double *)(puVar34 + 0x1a);" (assignment_expression "uStack_5a0 = dVar42 / *(double *)(puVar34 + 0x1a)" identifier = (binary_expression "dVar42 / *(double *)(puVar34 + 0x1a)" identifier / (pointer_expression "*(double *)(puVar34 + 0x1a)" * (cast_expression "(double *)(puVar34 + 0x1a)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x1a)" ( (binary_expression "puVar34 + 0x1a" identifier + number_literal) )))))) ;) }))) (labeled_statement "LAB_000a5f08:\n                uVar28 = puVar34[0xf];" statement_identifier : (expression_statement "uVar28 = puVar34[0xf];" (assignment_expression "uVar28 = puVar34[0xf]" identifier = (subscript_expression "puVar34[0xf]" identifier [ number_literal ])) ;)) (if_statement "if (0 < (int)uVar28) {\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a5db0;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      dVar41 = *(double *)(uVar9 + uVar24 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar41 = dStack_580;\n                        if (*puVar34 != 1) {\n                          dVar41 = *(double *)(puVar34 + 0x1a);\n                        }\n                        dVar41 = dVar41 - dVar42;\n                        uVar20 = uVar28 - 1;\n                        uVar24 = 0;\n                      }\n                      else {\n                        dVar41 = (uStack_5a0 - dVar41) /\n                                 (*(double *)(uVar9 + uVar20 * 0x60 + 0x58) - dVar41);\n                      }\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6d30:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }" if (parenthesized_expression "(0 < (int)uVar28)" ( (binary_expression "0 < (int)uVar28" number_literal < (cast_expression "(int)uVar28" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar9 = puVar34[0xe];\n                  if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a5db0;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      dVar41 = *(double *)(uVar9 + uVar24 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar41 = dStack_580;\n                        if (*puVar34 != 1) {\n                          dVar41 = *(double *)(puVar34 + 0x1a);\n                        }\n                        dVar41 = dVar41 - dVar42;\n                        uVar20 = uVar28 - 1;\n                        uVar24 = 0;\n                      }\n                      else {\n                        dVar41 = (uStack_5a0 - dVar41) /\n                                 (*(double *)(uVar9 + uVar20 * 0x60 + 0x58) - dVar41);\n                      }\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6d30:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }" { (expression_statement "uVar9 = puVar34[0xe];" (assignment_expression "uVar9 = puVar34[0xe]" identifier = (subscript_expression "puVar34[0xe]" identifier [ number_literal ])) ;) (if_statement "if (*(double *)(uVar9 + 0x58) <= uStack_5a0) {\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a5db0;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      dVar41 = *(double *)(uVar9 + uVar24 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar41 = dStack_580;\n                        if (*puVar34 != 1) {\n                          dVar41 = *(double *)(puVar34 + 0x1a);\n                        }\n                        dVar41 = dVar41 - dVar42;\n                        uVar20 = uVar28 - 1;\n                        uVar24 = 0;\n                      }\n                      else {\n                        dVar41 = (uStack_5a0 - dVar41) /\n                                 (*(double *)(uVar9 + uVar20 * 0x60 + 0x58) - dVar41);\n                      }\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6d30:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }" if (parenthesized_expression "(*(double *)(uVar9 + 0x58) <= uStack_5a0)" ( (binary_expression "*(double *)(uVar9 + 0x58) <= uStack_5a0" (pointer_expression "*(double *)(uVar9 + 0x58)" * (cast_expression "(double *)(uVar9 + 0x58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x58)" ( (binary_expression "uVar9 + 0x58" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                    pdVar18 = (double *)(uVar9 + 0xb8);\n                    uVar20 = 0;\n                    do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a5db0;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);\n                    if (uVar20 != 0) {\n                      dVar41 = *(double *)(uVar9 + uVar24 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar41 = dStack_580;\n                        if (*puVar34 != 1) {\n                          dVar41 = *(double *)(puVar34 + 0x1a);\n                        }\n                        dVar41 = dVar41 - dVar42;\n                        uVar20 = uVar28 - 1;\n                        uVar24 = 0;\n                      }\n                      else {\n                        dVar41 = (uStack_5a0 - dVar41) /\n                                 (*(double *)(uVar9 + uVar20 * 0x60 + 0x58) - dVar41);\n                      }\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6d30:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }" { (expression_statement "pdVar18 = (double *)(uVar9 + 0xb8);" (assignment_expression "pdVar18 = (double *)(uVar9 + 0xb8)" identifier = (cast_expression "(double *)(uVar9 + 0xb8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0xb8)" ( (binary_expression "uVar9 + 0xb8" identifier + number_literal) )))) ;) (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (do_statement "do {\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a5db0;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    } while (dVar41 <= uStack_5a0);" do (compound_statement "{\n                      uVar24 = uVar20;\n                      uVar20 = uVar24 + 1;\n                      if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a5db0;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar41 = *pdVar18;\n                      pdVar18 = pdVar18 + 0xc;\n                    }" { (expression_statement "uVar24 = uVar20;" (assignment_expression "uVar24 = uVar20" identifier = identifier) ;) (expression_statement "uVar20 = uVar24 + 1;" (assignment_expression "uVar20 = uVar24 + 1" identifier = (binary_expression "uVar24 + 1" identifier + number_literal)) ;) (if_statement "if (uVar20 == uVar28) {\n                        if (uVar20 == 0) goto LAB_000a5db0;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }" if (parenthesized_expression "(uVar20 == uVar28)" ( (binary_expression "uVar20 == uVar28" identifier == identifier) )) (compound_statement "{\n                        if (uVar20 == 0) goto LAB_000a5db0;\n                        iVar4 = uVar9 + uVar28 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar4 + 0x28);\n                        in_f22_23 = *(double *)(iVar4 + 0x30);\n                        in_f24_25 = *(double *)(iVar4 + 0x38);\n                        dStack_590 = *(double *)(iVar4 + 0x40);\n                        dVar41 = *(double *)(iVar4 + 0x48);\n                        goto LAB_000a5af8;\n                      }" { (if_statement "if (uVar20 == 0) goto LAB_000a5db0;" if (parenthesized_expression "(uVar20 == 0)" ( (binary_expression "uVar20 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000a5db0;" goto statement_identifier ;)) (expression_statement "iVar4 = uVar9 + uVar28 * 0x60 + -0x60;" (assignment_expression "iVar4 = uVar9 + uVar28 * 0x60 + -0x60" identifier = (binary_expression "uVar9 + uVar28 * 0x60 + -0x60" (binary_expression "uVar9 + uVar28 * 0x60" identifier + (binary_expression "uVar28 * 0x60" identifier * number_literal)) + number_literal)) ;) (expression_statement "in_f20_21 = *(double *)(iVar4 + 0x28);" (assignment_expression "in_f20_21 = *(double *)(iVar4 + 0x28)" identifier = (pointer_expression "*(double *)(iVar4 + 0x28)" * (cast_expression "(double *)(iVar4 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x28)" ( (binary_expression "iVar4 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "in_f22_23 = *(double *)(iVar4 + 0x30);" (assignment_expression "in_f22_23 = *(double *)(iVar4 + 0x30)" identifier = (pointer_expression "*(double *)(iVar4 + 0x30)" * (cast_expression "(double *)(iVar4 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x30)" ( (binary_expression "iVar4 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "in_f24_25 = *(double *)(iVar4 + 0x38);" (assignment_expression "in_f24_25 = *(double *)(iVar4 + 0x38)" identifier = (pointer_expression "*(double *)(iVar4 + 0x38)" * (cast_expression "(double *)(iVar4 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x38)" ( (binary_expression "iVar4 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "dStack_590 = *(double *)(iVar4 + 0x40);" (assignment_expression "dStack_590 = *(double *)(iVar4 + 0x40)" identifier = (pointer_expression "*(double *)(iVar4 + 0x40)" * (cast_expression "(double *)(iVar4 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x40)" ( (binary_expression "iVar4 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "dVar41 = *(double *)(iVar4 + 0x48);" (assignment_expression "dVar41 = *(double *)(iVar4 + 0x48)" identifier = (pointer_expression "*(double *)(iVar4 + 0x48)" * (cast_expression "(double *)(iVar4 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x48)" ( (binary_expression "iVar4 + 0x48" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000a5af8;" goto statement_identifier ;) })) (expression_statement "dVar41 = *pdVar18;" (assignment_expression "dVar41 = *pdVar18" identifier = (pointer_expression "*pdVar18" * identifier)) ;) (expression_statement "pdVar18 = pdVar18 + 0xc;" (assignment_expression "pdVar18 = pdVar18 + 0xc" identifier = (binary_expression "pdVar18 + 0xc" identifier + number_literal)) ;) }) while (parenthesized_expression "(dVar41 <= uStack_5a0)" ( (binary_expression "dVar41 <= uStack_5a0" identifier <= identifier) )) ;) (if_statement "if (uVar20 != 0) {\n                      dVar41 = *(double *)(uVar9 + uVar24 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar41 = dStack_580;\n                        if (*puVar34 != 1) {\n                          dVar41 = *(double *)(puVar34 + 0x1a);\n                        }\n                        dVar41 = dVar41 - dVar42;\n                        uVar20 = uVar28 - 1;\n                        uVar24 = 0;\n                      }\n                      else {\n                        dVar41 = (uStack_5a0 - dVar41) /\n                                 (*(double *)(uVar9 + uVar20 * 0x60 + 0x58) - dVar41);\n                      }\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6d30:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }" if (parenthesized_expression "(uVar20 != 0)" ( (binary_expression "uVar20 != 0" identifier != number_literal) )) (compound_statement "{\n                      dVar41 = *(double *)(uVar9 + uVar24 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar41 = dStack_580;\n                        if (*puVar34 != 1) {\n                          dVar41 = *(double *)(puVar34 + 0x1a);\n                        }\n                        dVar41 = dVar41 - dVar42;\n                        uVar20 = uVar28 - 1;\n                        uVar24 = 0;\n                      }\n                      else {\n                        dVar41 = (uStack_5a0 - dVar41) /\n                                 (*(double *)(uVar9 + uVar20 * 0x60 + 0x58) - dVar41);\n                      }\n                      iVar12 = uVar9 + uVar24 * 0x60;\n                      iVar4 = uVar9 + uVar20 * 0x60;\n                      dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar46 = dVar49 + dVar42;\n                      if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6d30:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;\n                      in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;\n                      in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;\n                      if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }\n                      goto LAB_000a5af8;\n                    }" { (expression_statement "dVar41 = *(double *)(uVar9 + uVar24 * 0x60 + 0x58);" (assignment_expression "dVar41 = *(double *)(uVar9 + uVar24 * 0x60 + 0x58)" identifier = (pointer_expression "*(double *)(uVar9 + uVar24 * 0x60 + 0x58)" * (cast_expression "(double *)(uVar9 + uVar24 * 0x60 + 0x58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + uVar24 * 0x60 + 0x58)" ( (binary_expression "uVar9 + uVar24 * 0x60 + 0x58" (binary_expression "uVar9 + uVar24 * 0x60" identifier + (binary_expression "uVar24 * 0x60" identifier * number_literal)) + number_literal) ))))) ;) (if_statement "if (bVar1) {\n                        dVar41 = dStack_580;\n                        if (*puVar34 != 1) {\n                          dVar41 = *(double *)(puVar34 + 0x1a);\n                        }\n                        dVar41 = dVar41 - dVar42;\n                        uVar20 = uVar28 - 1;\n                        uVar24 = 0;\n                      }\n                      else {\n                        dVar41 = (uStack_5a0 - dVar41) /\n                                 (*(double *)(uVar9 + uVar20 * 0x60 + 0x58) - dVar41);\n                      }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                        dVar41 = dStack_580;\n                        if (*puVar34 != 1) {\n                          dVar41 = *(double *)(puVar34 + 0x1a);\n                        }\n                        dVar41 = dVar41 - dVar42;\n                        uVar20 = uVar28 - 1;\n                        uVar24 = 0;\n                      }" { (expression_statement "dVar41 = dStack_580;" (assignment_expression "dVar41 = dStack_580" identifier = identifier) ;) (if_statement "if (*puVar34 != 1) {\n                          dVar41 = *(double *)(puVar34 + 0x1a);\n                        }" if (parenthesized_expression "(*puVar34 != 1)" ( (binary_expression "*puVar34 != 1" (pointer_expression "*puVar34" * identifier) != number_literal) )) (compound_statement "{\n                          dVar41 = *(double *)(puVar34 + 0x1a);\n                        }" { (expression_statement "dVar41 = *(double *)(puVar34 + 0x1a);" (assignment_expression "dVar41 = *(double *)(puVar34 + 0x1a)" identifier = (pointer_expression "*(double *)(puVar34 + 0x1a)" * (cast_expression "(double *)(puVar34 + 0x1a)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x1a)" ( (binary_expression "puVar34 + 0x1a" identifier + number_literal) ))))) ;) })) (expression_statement "dVar41 = dVar41 - dVar42;" (assignment_expression "dVar41 = dVar41 - dVar42" identifier = (binary_expression "dVar41 - dVar42" identifier - identifier)) ;) (expression_statement "uVar20 = uVar28 - 1;" (assignment_expression "uVar20 = uVar28 - 1" identifier = (binary_expression "uVar28 - 1" identifier - number_literal)) ;) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                        dVar41 = (uStack_5a0 - dVar41) /\n                                 (*(double *)(uVar9 + uVar20 * 0x60 + 0x58) - dVar41);\n                      }" else (compound_statement "{\n                        dVar41 = (uStack_5a0 - dVar41) /\n                                 (*(double *)(uVar9 + uVar20 * 0x60 + 0x58) - dVar41);\n                      }" { (expression_statement "dVar41 = (uStack_5a0 - dVar41) /\n                                 (*(double *)(uVar9 + uVar20 * 0x60 + 0x58) - dVar41);" (assignment_expression "dVar41 = (uStack_5a0 - dVar41) /\n                                 (*(double *)(uVar9 + uVar20 * 0x60 + 0x58) - dVar41)" identifier = (binary_expression "(uStack_5a0 - dVar41) /\n                                 (*(double *)(uVar9 + uVar20 * 0x60 + 0x58) - dVar41)" (parenthesized_expression "(uStack_5a0 - dVar41)" ( (binary_expression "uStack_5a0 - dVar41" identifier - identifier) )) / (parenthesized_expression "(*(double *)(uVar9 + uVar20 * 0x60 + 0x58) - dVar41)" ( (binary_expression "*(double *)(uVar9 + uVar20 * 0x60 + 0x58) - dVar41" (pointer_expression "*(double *)(uVar9 + uVar20 * 0x60 + 0x58)" * (cast_expression "(double *)(uVar9 + uVar20 * 0x60 + 0x58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + uVar20 * 0x60 + 0x58)" ( (binary_expression "uVar9 + uVar20 * 0x60 + 0x58" (binary_expression "uVar9 + uVar20 * 0x60" identifier + (binary_expression "uVar20 * 0x60" identifier * number_literal)) + number_literal) )))) - identifier) )))) ;) }))) (expression_statement "iVar12 = uVar9 + uVar24 * 0x60;" (assignment_expression "iVar12 = uVar9 + uVar24 * 0x60" identifier = (binary_expression "uVar9 + uVar24 * 0x60" identifier + (binary_expression "uVar24 * 0x60" identifier * number_literal))) ;) (expression_statement "iVar4 = uVar9 + uVar20 * 0x60;" (assignment_expression "iVar4 = uVar9 + uVar20 * 0x60" identifier = (binary_expression "uVar9 + uVar20 * 0x60" identifier + (binary_expression "uVar20 * 0x60" identifier * number_literal))) ;) (expression_statement "dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);" (assignment_expression "dVar49 = (pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" identifier = (binary_expression "(pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" (binary_expression "(pdVar31[0x881] - dVar41) * *(double *)(iVar12 + 0x48)" (parenthesized_expression "(pdVar31[0x881] - dVar41)" ( (binary_expression "pdVar31[0x881] - dVar41" (subscript_expression "pdVar31[0x881]" identifier [ number_literal ]) - identifier) )) * (pointer_expression "*(double *)(iVar12 + 0x48)" * (cast_expression "(double *)(iVar12 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x48)" ( (binary_expression "iVar12 + 0x48" identifier + number_literal) ))))) * (pointer_expression "*(double *)(dStack_558._0_4_ + 0x4410)" * (cast_expression "(double *)(dStack_558._0_4_ + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(dStack_558._0_4_ + 0x4410)" ( (binary_expression "dStack_558._0_4_ + 0x4410" (field_expression "dStack_558._0_4_" identifier . field_identifier) + number_literal) )))))) ;) (expression_statement "dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);" (assignment_expression "dVar42 = dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" identifier = (binary_expression "dVar41 * *(double *)(iVar4 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" (binary_expression "dVar41 * *(double *)(iVar4 + 0x48)" identifier * (pointer_expression "*(double *)(iVar4 + 0x48)" * (cast_expression "(double *)(iVar4 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x48)" ( (binary_expression "iVar4 + 0x48" identifier + number_literal) ))))) * (pointer_expression "*(double *)(dStack_558._0_4_ + 0x4410)" * (cast_expression "(double *)(dStack_558._0_4_ + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(dStack_558._0_4_ + 0x4410)" ( (binary_expression "dStack_558._0_4_ + 0x4410" (field_expression "dStack_558._0_4_" identifier . field_identifier) + number_literal) )))))) ;) (expression_statement "dVar46 = dVar49 + dVar42;" (assignment_expression "dVar46 = dVar49 + dVar42" identifier = (binary_expression "dVar49 + dVar42" identifier + identifier)) ;) (if_statement "if (0.0 <= dVar46) {\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar46 = 0.0;\nLAB_000a6d30:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }" if (parenthesized_expression "(0.0 <= dVar46)" ( (binary_expression "0.0 <= dVar46" number_literal <= identifier) )) (compound_statement "{\n                        if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }" { (if_statement "if (pdVar31[0x881] < dVar46) {\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6d30;\n                        }" if (parenthesized_expression "(pdVar31[0x881] < dVar46)" ( (binary_expression "pdVar31[0x881] < dVar46" (subscript_expression "pdVar31[0x881]" identifier [ number_literal ]) < identifier) )) (compound_statement "{\n                          dVar46 = pdVar31[0x881];\n                          goto LAB_000a6d30;\n                        }" { (expression_statement "dVar46 = pdVar31[0x881];" (assignment_expression "dVar46 = pdVar31[0x881]" identifier = (subscript_expression "pdVar31[0x881]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_000a6d30;" goto statement_identifier ;) })) (if_statement "if (0.0 <= dVar46) {\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }\n                        else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }" if (parenthesized_expression "(0.0 <= dVar46)" ( (binary_expression "0.0 <= dVar46" number_literal <= identifier) )) (compound_statement "{\n                          dVar41 = dVar46;\n                          if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }\n                          dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }\n                        }" { (expression_statement "dVar41 = dVar46;" (assignment_expression "dVar41 = dVar46" identifier = identifier) ;) (if_statement "if (pdVar31[0x881] < dVar46) {\n                            dVar41 = pdVar31[0x881];\n                          }" if (parenthesized_expression "(pdVar31[0x881] < dVar46)" ( (binary_expression "pdVar31[0x881] < dVar46" (subscript_expression "pdVar31[0x881]" identifier [ number_literal ]) < identifier) )) (compound_statement "{\n                            dVar41 = pdVar31[0x881];\n                          }" { (expression_statement "dVar41 = pdVar31[0x881];" (assignment_expression "dVar41 = pdVar31[0x881]" identifier = (subscript_expression "pdVar31[0x881]" identifier [ number_literal ])) ;) })) (expression_statement "dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48);" (assignment_expression "dVar41 = dVar41 * *(double *)(iStack_570 + 0x4a48)" identifier = (binary_expression "dVar41 * *(double *)(iStack_570 + 0x4a48)" identifier * (pointer_expression "*(double *)(iStack_570 + 0x4a48)" * (cast_expression "(double *)(iStack_570 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_570 + 0x4a48)" ( (binary_expression "iStack_570 + 0x4a48" identifier + number_literal) )))))) ;) (if_statement "if (dVar46 < 0.0) {\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar47 = pdVar31[0x881];\n                          }" if (parenthesized_expression "(dVar46 < 0.0)" ( (binary_expression "dVar46 < 0.0" identifier < number_literal) )) (compound_statement "{\n                            dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }" { (expression_statement "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n                            dVar47 = pdVar31[0x881];\n                          }" else (compound_statement "{\n                            dVar47 = pdVar31[0x881];\n                          }" { (expression_statement "dVar47 = pdVar31[0x881];" (assignment_expression "dVar47 = pdVar31[0x881]" identifier = (subscript_expression "pdVar31[0x881]" identifier [ number_literal ])) ;) }))) }) (else_clause "else {\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }" else (compound_statement "{\n                          dVar41 = 0.0;\n                          dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }" { (expression_statement "dVar41 = 0.0;" (assignment_expression "dVar41 = 0.0" identifier = number_literal) ;) (expression_statement "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) }) (else_clause "else {\n                        dVar46 = 0.0;\nLAB_000a6d30:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }" else (compound_statement "{\n                        dVar46 = 0.0;\nLAB_000a6d30:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);\n                        dVar47 = pdVar31[0x881];\n                      }" { (expression_statement "dVar46 = 0.0;" (assignment_expression "dVar46 = 0.0" identifier = number_literal) ;) (labeled_statement "LAB_000a6d30:\n                        dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);" statement_identifier : (expression_statement "dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48);" (assignment_expression "dVar41 = dVar46 * *(double *)(iStack_570 + 0x4a48)" identifier = (binary_expression "dVar46 * *(double *)(iStack_570 + 0x4a48)" identifier * (pointer_expression "*(double *)(iStack_570 + 0x4a48)" * (cast_expression "(double *)(iStack_570 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_570 + 0x4a48)" ( (binary_expression "iStack_570 + 0x4a48" identifier + number_literal) )))))) ;)) (expression_statement "dVar47 = pdVar31[0x881];" (assignment_expression "dVar47 = pdVar31[0x881]" identifier = (subscript_expression "pdVar31[0x881]" identifier [ number_literal ])) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar47 * dVar46) {\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }\n                      else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar47 * dVar46)" ( (binary_expression "unaff_s6[0x879] <= dVar47 * dVar46" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar47 * dVar46" identifier * identifier)) )) (compound_statement "{\n                        dVar47 = pdVar31[0x881] / dVar46;\n                      }" { (expression_statement "dVar47 = pdVar31[0x881] / dVar46;" (assignment_expression "dVar47 = pdVar31[0x881] / dVar46" identifier = (binary_expression "pdVar31[0x881] / dVar46" (subscript_expression "pdVar31[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }" else (compound_statement "{\n                        dVar47 = dVar47 / unaff_s6[0x879];\n                      }" { (expression_statement "dVar47 = dVar47 / unaff_s6[0x879];" (assignment_expression "dVar47 = dVar47 / unaff_s6[0x879]" identifier = (binary_expression "dVar47 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47;" (assignment_expression "in_f20_21 = (dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47" identifier = (binary_expression "(dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)) * dVar47" (parenthesized_expression "(dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28))" ( (binary_expression "dVar49 * *(double *)(iVar12 + 0x28) +\n                                  dVar42 * *(double *)(iVar4 + 0x28)" (binary_expression "dVar49 * *(double *)(iVar12 + 0x28)" identifier * (pointer_expression "*(double *)(iVar12 + 0x28)" * (cast_expression "(double *)(iVar12 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x28)" ( (binary_expression "iVar12 + 0x28" identifier + number_literal) ))))) + (binary_expression "dVar42 * *(double *)(iVar4 + 0x28)" identifier * (pointer_expression "*(double *)(iVar4 + 0x28)" * (cast_expression "(double *)(iVar4 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x28)" ( (binary_expression "iVar4 + 0x28" identifier + number_literal) )))))) )) * identifier)) ;) (expression_statement "in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47;" (assignment_expression "in_f22_23 = (dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47" identifier = (binary_expression "(dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)) * dVar47" (parenthesized_expression "(dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30))" ( (binary_expression "dVar49 * *(double *)(iVar12 + 0x30) +\n                                  dVar42 * *(double *)(iVar4 + 0x30)" (binary_expression "dVar49 * *(double *)(iVar12 + 0x30)" identifier * (pointer_expression "*(double *)(iVar12 + 0x30)" * (cast_expression "(double *)(iVar12 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x30)" ( (binary_expression "iVar12 + 0x30" identifier + number_literal) ))))) + (binary_expression "dVar42 * *(double *)(iVar4 + 0x30)" identifier * (pointer_expression "*(double *)(iVar4 + 0x30)" * (cast_expression "(double *)(iVar4 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x30)" ( (binary_expression "iVar4 + 0x30" identifier + number_literal) )))))) )) * identifier)) ;) (expression_statement "in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47;" (assignment_expression "in_f24_25 = (dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47" identifier = (binary_expression "(dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)) * dVar47" (parenthesized_expression "(dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38))" ( (binary_expression "dVar49 * *(double *)(iVar12 + 0x38) +\n                                  dVar42 * *(double *)(iVar4 + 0x38)" (binary_expression "dVar49 * *(double *)(iVar12 + 0x38)" identifier * (pointer_expression "*(double *)(iVar12 + 0x38)" * (cast_expression "(double *)(iVar12 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x38)" ( (binary_expression "iVar12 + 0x38" identifier + number_literal) ))))) + (binary_expression "dVar42 * *(double *)(iVar4 + 0x38)" identifier * (pointer_expression "*(double *)(iVar4 + 0x38)" * (cast_expression "(double *)(iVar4 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x38)" ( (binary_expression "iVar4 + 0x38" identifier + number_literal) )))))) )) * identifier)) ;) (if_statement "if (*(int *)(iVar4 + 4) == 2) {\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }" if (parenthesized_expression "(*(int *)(iVar4 + 4) == 2)" ( (binary_expression "*(int *)(iVar4 + 4) == 2" (pointer_expression "*(int *)(iVar4 + 4)" * (cast_expression "(int *)(iVar4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                        dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;\n                      }" { (expression_statement "dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47;" (assignment_expression "dStack_590 = (dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47" identifier = (binary_expression "(dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)) * dVar47" (parenthesized_expression "(dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40))" ( (binary_expression "dVar49 * *(double *)(iVar12 + 0x40) +\n                                     dVar42 * *(double *)(iVar4 + 0x40)" (binary_expression "dVar49 * *(double *)(iVar12 + 0x40)" identifier * (pointer_expression "*(double *)(iVar12 + 0x40)" * (cast_expression "(double *)(iVar12 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x40)" ( (binary_expression "iVar12 + 0x40" identifier + number_literal) ))))) + (binary_expression "dVar42 * *(double *)(iVar4 + 0x40)" identifier * (pointer_expression "*(double *)(iVar4 + 0x40)" * (cast_expression "(double *)(iVar4 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x40)" ( (binary_expression "iVar4 + 0x40" identifier + number_literal) )))))) )) * identifier)) ;) })) (goto_statement "goto LAB_000a5af8;" goto statement_identifier ;) })) })) })) (labeled_statement "LAB_000a5db0:\n                uVar28 = puVar34[0xe];" statement_identifier : (expression_statement "uVar28 = puVar34[0xe];" (assignment_expression "uVar28 = puVar34[0xe]" identifier = (subscript_expression "puVar34[0xe]" identifier [ number_literal ])) ;)) (expression_statement "in_f20_21 = *(double *)(uVar28 + 0x28);" (assignment_expression "in_f20_21 = *(double *)(uVar28 + 0x28)" identifier = (pointer_expression "*(double *)(uVar28 + 0x28)" * (cast_expression "(double *)(uVar28 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar28 + 0x28)" ( (binary_expression "uVar28 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "in_f22_23 = *(double *)(uVar28 + 0x30);" (assignment_expression "in_f22_23 = *(double *)(uVar28 + 0x30)" identifier = (pointer_expression "*(double *)(uVar28 + 0x30)" * (cast_expression "(double *)(uVar28 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar28 + 0x30)" ( (binary_expression "uVar28 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "in_f24_25 = *(double *)(uVar28 + 0x38);" (assignment_expression "in_f24_25 = *(double *)(uVar28 + 0x38)" identifier = (pointer_expression "*(double *)(uVar28 + 0x38)" * (cast_expression "(double *)(uVar28 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar28 + 0x38)" ( (binary_expression "uVar28 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "dStack_590 = *(double *)(uVar28 + 0x40);" (assignment_expression "dStack_590 = *(double *)(uVar28 + 0x40)" identifier = (pointer_expression "*(double *)(uVar28 + 0x40)" * (cast_expression "(double *)(uVar28 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar28 + 0x40)" ( (binary_expression "uVar28 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "dVar41 = *(double *)(uVar28 + 0x48);" (assignment_expression "dVar41 = *(double *)(uVar28 + 0x48)" identifier = (pointer_expression "*(double *)(uVar28 + 0x48)" * (cast_expression "(double *)(uVar28 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar28 + 0x48)" ( (binary_expression "uVar28 + 0x48" identifier + number_literal) ))))) ;) })))))) (labeled_statement "LAB_000a5af8:\n              dVar46 = dVar41 * dVar43;" statement_identifier : (expression_statement "dVar46 = dVar41 * dVar43;" (assignment_expression "dVar46 = dVar41 * dVar43" identifier = (binary_expression "dVar41 * dVar43" identifier * identifier)) ;)) (expression_statement "dVar49 = dStack_4c8 * dVar43;" (assignment_expression "dVar49 = dStack_4c8 * dVar43" identifier = (binary_expression "dStack_4c8 * dVar43" identifier * identifier)) ;) (expression_statement "dVar42 = (dVar46 + dVar49) - dVar46 * dVar49;" (assignment_expression "dVar42 = (dVar46 + dVar49) - dVar46 * dVar49" identifier = (binary_expression "(dVar46 + dVar49) - dVar46 * dVar49" (parenthesized_expression "(dVar46 + dVar49)" ( (binary_expression "dVar46 + dVar49" identifier + identifier) )) - (binary_expression "dVar46 * dVar49" identifier * identifier))) ;) (if_statement "if (0.0 <= dVar42) {\n                dStack_4c8 = pdVar31[0x881];\n                if (dVar42 <= pdVar31[0x881]) {\n                  dStack_4c8 = dVar42;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar42) {\n                  dVar47 = pdVar31[0x881];\n                }\n                else {\n                  dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }" if (parenthesized_expression "(0.0 <= dVar42)" ( (binary_expression "0.0 <= dVar42" number_literal <= identifier) )) (compound_statement "{\n                dStack_4c8 = pdVar31[0x881];\n                if (dVar42 <= pdVar31[0x881]) {\n                  dStack_4c8 = dVar42;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar42) {\n                  dVar47 = pdVar31[0x881];\n                }\n                else {\n                  dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }" { (expression_statement "dStack_4c8 = pdVar31[0x881];" (assignment_expression "dStack_4c8 = pdVar31[0x881]" identifier = (subscript_expression "pdVar31[0x881]" identifier [ number_literal ])) ;) (if_statement "if (dVar42 <= pdVar31[0x881]) {\n                  dStack_4c8 = dVar42;\n                }" if (parenthesized_expression "(dVar42 <= pdVar31[0x881])" ( (binary_expression "dVar42 <= pdVar31[0x881]" identifier <= (subscript_expression "pdVar31[0x881]" identifier [ number_literal ])) )) (compound_statement "{\n                  dStack_4c8 = dVar42;\n                }" { (expression_statement "dStack_4c8 = dVar42;" (assignment_expression "dStack_4c8 = dVar42" identifier = identifier) ;) })) (expression_statement "dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);" (assignment_expression "dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48)" identifier = (binary_expression "dStack_4c8 * *(double *)(iStack_570 + 0x4a48)" identifier * (pointer_expression "*(double *)(iStack_570 + 0x4a48)" * (cast_expression "(double *)(iStack_570 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_570 + 0x4a48)" ( (binary_expression "iStack_570 + 0x4a48" identifier + number_literal) )))))) ;) (if_statement "if (0.0 <= dVar42) {\n                  dVar47 = pdVar31[0x881];\n                }\n                else {\n                  dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }" if (parenthesized_expression "(0.0 <= dVar42)" ( (binary_expression "0.0 <= dVar42" number_literal <= identifier) )) (compound_statement "{\n                  dVar47 = pdVar31[0x881];\n                }" { (expression_statement "dVar47 = pdVar31[0x881];" (assignment_expression "dVar47 = pdVar31[0x881]" identifier = (subscript_expression "pdVar31[0x881]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                  dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }" else (compound_statement "{\n                  dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }" { (expression_statement "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) }) (else_clause "else {\n                dStack_4c8 = 0.0;\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }" else (compound_statement "{\n                dStack_4c8 = 0.0;\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }" { (expression_statement "dStack_4c8 = 0.0;" (assignment_expression "dStack_4c8 = 0.0" identifier = number_literal) ;) (expression_statement "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar42 * dVar47) {\n                dVar47 = pdVar31[0x881] / dVar42;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar42 * dVar47)" ( (binary_expression "unaff_s6[0x879] <= dVar42 * dVar47" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar42 * dVar47" identifier * identifier)) )) (compound_statement "{\n                dVar47 = pdVar31[0x881] / dVar42;\n              }" { (expression_statement "dVar47 = pdVar31[0x881] / dVar42;" (assignment_expression "dVar47 = pdVar31[0x881] / dVar42" identifier = (binary_expression "pdVar31[0x881] / dVar42" (subscript_expression "pdVar31[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }" else (compound_statement "{\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }" { (expression_statement "dVar47 = dVar47 / unaff_s6[0x879];" (assignment_expression "dVar47 = dVar47 / unaff_s6[0x879]" identifier = (binary_expression "dVar47 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "dVar42 = pdVar31[0x881] - dVar46;" (assignment_expression "dVar42 = pdVar31[0x881] - dVar46" identifier = (binary_expression "pdVar31[0x881] - dVar46" (subscript_expression "pdVar31[0x881]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "dStack_4e8 = (dVar49 * dStack_4e8 * dVar42 + dVar46 * in_f20_21) * dVar47;" (assignment_expression "dStack_4e8 = (dVar49 * dStack_4e8 * dVar42 + dVar46 * in_f20_21) * dVar47" identifier = (binary_expression "(dVar49 * dStack_4e8 * dVar42 + dVar46 * in_f20_21) * dVar47" (parenthesized_expression "(dVar49 * dStack_4e8 * dVar42 + dVar46 * in_f20_21)" ( (binary_expression "dVar49 * dStack_4e8 * dVar42 + dVar46 * in_f20_21" (binary_expression "dVar49 * dStack_4e8 * dVar42" (binary_expression "dVar49 * dStack_4e8" identifier * identifier) * identifier) + (binary_expression "dVar46 * in_f20_21" identifier * identifier)) )) * identifier)) ;) (expression_statement "dStack_4e0 = (dVar49 * dStack_4e0 * dVar42 + in_f22_23 * dVar46) * dVar47;" (assignment_expression "dStack_4e0 = (dVar49 * dStack_4e0 * dVar42 + in_f22_23 * dVar46) * dVar47" identifier = (binary_expression "(dVar49 * dStack_4e0 * dVar42 + in_f22_23 * dVar46) * dVar47" (parenthesized_expression "(dVar49 * dStack_4e0 * dVar42 + in_f22_23 * dVar46)" ( (binary_expression "dVar49 * dStack_4e0 * dVar42 + in_f22_23 * dVar46" (binary_expression "dVar49 * dStack_4e0 * dVar42" (binary_expression "dVar49 * dStack_4e0" identifier * identifier) * identifier) + (binary_expression "in_f22_23 * dVar46" identifier * identifier)) )) * identifier)) ;) (expression_statement "dStack_4d8 = (dVar49 * dStack_4d8 * dVar42 + dVar46 * in_f24_25) * dVar47;" (assignment_expression "dStack_4d8 = (dVar49 * dStack_4d8 * dVar42 + dVar46 * in_f24_25) * dVar47" identifier = (binary_expression "(dVar49 * dStack_4d8 * dVar42 + dVar46 * in_f24_25) * dVar47" (parenthesized_expression "(dVar49 * dStack_4d8 * dVar42 + dVar46 * in_f24_25)" ( (binary_expression "dVar49 * dStack_4d8 * dVar42 + dVar46 * in_f24_25" (binary_expression "dVar49 * dStack_4d8 * dVar42" (binary_expression "dVar49 * dStack_4d8" identifier * identifier) * identifier) + (binary_expression "dVar46 * in_f24_25" identifier * identifier)) )) * identifier)) ;) (if_statement "if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar49 * dStack_4d0 * dVar42 + dStack_590 * dVar46) * dVar47;\n              }" if (parenthesized_expression "(aiStack_510[1] == 2)" ( (binary_expression "aiStack_510[1] == 2" (subscript_expression "aiStack_510[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                dStack_4d0 = (dVar49 * dStack_4d0 * dVar42 + dStack_590 * dVar46) * dVar47;\n              }" { (expression_statement "dStack_4d0 = (dVar49 * dStack_4d0 * dVar42 + dStack_590 * dVar46) * dVar47;" (assignment_expression "dStack_4d0 = (dVar49 * dStack_4d0 * dVar42 + dStack_590 * dVar46) * dVar47" identifier = (binary_expression "(dVar49 * dStack_4d0 * dVar42 + dStack_590 * dVar46) * dVar47" (parenthesized_expression "(dVar49 * dStack_4d0 * dVar42 + dStack_590 * dVar46)" ( (binary_expression "dVar49 * dStack_4d0 * dVar42 + dStack_590 * dVar46" (binary_expression "dVar49 * dStack_4d0 * dVar42" (binary_expression "dVar49 * dStack_4d0" identifier * identifier) * identifier) + (binary_expression "dStack_590 * dVar46" identifier * identifier)) )) * identifier)) ;) })) (expression_statement "iVar4 = piVar50[0xb4];" (assignment_expression "iVar4 = piVar50[0xb4]" identifier = (subscript_expression "piVar50[0xb4]" identifier [ number_literal ])) ;) (expression_statement "*(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4) = (float)dStack_4e8;" (assignment_expression "*(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4) = (float)dStack_4e8" (pointer_expression "*(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4)" * (cast_expression "(float *)((int)pdVar32 + *(int *)(iVar4 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar32 + *(int *)(iVar4 + 8) * 4)" ( (binary_expression "(int)pdVar32 + *(int *)(iVar4 + 8) * 4" (cast_expression "(int)pdVar32" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar4 + 8) * 4" (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)dStack_4e8" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4) = (float)dStack_4e0;" (assignment_expression "*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4) = (float)dStack_4e0" (pointer_expression "*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4)" * (cast_expression "(float *)((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar32 + *(int *)(iVar4 + 0x14) * 4)" ( (binary_expression "(int)pdVar32 + *(int *)(iVar4 + 0x14) * 4" (cast_expression "(int)pdVar32" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar4 + 0x14) * 4" (pointer_expression "*(int *)(iVar4 + 0x14)" * (cast_expression "(int *)(iVar4 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)dStack_4e0" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4) = (float)dStack_4d8;" (assignment_expression "*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4) = (float)dStack_4d8" (pointer_expression "*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4)" * (cast_expression "(float *)((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar32 + *(int *)(iVar4 + 0x20) * 4)" ( (binary_expression "(int)pdVar32 + *(int *)(iVar4 + 0x20) * 4" (cast_expression "(int)pdVar32" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar4 + 0x20) * 4" (pointer_expression "*(int *)(iVar4 + 0x20)" * (cast_expression "(int *)(iVar4 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x20)" ( (binary_expression "iVar4 + 0x20" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)dStack_4d8" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (if_statement "if (*(int *)(iVar4 + 0x28) != 0) {\n                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4) = (float)dStack_4d0;\n              }" if (parenthesized_expression "(*(int *)(iVar4 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar4 + 0x28) != 0" (pointer_expression "*(int *)(iVar4 + 0x28)" * (cast_expression "(int *)(iVar4 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x28)" ( (binary_expression "iVar4 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4) = (float)dStack_4d0;\n              }" { (expression_statement "*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4) = (float)dStack_4d0;" (assignment_expression "*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4) = (float)dStack_4d0" (pointer_expression "*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4)" * (cast_expression "(float *)((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4)" ( (binary_expression "(int)pdVar32 + *(int *)(iVar4 + 0x2c) * 4" (cast_expression "(int)pdVar32" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar4 + 0x2c) * 4" (pointer_expression "*(int *)(iVar4 + 0x2c)" * (cast_expression "(int *)(iVar4 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x2c)" ( (binary_expression "iVar4 + 0x2c" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)dStack_4d0" ( (type_descriptor "float" primitive_type) ) identifier)) ;) })) (if_statement "if (*(int *)(iVar4 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar45 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar45 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4) = fVar45;\n              }" if (parenthesized_expression "(*(int *)(iVar4 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar4 + 0x34) != 0" (pointer_expression "*(int *)(iVar4 + 0x34)" * (cast_expression "(int *)(iVar4 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x34)" ( (binary_expression "iVar4 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                if (aiStack_510[2] == 0) {\n                  fVar45 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar45 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4) = fVar45;\n              }" { (if_statement "if (aiStack_510[2] == 0) {\n                  fVar45 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar45 = (float)dStack_4c8;\n                }" if (parenthesized_expression "(aiStack_510[2] == 0)" ( (binary_expression "aiStack_510[2] == 0" (subscript_expression "aiStack_510[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                  fVar45 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }" { (expression_statement "fVar45 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);" (assignment_expression "fVar45 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8)" identifier = (pointer_expression "*(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8)" * (cast_expression "(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n                  fVar45 = (float)dStack_4c8;\n                }" else (compound_statement "{\n                  fVar45 = (float)dStack_4c8;\n                }" { (expression_statement "fVar45 = (float)dStack_4c8;" (assignment_expression "fVar45 = (float)dStack_4c8" identifier = (cast_expression "(float)dStack_4c8" ( (type_descriptor "float" primitive_type) ) identifier)) ;) }))) (expression_statement "*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4) = fVar45;" (assignment_expression "*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4) = fVar45" (pointer_expression "*(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4)" * (cast_expression "(float *)((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar32 + *(int *)(iVar4 + 0x38) * 4)" ( (binary_expression "(int)pdVar32 + *(int *)(iVar4 + 0x38) * 4" (cast_expression "(int)pdVar32" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar4 + 0x38) * 4" (pointer_expression "*(int *)(iVar4 + 0x38)" * (cast_expression "(int *)(iVar4 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x38)" ( (binary_expression "iVar4 + 0x38" identifier + number_literal) )))) * number_literal)) )))) = identifier) ;) })) (expression_statement "pdVar32 = (double *)((int)pdVar32 + piVar50[0xb0] * 4);" (assignment_expression "pdVar32 = (double *)((int)pdVar32 + piVar50[0xb0] * 4)" identifier = (cast_expression "(double *)((int)pdVar32 + piVar50[0xb0] * 4)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar32 + piVar50[0xb0] * 4)" ( (binary_expression "(int)pdVar32 + piVar50[0xb0] * 4" (cast_expression "(int)pdVar32" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "piVar50[0xb0] * 4" (subscript_expression "piVar50[0xb0]" identifier [ number_literal ]) * number_literal)) )))) ;) (expression_statement "iVar30 = iVar30 + 1;" (assignment_expression "iVar30 = iVar30 + 1" identifier = (binary_expression "iVar30 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar30 < **(int **)(pdVar6 + 4))" ( (binary_expression "iVar30 < **(int **)(pdVar6 + 4)" identifier < (pointer_expression "**(int **)(pdVar6 + 4)" * (pointer_expression "*(int **)(pdVar6 + 4)" * (cast_expression "(int **)(pdVar6 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar6 + 4)" ( (binary_expression "pdVar6 + 4" identifier + number_literal) )))))) )) ;) })) (expression_statement "pdVar16 = pdStack_568;" (assignment_expression "pdVar16 = pdStack_568" identifier = identifier) ;) (expression_statement "iVar4 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);" (assignment_expression "iVar4 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564)" identifier = (call_expression "(**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564)" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x73a0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x73a0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x73a0)" * (cast_expression "(code **)(pcStack_5a8 + -0x73a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x73a0)" ( (binary_expression "pcStack_5a8 + -0x73a0" identifier + number_literal) ))))) )) (argument_list "(pdStack_568,uStack_564)" ( identifier , identifier )))) ;) (expression_statement "pcVar39 = pcStack_5a8;" (assignment_expression "pcVar39 = pcStack_5a8" identifier = identifier) ;) (if_statement "if (iVar4 == 0) {\n            *(uint *)((int)pdVar6 + 0x24) = 0;\n          }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n            *(uint *)((int)pdVar6 + 0x24) = 0;\n          }" { (expression_statement "*(uint *)((int)pdVar6 + 0x24) = 0;" (assignment_expression "*(uint *)((int)pdVar6 + 0x24) = 0" (pointer_expression "*(uint *)((int)pdVar6 + 0x24)" * (cast_expression "(uint *)((int)pdVar6 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar6 + 0x24)" ( (binary_expression "(int)pdVar6 + 0x24" (cast_expression "(int)pdVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })) }))) })) (expression_statement "puVar37 = puVar37 + 1;" (assignment_expression "puVar37 = puVar37 + 1" identifier = (binary_expression "puVar37 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((int)puVar37 < (int)puStack_56c)" ( (binary_expression "(int)puVar37 < (int)puStack_56c" (cast_expression "(int)puVar37" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puStack_56c" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (if_statement "if (iStack_4b4 == **(int **)(pcVar39 + -0x7668)) {\n    return;\n  }" if (parenthesized_expression "(iStack_4b4 == **(int **)(pcVar39 + -0x7668))" ( (binary_expression "iStack_4b4 == **(int **)(pcVar39 + -0x7668)" identifier == (pointer_expression "**(int **)(pcVar39 + -0x7668)" * (pointer_expression "*(int **)(pcVar39 + -0x7668)" * (cast_expression "(int **)(pcVar39 + -0x7668)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + -0x7668)" ( (binary_expression "pcVar39 + -0x7668" identifier + number_literal) )))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar39 = *(code **)(pcVar39 + -0x7834);" (assignment_expression "pcVar39 = *(code **)(pcVar39 + -0x7834)" identifier = (pointer_expression "*(code **)(pcVar39 + -0x7834)" * (cast_expression "(code **)(pcVar39 + -0x7834)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + -0x7834)" ( (binary_expression "pcVar39 + -0x7834" identifier + number_literal) ))))) ;) (expression_statement "pcVar40 = DestroyDrawInfo;" (assignment_expression "pcVar40 = DestroyDrawInfo" identifier = identifier) ;) (expression_statement "(*pcVar39)();" (call_expression "(*pcVar39)()" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_5d0 = pcVar39 + 0x35a8f0;" (assignment_expression "pcStack_5d0 = pcVar39 + 0x35a8f0" identifier = (binary_expression "pcVar39 + 0x35a8f0" identifier + number_literal)) ;) (expression_statement "pdStack_5c8 = pdVar32;" (assignment_expression "pdStack_5c8 = pdVar32" identifier = identifier) ;) (expression_statement "pcStack_5c4 = pcVar40;" (assignment_expression "pcStack_5c4 = pcVar40" identifier = identifier) ;) (if_statement "if (pdVar16 == (double *)0x0) {\n    (**(code **)(pcVar39 + 0x353660))\n              (*(int *)(pcVar39 + 0x352920) + 0x40e4,*(int *)(pcVar39 + 0x352924) + 0x69c0,0x39a,\n               *(int *)(pcVar39 + 0x352924) + 0x7914);\n    pdVar16 = pdVar32;\nLAB_000a7234:\n    iStack_5d8 = *(int *)(pcVar39 + 0x352924) + 0x10f4;\n    (**(code **)(pcVar39 + 0x353238))\n              (0x8000,*(int *)(pcVar39 + 0x352924) + 0x69c0,*(int *)(pcVar39 + 0x352924) + 0x7904,\n               0x39c);\n    uVar28 = *(uint *)(pdVar16 + 0x72);\n  }\n  else {\n    if (*(uint *)((int)pdVar16 + 0x38c) != 0) goto LAB_000a7234;\n    uVar28 = *(uint *)(pdVar16 + 0x72);\n  }" if (parenthesized_expression "(pdVar16 == (double *)0x0)" ( (binary_expression "pdVar16 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(pcVar39 + 0x353660))\n              (*(int *)(pcVar39 + 0x352920) + 0x40e4,*(int *)(pcVar39 + 0x352924) + 0x69c0,0x39a,\n               *(int *)(pcVar39 + 0x352924) + 0x7914);\n    pdVar16 = pdVar32;\nLAB_000a7234:\n    iStack_5d8 = *(int *)(pcVar39 + 0x352924) + 0x10f4;\n    (**(code **)(pcVar39 + 0x353238))\n              (0x8000,*(int *)(pcVar39 + 0x352924) + 0x69c0,*(int *)(pcVar39 + 0x352924) + 0x7904,\n               0x39c);\n    uVar28 = *(uint *)(pdVar16 + 0x72);\n  }" { (expression_statement "(**(code **)(pcVar39 + 0x353660))\n              (*(int *)(pcVar39 + 0x352920) + 0x40e4,*(int *)(pcVar39 + 0x352924) + 0x69c0,0x39a,\n               *(int *)(pcVar39 + 0x352924) + 0x7914);" (call_expression "(**(code **)(pcVar39 + 0x353660))\n              (*(int *)(pcVar39 + 0x352920) + 0x40e4,*(int *)(pcVar39 + 0x352924) + 0x69c0,0x39a,\n               *(int *)(pcVar39 + 0x352924) + 0x7914)" (parenthesized_expression "(**(code **)(pcVar39 + 0x353660))" ( (pointer_expression "**(code **)(pcVar39 + 0x353660)" * (pointer_expression "*(code **)(pcVar39 + 0x353660)" * (cast_expression "(code **)(pcVar39 + 0x353660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x353660)" ( (binary_expression "pcVar39 + 0x353660" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar39 + 0x352920) + 0x40e4,*(int *)(pcVar39 + 0x352924) + 0x69c0,0x39a,\n               *(int *)(pcVar39 + 0x352924) + 0x7914)" ( (binary_expression "*(int *)(pcVar39 + 0x352920) + 0x40e4" (pointer_expression "*(int *)(pcVar39 + 0x352920)" * (cast_expression "(int *)(pcVar39 + 0x352920)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x352920)" ( (binary_expression "pcVar39 + 0x352920" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar39 + 0x352924) + 0x69c0" (pointer_expression "*(int *)(pcVar39 + 0x352924)" * (cast_expression "(int *)(pcVar39 + 0x352924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x352924)" ( (binary_expression "pcVar39 + 0x352924" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar39 + 0x352924) + 0x7914" (pointer_expression "*(int *)(pcVar39 + 0x352924)" * (cast_expression "(int *)(pcVar39 + 0x352924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x352924)" ( (binary_expression "pcVar39 + 0x352924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pdVar16 = pdVar32;" (assignment_expression "pdVar16 = pdVar32" identifier = identifier) ;) (labeled_statement "LAB_000a7234:\n    iStack_5d8 = *(int *)(pcVar39 + 0x352924) + 0x10f4;" statement_identifier : (expression_statement "iStack_5d8 = *(int *)(pcVar39 + 0x352924) + 0x10f4;" (assignment_expression "iStack_5d8 = *(int *)(pcVar39 + 0x352924) + 0x10f4" identifier = (binary_expression "*(int *)(pcVar39 + 0x352924) + 0x10f4" (pointer_expression "*(int *)(pcVar39 + 0x352924)" * (cast_expression "(int *)(pcVar39 + 0x352924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x352924)" ( (binary_expression "pcVar39 + 0x352924" identifier + number_literal) )))) + number_literal)) ;)) (expression_statement "(**(code **)(pcVar39 + 0x353238))\n              (0x8000,*(int *)(pcVar39 + 0x352924) + 0x69c0,*(int *)(pcVar39 + 0x352924) + 0x7904,\n               0x39c);" (call_expression "(**(code **)(pcVar39 + 0x353238))\n              (0x8000,*(int *)(pcVar39 + 0x352924) + 0x69c0,*(int *)(pcVar39 + 0x352924) + 0x7904,\n               0x39c)" (parenthesized_expression "(**(code **)(pcVar39 + 0x353238))" ( (pointer_expression "**(code **)(pcVar39 + 0x353238)" * (pointer_expression "*(code **)(pcVar39 + 0x353238)" * (cast_expression "(code **)(pcVar39 + 0x353238)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x353238)" ( (binary_expression "pcVar39 + 0x353238" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(pcVar39 + 0x352924) + 0x69c0,*(int *)(pcVar39 + 0x352924) + 0x7904,\n               0x39c)" ( number_literal , (binary_expression "*(int *)(pcVar39 + 0x352924) + 0x69c0" (pointer_expression "*(int *)(pcVar39 + 0x352924)" * (cast_expression "(int *)(pcVar39 + 0x352924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x352924)" ( (binary_expression "pcVar39 + 0x352924" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar39 + 0x352924) + 0x7904" (pointer_expression "*(int *)(pcVar39 + 0x352924)" * (cast_expression "(int *)(pcVar39 + 0x352924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x352924)" ( (binary_expression "pcVar39 + 0x352924" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) (expression_statement "uVar28 = *(uint *)(pdVar16 + 0x72);" (assignment_expression "uVar28 = *(uint *)(pdVar16 + 0x72)" identifier = (pointer_expression "*(uint *)(pdVar16 + 0x72)" * (cast_expression "(uint *)(pdVar16 + 0x72)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x72)" ( (binary_expression "pdVar16 + 0x72" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    if (*(uint *)((int)pdVar16 + 0x38c) != 0) goto LAB_000a7234;\n    uVar28 = *(uint *)(pdVar16 + 0x72);\n  }" else (compound_statement "{\n    if (*(uint *)((int)pdVar16 + 0x38c) != 0) goto LAB_000a7234;\n    uVar28 = *(uint *)(pdVar16 + 0x72);\n  }" { (if_statement "if (*(uint *)((int)pdVar16 + 0x38c) != 0) goto LAB_000a7234;" if (parenthesized_expression "(*(uint *)((int)pdVar16 + 0x38c) != 0)" ( (binary_expression "*(uint *)((int)pdVar16 + 0x38c) != 0" (pointer_expression "*(uint *)((int)pdVar16 + 0x38c)" * (cast_expression "(uint *)((int)pdVar16 + 0x38c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 0x38c)" ( (binary_expression "(int)pdVar16 + 0x38c" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_000a7234;" goto statement_identifier ;)) (expression_statement "uVar28 = *(uint *)(pdVar16 + 0x72);" (assignment_expression "uVar28 = *(uint *)(pdVar16 + 0x72)" identifier = (pointer_expression "*(uint *)(pdVar16 + 0x72)" * (cast_expression "(uint *)(pdVar16 + 0x72)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x72)" ( (binary_expression "pdVar16 + 0x72" identifier + number_literal) ))))) ;) }))) (if_statement "if (uVar28 == 0xabacadab) {\n    if (*(uint *)(pdVar16 + 0x77) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar16 + 0x77) = uVar28;\n    }\n    if (*(uint *)pdVar16 != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)pdVar16 = uVar28;\n    }\n    if (*(uint *)(pdVar16 + 0x4c) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar16 + 0x4c) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 4) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar16 + 4) = uVar28;\n    }\n    if (*(uint *)(pdVar16 + 0x35) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)(pdVar16 + 0x35) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 0x1ac) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar16 + 0x1ac) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 0x264) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar16 + 0x264) = uVar28;\n    }\n    if (*(uint *)(pdVar16 + 0x4d) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar16 + 0x4d) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 0x26c) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar16 + 0x26c) = uVar28;\n    }\n    if (*(uint *)(pdVar16 + 0x50) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar16 + 0x50) = uVar28;\n    }\n    if (*(uint *)(pdVar16 + 0x52) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar16 + 0x52) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 0x29c) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)((int)pdVar16 + 0x29c) = uVar28;\n    }\n    if (*(uint *)(pdVar16 + 0x54) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar16 + 0x54) = uVar28;\n    }\n    if (*(uint *)(pdVar16 + 0x3e) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar16 + 0x3e) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 0x2a4) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar16 + 0x2a4) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 0x3ac) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar16 + 0x3ac) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 0x3b4) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar16 + 0x3b4) = uVar28;\n    }\n    *(uint *)(pdVar16 + 0x72) = 0x54535254;\n    (**(code **)(pcStack_5d0 + -0x78d8))(pdVar16);\n    return;\n  }" if (parenthesized_expression "(uVar28 == 0xabacadab)" ( (binary_expression "uVar28 == 0xabacadab" identifier == number_literal) )) (compound_statement "{\n    if (*(uint *)(pdVar16 + 0x77) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar16 + 0x77) = uVar28;\n    }\n    if (*(uint *)pdVar16 != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)pdVar16 = uVar28;\n    }\n    if (*(uint *)(pdVar16 + 0x4c) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar16 + 0x4c) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 4) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar16 + 4) = uVar28;\n    }\n    if (*(uint *)(pdVar16 + 0x35) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)(pdVar16 + 0x35) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 0x1ac) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar16 + 0x1ac) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 0x264) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar16 + 0x264) = uVar28;\n    }\n    if (*(uint *)(pdVar16 + 0x4d) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar16 + 0x4d) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 0x26c) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar16 + 0x26c) = uVar28;\n    }\n    if (*(uint *)(pdVar16 + 0x50) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar16 + 0x50) = uVar28;\n    }\n    if (*(uint *)(pdVar16 + 0x52) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar16 + 0x52) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 0x29c) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)((int)pdVar16 + 0x29c) = uVar28;\n    }\n    if (*(uint *)(pdVar16 + 0x54) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar16 + 0x54) = uVar28;\n    }\n    if (*(uint *)(pdVar16 + 0x3e) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar16 + 0x3e) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 0x2a4) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar16 + 0x2a4) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 0x3ac) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar16 + 0x3ac) = uVar28;\n    }\n    if (*(uint *)((int)pdVar16 + 0x3b4) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar16 + 0x3b4) = uVar28;\n    }\n    *(uint *)(pdVar16 + 0x72) = 0x54535254;\n    (**(code **)(pcStack_5d0 + -0x78d8))(pdVar16);\n    return;\n  }" { (if_statement "if (*(uint *)(pdVar16 + 0x77) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar16 + 0x77) = uVar28;\n    }" if (parenthesized_expression "(*(uint *)(pdVar16 + 0x77) != 0)" ( (binary_expression "*(uint *)(pdVar16 + 0x77) != 0" (pointer_expression "*(uint *)(pdVar16 + 0x77)" * (cast_expression "(uint *)(pdVar16 + 0x77)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x77)" ( (binary_expression "pdVar16 + 0x77" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar16 + 0x77) = uVar28;\n    }" { (expression_statement "uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar28 = (**(code **)(pcStack_5d0 + -0x7824))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" * (cast_expression "(code **)(pcStack_5d0 + -0x7824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x7824)" ( (binary_expression "pcStack_5d0 + -0x7824" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)(pdVar16 + 0x77) = uVar28;" (assignment_expression "*(uint *)(pdVar16 + 0x77) = uVar28" (pointer_expression "*(uint *)(pdVar16 + 0x77)" * (cast_expression "(uint *)(pdVar16 + 0x77)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x77)" ( (binary_expression "pdVar16 + 0x77" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)pdVar16 != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)pdVar16 = uVar28;\n    }" if (parenthesized_expression "(*(uint *)pdVar16 != 0)" ( (binary_expression "*(uint *)pdVar16 != 0" (pointer_expression "*(uint *)pdVar16" * (cast_expression "(uint *)pdVar16" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (compound_statement "{\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)pdVar16 = uVar28;\n    }" { (expression_statement "uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar28 = (**(code **)(pcStack_5d0 + -0x7824))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" * (cast_expression "(code **)(pcStack_5d0 + -0x7824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x7824)" ( (binary_expression "pcStack_5d0 + -0x7824" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)pdVar16 = uVar28;" (assignment_expression "*(uint *)pdVar16 = uVar28" (pointer_expression "*(uint *)pdVar16" * (cast_expression "(uint *)pdVar16" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) })) (if_statement "if (*(uint *)(pdVar16 + 0x4c) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar16 + 0x4c) = uVar28;\n    }" if (parenthesized_expression "(*(uint *)(pdVar16 + 0x4c) != 0)" ( (binary_expression "*(uint *)(pdVar16 + 0x4c) != 0" (pointer_expression "*(uint *)(pdVar16 + 0x4c)" * (cast_expression "(uint *)(pdVar16 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x4c)" ( (binary_expression "pdVar16 + 0x4c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar16 + 0x4c) = uVar28;\n    }" { (expression_statement "uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar28 = (**(code **)(pcStack_5d0 + -0x7824))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" * (cast_expression "(code **)(pcStack_5d0 + -0x7824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x7824)" ( (binary_expression "pcStack_5d0 + -0x7824" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)(pdVar16 + 0x4c) = uVar28;" (assignment_expression "*(uint *)(pdVar16 + 0x4c) = uVar28" (pointer_expression "*(uint *)(pdVar16 + 0x4c)" * (cast_expression "(uint *)(pdVar16 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x4c)" ( (binary_expression "pdVar16 + 0x4c" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)((int)pdVar16 + 4) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar16 + 4) = uVar28;\n    }" if (parenthesized_expression "(*(uint *)((int)pdVar16 + 4) != 0)" ( (binary_expression "*(uint *)((int)pdVar16 + 4) != 0" (pointer_expression "*(uint *)((int)pdVar16 + 4)" * (cast_expression "(uint *)((int)pdVar16 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 4)" ( (binary_expression "(int)pdVar16 + 4" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar16 + 4) = uVar28;\n    }" { (expression_statement "uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar28 = (**(code **)(pcStack_5d0 + -0x7824))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" * (cast_expression "(code **)(pcStack_5d0 + -0x7824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x7824)" ( (binary_expression "pcStack_5d0 + -0x7824" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)((int)pdVar16 + 4) = uVar28;" (assignment_expression "*(uint *)((int)pdVar16 + 4) = uVar28" (pointer_expression "*(uint *)((int)pdVar16 + 4)" * (cast_expression "(uint *)((int)pdVar16 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 4)" ( (binary_expression "(int)pdVar16 + 4" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)(pdVar16 + 0x35) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)(pdVar16 + 0x35) = uVar28;\n    }" if (parenthesized_expression "(*(uint *)(pdVar16 + 0x35) != 0)" ( (binary_expression "*(uint *)(pdVar16 + 0x35) != 0" (pointer_expression "*(uint *)(pdVar16 + 0x35)" * (cast_expression "(uint *)(pdVar16 + 0x35)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x35)" ( (binary_expression "pdVar16 + 0x35" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar28 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)(pdVar16 + 0x35) = uVar28;\n    }" { (expression_statement "uVar28 = (**(code **)(pcStack_5d0 + -0x794c))();" (assignment_expression "uVar28 = (**(code **)(pcStack_5d0 + -0x794c))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x794c))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x794c))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x794c)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x794c)" * (cast_expression "(code **)(pcStack_5d0 + -0x794c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x794c)" ( (binary_expression "pcStack_5d0 + -0x794c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)(pdVar16 + 0x35) = uVar28;" (assignment_expression "*(uint *)(pdVar16 + 0x35) = uVar28" (pointer_expression "*(uint *)(pdVar16 + 0x35)" * (cast_expression "(uint *)(pdVar16 + 0x35)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x35)" ( (binary_expression "pdVar16 + 0x35" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)((int)pdVar16 + 0x1ac) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar16 + 0x1ac) = uVar28;\n    }" if (parenthesized_expression "(*(uint *)((int)pdVar16 + 0x1ac) != 0)" ( (binary_expression "*(uint *)((int)pdVar16 + 0x1ac) != 0" (pointer_expression "*(uint *)((int)pdVar16 + 0x1ac)" * (cast_expression "(uint *)((int)pdVar16 + 0x1ac)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 0x1ac)" ( (binary_expression "(int)pdVar16 + 0x1ac" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar28 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar16 + 0x1ac) = uVar28;\n    }" { (expression_statement "uVar28 = (**(code **)(pcStack_5d0 + -0x794c))();" (assignment_expression "uVar28 = (**(code **)(pcStack_5d0 + -0x794c))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x794c))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x794c))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x794c)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x794c)" * (cast_expression "(code **)(pcStack_5d0 + -0x794c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x794c)" ( (binary_expression "pcStack_5d0 + -0x794c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)((int)pdVar16 + 0x1ac) = uVar28;" (assignment_expression "*(uint *)((int)pdVar16 + 0x1ac) = uVar28" (pointer_expression "*(uint *)((int)pdVar16 + 0x1ac)" * (cast_expression "(uint *)((int)pdVar16 + 0x1ac)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 0x1ac)" ( (binary_expression "(int)pdVar16 + 0x1ac" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)((int)pdVar16 + 0x264) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar16 + 0x264) = uVar28;\n    }" if (parenthesized_expression "(*(uint *)((int)pdVar16 + 0x264) != 0)" ( (binary_expression "*(uint *)((int)pdVar16 + 0x264) != 0" (pointer_expression "*(uint *)((int)pdVar16 + 0x264)" * (cast_expression "(uint *)((int)pdVar16 + 0x264)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 0x264)" ( (binary_expression "(int)pdVar16 + 0x264" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar16 + 0x264) = uVar28;\n    }" { (expression_statement "uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar28 = (**(code **)(pcStack_5d0 + -0x7824))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" * (cast_expression "(code **)(pcStack_5d0 + -0x7824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x7824)" ( (binary_expression "pcStack_5d0 + -0x7824" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)((int)pdVar16 + 0x264) = uVar28;" (assignment_expression "*(uint *)((int)pdVar16 + 0x264) = uVar28" (pointer_expression "*(uint *)((int)pdVar16 + 0x264)" * (cast_expression "(uint *)((int)pdVar16 + 0x264)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 0x264)" ( (binary_expression "(int)pdVar16 + 0x264" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)(pdVar16 + 0x4d) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar16 + 0x4d) = uVar28;\n    }" if (parenthesized_expression "(*(uint *)(pdVar16 + 0x4d) != 0)" ( (binary_expression "*(uint *)(pdVar16 + 0x4d) != 0" (pointer_expression "*(uint *)(pdVar16 + 0x4d)" * (cast_expression "(uint *)(pdVar16 + 0x4d)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x4d)" ( (binary_expression "pdVar16 + 0x4d" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar16 + 0x4d) = uVar28;\n    }" { (expression_statement "uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar28 = (**(code **)(pcStack_5d0 + -0x7824))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" * (cast_expression "(code **)(pcStack_5d0 + -0x7824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x7824)" ( (binary_expression "pcStack_5d0 + -0x7824" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)(pdVar16 + 0x4d) = uVar28;" (assignment_expression "*(uint *)(pdVar16 + 0x4d) = uVar28" (pointer_expression "*(uint *)(pdVar16 + 0x4d)" * (cast_expression "(uint *)(pdVar16 + 0x4d)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x4d)" ( (binary_expression "pdVar16 + 0x4d" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)((int)pdVar16 + 0x26c) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar16 + 0x26c) = uVar28;\n    }" if (parenthesized_expression "(*(uint *)((int)pdVar16 + 0x26c) != 0)" ( (binary_expression "*(uint *)((int)pdVar16 + 0x26c) != 0" (pointer_expression "*(uint *)((int)pdVar16 + 0x26c)" * (cast_expression "(uint *)((int)pdVar16 + 0x26c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 0x26c)" ( (binary_expression "(int)pdVar16 + 0x26c" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar16 + 0x26c) = uVar28;\n    }" { (expression_statement "uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar28 = (**(code **)(pcStack_5d0 + -0x7824))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" * (cast_expression "(code **)(pcStack_5d0 + -0x7824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x7824)" ( (binary_expression "pcStack_5d0 + -0x7824" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)((int)pdVar16 + 0x26c) = uVar28;" (assignment_expression "*(uint *)((int)pdVar16 + 0x26c) = uVar28" (pointer_expression "*(uint *)((int)pdVar16 + 0x26c)" * (cast_expression "(uint *)((int)pdVar16 + 0x26c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 0x26c)" ( (binary_expression "(int)pdVar16 + 0x26c" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)(pdVar16 + 0x50) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar16 + 0x50) = uVar28;\n    }" if (parenthesized_expression "(*(uint *)(pdVar16 + 0x50) != 0)" ( (binary_expression "*(uint *)(pdVar16 + 0x50) != 0" (pointer_expression "*(uint *)(pdVar16 + 0x50)" * (cast_expression "(uint *)(pdVar16 + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x50)" ( (binary_expression "pdVar16 + 0x50" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar16 + 0x50) = uVar28;\n    }" { (expression_statement "uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar28 = (**(code **)(pcStack_5d0 + -0x7824))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" * (cast_expression "(code **)(pcStack_5d0 + -0x7824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x7824)" ( (binary_expression "pcStack_5d0 + -0x7824" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)(pdVar16 + 0x50) = uVar28;" (assignment_expression "*(uint *)(pdVar16 + 0x50) = uVar28" (pointer_expression "*(uint *)(pdVar16 + 0x50)" * (cast_expression "(uint *)(pdVar16 + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x50)" ( (binary_expression "pdVar16 + 0x50" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)(pdVar16 + 0x52) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar16 + 0x52) = uVar28;\n    }" if (parenthesized_expression "(*(uint *)(pdVar16 + 0x52) != 0)" ( (binary_expression "*(uint *)(pdVar16 + 0x52) != 0" (pointer_expression "*(uint *)(pdVar16 + 0x52)" * (cast_expression "(uint *)(pdVar16 + 0x52)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x52)" ( (binary_expression "pdVar16 + 0x52" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar16 + 0x52) = uVar28;\n    }" { (expression_statement "uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar28 = (**(code **)(pcStack_5d0 + -0x7824))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" * (cast_expression "(code **)(pcStack_5d0 + -0x7824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x7824)" ( (binary_expression "pcStack_5d0 + -0x7824" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)(pdVar16 + 0x52) = uVar28;" (assignment_expression "*(uint *)(pdVar16 + 0x52) = uVar28" (pointer_expression "*(uint *)(pdVar16 + 0x52)" * (cast_expression "(uint *)(pdVar16 + 0x52)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x52)" ( (binary_expression "pdVar16 + 0x52" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)((int)pdVar16 + 0x29c) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)((int)pdVar16 + 0x29c) = uVar28;\n    }" if (parenthesized_expression "(*(uint *)((int)pdVar16 + 0x29c) != 0)" ( (binary_expression "*(uint *)((int)pdVar16 + 0x29c) != 0" (pointer_expression "*(uint *)((int)pdVar16 + 0x29c)" * (cast_expression "(uint *)((int)pdVar16 + 0x29c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 0x29c)" ( (binary_expression "(int)pdVar16 + 0x29c" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar28 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)((int)pdVar16 + 0x29c) = uVar28;\n    }" { (expression_statement "uVar28 = (**(code **)(pcStack_5d0 + -0x78d8))();" (assignment_expression "uVar28 = (**(code **)(pcStack_5d0 + -0x78d8))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x78d8))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x78d8))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x78d8)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x78d8)" * (cast_expression "(code **)(pcStack_5d0 + -0x78d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x78d8)" ( (binary_expression "pcStack_5d0 + -0x78d8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)((int)pdVar16 + 0x29c) = uVar28;" (assignment_expression "*(uint *)((int)pdVar16 + 0x29c) = uVar28" (pointer_expression "*(uint *)((int)pdVar16 + 0x29c)" * (cast_expression "(uint *)((int)pdVar16 + 0x29c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 0x29c)" ( (binary_expression "(int)pdVar16 + 0x29c" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)(pdVar16 + 0x54) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar16 + 0x54) = uVar28;\n    }" if (parenthesized_expression "(*(uint *)(pdVar16 + 0x54) != 0)" ( (binary_expression "*(uint *)(pdVar16 + 0x54) != 0" (pointer_expression "*(uint *)(pdVar16 + 0x54)" * (cast_expression "(uint *)(pdVar16 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x54)" ( (binary_expression "pdVar16 + 0x54" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar28 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar16 + 0x54) = uVar28;\n    }" { (expression_statement "uVar28 = (**(code **)(pcStack_5d0 + -0x78d8))();" (assignment_expression "uVar28 = (**(code **)(pcStack_5d0 + -0x78d8))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x78d8))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x78d8))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x78d8)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x78d8)" * (cast_expression "(code **)(pcStack_5d0 + -0x78d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x78d8)" ( (binary_expression "pcStack_5d0 + -0x78d8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)(pdVar16 + 0x54) = uVar28;" (assignment_expression "*(uint *)(pdVar16 + 0x54) = uVar28" (pointer_expression "*(uint *)(pdVar16 + 0x54)" * (cast_expression "(uint *)(pdVar16 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x54)" ( (binary_expression "pdVar16 + 0x54" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)(pdVar16 + 0x3e) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar16 + 0x3e) = uVar28;\n    }" if (parenthesized_expression "(*(uint *)(pdVar16 + 0x3e) != 0)" ( (binary_expression "*(uint *)(pdVar16 + 0x3e) != 0" (pointer_expression "*(uint *)(pdVar16 + 0x3e)" * (cast_expression "(uint *)(pdVar16 + 0x3e)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x3e)" ( (binary_expression "pdVar16 + 0x3e" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar28 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar16 + 0x3e) = uVar28;\n    }" { (expression_statement "uVar28 = (**(code **)(pcStack_5d0 + -0x78d8))();" (assignment_expression "uVar28 = (**(code **)(pcStack_5d0 + -0x78d8))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x78d8))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x78d8))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x78d8)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x78d8)" * (cast_expression "(code **)(pcStack_5d0 + -0x78d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x78d8)" ( (binary_expression "pcStack_5d0 + -0x78d8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)(pdVar16 + 0x3e) = uVar28;" (assignment_expression "*(uint *)(pdVar16 + 0x3e) = uVar28" (pointer_expression "*(uint *)(pdVar16 + 0x3e)" * (cast_expression "(uint *)(pdVar16 + 0x3e)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x3e)" ( (binary_expression "pdVar16 + 0x3e" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)((int)pdVar16 + 0x2a4) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar16 + 0x2a4) = uVar28;\n    }" if (parenthesized_expression "(*(uint *)((int)pdVar16 + 0x2a4) != 0)" ( (binary_expression "*(uint *)((int)pdVar16 + 0x2a4) != 0" (pointer_expression "*(uint *)((int)pdVar16 + 0x2a4)" * (cast_expression "(uint *)((int)pdVar16 + 0x2a4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 0x2a4)" ( (binary_expression "(int)pdVar16 + 0x2a4" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar16 + 0x2a4) = uVar28;\n    }" { (expression_statement "uVar28 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar28 = (**(code **)(pcStack_5d0 + -0x7824))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" * (cast_expression "(code **)(pcStack_5d0 + -0x7824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x7824)" ( (binary_expression "pcStack_5d0 + -0x7824" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)((int)pdVar16 + 0x2a4) = uVar28;" (assignment_expression "*(uint *)((int)pdVar16 + 0x2a4) = uVar28" (pointer_expression "*(uint *)((int)pdVar16 + 0x2a4)" * (cast_expression "(uint *)((int)pdVar16 + 0x2a4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 0x2a4)" ( (binary_expression "(int)pdVar16 + 0x2a4" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)((int)pdVar16 + 0x3ac) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar16 + 0x3ac) = uVar28;\n    }" if (parenthesized_expression "(*(uint *)((int)pdVar16 + 0x3ac) != 0)" ( (binary_expression "*(uint *)((int)pdVar16 + 0x3ac) != 0" (pointer_expression "*(uint *)((int)pdVar16 + 0x3ac)" * (cast_expression "(uint *)((int)pdVar16 + 0x3ac)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 0x3ac)" ( (binary_expression "(int)pdVar16 + 0x3ac" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar28 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar16 + 0x3ac) = uVar28;\n    }" { (expression_statement "uVar28 = (**(code **)(pcStack_5d0 + -0x794c))();" (assignment_expression "uVar28 = (**(code **)(pcStack_5d0 + -0x794c))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x794c))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x794c))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x794c)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x794c)" * (cast_expression "(code **)(pcStack_5d0 + -0x794c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x794c)" ( (binary_expression "pcStack_5d0 + -0x794c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)((int)pdVar16 + 0x3ac) = uVar28;" (assignment_expression "*(uint *)((int)pdVar16 + 0x3ac) = uVar28" (pointer_expression "*(uint *)((int)pdVar16 + 0x3ac)" * (cast_expression "(uint *)((int)pdVar16 + 0x3ac)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 0x3ac)" ( (binary_expression "(int)pdVar16 + 0x3ac" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)((int)pdVar16 + 0x3b4) != 0) {\n      uVar28 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar16 + 0x3b4) = uVar28;\n    }" if (parenthesized_expression "(*(uint *)((int)pdVar16 + 0x3b4) != 0)" ( (binary_expression "*(uint *)((int)pdVar16 + 0x3b4) != 0" (pointer_expression "*(uint *)((int)pdVar16 + 0x3b4)" * (cast_expression "(uint *)((int)pdVar16 + 0x3b4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 0x3b4)" ( (binary_expression "(int)pdVar16 + 0x3b4" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar28 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar16 + 0x3b4) = uVar28;\n    }" { (expression_statement "uVar28 = (**(code **)(pcStack_5d0 + -0x794c))();" (assignment_expression "uVar28 = (**(code **)(pcStack_5d0 + -0x794c))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x794c))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x794c))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x794c)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x794c)" * (cast_expression "(code **)(pcStack_5d0 + -0x794c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x794c)" ( (binary_expression "pcStack_5d0 + -0x794c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)((int)pdVar16 + 0x3b4) = uVar28;" (assignment_expression "*(uint *)((int)pdVar16 + 0x3b4) = uVar28" (pointer_expression "*(uint *)((int)pdVar16 + 0x3b4)" * (cast_expression "(uint *)((int)pdVar16 + 0x3b4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 0x3b4)" ( (binary_expression "(int)pdVar16 + 0x3b4" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) })) (expression_statement "*(uint *)(pdVar16 + 0x72) = 0x54535254;" (assignment_expression "*(uint *)(pdVar16 + 0x72) = 0x54535254" (pointer_expression "*(uint *)(pdVar16 + 0x72)" * (cast_expression "(uint *)(pdVar16 + 0x72)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x72)" ( (binary_expression "pdVar16 + 0x72" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(pcStack_5d0 + -0x78d8))(pdVar16);" (call_expression "(**(code **)(pcStack_5d0 + -0x78d8))(pdVar16)" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x78d8))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x78d8)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x78d8)" * (cast_expression "(code **)(pcStack_5d0 + -0x78d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x78d8)" ( (binary_expression "pcStack_5d0 + -0x78d8" identifier + number_literal) ))))) )) (argument_list "(pdVar16)" ( identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "pdVar6 = (double *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x7914);" (assignment_expression "pdVar6 = (double *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x7914)" identifier = (cast_expression "(double *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x7914)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5d0 + -0x7fcc) + 0x7914)" ( (binary_expression "*(int *)(pcStack_5d0 + -0x7fcc) + 0x7914" (pointer_expression "*(int *)(pcStack_5d0 + -0x7fcc)" * (cast_expression "(int *)(pcStack_5d0 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5d0 + -0x7fcc)" ( (binary_expression "pcStack_5d0 + -0x7fcc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pdVar18 = (double *)&DAT_0000039d;" (assignment_expression "pdVar18 = (double *)&DAT_0000039d" identifier = (cast_expression "(double *)&DAT_0000039d" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000039d" & identifier))) ;) (expression_statement "puVar25 = (uint *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x69c0);" (assignment_expression "puVar25 = (uint *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x69c0)" identifier = (cast_expression "(uint *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x69c0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5d0 + -0x7fcc) + 0x69c0)" ( (binary_expression "*(int *)(pcStack_5d0 + -0x7fcc) + 0x69c0" (pointer_expression "*(int *)(pcStack_5d0 + -0x7fcc)" * (cast_expression "(int *)(pcStack_5d0 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5d0 + -0x7fcc)" ( (binary_expression "pcStack_5d0 + -0x7fcc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "piVar3 = (int *)(*(int *)(pcStack_5d0 + -0x7fd0) + 0x4128);" (assignment_expression "piVar3 = (int *)(*(int *)(pcStack_5d0 + -0x7fd0) + 0x4128)" identifier = (cast_expression "(int *)(*(int *)(pcStack_5d0 + -0x7fd0) + 0x4128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5d0 + -0x7fd0) + 0x4128)" ( (binary_expression "*(int *)(pcStack_5d0 + -0x7fd0) + 0x4128" (pointer_expression "*(int *)(pcStack_5d0 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5d0 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5d0 + -0x7fd0)" ( (binary_expression "pcStack_5d0 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pcVar39 = *(code **)(pcStack_5d0 + -0x7290);" (assignment_expression "pcVar39 = *(code **)(pcStack_5d0 + -0x7290)" identifier = (pointer_expression "*(code **)(pcStack_5d0 + -0x7290)" * (cast_expression "(code **)(pcStack_5d0 + -0x7290)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x7290)" ( (binary_expression "pcStack_5d0 + -0x7290" identifier + number_literal) ))))) ;) (expression_statement "pcVar40 = DrawAffineImage;" (assignment_expression "pcVar40 = DrawAffineImage" identifier = identifier) ;) (expression_statement "(*pcVar39)();" (call_expression "(*pcVar39)()" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_758 = pcVar39 + 0x35a61c;" (assignment_expression "pcStack_758 = pcVar39 + 0x35a61c" identifier = (binary_expression "pcVar39 + 0x35a61c" identifier + number_literal)) ;) (expression_statement "uStack_638._4_4_ = **(int **)(pcVar39 + 0x352fb4);" (assignment_expression "uStack_638._4_4_ = **(int **)(pcVar39 + 0x352fb4)" (field_expression "uStack_638._4_4_" identifier . field_identifier) = (pointer_expression "**(int **)(pcVar39 + 0x352fb4)" * (pointer_expression "*(int **)(pcVar39 + 0x352fb4)" * (cast_expression "(int **)(pcVar39 + 0x352fb4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x352fb4)" ( (binary_expression "pcVar39 + 0x352fb4" identifier + number_literal) )))))) ;) (expression_statement "pdStack_62c = pdVar16;" (assignment_expression "pdStack_62c = pdVar16" identifier = identifier) ;) (expression_statement "piStack_628 = piVar50;" (assignment_expression "piStack_628 = piVar50" identifier = identifier) ;) (expression_statement "puStack_624 = puVar34;" (assignment_expression "puStack_624 = puVar34" identifier = identifier) ;) (expression_statement "pdStack_620 = pdVar31;" (assignment_expression "pdStack_620 = pdVar31" identifier = identifier) ;) (expression_statement "iStack_61c = iVar30;" (assignment_expression "iStack_61c = iVar30" identifier = identifier) ;) (expression_statement "puStack_618 = puVar37;" (assignment_expression "puStack_618 = puVar37" identifier = identifier) ;) (expression_statement "pdStack_614 = unaff_s6;" (assignment_expression "pdStack_614 = unaff_s6" identifier = identifier) ;) (expression_statement "uStack_610 = unaff_s7;" (assignment_expression "uStack_610 = unaff_s7" identifier = identifier) ;) (expression_statement "pcStack_60c = pcVar40;" (assignment_expression "pcStack_60c = pcVar40" identifier = identifier) ;) (expression_statement "dStack_608 = in_f20_21;" (assignment_expression "dStack_608 = in_f20_21" identifier = identifier) ;) (expression_statement "dStack_600 = in_f22_23;" (assignment_expression "dStack_600 = in_f22_23" identifier = identifier) ;) (expression_statement "dStack_5f8 = in_f24_25;" (assignment_expression "dStack_5f8 = in_f24_25" identifier = identifier) ;) (expression_statement "dStack_5f0 = in_f26_27;" (assignment_expression "dStack_5f0 = in_f26_27" identifier = identifier) ;) (if_statement "if (piVar3 == (int *)0x0) {\n    (**(code **)(pcVar39 + 0x35338c))\n              (*(int *)(pcVar39 + 0x35264c) + 0x3da0,*(int *)(pcVar39 + 0x352650) + 0x69c0,0x4c0,\n               *(int *)(pcVar39 + 0x352650) + 0x78f4);\n    pdVar18 = pdVar16;\n    piVar3 = piVar50;\n    puVar25 = puVar34;\n    pdVar6 = pdVar31;\nLAB_000a7434:\n    piVar50 = (int *)(**(code **)(pcVar39 + 0x35338c))\n                               (*(int *)(pcVar39 + 0x352650) + -0x784,\n                                *(int *)(pcVar39 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar39 + 0x352650) + 0x78f4);\nLAB_000a745c:\n    iStack_760 = *(int *)(pcVar39 + 0x352654) + -0x2f6c;\n    piStack_75c = piVar50;\n    (**(code **)(pcVar39 + 0x352f64))\n              (0x8000,*(int *)(pcVar39 + 0x352650) + 0x69c0,*(int *)(pcVar39 + 0x352650) + 0x78e4,\n               0x4c3);\n  }\n  else {\n    if (piVar3[0xcdb] != -0x54535255) goto LAB_000a7434;\n    piVar50 = piVar3 + 0xd0;\n    if (piVar3[0xcd4] != 0) goto LAB_000a745c;\n  }" if (parenthesized_expression "(piVar3 == (int *)0x0)" ( (binary_expression "piVar3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(pcVar39 + 0x35338c))\n              (*(int *)(pcVar39 + 0x35264c) + 0x3da0,*(int *)(pcVar39 + 0x352650) + 0x69c0,0x4c0,\n               *(int *)(pcVar39 + 0x352650) + 0x78f4);\n    pdVar18 = pdVar16;\n    piVar3 = piVar50;\n    puVar25 = puVar34;\n    pdVar6 = pdVar31;\nLAB_000a7434:\n    piVar50 = (int *)(**(code **)(pcVar39 + 0x35338c))\n                               (*(int *)(pcVar39 + 0x352650) + -0x784,\n                                *(int *)(pcVar39 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar39 + 0x352650) + 0x78f4);\nLAB_000a745c:\n    iStack_760 = *(int *)(pcVar39 + 0x352654) + -0x2f6c;\n    piStack_75c = piVar50;\n    (**(code **)(pcVar39 + 0x352f64))\n              (0x8000,*(int *)(pcVar39 + 0x352650) + 0x69c0,*(int *)(pcVar39 + 0x352650) + 0x78e4,\n               0x4c3);\n  }" { (expression_statement "(**(code **)(pcVar39 + 0x35338c))\n              (*(int *)(pcVar39 + 0x35264c) + 0x3da0,*(int *)(pcVar39 + 0x352650) + 0x69c0,0x4c0,\n               *(int *)(pcVar39 + 0x352650) + 0x78f4);" (call_expression "(**(code **)(pcVar39 + 0x35338c))\n              (*(int *)(pcVar39 + 0x35264c) + 0x3da0,*(int *)(pcVar39 + 0x352650) + 0x69c0,0x4c0,\n               *(int *)(pcVar39 + 0x352650) + 0x78f4)" (parenthesized_expression "(**(code **)(pcVar39 + 0x35338c))" ( (pointer_expression "**(code **)(pcVar39 + 0x35338c)" * (pointer_expression "*(code **)(pcVar39 + 0x35338c)" * (cast_expression "(code **)(pcVar39 + 0x35338c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x35338c)" ( (binary_expression "pcVar39 + 0x35338c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar39 + 0x35264c) + 0x3da0,*(int *)(pcVar39 + 0x352650) + 0x69c0,0x4c0,\n               *(int *)(pcVar39 + 0x352650) + 0x78f4)" ( (binary_expression "*(int *)(pcVar39 + 0x35264c) + 0x3da0" (pointer_expression "*(int *)(pcVar39 + 0x35264c)" * (cast_expression "(int *)(pcVar39 + 0x35264c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x35264c)" ( (binary_expression "pcVar39 + 0x35264c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar39 + 0x352650) + 0x69c0" (pointer_expression "*(int *)(pcVar39 + 0x352650)" * (cast_expression "(int *)(pcVar39 + 0x352650)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x352650)" ( (binary_expression "pcVar39 + 0x352650" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar39 + 0x352650) + 0x78f4" (pointer_expression "*(int *)(pcVar39 + 0x352650)" * (cast_expression "(int *)(pcVar39 + 0x352650)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x352650)" ( (binary_expression "pcVar39 + 0x352650" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pdVar18 = pdVar16;" (assignment_expression "pdVar18 = pdVar16" identifier = identifier) ;) (expression_statement "piVar3 = piVar50;" (assignment_expression "piVar3 = piVar50" identifier = identifier) ;) (expression_statement "puVar25 = puVar34;" (assignment_expression "puVar25 = puVar34" identifier = identifier) ;) (expression_statement "pdVar6 = pdVar31;" (assignment_expression "pdVar6 = pdVar31" identifier = identifier) ;) (labeled_statement "LAB_000a7434:\n    piVar50 = (int *)(**(code **)(pcVar39 + 0x35338c))\n                               (*(int *)(pcVar39 + 0x352650) + -0x784,\n                                *(int *)(pcVar39 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar39 + 0x352650) + 0x78f4);" statement_identifier : (expression_statement "piVar50 = (int *)(**(code **)(pcVar39 + 0x35338c))\n                               (*(int *)(pcVar39 + 0x352650) + -0x784,\n                                *(int *)(pcVar39 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar39 + 0x352650) + 0x78f4);" (assignment_expression "piVar50 = (int *)(**(code **)(pcVar39 + 0x35338c))\n                               (*(int *)(pcVar39 + 0x352650) + -0x784,\n                                *(int *)(pcVar39 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar39 + 0x352650) + 0x78f4)" identifier = (cast_expression "(int *)(**(code **)(pcVar39 + 0x35338c))\n                               (*(int *)(pcVar39 + 0x352650) + -0x784,\n                                *(int *)(pcVar39 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar39 + 0x352650) + 0x78f4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar39 + 0x35338c))\n                               (*(int *)(pcVar39 + 0x352650) + -0x784,\n                                *(int *)(pcVar39 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar39 + 0x352650) + 0x78f4)" (parenthesized_expression "(**(code **)(pcVar39 + 0x35338c))" ( (pointer_expression "**(code **)(pcVar39 + 0x35338c)" * (pointer_expression "*(code **)(pcVar39 + 0x35338c)" * (cast_expression "(code **)(pcVar39 + 0x35338c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x35338c)" ( (binary_expression "pcVar39 + 0x35338c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar39 + 0x352650) + -0x784,\n                                *(int *)(pcVar39 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar39 + 0x352650) + 0x78f4)" ( (binary_expression "*(int *)(pcVar39 + 0x352650) + -0x784" (pointer_expression "*(int *)(pcVar39 + 0x352650)" * (cast_expression "(int *)(pcVar39 + 0x352650)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x352650)" ( (binary_expression "pcVar39 + 0x352650" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar39 + 0x352650) + 0x69c0" (pointer_expression "*(int *)(pcVar39 + 0x352650)" * (cast_expression "(int *)(pcVar39 + 0x352650)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x352650)" ( (binary_expression "pcVar39 + 0x352650" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar39 + 0x352650) + 0x78f4" (pointer_expression "*(int *)(pcVar39 + 0x352650)" * (cast_expression "(int *)(pcVar39 + 0x352650)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x352650)" ( (binary_expression "pcVar39 + 0x352650" identifier + number_literal) )))) + number_literal) ))))) ;)) (labeled_statement "LAB_000a745c:\n    iStack_760 = *(int *)(pcVar39 + 0x352654) + -0x2f6c;" statement_identifier : (expression_statement "iStack_760 = *(int *)(pcVar39 + 0x352654) + -0x2f6c;" (assignment_expression "iStack_760 = *(int *)(pcVar39 + 0x352654) + -0x2f6c" identifier = (binary_expression "*(int *)(pcVar39 + 0x352654) + -0x2f6c" (pointer_expression "*(int *)(pcVar39 + 0x352654)" * (cast_expression "(int *)(pcVar39 + 0x352654)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x352654)" ( (binary_expression "pcVar39 + 0x352654" identifier + number_literal) )))) + number_literal)) ;)) (expression_statement "piStack_75c = piVar50;" (assignment_expression "piStack_75c = piVar50" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar39 + 0x352f64))\n              (0x8000,*(int *)(pcVar39 + 0x352650) + 0x69c0,*(int *)(pcVar39 + 0x352650) + 0x78e4,\n               0x4c3);" (call_expression "(**(code **)(pcVar39 + 0x352f64))\n              (0x8000,*(int *)(pcVar39 + 0x352650) + 0x69c0,*(int *)(pcVar39 + 0x352650) + 0x78e4,\n               0x4c3)" (parenthesized_expression "(**(code **)(pcVar39 + 0x352f64))" ( (pointer_expression "**(code **)(pcVar39 + 0x352f64)" * (pointer_expression "*(code **)(pcVar39 + 0x352f64)" * (cast_expression "(code **)(pcVar39 + 0x352f64)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x352f64)" ( (binary_expression "pcVar39 + 0x352f64" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(pcVar39 + 0x352650) + 0x69c0,*(int *)(pcVar39 + 0x352650) + 0x78e4,\n               0x4c3)" ( number_literal , (binary_expression "*(int *)(pcVar39 + 0x352650) + 0x69c0" (pointer_expression "*(int *)(pcVar39 + 0x352650)" * (cast_expression "(int *)(pcVar39 + 0x352650)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x352650)" ( (binary_expression "pcVar39 + 0x352650" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar39 + 0x352650) + 0x78e4" (pointer_expression "*(int *)(pcVar39 + 0x352650)" * (cast_expression "(int *)(pcVar39 + 0x352650)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x352650)" ( (binary_expression "pcVar39 + 0x352650" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) }) (else_clause "else {\n    if (piVar3[0xcdb] != -0x54535255) goto LAB_000a7434;\n    piVar50 = piVar3 + 0xd0;\n    if (piVar3[0xcd4] != 0) goto LAB_000a745c;\n  }" else (compound_statement "{\n    if (piVar3[0xcdb] != -0x54535255) goto LAB_000a7434;\n    piVar50 = piVar3 + 0xd0;\n    if (piVar3[0xcd4] != 0) goto LAB_000a745c;\n  }" { (if_statement "if (piVar3[0xcdb] != -0x54535255) goto LAB_000a7434;" if (parenthesized_expression "(piVar3[0xcdb] != -0x54535255)" ( (binary_expression "piVar3[0xcdb] != -0x54535255" (subscript_expression "piVar3[0xcdb]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_000a7434;" goto statement_identifier ;)) (expression_statement "piVar50 = piVar3 + 0xd0;" (assignment_expression "piVar50 = piVar3 + 0xd0" identifier = (binary_expression "piVar3 + 0xd0" identifier + number_literal)) ;) (if_statement "if (piVar3[0xcd4] != 0) goto LAB_000a745c;" if (parenthesized_expression "(piVar3[0xcd4] != 0)" ( (binary_expression "piVar3[0xcd4] != 0" (subscript_expression "piVar3[0xcd4]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_000a745c;" goto statement_identifier ;)) }))) (expression_statement "pcVar39 = pcStack_758;" (assignment_expression "pcVar39 = pcStack_758" identifier = identifier) ;) (if_statement "if (puVar25 == (uint *)0x0) {\n    (**(code **)(pcStack_758 + -0x7290))\n              (*(int *)(pcStack_758 + -0x7fcc) + 0x6a20,*(int *)(pcStack_758 + -0x7fcc) + 0x69c0,\n               0x4c4,*(int *)(pcStack_758 + -0x7fcc) + 0x78f4);\nLAB_000a74c4:\n    (**(code **)(pcVar39 + -0x7290))\n              (*(int *)(pcVar39 + -0x7fcc) + 0x6a40,*(int *)(pcVar39 + -0x7fcc) + 0x69c0);\nLAB_000a74e8:\n    dStack_668 = (double)(**(code **)(pcVar39 + -0x7290))\n                                   (*(int *)(pcVar39 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar39 + -0x7fcc) + 0x69c0);\nLAB_000a750c:\n    dStack_668 = dStack_668 + *(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x43e8);\n  }\n  else {\n    if (puVar25[0xcdb] != 0xabacadab) goto LAB_000a74c4;\n    if (pdVar18 == (double *)0x0) goto LAB_000a74e8;\n    uStack_678._4_4_ = 0;\n    uStack_678._0_4_ = 0;\n    uStack_66c = 0;\n    uStack_670 = 0;\n    dStack_668 = (double)(int)puVar25[6];\n    if ((int)puVar25[6] < 0) goto LAB_000a750c;\n  }" if (parenthesized_expression "(puVar25 == (uint *)0x0)" ( (binary_expression "puVar25 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(pcStack_758 + -0x7290))\n              (*(int *)(pcStack_758 + -0x7fcc) + 0x6a20,*(int *)(pcStack_758 + -0x7fcc) + 0x69c0,\n               0x4c4,*(int *)(pcStack_758 + -0x7fcc) + 0x78f4);\nLAB_000a74c4:\n    (**(code **)(pcVar39 + -0x7290))\n              (*(int *)(pcVar39 + -0x7fcc) + 0x6a40,*(int *)(pcVar39 + -0x7fcc) + 0x69c0);\nLAB_000a74e8:\n    dStack_668 = (double)(**(code **)(pcVar39 + -0x7290))\n                                   (*(int *)(pcVar39 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar39 + -0x7fcc) + 0x69c0);\nLAB_000a750c:\n    dStack_668 = dStack_668 + *(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x43e8);\n  }" { (expression_statement "(**(code **)(pcStack_758 + -0x7290))\n              (*(int *)(pcStack_758 + -0x7fcc) + 0x6a20,*(int *)(pcStack_758 + -0x7fcc) + 0x69c0,\n               0x4c4,*(int *)(pcStack_758 + -0x7fcc) + 0x78f4);" (call_expression "(**(code **)(pcStack_758 + -0x7290))\n              (*(int *)(pcStack_758 + -0x7fcc) + 0x6a20,*(int *)(pcStack_758 + -0x7fcc) + 0x69c0,\n               0x4c4,*(int *)(pcStack_758 + -0x7fcc) + 0x78f4)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x7290))" ( (pointer_expression "**(code **)(pcStack_758 + -0x7290)" * (pointer_expression "*(code **)(pcStack_758 + -0x7290)" * (cast_expression "(code **)(pcStack_758 + -0x7290)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x7290)" ( (binary_expression "pcStack_758 + -0x7290" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_758 + -0x7fcc) + 0x6a20,*(int *)(pcStack_758 + -0x7fcc) + 0x69c0,\n               0x4c4,*(int *)(pcStack_758 + -0x7fcc) + 0x78f4)" ( (binary_expression "*(int *)(pcStack_758 + -0x7fcc) + 0x6a20" (pointer_expression "*(int *)(pcStack_758 + -0x7fcc)" * (cast_expression "(int *)(pcStack_758 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fcc)" ( (binary_expression "pcStack_758 + -0x7fcc" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcStack_758 + -0x7fcc) + 0x69c0" (pointer_expression "*(int *)(pcStack_758 + -0x7fcc)" * (cast_expression "(int *)(pcStack_758 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fcc)" ( (binary_expression "pcStack_758 + -0x7fcc" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcStack_758 + -0x7fcc) + 0x78f4" (pointer_expression "*(int *)(pcStack_758 + -0x7fcc)" * (cast_expression "(int *)(pcStack_758 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fcc)" ( (binary_expression "pcStack_758 + -0x7fcc" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_000a74c4:\n    (**(code **)(pcVar39 + -0x7290))\n              (*(int *)(pcVar39 + -0x7fcc) + 0x6a40,*(int *)(pcVar39 + -0x7fcc) + 0x69c0);" statement_identifier : (expression_statement "(**(code **)(pcVar39 + -0x7290))\n              (*(int *)(pcVar39 + -0x7fcc) + 0x6a40,*(int *)(pcVar39 + -0x7fcc) + 0x69c0);" (call_expression "(**(code **)(pcVar39 + -0x7290))\n              (*(int *)(pcVar39 + -0x7fcc) + 0x6a40,*(int *)(pcVar39 + -0x7fcc) + 0x69c0)" (parenthesized_expression "(**(code **)(pcVar39 + -0x7290))" ( (pointer_expression "**(code **)(pcVar39 + -0x7290)" * (pointer_expression "*(code **)(pcVar39 + -0x7290)" * (cast_expression "(code **)(pcVar39 + -0x7290)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + -0x7290)" ( (binary_expression "pcVar39 + -0x7290" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar39 + -0x7fcc) + 0x6a40,*(int *)(pcVar39 + -0x7fcc) + 0x69c0)" ( (binary_expression "*(int *)(pcVar39 + -0x7fcc) + 0x6a40" (pointer_expression "*(int *)(pcVar39 + -0x7fcc)" * (cast_expression "(int *)(pcVar39 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + -0x7fcc)" ( (binary_expression "pcVar39 + -0x7fcc" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar39 + -0x7fcc) + 0x69c0" (pointer_expression "*(int *)(pcVar39 + -0x7fcc)" * (cast_expression "(int *)(pcVar39 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + -0x7fcc)" ( (binary_expression "pcVar39 + -0x7fcc" identifier + number_literal) )))) + number_literal) ))) ;)) (labeled_statement "LAB_000a74e8:\n    dStack_668 = (double)(**(code **)(pcVar39 + -0x7290))\n                                   (*(int *)(pcVar39 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar39 + -0x7fcc) + 0x69c0);" statement_identifier : (expression_statement "dStack_668 = (double)(**(code **)(pcVar39 + -0x7290))\n                                   (*(int *)(pcVar39 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar39 + -0x7fcc) + 0x69c0);" (assignment_expression "dStack_668 = (double)(**(code **)(pcVar39 + -0x7290))\n                                   (*(int *)(pcVar39 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar39 + -0x7fcc) + 0x69c0)" identifier = (cast_expression "(double)(**(code **)(pcVar39 + -0x7290))\n                                   (*(int *)(pcVar39 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar39 + -0x7fcc) + 0x69c0)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcVar39 + -0x7290))\n                                   (*(int *)(pcVar39 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar39 + -0x7fcc) + 0x69c0)" (parenthesized_expression "(**(code **)(pcVar39 + -0x7290))" ( (pointer_expression "**(code **)(pcVar39 + -0x7290)" * (pointer_expression "*(code **)(pcVar39 + -0x7290)" * (cast_expression "(code **)(pcVar39 + -0x7290)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + -0x7290)" ( (binary_expression "pcVar39 + -0x7290" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar39 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar39 + -0x7fcc) + 0x69c0)" ( (binary_expression "*(int *)(pcVar39 + -0x7fcc) + 0x6a6c" (pointer_expression "*(int *)(pcVar39 + -0x7fcc)" * (cast_expression "(int *)(pcVar39 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + -0x7fcc)" ( (binary_expression "pcVar39 + -0x7fcc" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar39 + -0x7fcc) + 0x69c0" (pointer_expression "*(int *)(pcVar39 + -0x7fcc)" * (cast_expression "(int *)(pcVar39 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + -0x7fcc)" ( (binary_expression "pcVar39 + -0x7fcc" identifier + number_literal) )))) + number_literal) ))))) ;)) (labeled_statement "LAB_000a750c:\n    dStack_668 = dStack_668 + *(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x43e8);" statement_identifier : (expression_statement "dStack_668 = dStack_668 + *(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x43e8);" (assignment_expression "dStack_668 = dStack_668 + *(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x43e8)" identifier = (binary_expression "dStack_668 + *(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x43e8)" identifier + (pointer_expression "*(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x43e8)" * (cast_expression "(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar39 + -0x7fd0) + 0x43e8)" ( (binary_expression "*(int *)(pcVar39 + -0x7fd0) + 0x43e8" (pointer_expression "*(int *)(pcVar39 + -0x7fd0)" * (cast_expression "(int *)(pcVar39 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + -0x7fd0)" ( (binary_expression "pcVar39 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;)) }) (else_clause "else {\n    if (puVar25[0xcdb] != 0xabacadab) goto LAB_000a74c4;\n    if (pdVar18 == (double *)0x0) goto LAB_000a74e8;\n    uStack_678._4_4_ = 0;\n    uStack_678._0_4_ = 0;\n    uStack_66c = 0;\n    uStack_670 = 0;\n    dStack_668 = (double)(int)puVar25[6];\n    if ((int)puVar25[6] < 0) goto LAB_000a750c;\n  }" else (compound_statement "{\n    if (puVar25[0xcdb] != 0xabacadab) goto LAB_000a74c4;\n    if (pdVar18 == (double *)0x0) goto LAB_000a74e8;\n    uStack_678._4_4_ = 0;\n    uStack_678._0_4_ = 0;\n    uStack_66c = 0;\n    uStack_670 = 0;\n    dStack_668 = (double)(int)puVar25[6];\n    if ((int)puVar25[6] < 0) goto LAB_000a750c;\n  }" { (if_statement "if (puVar25[0xcdb] != 0xabacadab) goto LAB_000a74c4;" if (parenthesized_expression "(puVar25[0xcdb] != 0xabacadab)" ( (binary_expression "puVar25[0xcdb] != 0xabacadab" (subscript_expression "puVar25[0xcdb]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_000a74c4;" goto statement_identifier ;)) (if_statement "if (pdVar18 == (double *)0x0) goto LAB_000a74e8;" if (parenthesized_expression "(pdVar18 == (double *)0x0)" ( (binary_expression "pdVar18 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000a74e8;" goto statement_identifier ;)) (expression_statement "uStack_678._4_4_ = 0;" (assignment_expression "uStack_678._4_4_ = 0" (field_expression "uStack_678._4_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "uStack_678._0_4_ = 0;" (assignment_expression "uStack_678._0_4_ = 0" (field_expression "uStack_678._0_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "uStack_66c = 0;" (assignment_expression "uStack_66c = 0" identifier = number_literal) ;) (expression_statement "uStack_670 = 0;" (assignment_expression "uStack_670 = 0" identifier = number_literal) ;) (expression_statement "dStack_668 = (double)(int)puVar25[6];" (assignment_expression "dStack_668 = (double)(int)puVar25[6]" identifier = (cast_expression "(double)(int)puVar25[6]" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar25[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar25[6]" identifier [ number_literal ])))) ;) (if_statement "if ((int)puVar25[6] < 0) goto LAB_000a750c;" if (parenthesized_expression "((int)puVar25[6] < 0)" ( (binary_expression "(int)puVar25[6] < 0" (cast_expression "(int)puVar25[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar25[6]" identifier [ number_literal ])) < number_literal) )) (goto_statement "goto LAB_000a750c;" goto statement_identifier ;)) }))) (expression_statement "dStack_668 = dStack_668 - *(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x4408);" (assignment_expression "dStack_668 = dStack_668 - *(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x4408)" identifier = (binary_expression "dStack_668 - *(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x4408)" identifier - (pointer_expression "*(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar39 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcVar39 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcVar39 + -0x7fd0)" * (cast_expression "(int *)(pcVar39 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + -0x7fd0)" ( (binary_expression "pcVar39 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "uStack_65c = 0;" (assignment_expression "uStack_65c = 0" identifier = number_literal) ;) (expression_statement "uStack_660 = 0;" (assignment_expression "uStack_660 = 0" identifier = number_literal) ;) (expression_statement "dStack_658 = dStack_668;" (assignment_expression "dStack_658 = dStack_668" identifier = identifier) ;) (expression_statement "dStack_650 = (double)(int)puVar25[7];" (assignment_expression "dStack_650 = (double)(int)puVar25[7]" identifier = (cast_expression "(double)(int)puVar25[7]" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar25[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar25[7]" identifier [ number_literal ])))) ;) (if_statement "if ((int)puVar25[7] < 0) {\n    dStack_650 = dStack_650 + *(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x43e8);\n  }" if (parenthesized_expression "((int)puVar25[7] < 0)" ( (binary_expression "(int)puVar25[7] < 0" (cast_expression "(int)puVar25[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar25[7]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n    dStack_650 = dStack_650 + *(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x43e8);\n  }" { (expression_statement "dStack_650 = dStack_650 + *(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x43e8);" (assignment_expression "dStack_650 = dStack_650 + *(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x43e8)" identifier = (binary_expression "dStack_650 + *(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x43e8)" identifier + (pointer_expression "*(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x43e8)" * (cast_expression "(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar39 + -0x7fd0) + 0x43e8)" ( (binary_expression "*(int *)(pcVar39 + -0x7fd0) + 0x43e8" (pointer_expression "*(int *)(pcVar39 + -0x7fd0)" * (cast_expression "(int *)(pcVar39 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + -0x7fd0)" ( (binary_expression "pcVar39 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dStack_650 = dStack_650 - *(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x4408);" (assignment_expression "dStack_650 = dStack_650 - *(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x4408)" identifier = (binary_expression "dStack_650 - *(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x4408)" identifier - (pointer_expression "*(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcVar39 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar39 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcVar39 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcVar39 + -0x7fd0)" * (cast_expression "(int *)(pcVar39 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + -0x7fd0)" ( (binary_expression "pcVar39 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "uStack_644 = 0;" (assignment_expression "uStack_644 = 0" identifier = number_literal) ;) (expression_statement "uStack_648 = 0;" (assignment_expression "uStack_648 = 0" identifier = number_literal) ;) (expression_statement "dStack_640 = dStack_650;" (assignment_expression "dStack_640 = dStack_650" identifier = identifier) ;) (expression_statement "dVar47 = *pdVar18;" (assignment_expression "dVar47 = *pdVar18" identifier = (pointer_expression "*pdVar18" * identifier)) ;) (expression_statement "dVar46 = pdVar18[2];" (assignment_expression "dVar46 = pdVar18[2]" identifier = (subscript_expression "pdVar18[2]" identifier [ number_literal ])) ;) (expression_statement "dVar49 = pdVar18[4];" (assignment_expression "dVar49 = pdVar18[4]" identifier = (subscript_expression "pdVar18[4]" identifier [ number_literal ])) ;) (expression_statement "dVar42 = pdVar18[1];" (assignment_expression "dVar42 = pdVar18[1]" identifier = (subscript_expression "pdVar18[1]" identifier [ number_literal ])) ;) (expression_statement "dVar43 = pdVar18[3];" (assignment_expression "dVar43 = pdVar18[3]" identifier = (subscript_expression "pdVar18[3]" identifier [ number_literal ])) ;) (expression_statement "dVar41 = pdVar18[5];" (assignment_expression "dVar41 = pdVar18[5]" identifier = (subscript_expression "pdVar18[5]" identifier [ number_literal ])) ;) (expression_statement "pdVar16 = (double *)&uStack_678;" (assignment_expression "pdVar16 = (double *)&uStack_678" identifier = (cast_expression "(double *)&uStack_678" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&uStack_678" & identifier))) ;) (expression_statement "pdVar31 = pdVar16;" (assignment_expression "pdVar31 = pdVar16" identifier = identifier) ;) (do_statement "do {\n    dVar44 = *pdVar31;\n    *pdVar31 = dVar47 * dVar44 + dVar46 * pdVar31[1] + dVar49;\n    pdVar31[1] = dVar42 * dVar44 + dVar43 * pdVar31[1] + dVar41;\n    pdVar31 = pdVar31 + 2;\n  } while (pdVar31 != (double *)&uStack_638);" do (compound_statement "{\n    dVar44 = *pdVar31;\n    *pdVar31 = dVar47 * dVar44 + dVar46 * pdVar31[1] + dVar49;\n    pdVar31[1] = dVar42 * dVar44 + dVar43 * pdVar31[1] + dVar41;\n    pdVar31 = pdVar31 + 2;\n  }" { (expression_statement "dVar44 = *pdVar31;" (assignment_expression "dVar44 = *pdVar31" identifier = (pointer_expression "*pdVar31" * identifier)) ;) (expression_statement "*pdVar31 = dVar47 * dVar44 + dVar46 * pdVar31[1] + dVar49;" (assignment_expression "*pdVar31 = dVar47 * dVar44 + dVar46 * pdVar31[1] + dVar49" (pointer_expression "*pdVar31" * identifier) = (binary_expression "dVar47 * dVar44 + dVar46 * pdVar31[1] + dVar49" (binary_expression "dVar47 * dVar44 + dVar46 * pdVar31[1]" (binary_expression "dVar47 * dVar44" identifier * identifier) + (binary_expression "dVar46 * pdVar31[1]" identifier * (subscript_expression "pdVar31[1]" identifier [ number_literal ]))) + identifier)) ;) (expression_statement "pdVar31[1] = dVar42 * dVar44 + dVar43 * pdVar31[1] + dVar41;" (assignment_expression "pdVar31[1] = dVar42 * dVar44 + dVar43 * pdVar31[1] + dVar41" (subscript_expression "pdVar31[1]" identifier [ number_literal ]) = (binary_expression "dVar42 * dVar44 + dVar43 * pdVar31[1] + dVar41" (binary_expression "dVar42 * dVar44 + dVar43 * pdVar31[1]" (binary_expression "dVar42 * dVar44" identifier * identifier) + (binary_expression "dVar43 * pdVar31[1]" identifier * (subscript_expression "pdVar31[1]" identifier [ number_literal ]))) + identifier)) ;) (expression_statement "pdVar31 = pdVar31 + 2;" (assignment_expression "pdVar31 = pdVar31 + 2" identifier = (binary_expression "pdVar31 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(pdVar31 != (double *)&uStack_638)" ( (binary_expression "pdVar31 != (double *)&uStack_638" identifier != (cast_expression "(double *)&uStack_638" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&uStack_638" & identifier))) )) ;) (expression_statement "dVar41 = (double)CONCAT44(uStack_670,uStack_66c);" (assignment_expression "dVar41 = (double)CONCAT44(uStack_670,uStack_66c)" identifier = (cast_expression "(double)CONCAT44(uStack_670,uStack_66c)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_670,uStack_66c)" identifier (argument_list "(uStack_670,uStack_66c)" ( identifier , identifier ))))) ;) (expression_statement "dVar43 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_);" (assignment_expression "dVar43 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_)" identifier = (cast_expression "(double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_678._0_4_,uStack_678._4_4_)" identifier (argument_list "(uStack_678._0_4_,uStack_678._4_4_)" ( (field_expression "uStack_678._0_4_" identifier . field_identifier) , (field_expression "uStack_678._4_4_" identifier . field_identifier) ))))) ;) (expression_statement "dVar42 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_);" (assignment_expression "dVar42 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_)" identifier = (cast_expression "(double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_678._0_4_,uStack_678._4_4_)" identifier (argument_list "(uStack_678._0_4_,uStack_678._4_4_)" ( (field_expression "uStack_678._0_4_" identifier . field_identifier) , (field_expression "uStack_678._4_4_" identifier . field_identifier) ))))) ;) (expression_statement "dVar49 = (double)CONCAT44(uStack_670,uStack_66c);" (assignment_expression "dVar49 = (double)CONCAT44(uStack_670,uStack_66c)" identifier = (cast_expression "(double)CONCAT44(uStack_670,uStack_66c)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_670,uStack_66c)" identifier (argument_list "(uStack_670,uStack_66c)" ( identifier , identifier ))))) ;) (do_statement "do {\n    dVar47 = pdVar16[2];\n    dVar46 = dVar47;\n    if (dVar43 <= dVar47) {\n      dVar46 = dVar43;\n    }\n    dVar44 = pdVar16[3];\n    dVar48 = dVar44;\n    if (dVar49 <= dVar44) {\n      dVar48 = dVar49;\n    }\n    if (dVar47 <= dVar42) {\n      dVar47 = dVar42;\n    }\n    if (dVar44 <= dVar41) {\n      dVar44 = dVar41;\n    }\n    pdVar16 = pdVar16 + 2;\n    dVar41 = dVar44;\n    dVar43 = dVar46;\n    dVar42 = dVar47;\n    dVar49 = dVar48;\n  } while ((double *)&uStack_648 != pdVar16);" do (compound_statement "{\n    dVar47 = pdVar16[2];\n    dVar46 = dVar47;\n    if (dVar43 <= dVar47) {\n      dVar46 = dVar43;\n    }\n    dVar44 = pdVar16[3];\n    dVar48 = dVar44;\n    if (dVar49 <= dVar44) {\n      dVar48 = dVar49;\n    }\n    if (dVar47 <= dVar42) {\n      dVar47 = dVar42;\n    }\n    if (dVar44 <= dVar41) {\n      dVar44 = dVar41;\n    }\n    pdVar16 = pdVar16 + 2;\n    dVar41 = dVar44;\n    dVar43 = dVar46;\n    dVar42 = dVar47;\n    dVar49 = dVar48;\n  }" { (expression_statement "dVar47 = pdVar16[2];" (assignment_expression "dVar47 = pdVar16[2]" identifier = (subscript_expression "pdVar16[2]" identifier [ number_literal ])) ;) (expression_statement "dVar46 = dVar47;" (assignment_expression "dVar46 = dVar47" identifier = identifier) ;) (if_statement "if (dVar43 <= dVar47) {\n      dVar46 = dVar43;\n    }" if (parenthesized_expression "(dVar43 <= dVar47)" ( (binary_expression "dVar43 <= dVar47" identifier <= identifier) )) (compound_statement "{\n      dVar46 = dVar43;\n    }" { (expression_statement "dVar46 = dVar43;" (assignment_expression "dVar46 = dVar43" identifier = identifier) ;) })) (expression_statement "dVar44 = pdVar16[3];" (assignment_expression "dVar44 = pdVar16[3]" identifier = (subscript_expression "pdVar16[3]" identifier [ number_literal ])) ;) (expression_statement "dVar48 = dVar44;" (assignment_expression "dVar48 = dVar44" identifier = identifier) ;) (if_statement "if (dVar49 <= dVar44) {\n      dVar48 = dVar49;\n    }" if (parenthesized_expression "(dVar49 <= dVar44)" ( (binary_expression "dVar49 <= dVar44" identifier <= identifier) )) (compound_statement "{\n      dVar48 = dVar49;\n    }" { (expression_statement "dVar48 = dVar49;" (assignment_expression "dVar48 = dVar49" identifier = identifier) ;) })) (if_statement "if (dVar47 <= dVar42) {\n      dVar47 = dVar42;\n    }" if (parenthesized_expression "(dVar47 <= dVar42)" ( (binary_expression "dVar47 <= dVar42" identifier <= identifier) )) (compound_statement "{\n      dVar47 = dVar42;\n    }" { (expression_statement "dVar47 = dVar42;" (assignment_expression "dVar47 = dVar42" identifier = identifier) ;) })) (if_statement "if (dVar44 <= dVar41) {\n      dVar44 = dVar41;\n    }" if (parenthesized_expression "(dVar44 <= dVar41)" ( (binary_expression "dVar44 <= dVar41" identifier <= identifier) )) (compound_statement "{\n      dVar44 = dVar41;\n    }" { (expression_statement "dVar44 = dVar41;" (assignment_expression "dVar44 = dVar41" identifier = identifier) ;) })) (expression_statement "pdVar16 = pdVar16 + 2;" (assignment_expression "pdVar16 = pdVar16 + 2" identifier = (binary_expression "pdVar16 + 2" identifier + number_literal)) ;) (expression_statement "dVar41 = dVar44;" (assignment_expression "dVar41 = dVar44" identifier = identifier) ;) (expression_statement "dVar43 = dVar46;" (assignment_expression "dVar43 = dVar46" identifier = identifier) ;) (expression_statement "dVar42 = dVar47;" (assignment_expression "dVar42 = dVar47" identifier = identifier) ;) (expression_statement "dVar49 = dVar48;" (assignment_expression "dVar49 = dVar48" identifier = identifier) ;) }) while (parenthesized_expression "((double *)&uStack_648 != pdVar16)" ( (binary_expression "(double *)&uStack_648 != pdVar16" (cast_expression "(double *)&uStack_648" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&uStack_648" & identifier)) != identifier) )) ;) (expression_statement "ppiVar26 = (int **)0x1;" (assignment_expression "ppiVar26 = (int **)0x1" identifier = (cast_expression "(int **)0x1" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pdVar31 = pdVar6;" (assignment_expression "pdVar31 = pdVar6" identifier = identifier) ;) (expression_statement "iVar4 = (**(code **)(pcVar39 + -0x7074))(piVar3);" (assignment_expression "iVar4 = (**(code **)(pcVar39 + -0x7074))(piVar3)" identifier = (call_expression "(**(code **)(pcVar39 + -0x7074))(piVar3)" (parenthesized_expression "(**(code **)(pcVar39 + -0x7074))" ( (pointer_expression "**(code **)(pcVar39 + -0x7074)" * (pointer_expression "*(code **)(pcVar39 + -0x7074)" * (cast_expression "(code **)(pcVar39 + -0x7074)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + -0x7074)" ( (binary_expression "pcVar39 + -0x7074" identifier + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier )))) ;) (if_statement "if (iVar4 != 0) {\n    dStack_750 = dVar46;\n    if (dVar46 <= 0.0) {\n      dStack_750 = 0.0;\n    }\n    dStack_748 = dVar48;\n    if (dVar48 <= 0.0) {\n      dStack_748 = 0.0;\n    }\n    dStack_740 = (double)piVar3[6];\n    if (piVar3[6] < 0) {\n      dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_740 = dStack_740 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar47 < dStack_740) {\n      dStack_740 = dVar47;\n    }\n    dStack_738 = (double)piVar3[7];\n    if (piVar3[7] < 0) {\n      dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_738 = dStack_738 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar44 < dStack_738) {\n      dStack_738 = dVar44;\n    }\n    dStack_6e8 = *pdVar18 * pdVar18[3] - pdVar18[1] * pdVar18[2];\n    if (0.0 <= dStack_6e8) {\n      dVar41 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    }\n    else {\n      dVar41 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);\n    }\n    if (dStack_6e8 * dVar41 < *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)) {\n      dStack_6e8 = dVar41 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8);\n    }\n    else {\n      dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;\n    }\n    dStack_700 = pdVar18[3] * dStack_6e8;\n    dStack_6f8 = -pdVar18[1] * dStack_6e8;\n    dStack_6f0 = -pdVar18[2] * dStack_6e8;\n    dStack_6e8 = *pdVar18 * dStack_6e8;\n    dStack_6e0 = dStack_700 * -pdVar18[4] - dStack_6f0 * pdVar18[5];\n    dStack_6d8 = dStack_6f8 * -pdVar18[4] - dStack_6e8 * pdVar18[5];\n    (**(code **)(pcStack_758 + -0x75e4))(piVar3,auStack_6d0);\n    dVar44 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0);\n    dVar41 = (double)(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar44);\n    dVar43 = (double)(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar44);\n    uVar5 = (**(code **)(pcStack_758 + -0x7144))(puVar25,pdVar6);\n    puVar37 = (undefined1 *)(**(code **)(pcStack_758 + -0x79c4))(piVar3,pdVar6);\n    iVar4 = (**(code **)(pcStack_758 + -0x73e4))(puVar25);\n    if (((iVar4 == 4) || (iVar4 = (**(code **)(pcStack_758 + -0x73e4))(puVar25), iVar4 == 3)) &&\n       ((iVar4 = (**(code **)(pcStack_758 + -0x73e4))(piVar3), iVar4 == 4 ||\n        (iVar4 = (**(code **)(pcStack_758 + -0x73e4))(piVar3), iVar4 == 3)))) {\n      (**(code **)(pcStack_758 + -0x775c))(7);\n      iVar12 = (int)dVar43 - (int)dVar41;\n      iVar4 = iVar12;\n      if (iVar12 < 0) {\n        iVar4 = iVar12 + 0x3f;\n      }\n      pdVar18 = (double *)(iVar4 >> 6);\n      if (extraout_v1 < (int)pdVar18) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        bVar1 = extraout_v1_01 < 2;\n      }\n      else {\n        bVar1 = iVar12 < 0x80;\n      }\n      pdVar31 = (double *)0x1;\n      if (((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar31 = pdVar18, extraout_v1_02 < (int)pdVar18)\n         ) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar31 = extraout_v1_03;\n        pdVar18 = extraout_v1_03;\n      }\n    }\n    else {\n      uVar53 = (**(code **)(pcStack_758 + -0x775c))(7);\n      if (((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)) {\n        uVar53 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar53 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar39 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar53 < 2) {\n          pdVar31 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }\n      else {\nLAB_000a77f8:\n        pcVar39 = *(code **)(pcStack_758 + -0x775c);\n      }\n      uVar53 = (*pcVar39)(7);\n      if (((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar31 = extraout_v1_00;\n      }\n      else {\n        pdVar31 = (double *)0x2;\n      }\n    }\nLAB_000a7818:\n    pdStack_720 = &dStack_700;\n    puStack_714 = auStack_6d0;\n    pdStack_710 = &dStack_750;\n    iStack_704 = 1;\n    ppiVar26 = &piStack_72c;\n    piStack_72c = piVar3;\n    puStack_728 = puVar25;\n    pdStack_724 = pdVar6;\n    puStack_71c = puVar37;\n    uStack_718 = uVar5;\n    iStack_70c = (int)dVar41;\n    iStack_708 = (int)dVar43;\n    (**(code **)(pcStack_758 + -0x7700))\n              (*(int *)(pcStack_758 + -0x7ea0) + 0x34c4,ppiVar26,pdVar31,0);\n    iVar4 = iStack_704;\n    (**(code **)(pcStack_758 + -0x79a4))(uVar5);\n    (**(code **)(pcStack_758 + -0x79a4))(puVar37);\n  }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n    dStack_750 = dVar46;\n    if (dVar46 <= 0.0) {\n      dStack_750 = 0.0;\n    }\n    dStack_748 = dVar48;\n    if (dVar48 <= 0.0) {\n      dStack_748 = 0.0;\n    }\n    dStack_740 = (double)piVar3[6];\n    if (piVar3[6] < 0) {\n      dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_740 = dStack_740 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar47 < dStack_740) {\n      dStack_740 = dVar47;\n    }\n    dStack_738 = (double)piVar3[7];\n    if (piVar3[7] < 0) {\n      dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_738 = dStack_738 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar44 < dStack_738) {\n      dStack_738 = dVar44;\n    }\n    dStack_6e8 = *pdVar18 * pdVar18[3] - pdVar18[1] * pdVar18[2];\n    if (0.0 <= dStack_6e8) {\n      dVar41 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    }\n    else {\n      dVar41 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);\n    }\n    if (dStack_6e8 * dVar41 < *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)) {\n      dStack_6e8 = dVar41 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8);\n    }\n    else {\n      dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;\n    }\n    dStack_700 = pdVar18[3] * dStack_6e8;\n    dStack_6f8 = -pdVar18[1] * dStack_6e8;\n    dStack_6f0 = -pdVar18[2] * dStack_6e8;\n    dStack_6e8 = *pdVar18 * dStack_6e8;\n    dStack_6e0 = dStack_700 * -pdVar18[4] - dStack_6f0 * pdVar18[5];\n    dStack_6d8 = dStack_6f8 * -pdVar18[4] - dStack_6e8 * pdVar18[5];\n    (**(code **)(pcStack_758 + -0x75e4))(piVar3,auStack_6d0);\n    dVar44 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0);\n    dVar41 = (double)(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar44);\n    dVar43 = (double)(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar44);\n    uVar5 = (**(code **)(pcStack_758 + -0x7144))(puVar25,pdVar6);\n    puVar37 = (undefined1 *)(**(code **)(pcStack_758 + -0x79c4))(piVar3,pdVar6);\n    iVar4 = (**(code **)(pcStack_758 + -0x73e4))(puVar25);\n    if (((iVar4 == 4) || (iVar4 = (**(code **)(pcStack_758 + -0x73e4))(puVar25), iVar4 == 3)) &&\n       ((iVar4 = (**(code **)(pcStack_758 + -0x73e4))(piVar3), iVar4 == 4 ||\n        (iVar4 = (**(code **)(pcStack_758 + -0x73e4))(piVar3), iVar4 == 3)))) {\n      (**(code **)(pcStack_758 + -0x775c))(7);\n      iVar12 = (int)dVar43 - (int)dVar41;\n      iVar4 = iVar12;\n      if (iVar12 < 0) {\n        iVar4 = iVar12 + 0x3f;\n      }\n      pdVar18 = (double *)(iVar4 >> 6);\n      if (extraout_v1 < (int)pdVar18) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        bVar1 = extraout_v1_01 < 2;\n      }\n      else {\n        bVar1 = iVar12 < 0x80;\n      }\n      pdVar31 = (double *)0x1;\n      if (((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar31 = pdVar18, extraout_v1_02 < (int)pdVar18)\n         ) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar31 = extraout_v1_03;\n        pdVar18 = extraout_v1_03;\n      }\n    }\n    else {\n      uVar53 = (**(code **)(pcStack_758 + -0x775c))(7);\n      if (((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)) {\n        uVar53 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar53 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar39 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar53 < 2) {\n          pdVar31 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }\n      else {\nLAB_000a77f8:\n        pcVar39 = *(code **)(pcStack_758 + -0x775c);\n      }\n      uVar53 = (*pcVar39)(7);\n      if (((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar31 = extraout_v1_00;\n      }\n      else {\n        pdVar31 = (double *)0x2;\n      }\n    }\nLAB_000a7818:\n    pdStack_720 = &dStack_700;\n    puStack_714 = auStack_6d0;\n    pdStack_710 = &dStack_750;\n    iStack_704 = 1;\n    ppiVar26 = &piStack_72c;\n    piStack_72c = piVar3;\n    puStack_728 = puVar25;\n    pdStack_724 = pdVar6;\n    puStack_71c = puVar37;\n    uStack_718 = uVar5;\n    iStack_70c = (int)dVar41;\n    iStack_708 = (int)dVar43;\n    (**(code **)(pcStack_758 + -0x7700))\n              (*(int *)(pcStack_758 + -0x7ea0) + 0x34c4,ppiVar26,pdVar31,0);\n    iVar4 = iStack_704;\n    (**(code **)(pcStack_758 + -0x79a4))(uVar5);\n    (**(code **)(pcStack_758 + -0x79a4))(puVar37);\n  }" { (expression_statement "dStack_750 = dVar46;" (assignment_expression "dStack_750 = dVar46" identifier = identifier) ;) (if_statement "if (dVar46 <= 0.0) {\n      dStack_750 = 0.0;\n    }" if (parenthesized_expression "(dVar46 <= 0.0)" ( (binary_expression "dVar46 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n      dStack_750 = 0.0;\n    }" { (expression_statement "dStack_750 = 0.0;" (assignment_expression "dStack_750 = 0.0" identifier = number_literal) ;) })) (expression_statement "dStack_748 = dVar48;" (assignment_expression "dStack_748 = dVar48" identifier = identifier) ;) (if_statement "if (dVar48 <= 0.0) {\n      dStack_748 = 0.0;\n    }" if (parenthesized_expression "(dVar48 <= 0.0)" ( (binary_expression "dVar48 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n      dStack_748 = 0.0;\n    }" { (expression_statement "dStack_748 = 0.0;" (assignment_expression "dStack_748 = 0.0" identifier = number_literal) ;) })) (expression_statement "dStack_740 = (double)piVar3[6];" (assignment_expression "dStack_740 = (double)piVar3[6]" identifier = (cast_expression "(double)piVar3[6]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar3[6]" identifier [ number_literal ]))) ;) (if_statement "if (piVar3[6] < 0) {\n      dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }" if (parenthesized_expression "(piVar3[6] < 0)" ( (binary_expression "piVar3[6] < 0" (subscript_expression "piVar3[6]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n      dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }" { (expression_statement "dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);" (assignment_expression "dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" identifier = (binary_expression "dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" identifier + (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" * (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" ( (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x43e8" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" * (cast_expression "(int *)(pcStack_758 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fd0)" ( (binary_expression "pcStack_758 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dStack_740 = dStack_740 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);" (assignment_expression "dStack_740 = dStack_740 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" identifier = (binary_expression "dStack_740 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" identifier - (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" * (cast_expression "(int *)(pcStack_758 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fd0)" ( (binary_expression "pcStack_758 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) (if_statement "if (dVar47 < dStack_740) {\n      dStack_740 = dVar47;\n    }" if (parenthesized_expression "(dVar47 < dStack_740)" ( (binary_expression "dVar47 < dStack_740" identifier < identifier) )) (compound_statement "{\n      dStack_740 = dVar47;\n    }" { (expression_statement "dStack_740 = dVar47;" (assignment_expression "dStack_740 = dVar47" identifier = identifier) ;) })) (expression_statement "dStack_738 = (double)piVar3[7];" (assignment_expression "dStack_738 = (double)piVar3[7]" identifier = (cast_expression "(double)piVar3[7]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar3[7]" identifier [ number_literal ]))) ;) (if_statement "if (piVar3[7] < 0) {\n      dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }" if (parenthesized_expression "(piVar3[7] < 0)" ( (binary_expression "piVar3[7] < 0" (subscript_expression "piVar3[7]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n      dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }" { (expression_statement "dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);" (assignment_expression "dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" identifier = (binary_expression "dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" identifier + (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" * (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" ( (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x43e8" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" * (cast_expression "(int *)(pcStack_758 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fd0)" ( (binary_expression "pcStack_758 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dStack_738 = dStack_738 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);" (assignment_expression "dStack_738 = dStack_738 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" identifier = (binary_expression "dStack_738 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" identifier - (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" * (cast_expression "(int *)(pcStack_758 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fd0)" ( (binary_expression "pcStack_758 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) (if_statement "if (dVar44 < dStack_738) {\n      dStack_738 = dVar44;\n    }" if (parenthesized_expression "(dVar44 < dStack_738)" ( (binary_expression "dVar44 < dStack_738" identifier < identifier) )) (compound_statement "{\n      dStack_738 = dVar44;\n    }" { (expression_statement "dStack_738 = dVar44;" (assignment_expression "dStack_738 = dVar44" identifier = identifier) ;) })) (expression_statement "dStack_6e8 = *pdVar18 * pdVar18[3] - pdVar18[1] * pdVar18[2];" (assignment_expression "dStack_6e8 = *pdVar18 * pdVar18[3] - pdVar18[1] * pdVar18[2]" identifier = (binary_expression "*pdVar18 * pdVar18[3] - pdVar18[1] * pdVar18[2]" (binary_expression "*pdVar18 * pdVar18[3]" (pointer_expression "*pdVar18" * identifier) * (subscript_expression "pdVar18[3]" identifier [ number_literal ])) - (binary_expression "pdVar18[1] * pdVar18[2]" (subscript_expression "pdVar18[1]" identifier [ number_literal ]) * (subscript_expression "pdVar18[2]" identifier [ number_literal ])))) ;) (if_statement "if (0.0 <= dStack_6e8) {\n      dVar41 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    }\n    else {\n      dVar41 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);\n    }" if (parenthesized_expression "(0.0 <= dStack_6e8)" ( (binary_expression "0.0 <= dStack_6e8" number_literal <= identifier) )) (compound_statement "{\n      dVar41 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    }" { (expression_statement "dVar41 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);" (assignment_expression "dVar41 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" * (cast_expression "(int *)(pcStack_758 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fd0)" ( (binary_expression "pcStack_758 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n      dVar41 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);\n    }" else (compound_statement "{\n      dVar41 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);\n    }" { (expression_statement "dVar41 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);" (assignment_expression "dVar41 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" * (cast_expression "(int *)(pcStack_758 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fd0)" ( (binary_expression "pcStack_758 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (dStack_6e8 * dVar41 < *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)) {\n      dStack_6e8 = dVar41 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8);\n    }\n    else {\n      dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;\n    }" if (parenthesized_expression "(dStack_6e8 * dVar41 < *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8))" ( (binary_expression "dStack_6e8 * dVar41 < *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)" (binary_expression "dStack_6e8 * dVar41" identifier * identifier) < (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)" * (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)" ( (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x43c8" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" * (cast_expression "(int *)(pcStack_758 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fd0)" ( (binary_expression "pcStack_758 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) )) (compound_statement "{\n      dStack_6e8 = dVar41 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8);\n    }" { (expression_statement "dStack_6e8 = dVar41 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8);" (assignment_expression "dStack_6e8 = dVar41 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)" identifier = (binary_expression "dVar41 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)" identifier / (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)" * (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)" ( (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x43c8" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" * (cast_expression "(int *)(pcStack_758 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fd0)" ( (binary_expression "pcStack_758 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) }) (else_clause "else {\n      dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;\n    }" else (compound_statement "{\n      dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;\n    }" { (expression_statement "dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;" (assignment_expression "dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8" identifier = (binary_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8" (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" * (cast_expression "(int *)(pcStack_758 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fd0)" ( (binary_expression "pcStack_758 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))) / identifier)) ;) }))) (expression_statement "dStack_700 = pdVar18[3] * dStack_6e8;" (assignment_expression "dStack_700 = pdVar18[3] * dStack_6e8" identifier = (binary_expression "pdVar18[3] * dStack_6e8" (subscript_expression "pdVar18[3]" identifier [ number_literal ]) * identifier)) ;) (expression_statement "dStack_6f8 = -pdVar18[1] * dStack_6e8;" (assignment_expression "dStack_6f8 = -pdVar18[1] * dStack_6e8" identifier = (binary_expression "-pdVar18[1] * dStack_6e8" (unary_expression "-pdVar18[1]" - (subscript_expression "pdVar18[1]" identifier [ number_literal ])) * identifier)) ;) (expression_statement "dStack_6f0 = -pdVar18[2] * dStack_6e8;" (assignment_expression "dStack_6f0 = -pdVar18[2] * dStack_6e8" identifier = (binary_expression "-pdVar18[2] * dStack_6e8" (unary_expression "-pdVar18[2]" - (subscript_expression "pdVar18[2]" identifier [ number_literal ])) * identifier)) ;) (expression_statement "dStack_6e8 = *pdVar18 * dStack_6e8;" (assignment_expression "dStack_6e8 = *pdVar18 * dStack_6e8" identifier = (binary_expression "*pdVar18 * dStack_6e8" (pointer_expression "*pdVar18" * identifier) * identifier)) ;) (expression_statement "dStack_6e0 = dStack_700 * -pdVar18[4] - dStack_6f0 * pdVar18[5];" (assignment_expression "dStack_6e0 = dStack_700 * -pdVar18[4] - dStack_6f0 * pdVar18[5]" identifier = (binary_expression "dStack_700 * -pdVar18[4] - dStack_6f0 * pdVar18[5]" (binary_expression "dStack_700 * -pdVar18[4]" identifier * (unary_expression "-pdVar18[4]" - (subscript_expression "pdVar18[4]" identifier [ number_literal ]))) - (binary_expression "dStack_6f0 * pdVar18[5]" identifier * (subscript_expression "pdVar18[5]" identifier [ number_literal ])))) ;) (expression_statement "dStack_6d8 = dStack_6f8 * -pdVar18[4] - dStack_6e8 * pdVar18[5];" (assignment_expression "dStack_6d8 = dStack_6f8 * -pdVar18[4] - dStack_6e8 * pdVar18[5]" identifier = (binary_expression "dStack_6f8 * -pdVar18[4] - dStack_6e8 * pdVar18[5]" (binary_expression "dStack_6f8 * -pdVar18[4]" identifier * (unary_expression "-pdVar18[4]" - (subscript_expression "pdVar18[4]" identifier [ number_literal ]))) - (binary_expression "dStack_6e8 * pdVar18[5]" identifier * (subscript_expression "pdVar18[5]" identifier [ number_literal ])))) ;) (expression_statement "(**(code **)(pcStack_758 + -0x75e4))(piVar3,auStack_6d0);" (call_expression "(**(code **)(pcStack_758 + -0x75e4))(piVar3,auStack_6d0)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x75e4))" ( (pointer_expression "**(code **)(pcStack_758 + -0x75e4)" * (pointer_expression "*(code **)(pcStack_758 + -0x75e4)" * (cast_expression "(code **)(pcStack_758 + -0x75e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x75e4)" ( (binary_expression "pcStack_758 + -0x75e4" identifier + number_literal) ))))) )) (argument_list "(piVar3,auStack_6d0)" ( identifier , identifier ))) ;) (expression_statement "dVar44 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0);" (assignment_expression "dVar44 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0)" * (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0)" ( (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x43d0" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" * (cast_expression "(int *)(pcStack_758 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fd0)" ( (binary_expression "pcStack_758 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "dVar41 = (double)(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar44);" (assignment_expression "dVar41 = (double)(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar44)" identifier = (cast_expression "(double)(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar44)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar44)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x7c78))" ( (pointer_expression "**(code **)(pcStack_758 + -0x7c78)" * (pointer_expression "*(code **)(pcStack_758 + -0x7c78)" * (cast_expression "(code **)(pcStack_758 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x7c78)" ( (binary_expression "pcStack_758 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(dStack_748 - dVar44)" ( (binary_expression "dStack_748 - dVar44" identifier - identifier) ))))) ;) (expression_statement "dVar43 = (double)(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar44);" (assignment_expression "dVar43 = (double)(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar44)" identifier = (cast_expression "(double)(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar44)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar44)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x7228))" ( (pointer_expression "**(code **)(pcStack_758 + -0x7228)" * (pointer_expression "*(code **)(pcStack_758 + -0x7228)" * (cast_expression "(code **)(pcStack_758 + -0x7228)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x7228)" ( (binary_expression "pcStack_758 + -0x7228" identifier + number_literal) ))))) )) (argument_list "(dStack_738 + dVar44)" ( (binary_expression "dStack_738 + dVar44" identifier + identifier) ))))) ;) (expression_statement "uVar5 = (**(code **)(pcStack_758 + -0x7144))(puVar25,pdVar6);" (assignment_expression "uVar5 = (**(code **)(pcStack_758 + -0x7144))(puVar25,pdVar6)" identifier = (call_expression "(**(code **)(pcStack_758 + -0x7144))(puVar25,pdVar6)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x7144))" ( (pointer_expression "**(code **)(pcStack_758 + -0x7144)" * (pointer_expression "*(code **)(pcStack_758 + -0x7144)" * (cast_expression "(code **)(pcStack_758 + -0x7144)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x7144)" ( (binary_expression "pcStack_758 + -0x7144" identifier + number_literal) ))))) )) (argument_list "(puVar25,pdVar6)" ( identifier , identifier )))) ;) (expression_statement "puVar37 = (undefined1 *)(**(code **)(pcStack_758 + -0x79c4))(piVar3,pdVar6);" (assignment_expression "puVar37 = (undefined1 *)(**(code **)(pcStack_758 + -0x79c4))(piVar3,pdVar6)" identifier = (cast_expression "(undefined1 *)(**(code **)(pcStack_758 + -0x79c4))(piVar3,pdVar6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_758 + -0x79c4))(piVar3,pdVar6)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x79c4))" ( (pointer_expression "**(code **)(pcStack_758 + -0x79c4)" * (pointer_expression "*(code **)(pcStack_758 + -0x79c4)" * (cast_expression "(code **)(pcStack_758 + -0x79c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x79c4)" ( (binary_expression "pcStack_758 + -0x79c4" identifier + number_literal) ))))) )) (argument_list "(piVar3,pdVar6)" ( identifier , identifier ))))) ;) (expression_statement "iVar4 = (**(code **)(pcStack_758 + -0x73e4))(puVar25);" (assignment_expression "iVar4 = (**(code **)(pcStack_758 + -0x73e4))(puVar25)" identifier = (call_expression "(**(code **)(pcStack_758 + -0x73e4))(puVar25)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x73e4))" ( (pointer_expression "**(code **)(pcStack_758 + -0x73e4)" * (pointer_expression "*(code **)(pcStack_758 + -0x73e4)" * (cast_expression "(code **)(pcStack_758 + -0x73e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x73e4)" ( (binary_expression "pcStack_758 + -0x73e4" identifier + number_literal) ))))) )) (argument_list "(puVar25)" ( identifier )))) ;) (if_statement "if (((iVar4 == 4) || (iVar4 = (**(code **)(pcStack_758 + -0x73e4))(puVar25), iVar4 == 3)) &&\n       ((iVar4 = (**(code **)(pcStack_758 + -0x73e4))(piVar3), iVar4 == 4 ||\n        (iVar4 = (**(code **)(pcStack_758 + -0x73e4))(piVar3), iVar4 == 3)))) {\n      (**(code **)(pcStack_758 + -0x775c))(7);\n      iVar12 = (int)dVar43 - (int)dVar41;\n      iVar4 = iVar12;\n      if (iVar12 < 0) {\n        iVar4 = iVar12 + 0x3f;\n      }\n      pdVar18 = (double *)(iVar4 >> 6);\n      if (extraout_v1 < (int)pdVar18) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        bVar1 = extraout_v1_01 < 2;\n      }\n      else {\n        bVar1 = iVar12 < 0x80;\n      }\n      pdVar31 = (double *)0x1;\n      if (((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar31 = pdVar18, extraout_v1_02 < (int)pdVar18)\n         ) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar31 = extraout_v1_03;\n        pdVar18 = extraout_v1_03;\n      }\n    }\n    else {\n      uVar53 = (**(code **)(pcStack_758 + -0x775c))(7);\n      if (((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)) {\n        uVar53 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar53 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar39 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar53 < 2) {\n          pdVar31 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }\n      else {\nLAB_000a77f8:\n        pcVar39 = *(code **)(pcStack_758 + -0x775c);\n      }\n      uVar53 = (*pcVar39)(7);\n      if (((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar31 = extraout_v1_00;\n      }\n      else {\n        pdVar31 = (double *)0x2;\n      }\n    }" if (parenthesized_expression "(((iVar4 == 4) || (iVar4 = (**(code **)(pcStack_758 + -0x73e4))(puVar25), iVar4 == 3)) &&\n       ((iVar4 = (**(code **)(pcStack_758 + -0x73e4))(piVar3), iVar4 == 4 ||\n        (iVar4 = (**(code **)(pcStack_758 + -0x73e4))(piVar3), iVar4 == 3))))" ( (binary_expression "((iVar4 == 4) || (iVar4 = (**(code **)(pcStack_758 + -0x73e4))(puVar25), iVar4 == 3)) &&\n       ((iVar4 = (**(code **)(pcStack_758 + -0x73e4))(piVar3), iVar4 == 4 ||\n        (iVar4 = (**(code **)(pcStack_758 + -0x73e4))(piVar3), iVar4 == 3)))" (parenthesized_expression "((iVar4 == 4) || (iVar4 = (**(code **)(pcStack_758 + -0x73e4))(puVar25), iVar4 == 3))" ( (binary_expression "(iVar4 == 4) || (iVar4 = (**(code **)(pcStack_758 + -0x73e4))(puVar25), iVar4 == 3)" (parenthesized_expression "(iVar4 == 4)" ( (binary_expression "iVar4 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar4 = (**(code **)(pcStack_758 + -0x73e4))(puVar25), iVar4 == 3)" ( (comma_expression "iVar4 = (**(code **)(pcStack_758 + -0x73e4))(puVar25), iVar4 == 3" (assignment_expression "iVar4 = (**(code **)(pcStack_758 + -0x73e4))(puVar25)" identifier = (call_expression "(**(code **)(pcStack_758 + -0x73e4))(puVar25)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x73e4))" ( (pointer_expression "**(code **)(pcStack_758 + -0x73e4)" * (pointer_expression "*(code **)(pcStack_758 + -0x73e4)" * (cast_expression "(code **)(pcStack_758 + -0x73e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x73e4)" ( (binary_expression "pcStack_758 + -0x73e4" identifier + number_literal) ))))) )) (argument_list "(puVar25)" ( identifier )))) , (binary_expression "iVar4 == 3" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar4 = (**(code **)(pcStack_758 + -0x73e4))(piVar3), iVar4 == 4 ||\n        (iVar4 = (**(code **)(pcStack_758 + -0x73e4))(piVar3), iVar4 == 3)))" ( (parenthesized_expression "(iVar4 = (**(code **)(pcStack_758 + -0x73e4))(piVar3), iVar4 == 4 ||\n        (iVar4 = (**(code **)(pcStack_758 + -0x73e4))(piVar3), iVar4 == 3))" ( (comma_expression "iVar4 = (**(code **)(pcStack_758 + -0x73e4))(piVar3), iVar4 == 4 ||\n        (iVar4 = (**(code **)(pcStack_758 + -0x73e4))(piVar3), iVar4 == 3)" (assignment_expression "iVar4 = (**(code **)(pcStack_758 + -0x73e4))(piVar3)" identifier = (call_expression "(**(code **)(pcStack_758 + -0x73e4))(piVar3)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x73e4))" ( (pointer_expression "**(code **)(pcStack_758 + -0x73e4)" * (pointer_expression "*(code **)(pcStack_758 + -0x73e4)" * (cast_expression "(code **)(pcStack_758 + -0x73e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x73e4)" ( (binary_expression "pcStack_758 + -0x73e4" identifier + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier )))) , (binary_expression "iVar4 == 4 ||\n        (iVar4 = (**(code **)(pcStack_758 + -0x73e4))(piVar3), iVar4 == 3)" (binary_expression "iVar4 == 4" identifier == number_literal) || (parenthesized_expression "(iVar4 = (**(code **)(pcStack_758 + -0x73e4))(piVar3), iVar4 == 3)" ( (comma_expression "iVar4 = (**(code **)(pcStack_758 + -0x73e4))(piVar3), iVar4 == 3" (assignment_expression "iVar4 = (**(code **)(pcStack_758 + -0x73e4))(piVar3)" identifier = (call_expression "(**(code **)(pcStack_758 + -0x73e4))(piVar3)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x73e4))" ( (pointer_expression "**(code **)(pcStack_758 + -0x73e4)" * (pointer_expression "*(code **)(pcStack_758 + -0x73e4)" * (cast_expression "(code **)(pcStack_758 + -0x73e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x73e4)" ( (binary_expression "pcStack_758 + -0x73e4" identifier + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier )))) , (binary_expression "iVar4 == 3" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n      (**(code **)(pcStack_758 + -0x775c))(7);\n      iVar12 = (int)dVar43 - (int)dVar41;\n      iVar4 = iVar12;\n      if (iVar12 < 0) {\n        iVar4 = iVar12 + 0x3f;\n      }\n      pdVar18 = (double *)(iVar4 >> 6);\n      if (extraout_v1 < (int)pdVar18) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        bVar1 = extraout_v1_01 < 2;\n      }\n      else {\n        bVar1 = iVar12 < 0x80;\n      }\n      pdVar31 = (double *)0x1;\n      if (((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar31 = pdVar18, extraout_v1_02 < (int)pdVar18)\n         ) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar31 = extraout_v1_03;\n        pdVar18 = extraout_v1_03;\n      }\n    }" { (expression_statement "(**(code **)(pcStack_758 + -0x775c))(7);" (call_expression "(**(code **)(pcStack_758 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_758 + -0x775c)" * (pointer_expression "*(code **)(pcStack_758 + -0x775c)" * (cast_expression "(code **)(pcStack_758 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x775c)" ( (binary_expression "pcStack_758 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "iVar12 = (int)dVar43 - (int)dVar41;" (assignment_expression "iVar12 = (int)dVar43 - (int)dVar41" identifier = (binary_expression "(int)dVar43 - (int)dVar41" (cast_expression "(int)dVar43" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)dVar41" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar4 = iVar12;" (assignment_expression "iVar4 = iVar12" identifier = identifier) ;) (if_statement "if (iVar12 < 0) {\n        iVar4 = iVar12 + 0x3f;\n      }" if (parenthesized_expression "(iVar12 < 0)" ( (binary_expression "iVar12 < 0" identifier < number_literal) )) (compound_statement "{\n        iVar4 = iVar12 + 0x3f;\n      }" { (expression_statement "iVar4 = iVar12 + 0x3f;" (assignment_expression "iVar4 = iVar12 + 0x3f" identifier = (binary_expression "iVar12 + 0x3f" identifier + number_literal)) ;) })) (expression_statement "pdVar18 = (double *)(iVar4 >> 6);" (assignment_expression "pdVar18 = (double *)(iVar4 >> 6)" identifier = (cast_expression "(double *)(iVar4 >> 6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 >> 6)" ( (binary_expression "iVar4 >> 6" identifier >> number_literal) )))) ;) (if_statement "if (extraout_v1 < (int)pdVar18) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        bVar1 = extraout_v1_01 < 2;\n      }\n      else {\n        bVar1 = iVar12 < 0x80;\n      }" if (parenthesized_expression "(extraout_v1 < (int)pdVar18)" ( (binary_expression "extraout_v1 < (int)pdVar18" identifier < (cast_expression "(int)pdVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        bVar1 = extraout_v1_01 < 2;\n      }" { (expression_statement "(**(code **)(pcStack_758 + -0x775c))(7);" (call_expression "(**(code **)(pcStack_758 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_758 + -0x775c)" * (pointer_expression "*(code **)(pcStack_758 + -0x775c)" * (cast_expression "(code **)(pcStack_758 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x775c)" ( (binary_expression "pcStack_758 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "bVar1 = extraout_v1_01 < 2;" (assignment_expression "bVar1 = extraout_v1_01 < 2" identifier = (binary_expression "extraout_v1_01 < 2" identifier < number_literal)) ;) }) (else_clause "else {\n        bVar1 = iVar12 < 0x80;\n      }" else (compound_statement "{\n        bVar1 = iVar12 < 0x80;\n      }" { (expression_statement "bVar1 = iVar12 < 0x80;" (assignment_expression "bVar1 = iVar12 < 0x80" identifier = (binary_expression "iVar12 < 0x80" identifier < number_literal)) ;) }))) (expression_statement "pdVar31 = (double *)0x1;" (assignment_expression "pdVar31 = (double *)0x1" identifier = (cast_expression "(double *)0x1" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar31 = pdVar18, extraout_v1_02 < (int)pdVar18)\n         ) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar31 = extraout_v1_03;\n        pdVar18 = extraout_v1_03;\n      }" if (parenthesized_expression "(((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar31 = pdVar18, extraout_v1_02 < (int)pdVar18)\n         )" ( (binary_expression "((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar31 = pdVar18, extraout_v1_02 < (int)pdVar18)" (parenthesized_expression "((bool)(bVar1 ^ 1))" ( (cast_expression "(bool)(bVar1 ^ 1)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar1 ^ 1)" ( (binary_expression "bVar1 ^ 1" identifier ^ number_literal) ))) )) && (parenthesized_expression "((**(code **)(pcStack_758 + -0x775c))(7), pdVar31 = pdVar18, extraout_v1_02 < (int)pdVar18)" ( (comma_expression "(**(code **)(pcStack_758 + -0x775c))(7), pdVar31 = pdVar18, extraout_v1_02 < (int)pdVar18" (call_expression "(**(code **)(pcStack_758 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_758 + -0x775c)" * (pointer_expression "*(code **)(pcStack_758 + -0x775c)" * (cast_expression "(code **)(pcStack_758 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x775c)" ( (binary_expression "pcStack_758 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) , (comma_expression "pdVar31 = pdVar18, extraout_v1_02 < (int)pdVar18" (assignment_expression "pdVar31 = pdVar18" identifier = identifier) , (binary_expression "extraout_v1_02 < (int)pdVar18" identifier < (cast_expression "(int)pdVar18" ( (type_descriptor "int" primitive_type) ) identifier)))) ))) )) (compound_statement "{\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar31 = extraout_v1_03;\n        pdVar18 = extraout_v1_03;\n      }" { (expression_statement "(**(code **)(pcStack_758 + -0x775c))(7);" (call_expression "(**(code **)(pcStack_758 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_758 + -0x775c)" * (pointer_expression "*(code **)(pcStack_758 + -0x775c)" * (cast_expression "(code **)(pcStack_758 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x775c)" ( (binary_expression "pcStack_758 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "pdVar31 = extraout_v1_03;" (assignment_expression "pdVar31 = extraout_v1_03" identifier = identifier) ;) (expression_statement "pdVar18 = extraout_v1_03;" (assignment_expression "pdVar18 = extraout_v1_03" identifier = identifier) ;) })) }) (else_clause "else {\n      uVar53 = (**(code **)(pcStack_758 + -0x775c))(7);\n      if (((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)) {\n        uVar53 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar53 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar39 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar53 < 2) {\n          pdVar31 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }\n      else {\nLAB_000a77f8:\n        pcVar39 = *(code **)(pcStack_758 + -0x775c);\n      }\n      uVar53 = (*pcVar39)(7);\n      if (((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar31 = extraout_v1_00;\n      }\n      else {\n        pdVar31 = (double *)0x2;\n      }\n    }" else (compound_statement "{\n      uVar53 = (**(code **)(pcStack_758 + -0x775c))(7);\n      if (((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)) {\n        uVar53 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar53 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar39 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar53 < 2) {\n          pdVar31 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }\n      else {\nLAB_000a77f8:\n        pcVar39 = *(code **)(pcStack_758 + -0x775c);\n      }\n      uVar53 = (*pcVar39)(7);\n      if (((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar31 = extraout_v1_00;\n      }\n      else {\n        pdVar31 = (double *)0x2;\n      }\n    }" { (expression_statement "uVar53 = (**(code **)(pcStack_758 + -0x775c))(7);" (assignment_expression "uVar53 = (**(code **)(pcStack_758 + -0x775c))(7)" identifier = (call_expression "(**(code **)(pcStack_758 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_758 + -0x775c)" * (pointer_expression "*(code **)(pcStack_758 + -0x775c)" * (cast_expression "(code **)(pcStack_758 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x775c)" ( (binary_expression "pcStack_758 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)) {\n        uVar53 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar53 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar39 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar53 < 2) {\n          pdVar31 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }\n      else {\nLAB_000a77f8:\n        pcVar39 = *(code **)(pcStack_758 + -0x775c);\n      }" if (parenthesized_expression "(((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2))" ( (binary_expression "((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)" (parenthesized_expression "((int)((ulonglong)uVar53 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar53 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar53 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar53 >> 0x20)" ( (binary_expression "(ulonglong)uVar53 >> 0x20" (cast_expression "(ulonglong)uVar53" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "((uint)uVar53 < 2)" ( (binary_expression "(uint)uVar53 < 2" (cast_expression "(uint)uVar53" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) ))) )) (compound_statement "{\n        uVar53 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar53 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar39 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar53 < 2) {\n          pdVar31 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }" { (expression_statement "uVar53 = (**(code **)(pcStack_758 + -0x775c))(7);" (assignment_expression "uVar53 = (**(code **)(pcStack_758 + -0x775c))(7)" identifier = (call_expression "(**(code **)(pcStack_758 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_758 + -0x775c)" * (pointer_expression "*(code **)(pcStack_758 + -0x775c)" * (cast_expression "(code **)(pcStack_758 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x775c)" ( (binary_expression "pcStack_758 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar53 >> 0x20) != 0) goto LAB_000a77f8;" if (parenthesized_expression "((int)((ulonglong)uVar53 >> 0x20) != 0)" ( (binary_expression "(int)((ulonglong)uVar53 >> 0x20) != 0" (cast_expression "(int)((ulonglong)uVar53 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar53 >> 0x20)" ( (binary_expression "(ulonglong)uVar53 >> 0x20" (cast_expression "(ulonglong)uVar53" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) != number_literal) )) (goto_statement "goto LAB_000a77f8;" goto statement_identifier ;)) (expression_statement "pcVar39 = *(code **)(pcStack_758 + -0x775c);" (assignment_expression "pcVar39 = *(code **)(pcStack_758 + -0x775c)" identifier = (pointer_expression "*(code **)(pcStack_758 + -0x775c)" * (cast_expression "(code **)(pcStack_758 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x775c)" ( (binary_expression "pcStack_758 + -0x775c" identifier + number_literal) ))))) ;) (if_statement "if ((uint)uVar53 < 2) {\n          pdVar31 = (double *)0x1;\n          goto LAB_000a7818;\n        }" if (parenthesized_expression "((uint)uVar53 < 2)" ( (binary_expression "(uint)uVar53 < 2" (cast_expression "(uint)uVar53" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n          pdVar31 = (double *)0x1;\n          goto LAB_000a7818;\n        }" { (expression_statement "pdVar31 = (double *)0x1;" (assignment_expression "pdVar31 = (double *)0x1" identifier = (cast_expression "(double *)0x1" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000a7818;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_000a77f8:\n        pcVar39 = *(code **)(pcStack_758 + -0x775c);\n      }" else (compound_statement "{\nLAB_000a77f8:\n        pcVar39 = *(code **)(pcStack_758 + -0x775c);\n      }" { (labeled_statement "LAB_000a77f8:\n        pcVar39 = *(code **)(pcStack_758 + -0x775c);" statement_identifier : (expression_statement "pcVar39 = *(code **)(pcStack_758 + -0x775c);" (assignment_expression "pcVar39 = *(code **)(pcStack_758 + -0x775c)" identifier = (pointer_expression "*(code **)(pcStack_758 + -0x775c)" * (cast_expression "(code **)(pcStack_758 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x775c)" ( (binary_expression "pcStack_758 + -0x775c" identifier + number_literal) ))))) ;)) }))) (expression_statement "uVar53 = (*pcVar39)(7);" (assignment_expression "uVar53 = (*pcVar39)(7)" identifier = (call_expression "(*pcVar39)(7)" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar31 = extraout_v1_00;\n      }\n      else {\n        pdVar31 = (double *)0x2;\n      }" if (parenthesized_expression "(((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2))" ( (binary_expression "((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)" (parenthesized_expression "((int)((ulonglong)uVar53 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar53 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar53 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar53 >> 0x20)" ( (binary_expression "(ulonglong)uVar53 >> 0x20" (cast_expression "(ulonglong)uVar53" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "((uint)uVar53 < 2)" ( (binary_expression "(uint)uVar53 < 2" (cast_expression "(uint)uVar53" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) ))) )) (compound_statement "{\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar31 = extraout_v1_00;\n      }" { (expression_statement "(**(code **)(pcStack_758 + -0x775c))(7);" (call_expression "(**(code **)(pcStack_758 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_758 + -0x775c)" * (pointer_expression "*(code **)(pcStack_758 + -0x775c)" * (cast_expression "(code **)(pcStack_758 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x775c)" ( (binary_expression "pcStack_758 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "pdVar31 = extraout_v1_00;" (assignment_expression "pdVar31 = extraout_v1_00" identifier = identifier) ;) }) (else_clause "else {\n        pdVar31 = (double *)0x2;\n      }" else (compound_statement "{\n        pdVar31 = (double *)0x2;\n      }" { (expression_statement "pdVar31 = (double *)0x2;" (assignment_expression "pdVar31 = (double *)0x2" identifier = (cast_expression "(double *)0x2" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }))) (labeled_statement "LAB_000a7818:\n    pdStack_720 = &dStack_700;" statement_identifier : (expression_statement "pdStack_720 = &dStack_700;" (assignment_expression "pdStack_720 = &dStack_700" identifier = (pointer_expression "&dStack_700" & identifier)) ;)) (expression_statement "puStack_714 = auStack_6d0;" (assignment_expression "puStack_714 = auStack_6d0" identifier = identifier) ;) (expression_statement "pdStack_710 = &dStack_750;" (assignment_expression "pdStack_710 = &dStack_750" identifier = (pointer_expression "&dStack_750" & identifier)) ;) (expression_statement "iStack_704 = 1;" (assignment_expression "iStack_704 = 1" identifier = number_literal) ;) (expression_statement "ppiVar26 = &piStack_72c;" (assignment_expression "ppiVar26 = &piStack_72c" identifier = (pointer_expression "&piStack_72c" & identifier)) ;) (expression_statement "piStack_72c = piVar3;" (assignment_expression "piStack_72c = piVar3" identifier = identifier) ;) (expression_statement "puStack_728 = puVar25;" (assignment_expression "puStack_728 = puVar25" identifier = identifier) ;) (expression_statement "pdStack_724 = pdVar6;" (assignment_expression "pdStack_724 = pdVar6" identifier = identifier) ;) (expression_statement "puStack_71c = puVar37;" (assignment_expression "puStack_71c = puVar37" identifier = identifier) ;) (expression_statement "uStack_718 = uVar5;" (assignment_expression "uStack_718 = uVar5" identifier = identifier) ;) (expression_statement "iStack_70c = (int)dVar41;" (assignment_expression "iStack_70c = (int)dVar41" identifier = (cast_expression "(int)dVar41" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iStack_708 = (int)dVar43;" (assignment_expression "iStack_708 = (int)dVar43" identifier = (cast_expression "(int)dVar43" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "(**(code **)(pcStack_758 + -0x7700))\n              (*(int *)(pcStack_758 + -0x7ea0) + 0x34c4,ppiVar26,pdVar31,0);" (call_expression "(**(code **)(pcStack_758 + -0x7700))\n              (*(int *)(pcStack_758 + -0x7ea0) + 0x34c4,ppiVar26,pdVar31,0)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x7700))" ( (pointer_expression "**(code **)(pcStack_758 + -0x7700)" * (pointer_expression "*(code **)(pcStack_758 + -0x7700)" * (cast_expression "(code **)(pcStack_758 + -0x7700)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x7700)" ( (binary_expression "pcStack_758 + -0x7700" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_758 + -0x7ea0) + 0x34c4,ppiVar26,pdVar31,0)" ( (binary_expression "*(int *)(pcStack_758 + -0x7ea0) + 0x34c4" (pointer_expression "*(int *)(pcStack_758 + -0x7ea0)" * (cast_expression "(int *)(pcStack_758 + -0x7ea0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7ea0)" ( (binary_expression "pcStack_758 + -0x7ea0" identifier + number_literal) )))) + number_literal) , identifier , identifier , number_literal ))) ;) (expression_statement "iVar4 = iStack_704;" (assignment_expression "iVar4 = iStack_704" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_758 + -0x79a4))(uVar5);" (call_expression "(**(code **)(pcStack_758 + -0x79a4))(uVar5)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x79a4))" ( (pointer_expression "**(code **)(pcStack_758 + -0x79a4)" * (pointer_expression "*(code **)(pcStack_758 + -0x79a4)" * (cast_expression "(code **)(pcStack_758 + -0x79a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x79a4)" ( (binary_expression "pcStack_758 + -0x79a4" identifier + number_literal) ))))) )) (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "(**(code **)(pcStack_758 + -0x79a4))(puVar37);" (call_expression "(**(code **)(pcStack_758 + -0x79a4))(puVar37)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x79a4))" ( (pointer_expression "**(code **)(pcStack_758 + -0x79a4)" * (pointer_expression "*(code **)(pcStack_758 + -0x79a4)" * (cast_expression "(code **)(pcStack_758 + -0x79a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x79a4)" ( (binary_expression "pcStack_758 + -0x79a4" identifier + number_literal) ))))) )) (argument_list "(puVar37)" ( identifier ))) ;) })) (if_statement "if (uStack_638._4_4_ == **(int **)(pcStack_758 + -0x7668)) {\n    return;\n  }" if (parenthesized_expression "(uStack_638._4_4_ == **(int **)(pcStack_758 + -0x7668))" ( (binary_expression "uStack_638._4_4_ == **(int **)(pcStack_758 + -0x7668)" (field_expression "uStack_638._4_4_" identifier . field_identifier) == (pointer_expression "**(int **)(pcStack_758 + -0x7668)" * (pointer_expression "*(int **)(pcStack_758 + -0x7668)" * (cast_expression "(int **)(pcStack_758 + -0x7668)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x7668)" ( (binary_expression "pcStack_758 + -0x7668" identifier + number_literal) )))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar39 = *(code **)(pcStack_758 + -0x7834);" (assignment_expression "pcVar39 = *(code **)(pcStack_758 + -0x7834)" identifier = (pointer_expression "*(code **)(pcStack_758 + -0x7834)" * (cast_expression "(code **)(pcStack_758 + -0x7834)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x7834)" ( (binary_expression "pcStack_758 + -0x7834" identifier + number_literal) ))))) ;) (expression_statement "pcVar40 = DrawGradientImage;" (assignment_expression "pcVar40 = DrawGradientImage" identifier = identifier) ;) (expression_statement "iVar12 = uStack_638._4_4_;" (assignment_expression "iVar12 = uStack_638._4_4_" identifier = (field_expression "uStack_638._4_4_" identifier . field_identifier)) ;) (expression_statement "(*pcVar39)();" (call_expression "(*pcVar39)()" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_830 = pcVar39 + 0x359e18;" (assignment_expression "pcStack_830 = pcVar39 + 0x359e18" identifier = (binary_expression "pcVar39 + 0x359e18" identifier + number_literal)) ;) (expression_statement "puStack_794 = (undefined8 *)**(undefined4 **)(pcVar39 + 0x3527b0);" (assignment_expression "puStack_794 = (undefined8 *)**(undefined4 **)(pcVar39 + 0x3527b0)" identifier = (cast_expression "(undefined8 *)**(undefined4 **)(pcVar39 + 0x3527b0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar39 + 0x3527b0)" * (pointer_expression "*(undefined4 **)(pcVar39 + 0x3527b0)" * (cast_expression "(undefined4 **)(pcVar39 + 0x3527b0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x3527b0)" ( (binary_expression "pcVar39 + 0x3527b0" identifier + number_literal) ))))))) ;) (expression_statement "pdStack_790 = pdVar18;" (assignment_expression "pdStack_790 = pdVar18" identifier = identifier) ;) (expression_statement "piStack_78c = piVar3;" (assignment_expression "piStack_78c = piVar3" identifier = identifier) ;) (expression_statement "puStack_788 = puVar25;" (assignment_expression "puStack_788 = puVar25" identifier = identifier) ;) (expression_statement "pdStack_784 = pdVar6;" (assignment_expression "pdStack_784 = pdVar6" identifier = identifier) ;) (expression_statement "iStack_780 = iVar4;" (assignment_expression "iStack_780 = iVar4" identifier = identifier) ;) (expression_statement "pcStack_77c = pcVar40;" (assignment_expression "pcStack_77c = pcVar40" identifier = identifier) ;) (expression_statement "dStack_778 = dVar44;" (assignment_expression "dStack_778 = dVar44" identifier = identifier) ;) (if_statement "if (iVar12 == 0) {\n    (**(code **)(pcVar39 + 0x352b88))\n              (*(int *)(pcVar39 + 0x351e48) + 0x3da0,*(int *)(pcVar39 + 0x351e4c) + 0x69c0,0x80a,\n               *(int *)(pcVar39 + 0x351e4c) + 0x7818);\n    return;\n  }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n    (**(code **)(pcVar39 + 0x352b88))\n              (*(int *)(pcVar39 + 0x351e48) + 0x3da0,*(int *)(pcVar39 + 0x351e4c) + 0x69c0,0x80a,\n               *(int *)(pcVar39 + 0x351e4c) + 0x7818);\n    return;\n  }" { (expression_statement "(**(code **)(pcVar39 + 0x352b88))\n              (*(int *)(pcVar39 + 0x351e48) + 0x3da0,*(int *)(pcVar39 + 0x351e4c) + 0x69c0,0x80a,\n               *(int *)(pcVar39 + 0x351e4c) + 0x7818);" (call_expression "(**(code **)(pcVar39 + 0x352b88))\n              (*(int *)(pcVar39 + 0x351e48) + 0x3da0,*(int *)(pcVar39 + 0x351e4c) + 0x69c0,0x80a,\n               *(int *)(pcVar39 + 0x351e4c) + 0x7818)" (parenthesized_expression "(**(code **)(pcVar39 + 0x352b88))" ( (pointer_expression "**(code **)(pcVar39 + 0x352b88)" * (pointer_expression "*(code **)(pcVar39 + 0x352b88)" * (cast_expression "(code **)(pcVar39 + 0x352b88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x352b88)" ( (binary_expression "pcVar39 + 0x352b88" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar39 + 0x351e48) + 0x3da0,*(int *)(pcVar39 + 0x351e4c) + 0x69c0,0x80a,\n               *(int *)(pcVar39 + 0x351e4c) + 0x7818)" ( (binary_expression "*(int *)(pcVar39 + 0x351e48) + 0x3da0" (pointer_expression "*(int *)(pcVar39 + 0x351e48)" * (cast_expression "(int *)(pcVar39 + 0x351e48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x351e48)" ( (binary_expression "pcVar39 + 0x351e48" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar39 + 0x351e4c) + 0x69c0" (pointer_expression "*(int *)(pcVar39 + 0x351e4c)" * (cast_expression "(int *)(pcVar39 + 0x351e4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x351e4c)" ( (binary_expression "pcVar39 + 0x351e4c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar39 + 0x351e4c) + 0x7818" (pointer_expression "*(int *)(pcVar39 + 0x351e4c)" * (cast_expression "(int *)(pcVar39 + 0x351e4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x351e4c)" ( (binary_expression "pcVar39 + 0x351e4c" identifier + number_literal) )))) + number_literal) ))) ;) (return_statement "return;" return ;) })) (if_statement "if (*(int *)(iVar12 + 0x336c) != -0x54535255) {\n    (**(code **)(pcVar39 + 0x352b88))\n              (*(int *)(pcVar39 + 0x351e4c) + -0x784,*(int *)(pcVar39 + 0x351e4c) + 0x69c0,0x80b,\n               *(int *)(pcVar39 + 0x351e4c) + 0x7818);\n    return;\n  }" if (parenthesized_expression "(*(int *)(iVar12 + 0x336c) != -0x54535255)" ( (binary_expression "*(int *)(iVar12 + 0x336c) != -0x54535255" (pointer_expression "*(int *)(iVar12 + 0x336c)" * (cast_expression "(int *)(iVar12 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x336c)" ( (binary_expression "iVar12 + 0x336c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    (**(code **)(pcVar39 + 0x352b88))\n              (*(int *)(pcVar39 + 0x351e4c) + -0x784,*(int *)(pcVar39 + 0x351e4c) + 0x69c0,0x80b,\n               *(int *)(pcVar39 + 0x351e4c) + 0x7818);\n    return;\n  }" { (expression_statement "(**(code **)(pcVar39 + 0x352b88))\n              (*(int *)(pcVar39 + 0x351e4c) + -0x784,*(int *)(pcVar39 + 0x351e4c) + 0x69c0,0x80b,\n               *(int *)(pcVar39 + 0x351e4c) + 0x7818);" (call_expression "(**(code **)(pcVar39 + 0x352b88))\n              (*(int *)(pcVar39 + 0x351e4c) + -0x784,*(int *)(pcVar39 + 0x351e4c) + 0x69c0,0x80b,\n               *(int *)(pcVar39 + 0x351e4c) + 0x7818)" (parenthesized_expression "(**(code **)(pcVar39 + 0x352b88))" ( (pointer_expression "**(code **)(pcVar39 + 0x352b88)" * (pointer_expression "*(code **)(pcVar39 + 0x352b88)" * (cast_expression "(code **)(pcVar39 + 0x352b88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x352b88)" ( (binary_expression "pcVar39 + 0x352b88" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar39 + 0x351e4c) + -0x784,*(int *)(pcVar39 + 0x351e4c) + 0x69c0,0x80b,\n               *(int *)(pcVar39 + 0x351e4c) + 0x7818)" ( (binary_expression "*(int *)(pcVar39 + 0x351e4c) + -0x784" (pointer_expression "*(int *)(pcVar39 + 0x351e4c)" * (cast_expression "(int *)(pcVar39 + 0x351e4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x351e4c)" ( (binary_expression "pcVar39 + 0x351e4c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar39 + 0x351e4c) + 0x69c0" (pointer_expression "*(int *)(pcVar39 + 0x351e4c)" * (cast_expression "(int *)(pcVar39 + 0x351e4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x351e4c)" ( (binary_expression "pcVar39 + 0x351e4c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar39 + 0x351e4c) + 0x7818" (pointer_expression "*(int *)(pcVar39 + 0x351e4c)" * (cast_expression "(int *)(pcVar39 + 0x351e4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x351e4c)" ( (binary_expression "pcVar39 + 0x351e4c" identifier + number_literal) )))) + number_literal) ))) ;) (return_statement "return;" return ;) })) (if_statement "if (*(int *)(iVar12 + 0x3350) != 0) {\n    iStack_838 = *(int *)(pcVar39 + 0x351e50) + -0x2f6c;\n    iStack_834 = iVar12 + 0x340;\n    (**(code **)(pcVar39 + 0x352760))\n              (0x8000,*(int *)(pcVar39 + 0x351e4c) + 0x69c0,*(int *)(pcVar39 + 0x351e4c) + 0x7804,\n               0x80d);\n  }" if (parenthesized_expression "(*(int *)(iVar12 + 0x3350) != 0)" ( (binary_expression "*(int *)(iVar12 + 0x3350) != 0" (pointer_expression "*(int *)(iVar12 + 0x3350)" * (cast_expression "(int *)(iVar12 + 0x3350)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3350)" ( (binary_expression "iVar12 + 0x3350" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iStack_838 = *(int *)(pcVar39 + 0x351e50) + -0x2f6c;\n    iStack_834 = iVar12 + 0x340;\n    (**(code **)(pcVar39 + 0x352760))\n              (0x8000,*(int *)(pcVar39 + 0x351e4c) + 0x69c0,*(int *)(pcVar39 + 0x351e4c) + 0x7804,\n               0x80d);\n  }" { (expression_statement "iStack_838 = *(int *)(pcVar39 + 0x351e50) + -0x2f6c;" (assignment_expression "iStack_838 = *(int *)(pcVar39 + 0x351e50) + -0x2f6c" identifier = (binary_expression "*(int *)(pcVar39 + 0x351e50) + -0x2f6c" (pointer_expression "*(int *)(pcVar39 + 0x351e50)" * (cast_expression "(int *)(pcVar39 + 0x351e50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x351e50)" ( (binary_expression "pcVar39 + 0x351e50" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iStack_834 = iVar12 + 0x340;" (assignment_expression "iStack_834 = iVar12 + 0x340" identifier = (binary_expression "iVar12 + 0x340" identifier + number_literal)) ;) (expression_statement "(**(code **)(pcVar39 + 0x352760))\n              (0x8000,*(int *)(pcVar39 + 0x351e4c) + 0x69c0,*(int *)(pcVar39 + 0x351e4c) + 0x7804,\n               0x80d);" (call_expression "(**(code **)(pcVar39 + 0x352760))\n              (0x8000,*(int *)(pcVar39 + 0x351e4c) + 0x69c0,*(int *)(pcVar39 + 0x351e4c) + 0x7804,\n               0x80d)" (parenthesized_expression "(**(code **)(pcVar39 + 0x352760))" ( (pointer_expression "**(code **)(pcVar39 + 0x352760)" * (pointer_expression "*(code **)(pcVar39 + 0x352760)" * (cast_expression "(code **)(pcVar39 + 0x352760)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x352760)" ( (binary_expression "pcVar39 + 0x352760" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(pcVar39 + 0x351e4c) + 0x69c0,*(int *)(pcVar39 + 0x351e4c) + 0x7804,\n               0x80d)" ( number_literal , (binary_expression "*(int *)(pcVar39 + 0x351e4c) + 0x69c0" (pointer_expression "*(int *)(pcVar39 + 0x351e4c)" * (cast_expression "(int *)(pcVar39 + 0x351e4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x351e4c)" ( (binary_expression "pcVar39 + 0x351e4c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar39 + 0x351e4c) + 0x7804" (pointer_expression "*(int *)(pcVar39 + 0x351e4c)" * (cast_expression "(int *)(pcVar39 + 0x351e4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x351e4c)" ( (binary_expression "pcVar39 + 0x351e4c" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) })) (if_statement "if (ppiVar26 == (int **)0x0) {\n    (**(code **)(pcStack_830 + -0x7290))\n              (*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c,*(int *)(pcStack_830 + -0x7fcc) + 0x69c0,\n               0x80e,*(int *)(pcStack_830 + -0x7fcc) + 0x7818);\n    return;\n  }" if (parenthesized_expression "(ppiVar26 == (int **)0x0)" ( (binary_expression "ppiVar26 == (int **)0x0" identifier == (cast_expression "(int **)0x0" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n    (**(code **)(pcStack_830 + -0x7290))\n              (*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c,*(int *)(pcStack_830 + -0x7fcc) + 0x69c0,\n               0x80e,*(int *)(pcStack_830 + -0x7fcc) + 0x7818);\n    return;\n  }" { (expression_statement "(**(code **)(pcStack_830 + -0x7290))\n              (*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c,*(int *)(pcStack_830 + -0x7fcc) + 0x69c0,\n               0x80e,*(int *)(pcStack_830 + -0x7fcc) + 0x7818);" (call_expression "(**(code **)(pcStack_830 + -0x7290))\n              (*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c,*(int *)(pcStack_830 + -0x7fcc) + 0x69c0,\n               0x80e,*(int *)(pcStack_830 + -0x7fcc) + 0x7818)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x7290))" ( (pointer_expression "**(code **)(pcStack_830 + -0x7290)" * (pointer_expression "*(code **)(pcStack_830 + -0x7290)" * (cast_expression "(code **)(pcStack_830 + -0x7290)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x7290)" ( (binary_expression "pcStack_830 + -0x7290" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c,*(int *)(pcStack_830 + -0x7fcc) + 0x69c0,\n               0x80e,*(int *)(pcStack_830 + -0x7fcc) + 0x7818)" ( (binary_expression "*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c" (pointer_expression "*(int *)(pcStack_830 + -0x7fcc)" * (cast_expression "(int *)(pcStack_830 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_830 + -0x7fcc)" ( (binary_expression "pcStack_830 + -0x7fcc" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcStack_830 + -0x7fcc) + 0x69c0" (pointer_expression "*(int *)(pcStack_830 + -0x7fcc)" * (cast_expression "(int *)(pcStack_830 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_830 + -0x7fcc)" ( (binary_expression "pcStack_830 + -0x7fcc" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcStack_830 + -0x7fcc) + 0x7818" (pointer_expression "*(int *)(pcStack_830 + -0x7fcc)" * (cast_expression "(int *)(pcStack_830 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_830 + -0x7fcc)" ( (binary_expression "pcStack_830 + -0x7fcc" identifier + number_literal) )))) + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "ppiVar35 = ppiVar26 + 0x6e;" (assignment_expression "ppiVar35 = ppiVar26 + 0x6e" identifier = (binary_expression "ppiVar26 + 0x6e" identifier + number_literal)) ;) (expression_statement "(**(code **)(pcStack_830 + -0x6fc4))\n            (ppiVar26[0x7c],ppiVar26[0x7d],0x60,*(int *)(pcStack_830 + -0x7ea0) + 0x224c);" (call_expression "(**(code **)(pcStack_830 + -0x6fc4))\n            (ppiVar26[0x7c],ppiVar26[0x7d],0x60,*(int *)(pcStack_830 + -0x7ea0) + 0x224c)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x6fc4))" ( (pointer_expression "**(code **)(pcStack_830 + -0x6fc4)" * (pointer_expression "*(code **)(pcStack_830 + -0x6fc4)" * (cast_expression "(code **)(pcStack_830 + -0x6fc4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x6fc4)" ( (binary_expression "pcStack_830 + -0x6fc4" identifier + number_literal) ))))) )) (argument_list "(ppiVar26[0x7c],ppiVar26[0x7d],0x60,*(int *)(pcStack_830 + -0x7ea0) + 0x224c)" ( (subscript_expression "ppiVar26[0x7c]" identifier [ number_literal ]) , (subscript_expression "ppiVar26[0x7d]" identifier [ number_literal ]) , number_literal , (binary_expression "*(int *)(pcStack_830 + -0x7ea0) + 0x224c" (pointer_expression "*(int *)(pcStack_830 + -0x7ea0)" * (cast_expression "(int *)(pcStack_830 + -0x7ea0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_830 + -0x7ea0)" ( (binary_expression "pcStack_830 + -0x7ea0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "ppiVar36 = ppiVar26 + 0x74;" (assignment_expression "ppiVar36 = ppiVar26 + 0x74" identifier = (binary_expression "ppiVar26 + 0x74" identifier + number_literal)) ;) (expression_statement "dVar41 = (*(double *)(ppiVar26 + 0x78) - *(double *)(ppiVar26 + 0x74)) *\n           (*(double *)(ppiVar26 + 0x78) - *(double *)(ppiVar26 + 0x74)) +\n           (*(double *)(ppiVar26 + 0x7a) - *(double *)(ppiVar26 + 0x76)) *\n           (*(double *)(ppiVar26 + 0x7a) - *(double *)(ppiVar26 + 0x76));" (assignment_expression "dVar41 = (*(double *)(ppiVar26 + 0x78) - *(double *)(ppiVar26 + 0x74)) *\n           (*(double *)(ppiVar26 + 0x78) - *(double *)(ppiVar26 + 0x74)) +\n           (*(double *)(ppiVar26 + 0x7a) - *(double *)(ppiVar26 + 0x76)) *\n           (*(double *)(ppiVar26 + 0x7a) - *(double *)(ppiVar26 + 0x76))" identifier = (binary_expression "(*(double *)(ppiVar26 + 0x78) - *(double *)(ppiVar26 + 0x74)) *\n           (*(double *)(ppiVar26 + 0x78) - *(double *)(ppiVar26 + 0x74)) +\n           (*(double *)(ppiVar26 + 0x7a) - *(double *)(ppiVar26 + 0x76)) *\n           (*(double *)(ppiVar26 + 0x7a) - *(double *)(ppiVar26 + 0x76))" (binary_expression "(*(double *)(ppiVar26 + 0x78) - *(double *)(ppiVar26 + 0x74)) *\n           (*(double *)(ppiVar26 + 0x78) - *(double *)(ppiVar26 + 0x74))" (parenthesized_expression "(*(double *)(ppiVar26 + 0x78) - *(double *)(ppiVar26 + 0x74))" ( (binary_expression "*(double *)(ppiVar26 + 0x78) - *(double *)(ppiVar26 + 0x74)" (pointer_expression "*(double *)(ppiVar26 + 0x78)" * (cast_expression "(double *)(ppiVar26 + 0x78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar26 + 0x78)" ( (binary_expression "ppiVar26 + 0x78" identifier + number_literal) )))) - (pointer_expression "*(double *)(ppiVar26 + 0x74)" * (cast_expression "(double *)(ppiVar26 + 0x74)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar26 + 0x74)" ( (binary_expression "ppiVar26 + 0x74" identifier + number_literal) ))))) )) * (parenthesized_expression "(*(double *)(ppiVar26 + 0x78) - *(double *)(ppiVar26 + 0x74))" ( (binary_expression "*(double *)(ppiVar26 + 0x78) - *(double *)(ppiVar26 + 0x74)" (pointer_expression "*(double *)(ppiVar26 + 0x78)" * (cast_expression "(double *)(ppiVar26 + 0x78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar26 + 0x78)" ( (binary_expression "ppiVar26 + 0x78" identifier + number_literal) )))) - (pointer_expression "*(double *)(ppiVar26 + 0x74)" * (cast_expression "(double *)(ppiVar26 + 0x74)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar26 + 0x74)" ( (binary_expression "ppiVar26 + 0x74" identifier + number_literal) ))))) ))) + (binary_expression "(*(double *)(ppiVar26 + 0x7a) - *(double *)(ppiVar26 + 0x76)) *\n           (*(double *)(ppiVar26 + 0x7a) - *(double *)(ppiVar26 + 0x76))" (parenthesized_expression "(*(double *)(ppiVar26 + 0x7a) - *(double *)(ppiVar26 + 0x76))" ( (binary_expression "*(double *)(ppiVar26 + 0x7a) - *(double *)(ppiVar26 + 0x76)" (pointer_expression "*(double *)(ppiVar26 + 0x7a)" * (cast_expression "(double *)(ppiVar26 + 0x7a)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar26 + 0x7a)" ( (binary_expression "ppiVar26 + 0x7a" identifier + number_literal) )))) - (pointer_expression "*(double *)(ppiVar26 + 0x76)" * (cast_expression "(double *)(ppiVar26 + 0x76)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar26 + 0x76)" ( (binary_expression "ppiVar26 + 0x76" identifier + number_literal) ))))) )) * (parenthesized_expression "(*(double *)(ppiVar26 + 0x7a) - *(double *)(ppiVar26 + 0x76))" ( (binary_expression "*(double *)(ppiVar26 + 0x7a) - *(double *)(ppiVar26 + 0x76)" (pointer_expression "*(double *)(ppiVar26 + 0x7a)" * (cast_expression "(double *)(ppiVar26 + 0x7a)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar26 + 0x7a)" ( (binary_expression "ppiVar26 + 0x7a" identifier + number_literal) )))) - (pointer_expression "*(double *)(ppiVar26 + 0x76)" * (cast_expression "(double *)(ppiVar26 + 0x76)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar26 + 0x76)" ( (binary_expression "ppiVar26 + 0x76" identifier + number_literal) ))))) ))))) ;) (expression_statement "dVar43 = SQRT(dVar41);" (assignment_expression "dVar43 = SQRT(dVar41)" identifier = (call_expression "SQRT(dVar41)" identifier (argument_list "(dVar41)" ( identifier )))) ;) (if_statement "if (0.0 <= dVar41) {\n    piStack_828 = ppiVar26[0x6f];\n  }\n  else {\n    (**(code **)(pcStack_830 + -0x7418))();\n    piStack_828 = ppiVar26[0x6f];\n  }" if (parenthesized_expression "(0.0 <= dVar41)" ( (binary_expression "0.0 <= dVar41" number_literal <= identifier) )) (compound_statement "{\n    piStack_828 = ppiVar26[0x6f];\n  }" { (expression_statement "piStack_828 = ppiVar26[0x6f];" (assignment_expression "piStack_828 = ppiVar26[0x6f]" identifier = (subscript_expression "ppiVar26[0x6f]" identifier [ number_literal ])) ;) }) (else_clause "else {\n    (**(code **)(pcStack_830 + -0x7418))();\n    piStack_828 = ppiVar26[0x6f];\n  }" else (compound_statement "{\n    (**(code **)(pcStack_830 + -0x7418))();\n    piStack_828 = ppiVar26[0x6f];\n  }" { (expression_statement "(**(code **)(pcStack_830 + -0x7418))();" (call_expression "(**(code **)(pcStack_830 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_830 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_830 + -0x7418)" * (pointer_expression "*(code **)(pcStack_830 + -0x7418)" * (cast_expression "(code **)(pcStack_830 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x7418)" ( (binary_expression "pcStack_830 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "piStack_828 = ppiVar26[0x6f];" (assignment_expression "piStack_828 = ppiVar26[0x6f]" identifier = (subscript_expression "ppiVar26[0x6f]" identifier [ number_literal ])) ;) }))) (expression_statement "piStack_824 = ppiVar26[0x70];" (assignment_expression "piStack_824 = ppiVar26[0x70]" identifier = (subscript_expression "ppiVar26[0x70]" identifier [ number_literal ])) ;) (expression_statement "piStack_820 = ppiVar26[0x71];" (assignment_expression "piStack_820 = ppiVar26[0x71]" identifier = (subscript_expression "ppiVar26[0x71]" identifier [ number_literal ])) ;) (expression_statement "piStack_81c = ppiVar26[0x72];" (assignment_expression "piStack_81c = ppiVar26[0x72]" identifier = (subscript_expression "ppiVar26[0x72]" identifier [ number_literal ])) ;) (expression_statement "(**(code **)(pcStack_830 + -0x75e4))(iVar12,auStack_7f0);" (call_expression "(**(code **)(pcStack_830 + -0x75e4))(iVar12,auStack_7f0)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x75e4))" ( (pointer_expression "**(code **)(pcStack_830 + -0x75e4)" * (pointer_expression "*(code **)(pcStack_830 + -0x75e4)" * (cast_expression "(code **)(pcStack_830 + -0x75e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x75e4)" ( (binary_expression "pcStack_830 + -0x75e4" identifier + number_literal) ))))) )) (argument_list "(iVar12,auStack_7f0)" ( identifier , identifier ))) ;) (expression_statement "uVar5 = (**(code **)(pcStack_830 + -0x79c4))(iVar12,pdVar31);" (assignment_expression "uVar5 = (**(code **)(pcStack_830 + -0x79c4))(iVar12,pdVar31)" identifier = (call_expression "(**(code **)(pcStack_830 + -0x79c4))(iVar12,pdVar31)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x79c4))" ( (pointer_expression "**(code **)(pcStack_830 + -0x79c4)" * (pointer_expression "*(code **)(pcStack_830 + -0x79c4)" * (cast_expression "(code **)(pcStack_830 + -0x79c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x79c4)" ( (binary_expression "pcStack_830 + -0x79c4" identifier + number_literal) ))))) )) (argument_list "(iVar12,pdVar31)" ( identifier , identifier )))) ;) (expression_statement "iVar4 = (**(code **)(pcStack_830 + -0x73e4))(iVar12);" (assignment_expression "iVar4 = (**(code **)(pcStack_830 + -0x73e4))(iVar12)" identifier = (call_expression "(**(code **)(pcStack_830 + -0x73e4))(iVar12)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x73e4))" ( (pointer_expression "**(code **)(pcStack_830 + -0x73e4)" * (pointer_expression "*(code **)(pcStack_830 + -0x73e4)" * (cast_expression "(code **)(pcStack_830 + -0x73e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x73e4)" ( (binary_expression "pcStack_830 + -0x73e4" identifier + number_literal) ))))) )) (argument_list "(iVar12)" ( identifier )))) ;) (if_statement "if ((iVar4 == 4) || (iVar4 = (**(code **)(pcStack_830 + -0x73e4))(iVar12), iVar4 == 3)) {\n    iVar4 = (**(code **)(pcStack_830 + -0x73e4))(iVar12);\n    if ((iVar4 != 4) && (iVar4 = (**(code **)(pcStack_830 + -0x73e4))(iVar12), iVar4 != 3))\n    goto LAB_000a7bf4;\n    (**(code **)(pcStack_830 + -0x775c))(7);\n    iVar51 = (int)piStack_824 - (int)piStack_81c;\n    iVar4 = iVar51;\n    if (iVar51 < 0) {\n      iVar4 = iVar51 + 0x3f;\n    }\n    if (extraout_v1_04 < iVar4 >> 6) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = iVar51 < 0x80;\n    }\n    iVar4 = 1;\n    dStack_818 = dVar43;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar4 = (int)piStack_824 - (int)piStack_81c;\n      if (iVar4 < 0) {\n        iVar4 = iVar4 + 0x3f;\n      }\n      iVar4 = iVar4 >> 6;\n      dStack_818 = dVar43;\n      if (extraout_v1_07 < iVar4) {\n        (**(code **)(pcStack_830 + -0x775c))(7);\n        iVar4 = extraout_v1_08;\n        dStack_818 = dVar43;\n      }\n    }\n  }\n  else {\nLAB_000a7bf4:\n    uVar53 = (**(code **)(pcStack_830 + -0x775c))(7);\n    if (((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)) {\n      uVar53 = (**(code **)(pcStack_830 + -0x775c))(7);\n      if ((int)((ulonglong)uVar53 >> 0x20) != 0) goto LAB_000a7c10;\n      pcVar39 = *(code **)(pcStack_830 + -0x775c);\n      if ((uint)uVar53 < 2) {\n        iVar4 = 1;\n        dStack_818 = dVar43;\n        goto LAB_000a7c30;\n      }\n    }\n    else {\nLAB_000a7c10:\n      pcVar39 = *(code **)(pcStack_830 + -0x775c);\n    }\n    uVar53 = (*pcVar39)(7);\n    if (((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar4 = extraout_v1_05;\n      dStack_818 = dVar43;\n    }\n    else {\n      iVar4 = 2;\n      dStack_818 = dVar43;\n    }\n  }" if (parenthesized_expression "((iVar4 == 4) || (iVar4 = (**(code **)(pcStack_830 + -0x73e4))(iVar12), iVar4 == 3))" ( (binary_expression "(iVar4 == 4) || (iVar4 = (**(code **)(pcStack_830 + -0x73e4))(iVar12), iVar4 == 3)" (parenthesized_expression "(iVar4 == 4)" ( (binary_expression "iVar4 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar4 = (**(code **)(pcStack_830 + -0x73e4))(iVar12), iVar4 == 3)" ( (comma_expression "iVar4 = (**(code **)(pcStack_830 + -0x73e4))(iVar12), iVar4 == 3" (assignment_expression "iVar4 = (**(code **)(pcStack_830 + -0x73e4))(iVar12)" identifier = (call_expression "(**(code **)(pcStack_830 + -0x73e4))(iVar12)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x73e4))" ( (pointer_expression "**(code **)(pcStack_830 + -0x73e4)" * (pointer_expression "*(code **)(pcStack_830 + -0x73e4)" * (cast_expression "(code **)(pcStack_830 + -0x73e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x73e4)" ( (binary_expression "pcStack_830 + -0x73e4" identifier + number_literal) ))))) )) (argument_list "(iVar12)" ( identifier )))) , (binary_expression "iVar4 == 3" identifier == number_literal)) ))) )) (compound_statement "{\n    iVar4 = (**(code **)(pcStack_830 + -0x73e4))(iVar12);\n    if ((iVar4 != 4) && (iVar4 = (**(code **)(pcStack_830 + -0x73e4))(iVar12), iVar4 != 3))\n    goto LAB_000a7bf4;\n    (**(code **)(pcStack_830 + -0x775c))(7);\n    iVar51 = (int)piStack_824 - (int)piStack_81c;\n    iVar4 = iVar51;\n    if (iVar51 < 0) {\n      iVar4 = iVar51 + 0x3f;\n    }\n    if (extraout_v1_04 < iVar4 >> 6) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = iVar51 < 0x80;\n    }\n    iVar4 = 1;\n    dStack_818 = dVar43;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar4 = (int)piStack_824 - (int)piStack_81c;\n      if (iVar4 < 0) {\n        iVar4 = iVar4 + 0x3f;\n      }\n      iVar4 = iVar4 >> 6;\n      dStack_818 = dVar43;\n      if (extraout_v1_07 < iVar4) {\n        (**(code **)(pcStack_830 + -0x775c))(7);\n        iVar4 = extraout_v1_08;\n        dStack_818 = dVar43;\n      }\n    }\n  }" { (expression_statement "iVar4 = (**(code **)(pcStack_830 + -0x73e4))(iVar12);" (assignment_expression "iVar4 = (**(code **)(pcStack_830 + -0x73e4))(iVar12)" identifier = (call_expression "(**(code **)(pcStack_830 + -0x73e4))(iVar12)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x73e4))" ( (pointer_expression "**(code **)(pcStack_830 + -0x73e4)" * (pointer_expression "*(code **)(pcStack_830 + -0x73e4)" * (cast_expression "(code **)(pcStack_830 + -0x73e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x73e4)" ( (binary_expression "pcStack_830 + -0x73e4" identifier + number_literal) ))))) )) (argument_list "(iVar12)" ( identifier )))) ;) (if_statement "if ((iVar4 != 4) && (iVar4 = (**(code **)(pcStack_830 + -0x73e4))(iVar12), iVar4 != 3))\n    goto LAB_000a7bf4;" if (parenthesized_expression "((iVar4 != 4) && (iVar4 = (**(code **)(pcStack_830 + -0x73e4))(iVar12), iVar4 != 3))" ( (binary_expression "(iVar4 != 4) && (iVar4 = (**(code **)(pcStack_830 + -0x73e4))(iVar12), iVar4 != 3)" (parenthesized_expression "(iVar4 != 4)" ( (binary_expression "iVar4 != 4" identifier != number_literal) )) && (parenthesized_expression "(iVar4 = (**(code **)(pcStack_830 + -0x73e4))(iVar12), iVar4 != 3)" ( (comma_expression "iVar4 = (**(code **)(pcStack_830 + -0x73e4))(iVar12), iVar4 != 3" (assignment_expression "iVar4 = (**(code **)(pcStack_830 + -0x73e4))(iVar12)" identifier = (call_expression "(**(code **)(pcStack_830 + -0x73e4))(iVar12)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x73e4))" ( (pointer_expression "**(code **)(pcStack_830 + -0x73e4)" * (pointer_expression "*(code **)(pcStack_830 + -0x73e4)" * (cast_expression "(code **)(pcStack_830 + -0x73e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x73e4)" ( (binary_expression "pcStack_830 + -0x73e4" identifier + number_literal) ))))) )) (argument_list "(iVar12)" ( identifier )))) , (binary_expression "iVar4 != 3" identifier != number_literal)) ))) )) (goto_statement "goto LAB_000a7bf4;" goto statement_identifier ;)) (expression_statement "(**(code **)(pcStack_830 + -0x775c))(7);" (call_expression "(**(code **)(pcStack_830 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_830 + -0x775c)" * (pointer_expression "*(code **)(pcStack_830 + -0x775c)" * (cast_expression "(code **)(pcStack_830 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x775c)" ( (binary_expression "pcStack_830 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "iVar51 = (int)piStack_824 - (int)piStack_81c;" (assignment_expression "iVar51 = (int)piStack_824 - (int)piStack_81c" identifier = (binary_expression "(int)piStack_824 - (int)piStack_81c" (cast_expression "(int)piStack_824" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piStack_81c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar4 = iVar51;" (assignment_expression "iVar4 = iVar51" identifier = identifier) ;) (if_statement "if (iVar51 < 0) {\n      iVar4 = iVar51 + 0x3f;\n    }" if (parenthesized_expression "(iVar51 < 0)" ( (binary_expression "iVar51 < 0" identifier < number_literal) )) (compound_statement "{\n      iVar4 = iVar51 + 0x3f;\n    }" { (expression_statement "iVar4 = iVar51 + 0x3f;" (assignment_expression "iVar4 = iVar51 + 0x3f" identifier = (binary_expression "iVar51 + 0x3f" identifier + number_literal)) ;) })) (if_statement "if (extraout_v1_04 < iVar4 >> 6) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = iVar51 < 0x80;\n    }" if (parenthesized_expression "(extraout_v1_04 < iVar4 >> 6)" ( (binary_expression "extraout_v1_04 < iVar4 >> 6" identifier < (binary_expression "iVar4 >> 6" identifier >> number_literal)) )) (compound_statement "{\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }" { (expression_statement "(**(code **)(pcStack_830 + -0x775c))(7);" (call_expression "(**(code **)(pcStack_830 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_830 + -0x775c)" * (pointer_expression "*(code **)(pcStack_830 + -0x775c)" * (cast_expression "(code **)(pcStack_830 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x775c)" ( (binary_expression "pcStack_830 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "bVar1 = extraout_v1_06 < 2;" (assignment_expression "bVar1 = extraout_v1_06 < 2" identifier = (binary_expression "extraout_v1_06 < 2" identifier < number_literal)) ;) }) (else_clause "else {\n      bVar1 = iVar51 < 0x80;\n    }" else (compound_statement "{\n      bVar1 = iVar51 < 0x80;\n    }" { (expression_statement "bVar1 = iVar51 < 0x80;" (assignment_expression "bVar1 = iVar51 < 0x80" identifier = (binary_expression "iVar51 < 0x80" identifier < number_literal)) ;) }))) (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) (expression_statement "dStack_818 = dVar43;" (assignment_expression "dStack_818 = dVar43" identifier = identifier) ;) (if_statement "if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar4 = (int)piStack_824 - (int)piStack_81c;\n      if (iVar4 < 0) {\n        iVar4 = iVar4 + 0x3f;\n      }\n      iVar4 = iVar4 >> 6;\n      dStack_818 = dVar43;\n      if (extraout_v1_07 < iVar4) {\n        (**(code **)(pcStack_830 + -0x775c))(7);\n        iVar4 = extraout_v1_08;\n        dStack_818 = dVar43;\n      }\n    }" if (parenthesized_expression "((bool)(bVar1 ^ 1))" ( (cast_expression "(bool)(bVar1 ^ 1)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar1 ^ 1)" ( (binary_expression "bVar1 ^ 1" identifier ^ number_literal) ))) )) (compound_statement "{\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar4 = (int)piStack_824 - (int)piStack_81c;\n      if (iVar4 < 0) {\n        iVar4 = iVar4 + 0x3f;\n      }\n      iVar4 = iVar4 >> 6;\n      dStack_818 = dVar43;\n      if (extraout_v1_07 < iVar4) {\n        (**(code **)(pcStack_830 + -0x775c))(7);\n        iVar4 = extraout_v1_08;\n        dStack_818 = dVar43;\n      }\n    }" { (expression_statement "(**(code **)(pcStack_830 + -0x775c))(7);" (call_expression "(**(code **)(pcStack_830 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_830 + -0x775c)" * (pointer_expression "*(code **)(pcStack_830 + -0x775c)" * (cast_expression "(code **)(pcStack_830 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x775c)" ( (binary_expression "pcStack_830 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "iVar4 = (int)piStack_824 - (int)piStack_81c;" (assignment_expression "iVar4 = (int)piStack_824 - (int)piStack_81c" identifier = (binary_expression "(int)piStack_824 - (int)piStack_81c" (cast_expression "(int)piStack_824" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piStack_81c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (iVar4 < 0) {\n        iVar4 = iVar4 + 0x3f;\n      }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n        iVar4 = iVar4 + 0x3f;\n      }" { (expression_statement "iVar4 = iVar4 + 0x3f;" (assignment_expression "iVar4 = iVar4 + 0x3f" identifier = (binary_expression "iVar4 + 0x3f" identifier + number_literal)) ;) })) (expression_statement "iVar4 = iVar4 >> 6;" (assignment_expression "iVar4 = iVar4 >> 6" identifier = (binary_expression "iVar4 >> 6" identifier >> number_literal)) ;) (expression_statement "dStack_818 = dVar43;" (assignment_expression "dStack_818 = dVar43" identifier = identifier) ;) (if_statement "if (extraout_v1_07 < iVar4) {\n        (**(code **)(pcStack_830 + -0x775c))(7);\n        iVar4 = extraout_v1_08;\n        dStack_818 = dVar43;\n      }" if (parenthesized_expression "(extraout_v1_07 < iVar4)" ( (binary_expression "extraout_v1_07 < iVar4" identifier < identifier) )) (compound_statement "{\n        (**(code **)(pcStack_830 + -0x775c))(7);\n        iVar4 = extraout_v1_08;\n        dStack_818 = dVar43;\n      }" { (expression_statement "(**(code **)(pcStack_830 + -0x775c))(7);" (call_expression "(**(code **)(pcStack_830 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_830 + -0x775c)" * (pointer_expression "*(code **)(pcStack_830 + -0x775c)" * (cast_expression "(code **)(pcStack_830 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x775c)" ( (binary_expression "pcStack_830 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "iVar4 = extraout_v1_08;" (assignment_expression "iVar4 = extraout_v1_08" identifier = identifier) ;) (expression_statement "dStack_818 = dVar43;" (assignment_expression "dStack_818 = dVar43" identifier = identifier) ;) })) })) }) (else_clause "else {\nLAB_000a7bf4:\n    uVar53 = (**(code **)(pcStack_830 + -0x775c))(7);\n    if (((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)) {\n      uVar53 = (**(code **)(pcStack_830 + -0x775c))(7);\n      if ((int)((ulonglong)uVar53 >> 0x20) != 0) goto LAB_000a7c10;\n      pcVar39 = *(code **)(pcStack_830 + -0x775c);\n      if ((uint)uVar53 < 2) {\n        iVar4 = 1;\n        dStack_818 = dVar43;\n        goto LAB_000a7c30;\n      }\n    }\n    else {\nLAB_000a7c10:\n      pcVar39 = *(code **)(pcStack_830 + -0x775c);\n    }\n    uVar53 = (*pcVar39)(7);\n    if (((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar4 = extraout_v1_05;\n      dStack_818 = dVar43;\n    }\n    else {\n      iVar4 = 2;\n      dStack_818 = dVar43;\n    }\n  }" else (compound_statement "{\nLAB_000a7bf4:\n    uVar53 = (**(code **)(pcStack_830 + -0x775c))(7);\n    if (((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)) {\n      uVar53 = (**(code **)(pcStack_830 + -0x775c))(7);\n      if ((int)((ulonglong)uVar53 >> 0x20) != 0) goto LAB_000a7c10;\n      pcVar39 = *(code **)(pcStack_830 + -0x775c);\n      if ((uint)uVar53 < 2) {\n        iVar4 = 1;\n        dStack_818 = dVar43;\n        goto LAB_000a7c30;\n      }\n    }\n    else {\nLAB_000a7c10:\n      pcVar39 = *(code **)(pcStack_830 + -0x775c);\n    }\n    uVar53 = (*pcVar39)(7);\n    if (((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar4 = extraout_v1_05;\n      dStack_818 = dVar43;\n    }\n    else {\n      iVar4 = 2;\n      dStack_818 = dVar43;\n    }\n  }" { (labeled_statement "LAB_000a7bf4:\n    uVar53 = (**(code **)(pcStack_830 + -0x775c))(7);" statement_identifier : (expression_statement "uVar53 = (**(code **)(pcStack_830 + -0x775c))(7);" (assignment_expression "uVar53 = (**(code **)(pcStack_830 + -0x775c))(7)" identifier = (call_expression "(**(code **)(pcStack_830 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_830 + -0x775c)" * (pointer_expression "*(code **)(pcStack_830 + -0x775c)" * (cast_expression "(code **)(pcStack_830 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x775c)" ( (binary_expression "pcStack_830 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal )))) ;)) (if_statement "if (((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)) {\n      uVar53 = (**(code **)(pcStack_830 + -0x775c))(7);\n      if ((int)((ulonglong)uVar53 >> 0x20) != 0) goto LAB_000a7c10;\n      pcVar39 = *(code **)(pcStack_830 + -0x775c);\n      if ((uint)uVar53 < 2) {\n        iVar4 = 1;\n        dStack_818 = dVar43;\n        goto LAB_000a7c30;\n      }\n    }\n    else {\nLAB_000a7c10:\n      pcVar39 = *(code **)(pcStack_830 + -0x775c);\n    }" if (parenthesized_expression "(((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2))" ( (binary_expression "((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)" (parenthesized_expression "((int)((ulonglong)uVar53 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar53 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar53 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar53 >> 0x20)" ( (binary_expression "(ulonglong)uVar53 >> 0x20" (cast_expression "(ulonglong)uVar53" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "((uint)uVar53 < 2)" ( (binary_expression "(uint)uVar53 < 2" (cast_expression "(uint)uVar53" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) ))) )) (compound_statement "{\n      uVar53 = (**(code **)(pcStack_830 + -0x775c))(7);\n      if ((int)((ulonglong)uVar53 >> 0x20) != 0) goto LAB_000a7c10;\n      pcVar39 = *(code **)(pcStack_830 + -0x775c);\n      if ((uint)uVar53 < 2) {\n        iVar4 = 1;\n        dStack_818 = dVar43;\n        goto LAB_000a7c30;\n      }\n    }" { (expression_statement "uVar53 = (**(code **)(pcStack_830 + -0x775c))(7);" (assignment_expression "uVar53 = (**(code **)(pcStack_830 + -0x775c))(7)" identifier = (call_expression "(**(code **)(pcStack_830 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_830 + -0x775c)" * (pointer_expression "*(code **)(pcStack_830 + -0x775c)" * (cast_expression "(code **)(pcStack_830 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x775c)" ( (binary_expression "pcStack_830 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar53 >> 0x20) != 0) goto LAB_000a7c10;" if (parenthesized_expression "((int)((ulonglong)uVar53 >> 0x20) != 0)" ( (binary_expression "(int)((ulonglong)uVar53 >> 0x20) != 0" (cast_expression "(int)((ulonglong)uVar53 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar53 >> 0x20)" ( (binary_expression "(ulonglong)uVar53 >> 0x20" (cast_expression "(ulonglong)uVar53" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) != number_literal) )) (goto_statement "goto LAB_000a7c10;" goto statement_identifier ;)) (expression_statement "pcVar39 = *(code **)(pcStack_830 + -0x775c);" (assignment_expression "pcVar39 = *(code **)(pcStack_830 + -0x775c)" identifier = (pointer_expression "*(code **)(pcStack_830 + -0x775c)" * (cast_expression "(code **)(pcStack_830 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x775c)" ( (binary_expression "pcStack_830 + -0x775c" identifier + number_literal) ))))) ;) (if_statement "if ((uint)uVar53 < 2) {\n        iVar4 = 1;\n        dStack_818 = dVar43;\n        goto LAB_000a7c30;\n      }" if (parenthesized_expression "((uint)uVar53 < 2)" ( (binary_expression "(uint)uVar53 < 2" (cast_expression "(uint)uVar53" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n        iVar4 = 1;\n        dStack_818 = dVar43;\n        goto LAB_000a7c30;\n      }" { (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) (expression_statement "dStack_818 = dVar43;" (assignment_expression "dStack_818 = dVar43" identifier = identifier) ;) (goto_statement "goto LAB_000a7c30;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_000a7c10:\n      pcVar39 = *(code **)(pcStack_830 + -0x775c);\n    }" else (compound_statement "{\nLAB_000a7c10:\n      pcVar39 = *(code **)(pcStack_830 + -0x775c);\n    }" { (labeled_statement "LAB_000a7c10:\n      pcVar39 = *(code **)(pcStack_830 + -0x775c);" statement_identifier : (expression_statement "pcVar39 = *(code **)(pcStack_830 + -0x775c);" (assignment_expression "pcVar39 = *(code **)(pcStack_830 + -0x775c)" identifier = (pointer_expression "*(code **)(pcStack_830 + -0x775c)" * (cast_expression "(code **)(pcStack_830 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x775c)" ( (binary_expression "pcStack_830 + -0x775c" identifier + number_literal) ))))) ;)) }))) (expression_statement "uVar53 = (*pcVar39)(7);" (assignment_expression "uVar53 = (*pcVar39)(7)" identifier = (call_expression "(*pcVar39)(7)" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar4 = extraout_v1_05;\n      dStack_818 = dVar43;\n    }\n    else {\n      iVar4 = 2;\n      dStack_818 = dVar43;\n    }" if (parenthesized_expression "(((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2))" ( (binary_expression "((int)((ulonglong)uVar53 >> 0x20) == 0) && ((uint)uVar53 < 2)" (parenthesized_expression "((int)((ulonglong)uVar53 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar53 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar53 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar53 >> 0x20)" ( (binary_expression "(ulonglong)uVar53 >> 0x20" (cast_expression "(ulonglong)uVar53" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "((uint)uVar53 < 2)" ( (binary_expression "(uint)uVar53 < 2" (cast_expression "(uint)uVar53" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) ))) )) (compound_statement "{\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar4 = extraout_v1_05;\n      dStack_818 = dVar43;\n    }" { (expression_statement "(**(code **)(pcStack_830 + -0x775c))(7);" (call_expression "(**(code **)(pcStack_830 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_830 + -0x775c)" * (pointer_expression "*(code **)(pcStack_830 + -0x775c)" * (cast_expression "(code **)(pcStack_830 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x775c)" ( (binary_expression "pcStack_830 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "iVar4 = extraout_v1_05;" (assignment_expression "iVar4 = extraout_v1_05" identifier = identifier) ;) (expression_statement "dStack_818 = dVar43;" (assignment_expression "dStack_818 = dVar43" identifier = identifier) ;) }) (else_clause "else {\n      iVar4 = 2;\n      dStack_818 = dVar43;\n    }" else (compound_statement "{\n      iVar4 = 2;\n      dStack_818 = dVar43;\n    }" { (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) (expression_statement "dStack_818 = dVar43;" (assignment_expression "dStack_818 = dVar43" identifier = identifier) ;) }))) }))) (labeled_statement "LAB_000a7c30:\n  puStack_7fc = auStack_7f0;" statement_identifier : (expression_statement "puStack_7fc = auStack_7f0;" (assignment_expression "puStack_7fc = auStack_7f0" identifier = identifier) ;)) (expression_statement "ppiStack_7f8 = &piStack_828;" (assignment_expression "ppiStack_7f8 = &piStack_828" identifier = (pointer_expression "&piStack_828" & identifier)) ;) (expression_statement "uStack_7f4 = 1;" (assignment_expression "uStack_7f4 = 1" identifier = number_literal) ;) (expression_statement "iStack_810 = iVar12;" (assignment_expression "iStack_810 = iVar12" identifier = identifier) ;) (expression_statement "pdStack_80c = pdVar31;" (assignment_expression "pdStack_80c = pdVar31" identifier = identifier) ;) (expression_statement "uStack_808 = uVar5;" (assignment_expression "uStack_808 = uVar5" identifier = identifier) ;) (expression_statement "ppiStack_804 = ppiVar35;" (assignment_expression "ppiStack_804 = ppiVar35" identifier = identifier) ;) (expression_statement "ppiStack_800 = ppiVar36;" (assignment_expression "ppiStack_800 = ppiVar36" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_830 + -0x7700))(*(int *)(pcStack_830 + -0x7ea0) + 0x549c,&dStack_818,iVar4,0)\n  ;" (call_expression "(**(code **)(pcStack_830 + -0x7700))(*(int *)(pcStack_830 + -0x7ea0) + 0x549c,&dStack_818,iVar4,0)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x7700))" ( (pointer_expression "**(code **)(pcStack_830 + -0x7700)" * (pointer_expression "*(code **)(pcStack_830 + -0x7700)" * (cast_expression "(code **)(pcStack_830 + -0x7700)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x7700)" ( (binary_expression "pcStack_830 + -0x7700" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_830 + -0x7ea0) + 0x549c,&dStack_818,iVar4,0)" ( (binary_expression "*(int *)(pcStack_830 + -0x7ea0) + 0x549c" (pointer_expression "*(int *)(pcStack_830 + -0x7ea0)" * (cast_expression "(int *)(pcStack_830 + -0x7ea0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_830 + -0x7ea0)" ( (binary_expression "pcStack_830 + -0x7ea0" identifier + number_literal) )))) + number_literal) , (pointer_expression "&dStack_818" & identifier) , identifier , number_literal ))) ;) (expression_statement "uVar27 = uStack_7f4;" (assignment_expression "uVar27 = uStack_7f4" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_830 + -0x79a4))(uVar5);" (call_expression "(**(code **)(pcStack_830 + -0x79a4))(uVar5)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x79a4))" ( (pointer_expression "**(code **)(pcStack_830 + -0x79a4)" * (pointer_expression "*(code **)(pcStack_830 + -0x79a4)" * (cast_expression "(code **)(pcStack_830 + -0x79a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x79a4)" ( (binary_expression "pcStack_830 + -0x79a4" identifier + number_literal) ))))) )) (argument_list "(uVar5)" ( identifier ))) ;) (if_statement "if (puStack_794 == (undefined8 *)**(int **)(pcStack_830 + -0x7668)) {\n    return;\n  }" if (parenthesized_expression "(puStack_794 == (undefined8 *)**(int **)(pcStack_830 + -0x7668))" ( (binary_expression "puStack_794 == (undefined8 *)**(int **)(pcStack_830 + -0x7668)" identifier == (cast_expression "(undefined8 *)**(int **)(pcStack_830 + -0x7668)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pcStack_830 + -0x7668)" * (pointer_expression "*(int **)(pcStack_830 + -0x7668)" * (cast_expression "(int **)(pcStack_830 + -0x7668)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x7668)" ( (binary_expression "pcStack_830 + -0x7668" identifier + number_literal) ))))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar39 = *(code **)(pcStack_830 + -0x7834);" (assignment_expression "pcVar39 = *(code **)(pcStack_830 + -0x7834)" identifier = (pointer_expression "*(code **)(pcStack_830 + -0x7834)" * (cast_expression "(code **)(pcStack_830 + -0x7834)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x7834)" ( (binary_expression "pcStack_830 + -0x7834" identifier + number_literal) ))))) ;) (expression_statement "pcVar40 = GetAffineMatrix;" (assignment_expression "pcVar40 = GetAffineMatrix" identifier = identifier) ;) (expression_statement "puVar22 = puStack_794;" (assignment_expression "puVar22 = puStack_794" identifier = identifier) ;) (expression_statement "(*pcVar39)();" (call_expression "(*pcVar39)()" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_858 = pcVar39 + 0x359994;" (assignment_expression "pcStack_858 = pcVar39 + 0x359994" identifier = (binary_expression "pcVar39 + 0x359994" identifier + number_literal)) ;) (expression_statement "iStack_860 = *(int *)(pcVar39 + 0x3519c8) + 0x10f4;" (assignment_expression "iStack_860 = *(int *)(pcVar39 + 0x3519c8) + 0x10f4" identifier = (binary_expression "*(int *)(pcVar39 + 0x3519c8) + 0x10f4" (pointer_expression "*(int *)(pcVar39 + 0x3519c8)" * (cast_expression "(int *)(pcVar39 + 0x3519c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x3519c8)" ( (binary_expression "pcVar39 + 0x3519c8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "uStack_850 = uVar5;" (assignment_expression "uStack_850 = uVar5" identifier = identifier) ;) (expression_statement "pcStack_84c = pcVar40;" (assignment_expression "pcStack_84c = pcVar40" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar39 + 0x3522dc))\n            (0x8000,*(int *)(pcVar39 + 0x3519c8) + 0x69c0,*(int *)(pcVar39 + 0x3519c8) + 0x76b0,\n             0x16d2);" (call_expression "(**(code **)(pcVar39 + 0x3522dc))\n            (0x8000,*(int *)(pcVar39 + 0x3519c8) + 0x69c0,*(int *)(pcVar39 + 0x3519c8) + 0x76b0,\n             0x16d2)" (parenthesized_expression "(**(code **)(pcVar39 + 0x3522dc))" ( (pointer_expression "**(code **)(pcVar39 + 0x3522dc)" * (pointer_expression "*(code **)(pcVar39 + 0x3522dc)" * (cast_expression "(code **)(pcVar39 + 0x3522dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x3522dc)" ( (binary_expression "pcVar39 + 0x3522dc" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(pcVar39 + 0x3519c8) + 0x69c0,*(int *)(pcVar39 + 0x3519c8) + 0x76b0,\n             0x16d2)" ( number_literal , (binary_expression "*(int *)(pcVar39 + 0x3519c8) + 0x69c0" (pointer_expression "*(int *)(pcVar39 + 0x3519c8)" * (cast_expression "(int *)(pcVar39 + 0x3519c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x3519c8)" ( (binary_expression "pcVar39 + 0x3519c8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar39 + 0x3519c8) + 0x76b0" (pointer_expression "*(int *)(pcVar39 + 0x3519c8)" * (cast_expression "(int *)(pcVar39 + 0x3519c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x3519c8)" ( (binary_expression "pcVar39 + 0x3519c8" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) (if_statement "if (puVar22 != (undefined8 *)0x0) {\n    (**(code **)(pcStack_858 + -0x71c4))(puVar22 + 1,0,0x28);\n    uVar53 = *(undefined8 *)(*(int *)(pcStack_858 + -0x7fd0) + 0x4408);\n    *puVar22 = uVar53;\n    puVar22[3] = uVar53;\n    return;\n  }" if (parenthesized_expression "(puVar22 != (undefined8 *)0x0)" ( (binary_expression "puVar22 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(pcStack_858 + -0x71c4))(puVar22 + 1,0,0x28);\n    uVar53 = *(undefined8 *)(*(int *)(pcStack_858 + -0x7fd0) + 0x4408);\n    *puVar22 = uVar53;\n    puVar22[3] = uVar53;\n    return;\n  }" { (expression_statement "(**(code **)(pcStack_858 + -0x71c4))(puVar22 + 1,0,0x28);" (call_expression "(**(code **)(pcStack_858 + -0x71c4))(puVar22 + 1,0,0x28)" (parenthesized_expression "(**(code **)(pcStack_858 + -0x71c4))" ( (pointer_expression "**(code **)(pcStack_858 + -0x71c4)" * (pointer_expression "*(code **)(pcStack_858 + -0x71c4)" * (cast_expression "(code **)(pcStack_858 + -0x71c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_858 + -0x71c4)" ( (binary_expression "pcStack_858 + -0x71c4" identifier + number_literal) ))))) )) (argument_list "(puVar22 + 1,0,0x28)" ( (binary_expression "puVar22 + 1" identifier + number_literal) , number_literal , number_literal ))) ;) (expression_statement "uVar53 = *(undefined8 *)(*(int *)(pcStack_858 + -0x7fd0) + 0x4408);" (assignment_expression "uVar53 = *(undefined8 *)(*(int *)(pcStack_858 + -0x7fd0) + 0x4408)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(pcStack_858 + -0x7fd0) + 0x4408)" * (cast_expression "(undefined8 *)(*(int *)(pcStack_858 + -0x7fd0) + 0x4408)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_858 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcStack_858 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_858 + -0x7fd0)" * (cast_expression "(int *)(pcStack_858 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_858 + -0x7fd0)" ( (binary_expression "pcStack_858 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*puVar22 = uVar53;" (assignment_expression "*puVar22 = uVar53" (pointer_expression "*puVar22" * identifier) = identifier) ;) (expression_statement "puVar22[3] = uVar53;" (assignment_expression "puVar22[3] = uVar53" (subscript_expression "puVar22[3]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })) (expression_statement "iVar12 = *(int *)(pcStack_858 + -0x7fcc) + 0x69c0;" (assignment_expression "iVar12 = *(int *)(pcStack_858 + -0x7fcc) + 0x69c0" identifier = (binary_expression "*(int *)(pcStack_858 + -0x7fcc) + 0x69c0" (pointer_expression "*(int *)(pcStack_858 + -0x7fcc)" * (cast_expression "(int *)(pcStack_858 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_858 + -0x7fcc)" ( (binary_expression "pcStack_858 + -0x7fcc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar4 = *(int *)(pcStack_858 + -0x7fcc) + 0x6368;" (assignment_expression "iVar4 = *(int *)(pcStack_858 + -0x7fcc) + 0x6368" identifier = (binary_expression "*(int *)(pcStack_858 + -0x7fcc) + 0x6368" (pointer_expression "*(int *)(pcStack_858 + -0x7fcc)" * (cast_expression "(int *)(pcStack_858 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_858 + -0x7fcc)" ( (binary_expression "pcStack_858 + -0x7fcc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pcVar39 = *(code **)(pcStack_858 + -0x7290);" (assignment_expression "pcVar39 = *(code **)(pcStack_858 + -0x7290)" identifier = (pointer_expression "*(code **)(pcStack_858 + -0x7290)" * (cast_expression "(code **)(pcStack_858 + -0x7290)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_858 + -0x7290)" ( (binary_expression "pcStack_858 + -0x7290" identifier + number_literal) ))))) ;) (expression_statement "pcVar40 = GetDrawInfo;" (assignment_expression "pcVar40 = GetDrawInfo" identifier = identifier) ;) (expression_statement "(*pcVar39)(iVar4,iVar12,0x16d3,*(int *)(pcStack_858 + -0x7fcc) + 0x76a0);" (call_expression "(*pcVar39)(iVar4,iVar12,0x16d3,*(int *)(pcStack_858 + -0x7fcc) + 0x76a0)" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "(iVar4,iVar12,0x16d3,*(int *)(pcStack_858 + -0x7fcc) + 0x76a0)" ( identifier , identifier , number_literal , (binary_expression "*(int *)(pcStack_858 + -0x7fcc) + 0x76a0" (pointer_expression "*(int *)(pcStack_858 + -0x7fcc)" * (cast_expression "(int *)(pcStack_858 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_858 + -0x7fcc)" ( (binary_expression "pcStack_858 + -0x7fcc" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "uStack_888 = uVar27;" (assignment_expression "uStack_888 = uVar27" identifier = identifier) ;) (expression_statement "iStack_894 = **(int **)(pcVar39 + 0x352270);" (assignment_expression "iStack_894 = **(int **)(pcVar39 + 0x352270)" identifier = (pointer_expression "**(int **)(pcVar39 + 0x352270)" * (pointer_expression "*(int **)(pcVar39 + 0x352270)" * (cast_expression "(int **)(pcVar39 + 0x352270)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x352270)" ( (binary_expression "pcVar39 + 0x352270" identifier + number_literal) )))))) ;) (expression_statement "puStack_88c = puVar22;" (assignment_expression "puStack_88c = puVar22" identifier = identifier) ;) (expression_statement "pdStack_884 = pdVar31;" (assignment_expression "pdStack_884 = pdVar31" identifier = identifier) ;) (expression_statement "ppiStack_880 = ppiVar35;" (assignment_expression "ppiStack_880 = ppiVar35" identifier = identifier) ;) (expression_statement "ppiStack_87c = ppiVar36;" (assignment_expression "ppiStack_87c = ppiVar36" identifier = identifier) ;) (expression_statement "puStack_878 = puVar37;" (assignment_expression "puStack_878 = puVar37" identifier = identifier) ;) (expression_statement "pcStack_874 = pcVar40;" (assignment_expression "pcStack_874 = pcVar40" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar39 + 0x352220))\n            (0x8000,*(int *)(pcVar39 + 0x35190c) + 0x69c0,*(int *)(pcVar39 + 0x35190c) + 0x7694,\n             0x1702,*(int *)(pcVar39 + 0x35190c) + 0x10f4);" (call_expression "(**(code **)(pcVar39 + 0x352220))\n            (0x8000,*(int *)(pcVar39 + 0x35190c) + 0x69c0,*(int *)(pcVar39 + 0x35190c) + 0x7694,\n             0x1702,*(int *)(pcVar39 + 0x35190c) + 0x10f4)" (parenthesized_expression "(**(code **)(pcVar39 + 0x352220))" ( (pointer_expression "**(code **)(pcVar39 + 0x352220)" * (pointer_expression "*(code **)(pcVar39 + 0x352220)" * (cast_expression "(code **)(pcVar39 + 0x352220)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x352220)" ( (binary_expression "pcVar39 + 0x352220" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(pcVar39 + 0x35190c) + 0x69c0,*(int *)(pcVar39 + 0x35190c) + 0x7694,\n             0x1702,*(int *)(pcVar39 + 0x35190c) + 0x10f4)" ( number_literal , (binary_expression "*(int *)(pcVar39 + 0x35190c) + 0x69c0" (pointer_expression "*(int *)(pcVar39 + 0x35190c)" * (cast_expression "(int *)(pcVar39 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x35190c)" ( (binary_expression "pcVar39 + 0x35190c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar39 + 0x35190c) + 0x7694" (pointer_expression "*(int *)(pcVar39 + 0x35190c)" * (cast_expression "(int *)(pcVar39 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x35190c)" ( (binary_expression "pcVar39 + 0x35190c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar39 + 0x35190c) + 0x10f4" (pointer_expression "*(int *)(pcVar39 + 0x35190c)" * (cast_expression "(int *)(pcVar39 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x35190c)" ( (binary_expression "pcVar39 + 0x35190c" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (iVar12 == 0) {\n    (**(code **)(pcVar39 + 0x352648))\n              (*(int *)(pcVar39 + 0x351908) + 0x40e4,*(int *)(pcVar39 + 0x35190c) + 0x69c0,0x1703,\n               *(int *)(pcVar39 + 0x35190c) + 0x7688);\n  }\n  else {\n    (**(code **)(pcVar39 + 0x352714))(iVar12,0,0x3c0);\n    iVar4 = (**(code **)(pcVar39 + 0x3521dc))(iVar4);\n    (**(code **)(pcVar39 + 0x351e5c))(iVar12 + 0x18);\n    pdVar31 = (double *)(**(code **)(pcVar39 + 0x351f2c))();\n    ppiVar36 = (int **)(iVar12 + 0x48);\n    (**(code **)(pcVar39 + 0x351e54))\n              (*(int *)(pcVar39 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar36,pdVar31);\n    ppiVar35 = (int **)(iVar12 + 0xa0);\n    (**(code **)(pcVar39 + 0x351e54))\n              (*(int *)(pcVar39 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar35,pdVar31);\n    *(undefined4 *)(iVar12 + 0x238) = *(undefined4 *)(iVar4 + 0x14);\n    *(undefined8 *)(iVar12 + 0x1b0) = *(undefined8 *)(*(int *)(pcVar39 + 0x351908) + 0x4408);\n    *(undefined4 *)(iVar12 + 0x240) = 1;\n    *(undefined4 *)(iVar12 + 0x2cc) = *(undefined4 *)(*(int *)(pcVar39 + 0x351908) + 0x4aa8);\n    uVar53 = *(undefined8 *)(*(int *)(pcVar39 + 0x351908) + 0x4a48);\n    *(undefined8 *)(iVar12 + 0x398) = uVar53;\n    *(undefined8 *)(iVar12 + 0x3a0) = uVar53;\n    *(undefined4 *)(iVar12 + 0x244) = 1;\n    *(undefined4 *)(iVar12 + 0x248) = 1;\n    *(undefined4 *)(iVar12 + 0x24c) = 10;\n    *(undefined4 *)(iVar12 + 600) = 1;\n    *(undefined8 *)(iVar12 + 0x288) = *(undefined8 *)(*(int *)(pcVar39 + 0x35190c) + 0x7970);\n    *(undefined4 *)(iVar12 + 0x144) = 0;\n    *(undefined4 *)(iVar12 + 0x140) = 0;\n    *(undefined4 *)(iVar12 + 0x25c) = 0x36;\n    *(undefined4 *)(iVar12 + 0x2d0) = 1;\n    *(undefined4 *)(iVar12 + 0x3a8) = 0;\n    uVar5 = (**(code **)(pcVar39 + 0x3527e8))();\n    *(undefined4 *)(iVar12 + 0x38c) = uVar5;\n    if (*(int *)(iVar4 + 0x4c) != 0) {\n      uVar5 = (**(code **)(pcVar39 + 0x352854))();\n      *(undefined4 *)(iVar12 + 0x264) = uVar5;\n    }\n    if (*(int *)(iVar4 + 0x54) != 0) {\n      uVar5 = (**(code **)(pcVar39 + 0x352854))();\n      *(undefined4 *)(iVar12 + 0x290) = uVar5;\n    }\n    *(undefined4 *)(iVar12 + 0x23c) = *(undefined4 *)(iVar4 + 0x14);\n    uVar5 = *(undefined4 *)(iVar4 + 0x58);\n    if (*(double *)(*(int *)(pcVar39 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar4 + 0x58))) {\n      *(undefined4 *)(iVar12 + 0x28c) = *(undefined4 *)(iVar4 + 0x5c);\n      *(undefined4 *)(iVar12 + 0x288) = uVar5;\n    }\n    puVar10 = (undefined4 *)(iVar4 + 0x118);\n    puVar2 = (undefined4 *)(iVar12 + 0x150);\n    do {\n      puVar17 = puVar2;\n      puVar11 = puVar10;\n      uVar29 = puVar11[1];\n      uVar27 = puVar11[2];\n      uVar5 = puVar11[3];\n      *puVar17 = *puVar11;\n      puVar17[1] = uVar29;\n      puVar17[2] = uVar27;\n      puVar17[3] = uVar5;\n      puVar10 = puVar11 + 4;\n      puVar2 = puVar17 + 4;\n    } while (puVar10 != (undefined4 *)(iVar4 + 0x168));\n    uVar5 = puVar11[5];\n    puVar17[4] = *puVar10;\n    puVar17[5] = uVar5;\n    if (*(int *)(iVar4 + 0x48) != 0) {\n      uVar5 = (**(code **)(pcVar39 + 0x352854))();\n      *(undefined4 *)(iVar12 + 0x29c) = uVar5;\n    }\n    iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6ac4);\n    if (iVar51 != 0) {\n      uVar5 = (**(code **)(pcVar39 + 0x3526d4))(0x14,0,iVar51);\n      *(undefined4 *)(iVar12 + 0x388) = uVar5;\n      goto LAB_000a8298;\n    }\n  }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n    (**(code **)(pcVar39 + 0x352648))\n              (*(int *)(pcVar39 + 0x351908) + 0x40e4,*(int *)(pcVar39 + 0x35190c) + 0x69c0,0x1703,\n               *(int *)(pcVar39 + 0x35190c) + 0x7688);\n  }" { (expression_statement "(**(code **)(pcVar39 + 0x352648))\n              (*(int *)(pcVar39 + 0x351908) + 0x40e4,*(int *)(pcVar39 + 0x35190c) + 0x69c0,0x1703,\n               *(int *)(pcVar39 + 0x35190c) + 0x7688);" (call_expression "(**(code **)(pcVar39 + 0x352648))\n              (*(int *)(pcVar39 + 0x351908) + 0x40e4,*(int *)(pcVar39 + 0x35190c) + 0x69c0,0x1703,\n               *(int *)(pcVar39 + 0x35190c) + 0x7688)" (parenthesized_expression "(**(code **)(pcVar39 + 0x352648))" ( (pointer_expression "**(code **)(pcVar39 + 0x352648)" * (pointer_expression "*(code **)(pcVar39 + 0x352648)" * (cast_expression "(code **)(pcVar39 + 0x352648)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x352648)" ( (binary_expression "pcVar39 + 0x352648" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar39 + 0x351908) + 0x40e4,*(int *)(pcVar39 + 0x35190c) + 0x69c0,0x1703,\n               *(int *)(pcVar39 + 0x35190c) + 0x7688)" ( (binary_expression "*(int *)(pcVar39 + 0x351908) + 0x40e4" (pointer_expression "*(int *)(pcVar39 + 0x351908)" * (cast_expression "(int *)(pcVar39 + 0x351908)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x351908)" ( (binary_expression "pcVar39 + 0x351908" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar39 + 0x35190c) + 0x69c0" (pointer_expression "*(int *)(pcVar39 + 0x35190c)" * (cast_expression "(int *)(pcVar39 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x35190c)" ( (binary_expression "pcVar39 + 0x35190c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar39 + 0x35190c) + 0x7688" (pointer_expression "*(int *)(pcVar39 + 0x35190c)" * (cast_expression "(int *)(pcVar39 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x35190c)" ( (binary_expression "pcVar39 + 0x35190c" identifier + number_literal) )))) + number_literal) ))) ;) }) (else_clause "else {\n    (**(code **)(pcVar39 + 0x352714))(iVar12,0,0x3c0);\n    iVar4 = (**(code **)(pcVar39 + 0x3521dc))(iVar4);\n    (**(code **)(pcVar39 + 0x351e5c))(iVar12 + 0x18);\n    pdVar31 = (double *)(**(code **)(pcVar39 + 0x351f2c))();\n    ppiVar36 = (int **)(iVar12 + 0x48);\n    (**(code **)(pcVar39 + 0x351e54))\n              (*(int *)(pcVar39 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar36,pdVar31);\n    ppiVar35 = (int **)(iVar12 + 0xa0);\n    (**(code **)(pcVar39 + 0x351e54))\n              (*(int *)(pcVar39 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar35,pdVar31);\n    *(undefined4 *)(iVar12 + 0x238) = *(undefined4 *)(iVar4 + 0x14);\n    *(undefined8 *)(iVar12 + 0x1b0) = *(undefined8 *)(*(int *)(pcVar39 + 0x351908) + 0x4408);\n    *(undefined4 *)(iVar12 + 0x240) = 1;\n    *(undefined4 *)(iVar12 + 0x2cc) = *(undefined4 *)(*(int *)(pcVar39 + 0x351908) + 0x4aa8);\n    uVar53 = *(undefined8 *)(*(int *)(pcVar39 + 0x351908) + 0x4a48);\n    *(undefined8 *)(iVar12 + 0x398) = uVar53;\n    *(undefined8 *)(iVar12 + 0x3a0) = uVar53;\n    *(undefined4 *)(iVar12 + 0x244) = 1;\n    *(undefined4 *)(iVar12 + 0x248) = 1;\n    *(undefined4 *)(iVar12 + 0x24c) = 10;\n    *(undefined4 *)(iVar12 + 600) = 1;\n    *(undefined8 *)(iVar12 + 0x288) = *(undefined8 *)(*(int *)(pcVar39 + 0x35190c) + 0x7970);\n    *(undefined4 *)(iVar12 + 0x144) = 0;\n    *(undefined4 *)(iVar12 + 0x140) = 0;\n    *(undefined4 *)(iVar12 + 0x25c) = 0x36;\n    *(undefined4 *)(iVar12 + 0x2d0) = 1;\n    *(undefined4 *)(iVar12 + 0x3a8) = 0;\n    uVar5 = (**(code **)(pcVar39 + 0x3527e8))();\n    *(undefined4 *)(iVar12 + 0x38c) = uVar5;\n    if (*(int *)(iVar4 + 0x4c) != 0) {\n      uVar5 = (**(code **)(pcVar39 + 0x352854))();\n      *(undefined4 *)(iVar12 + 0x264) = uVar5;\n    }\n    if (*(int *)(iVar4 + 0x54) != 0) {\n      uVar5 = (**(code **)(pcVar39 + 0x352854))();\n      *(undefined4 *)(iVar12 + 0x290) = uVar5;\n    }\n    *(undefined4 *)(iVar12 + 0x23c) = *(undefined4 *)(iVar4 + 0x14);\n    uVar5 = *(undefined4 *)(iVar4 + 0x58);\n    if (*(double *)(*(int *)(pcVar39 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar4 + 0x58))) {\n      *(undefined4 *)(iVar12 + 0x28c) = *(undefined4 *)(iVar4 + 0x5c);\n      *(undefined4 *)(iVar12 + 0x288) = uVar5;\n    }\n    puVar10 = (undefined4 *)(iVar4 + 0x118);\n    puVar2 = (undefined4 *)(iVar12 + 0x150);\n    do {\n      puVar17 = puVar2;\n      puVar11 = puVar10;\n      uVar29 = puVar11[1];\n      uVar27 = puVar11[2];\n      uVar5 = puVar11[3];\n      *puVar17 = *puVar11;\n      puVar17[1] = uVar29;\n      puVar17[2] = uVar27;\n      puVar17[3] = uVar5;\n      puVar10 = puVar11 + 4;\n      puVar2 = puVar17 + 4;\n    } while (puVar10 != (undefined4 *)(iVar4 + 0x168));\n    uVar5 = puVar11[5];\n    puVar17[4] = *puVar10;\n    puVar17[5] = uVar5;\n    if (*(int *)(iVar4 + 0x48) != 0) {\n      uVar5 = (**(code **)(pcVar39 + 0x352854))();\n      *(undefined4 *)(iVar12 + 0x29c) = uVar5;\n    }\n    iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6ac4);\n    if (iVar51 != 0) {\n      uVar5 = (**(code **)(pcVar39 + 0x3526d4))(0x14,0,iVar51);\n      *(undefined4 *)(iVar12 + 0x388) = uVar5;\n      goto LAB_000a8298;\n    }\n  }" else (compound_statement "{\n    (**(code **)(pcVar39 + 0x352714))(iVar12,0,0x3c0);\n    iVar4 = (**(code **)(pcVar39 + 0x3521dc))(iVar4);\n    (**(code **)(pcVar39 + 0x351e5c))(iVar12 + 0x18);\n    pdVar31 = (double *)(**(code **)(pcVar39 + 0x351f2c))();\n    ppiVar36 = (int **)(iVar12 + 0x48);\n    (**(code **)(pcVar39 + 0x351e54))\n              (*(int *)(pcVar39 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar36,pdVar31);\n    ppiVar35 = (int **)(iVar12 + 0xa0);\n    (**(code **)(pcVar39 + 0x351e54))\n              (*(int *)(pcVar39 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar35,pdVar31);\n    *(undefined4 *)(iVar12 + 0x238) = *(undefined4 *)(iVar4 + 0x14);\n    *(undefined8 *)(iVar12 + 0x1b0) = *(undefined8 *)(*(int *)(pcVar39 + 0x351908) + 0x4408);\n    *(undefined4 *)(iVar12 + 0x240) = 1;\n    *(undefined4 *)(iVar12 + 0x2cc) = *(undefined4 *)(*(int *)(pcVar39 + 0x351908) + 0x4aa8);\n    uVar53 = *(undefined8 *)(*(int *)(pcVar39 + 0x351908) + 0x4a48);\n    *(undefined8 *)(iVar12 + 0x398) = uVar53;\n    *(undefined8 *)(iVar12 + 0x3a0) = uVar53;\n    *(undefined4 *)(iVar12 + 0x244) = 1;\n    *(undefined4 *)(iVar12 + 0x248) = 1;\n    *(undefined4 *)(iVar12 + 0x24c) = 10;\n    *(undefined4 *)(iVar12 + 600) = 1;\n    *(undefined8 *)(iVar12 + 0x288) = *(undefined8 *)(*(int *)(pcVar39 + 0x35190c) + 0x7970);\n    *(undefined4 *)(iVar12 + 0x144) = 0;\n    *(undefined4 *)(iVar12 + 0x140) = 0;\n    *(undefined4 *)(iVar12 + 0x25c) = 0x36;\n    *(undefined4 *)(iVar12 + 0x2d0) = 1;\n    *(undefined4 *)(iVar12 + 0x3a8) = 0;\n    uVar5 = (**(code **)(pcVar39 + 0x3527e8))();\n    *(undefined4 *)(iVar12 + 0x38c) = uVar5;\n    if (*(int *)(iVar4 + 0x4c) != 0) {\n      uVar5 = (**(code **)(pcVar39 + 0x352854))();\n      *(undefined4 *)(iVar12 + 0x264) = uVar5;\n    }\n    if (*(int *)(iVar4 + 0x54) != 0) {\n      uVar5 = (**(code **)(pcVar39 + 0x352854))();\n      *(undefined4 *)(iVar12 + 0x290) = uVar5;\n    }\n    *(undefined4 *)(iVar12 + 0x23c) = *(undefined4 *)(iVar4 + 0x14);\n    uVar5 = *(undefined4 *)(iVar4 + 0x58);\n    if (*(double *)(*(int *)(pcVar39 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar4 + 0x58))) {\n      *(undefined4 *)(iVar12 + 0x28c) = *(undefined4 *)(iVar4 + 0x5c);\n      *(undefined4 *)(iVar12 + 0x288) = uVar5;\n    }\n    puVar10 = (undefined4 *)(iVar4 + 0x118);\n    puVar2 = (undefined4 *)(iVar12 + 0x150);\n    do {\n      puVar17 = puVar2;\n      puVar11 = puVar10;\n      uVar29 = puVar11[1];\n      uVar27 = puVar11[2];\n      uVar5 = puVar11[3];\n      *puVar17 = *puVar11;\n      puVar17[1] = uVar29;\n      puVar17[2] = uVar27;\n      puVar17[3] = uVar5;\n      puVar10 = puVar11 + 4;\n      puVar2 = puVar17 + 4;\n    } while (puVar10 != (undefined4 *)(iVar4 + 0x168));\n    uVar5 = puVar11[5];\n    puVar17[4] = *puVar10;\n    puVar17[5] = uVar5;\n    if (*(int *)(iVar4 + 0x48) != 0) {\n      uVar5 = (**(code **)(pcVar39 + 0x352854))();\n      *(undefined4 *)(iVar12 + 0x29c) = uVar5;\n    }\n    iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6ac4);\n    if (iVar51 != 0) {\n      uVar5 = (**(code **)(pcVar39 + 0x3526d4))(0x14,0,iVar51);\n      *(undefined4 *)(iVar12 + 0x388) = uVar5;\n      goto LAB_000a8298;\n    }\n  }" { (expression_statement "(**(code **)(pcVar39 + 0x352714))(iVar12,0,0x3c0);" (call_expression "(**(code **)(pcVar39 + 0x352714))(iVar12,0,0x3c0)" (parenthesized_expression "(**(code **)(pcVar39 + 0x352714))" ( (pointer_expression "**(code **)(pcVar39 + 0x352714)" * (pointer_expression "*(code **)(pcVar39 + 0x352714)" * (cast_expression "(code **)(pcVar39 + 0x352714)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x352714)" ( (binary_expression "pcVar39 + 0x352714" identifier + number_literal) ))))) )) (argument_list "(iVar12,0,0x3c0)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "iVar4 = (**(code **)(pcVar39 + 0x3521dc))(iVar4);" (assignment_expression "iVar4 = (**(code **)(pcVar39 + 0x3521dc))(iVar4)" identifier = (call_expression "(**(code **)(pcVar39 + 0x3521dc))(iVar4)" (parenthesized_expression "(**(code **)(pcVar39 + 0x3521dc))" ( (pointer_expression "**(code **)(pcVar39 + 0x3521dc)" * (pointer_expression "*(code **)(pcVar39 + 0x3521dc)" * (cast_expression "(code **)(pcVar39 + 0x3521dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x3521dc)" ( (binary_expression "pcVar39 + 0x3521dc" identifier + number_literal) ))))) )) (argument_list "(iVar4)" ( identifier )))) ;) (expression_statement "(**(code **)(pcVar39 + 0x351e5c))(iVar12 + 0x18);" (call_expression "(**(code **)(pcVar39 + 0x351e5c))(iVar12 + 0x18)" (parenthesized_expression "(**(code **)(pcVar39 + 0x351e5c))" ( (pointer_expression "**(code **)(pcVar39 + 0x351e5c)" * (pointer_expression "*(code **)(pcVar39 + 0x351e5c)" * (cast_expression "(code **)(pcVar39 + 0x351e5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x351e5c)" ( (binary_expression "pcVar39 + 0x351e5c" identifier + number_literal) ))))) )) (argument_list "(iVar12 + 0x18)" ( (binary_expression "iVar12 + 0x18" identifier + number_literal) ))) ;) (expression_statement "pdVar31 = (double *)(**(code **)(pcVar39 + 0x351f2c))();" (assignment_expression "pdVar31 = (double *)(**(code **)(pcVar39 + 0x351f2c))()" identifier = (cast_expression "(double *)(**(code **)(pcVar39 + 0x351f2c))()" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar39 + 0x351f2c))()" (parenthesized_expression "(**(code **)(pcVar39 + 0x351f2c))" ( (pointer_expression "**(code **)(pcVar39 + 0x351f2c)" * (pointer_expression "*(code **)(pcVar39 + 0x351f2c)" * (cast_expression "(code **)(pcVar39 + 0x351f2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x351f2c)" ( (binary_expression "pcVar39 + 0x351f2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "ppiVar36 = (int **)(iVar12 + 0x48);" (assignment_expression "ppiVar36 = (int **)(iVar12 + 0x48)" identifier = (cast_expression "(int **)(iVar12 + 0x48)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 0x48)" ( (binary_expression "iVar12 + 0x48" identifier + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar39 + 0x351e54))\n              (*(int *)(pcVar39 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar36,pdVar31);" (call_expression "(**(code **)(pcVar39 + 0x351e54))\n              (*(int *)(pcVar39 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar36,pdVar31)" (parenthesized_expression "(**(code **)(pcVar39 + 0x351e54))" ( (pointer_expression "**(code **)(pcVar39 + 0x351e54)" * (pointer_expression "*(code **)(pcVar39 + 0x351e54)" * (cast_expression "(code **)(pcVar39 + 0x351e54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x351e54)" ( (binary_expression "pcVar39 + 0x351e54" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar39 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar36,pdVar31)" ( (binary_expression "*(int *)(pcVar39 + 0x35190c) + 0x6ab4" (pointer_expression "*(int *)(pcVar39 + 0x35190c)" * (cast_expression "(int *)(pcVar39 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x35190c)" ( (binary_expression "pcVar39 + 0x35190c" identifier + number_literal) )))) + number_literal) , number_literal , identifier , identifier ))) ;) (expression_statement "ppiVar35 = (int **)(iVar12 + 0xa0);" (assignment_expression "ppiVar35 = (int **)(iVar12 + 0xa0)" identifier = (cast_expression "(int **)(iVar12 + 0xa0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 0xa0)" ( (binary_expression "iVar12 + 0xa0" identifier + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar39 + 0x351e54))\n              (*(int *)(pcVar39 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar35,pdVar31);" (call_expression "(**(code **)(pcVar39 + 0x351e54))\n              (*(int *)(pcVar39 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar35,pdVar31)" (parenthesized_expression "(**(code **)(pcVar39 + 0x351e54))" ( (pointer_expression "**(code **)(pcVar39 + 0x351e54)" * (pointer_expression "*(code **)(pcVar39 + 0x351e54)" * (cast_expression "(code **)(pcVar39 + 0x351e54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x351e54)" ( (binary_expression "pcVar39 + 0x351e54" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar39 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar35,pdVar31)" ( (binary_expression "*(int *)(pcVar39 + 0x35190c) + 0x6abc" (pointer_expression "*(int *)(pcVar39 + 0x35190c)" * (cast_expression "(int *)(pcVar39 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x35190c)" ( (binary_expression "pcVar39 + 0x35190c" identifier + number_literal) )))) + number_literal) , number_literal , identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(iVar12 + 0x238) = *(undefined4 *)(iVar4 + 0x14);" (assignment_expression "*(undefined4 *)(iVar12 + 0x238) = *(undefined4 *)(iVar4 + 0x14)" (pointer_expression "*(undefined4 *)(iVar12 + 0x238)" * (cast_expression "(undefined4 *)(iVar12 + 0x238)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x238)" ( (binary_expression "iVar12 + 0x238" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar4 + 0x14)" * (cast_expression "(undefined4 *)(iVar4 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(iVar12 + 0x1b0) = *(undefined8 *)(*(int *)(pcVar39 + 0x351908) + 0x4408);" (assignment_expression "*(undefined8 *)(iVar12 + 0x1b0) = *(undefined8 *)(*(int *)(pcVar39 + 0x351908) + 0x4408)" (pointer_expression "*(undefined8 *)(iVar12 + 0x1b0)" * (cast_expression "(undefined8 *)(iVar12 + 0x1b0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x1b0)" ( (binary_expression "iVar12 + 0x1b0" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(*(int *)(pcVar39 + 0x351908) + 0x4408)" * (cast_expression "(undefined8 *)(*(int *)(pcVar39 + 0x351908) + 0x4408)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar39 + 0x351908) + 0x4408)" ( (binary_expression "*(int *)(pcVar39 + 0x351908) + 0x4408" (pointer_expression "*(int *)(pcVar39 + 0x351908)" * (cast_expression "(int *)(pcVar39 + 0x351908)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x351908)" ( (binary_expression "pcVar39 + 0x351908" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar12 + 0x240) = 1;" (assignment_expression "*(undefined4 *)(iVar12 + 0x240) = 1" (pointer_expression "*(undefined4 *)(iVar12 + 0x240)" * (cast_expression "(undefined4 *)(iVar12 + 0x240)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x240)" ( (binary_expression "iVar12 + 0x240" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar12 + 0x2cc) = *(undefined4 *)(*(int *)(pcVar39 + 0x351908) + 0x4aa8);" (assignment_expression "*(undefined4 *)(iVar12 + 0x2cc) = *(undefined4 *)(*(int *)(pcVar39 + 0x351908) + 0x4aa8)" (pointer_expression "*(undefined4 *)(iVar12 + 0x2cc)" * (cast_expression "(undefined4 *)(iVar12 + 0x2cc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x2cc)" ( (binary_expression "iVar12 + 0x2cc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(*(int *)(pcVar39 + 0x351908) + 0x4aa8)" * (cast_expression "(undefined4 *)(*(int *)(pcVar39 + 0x351908) + 0x4aa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar39 + 0x351908) + 0x4aa8)" ( (binary_expression "*(int *)(pcVar39 + 0x351908) + 0x4aa8" (pointer_expression "*(int *)(pcVar39 + 0x351908)" * (cast_expression "(int *)(pcVar39 + 0x351908)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x351908)" ( (binary_expression "pcVar39 + 0x351908" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar53 = *(undefined8 *)(*(int *)(pcVar39 + 0x351908) + 0x4a48);" (assignment_expression "uVar53 = *(undefined8 *)(*(int *)(pcVar39 + 0x351908) + 0x4a48)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(pcVar39 + 0x351908) + 0x4a48)" * (cast_expression "(undefined8 *)(*(int *)(pcVar39 + 0x351908) + 0x4a48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar39 + 0x351908) + 0x4a48)" ( (binary_expression "*(int *)(pcVar39 + 0x351908) + 0x4a48" (pointer_expression "*(int *)(pcVar39 + 0x351908)" * (cast_expression "(int *)(pcVar39 + 0x351908)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x351908)" ( (binary_expression "pcVar39 + 0x351908" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(iVar12 + 0x398) = uVar53;" (assignment_expression "*(undefined8 *)(iVar12 + 0x398) = uVar53" (pointer_expression "*(undefined8 *)(iVar12 + 0x398)" * (cast_expression "(undefined8 *)(iVar12 + 0x398)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x398)" ( (binary_expression "iVar12 + 0x398" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined8 *)(iVar12 + 0x3a0) = uVar53;" (assignment_expression "*(undefined8 *)(iVar12 + 0x3a0) = uVar53" (pointer_expression "*(undefined8 *)(iVar12 + 0x3a0)" * (cast_expression "(undefined8 *)(iVar12 + 0x3a0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3a0)" ( (binary_expression "iVar12 + 0x3a0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar12 + 0x244) = 1;" (assignment_expression "*(undefined4 *)(iVar12 + 0x244) = 1" (pointer_expression "*(undefined4 *)(iVar12 + 0x244)" * (cast_expression "(undefined4 *)(iVar12 + 0x244)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x244)" ( (binary_expression "iVar12 + 0x244" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar12 + 0x248) = 1;" (assignment_expression "*(undefined4 *)(iVar12 + 0x248) = 1" (pointer_expression "*(undefined4 *)(iVar12 + 0x248)" * (cast_expression "(undefined4 *)(iVar12 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x248)" ( (binary_expression "iVar12 + 0x248" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar12 + 0x24c) = 10;" (assignment_expression "*(undefined4 *)(iVar12 + 0x24c) = 10" (pointer_expression "*(undefined4 *)(iVar12 + 0x24c)" * (cast_expression "(undefined4 *)(iVar12 + 0x24c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24c)" ( (binary_expression "iVar12 + 0x24c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar12 + 600) = 1;" (assignment_expression "*(undefined4 *)(iVar12 + 600) = 1" (pointer_expression "*(undefined4 *)(iVar12 + 600)" * (cast_expression "(undefined4 *)(iVar12 + 600)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 600)" ( (binary_expression "iVar12 + 600" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 *)(iVar12 + 0x288) = *(undefined8 *)(*(int *)(pcVar39 + 0x35190c) + 0x7970);" (assignment_expression "*(undefined8 *)(iVar12 + 0x288) = *(undefined8 *)(*(int *)(pcVar39 + 0x35190c) + 0x7970)" (pointer_expression "*(undefined8 *)(iVar12 + 0x288)" * (cast_expression "(undefined8 *)(iVar12 + 0x288)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x288)" ( (binary_expression "iVar12 + 0x288" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(*(int *)(pcVar39 + 0x35190c) + 0x7970)" * (cast_expression "(undefined8 *)(*(int *)(pcVar39 + 0x35190c) + 0x7970)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar39 + 0x35190c) + 0x7970)" ( (binary_expression "*(int *)(pcVar39 + 0x35190c) + 0x7970" (pointer_expression "*(int *)(pcVar39 + 0x35190c)" * (cast_expression "(int *)(pcVar39 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x35190c)" ( (binary_expression "pcVar39 + 0x35190c" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar12 + 0x144) = 0;" (assignment_expression "*(undefined4 *)(iVar12 + 0x144) = 0" (pointer_expression "*(undefined4 *)(iVar12 + 0x144)" * (cast_expression "(undefined4 *)(iVar12 + 0x144)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x144)" ( (binary_expression "iVar12 + 0x144" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar12 + 0x140) = 0;" (assignment_expression "*(undefined4 *)(iVar12 + 0x140) = 0" (pointer_expression "*(undefined4 *)(iVar12 + 0x140)" * (cast_expression "(undefined4 *)(iVar12 + 0x140)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x140)" ( (binary_expression "iVar12 + 0x140" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar12 + 0x25c) = 0x36;" (assignment_expression "*(undefined4 *)(iVar12 + 0x25c) = 0x36" (pointer_expression "*(undefined4 *)(iVar12 + 0x25c)" * (cast_expression "(undefined4 *)(iVar12 + 0x25c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x25c)" ( (binary_expression "iVar12 + 0x25c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar12 + 0x2d0) = 1;" (assignment_expression "*(undefined4 *)(iVar12 + 0x2d0) = 1" (pointer_expression "*(undefined4 *)(iVar12 + 0x2d0)" * (cast_expression "(undefined4 *)(iVar12 + 0x2d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x2d0)" ( (binary_expression "iVar12 + 0x2d0" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar12 + 0x3a8) = 0;" (assignment_expression "*(undefined4 *)(iVar12 + 0x3a8) = 0" (pointer_expression "*(undefined4 *)(iVar12 + 0x3a8)" * (cast_expression "(undefined4 *)(iVar12 + 0x3a8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3a8)" ( (binary_expression "iVar12 + 0x3a8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar5 = (**(code **)(pcVar39 + 0x3527e8))();" (assignment_expression "uVar5 = (**(code **)(pcVar39 + 0x3527e8))()" identifier = (call_expression "(**(code **)(pcVar39 + 0x3527e8))()" (parenthesized_expression "(**(code **)(pcVar39 + 0x3527e8))" ( (pointer_expression "**(code **)(pcVar39 + 0x3527e8)" * (pointer_expression "*(code **)(pcVar39 + 0x3527e8)" * (cast_expression "(code **)(pcVar39 + 0x3527e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x3527e8)" ( (binary_expression "pcVar39 + 0x3527e8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(iVar12 + 0x38c) = uVar5;" (assignment_expression "*(undefined4 *)(iVar12 + 0x38c) = uVar5" (pointer_expression "*(undefined4 *)(iVar12 + 0x38c)" * (cast_expression "(undefined4 *)(iVar12 + 0x38c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x38c)" ( (binary_expression "iVar12 + 0x38c" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*(int *)(iVar4 + 0x4c) != 0) {\n      uVar5 = (**(code **)(pcVar39 + 0x352854))();\n      *(undefined4 *)(iVar12 + 0x264) = uVar5;\n    }" if (parenthesized_expression "(*(int *)(iVar4 + 0x4c) != 0)" ( (binary_expression "*(int *)(iVar4 + 0x4c) != 0" (pointer_expression "*(int *)(iVar4 + 0x4c)" * (cast_expression "(int *)(iVar4 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x4c)" ( (binary_expression "iVar4 + 0x4c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar5 = (**(code **)(pcVar39 + 0x352854))();\n      *(undefined4 *)(iVar12 + 0x264) = uVar5;\n    }" { (expression_statement "uVar5 = (**(code **)(pcVar39 + 0x352854))();" (assignment_expression "uVar5 = (**(code **)(pcVar39 + 0x352854))()" identifier = (call_expression "(**(code **)(pcVar39 + 0x352854))()" (parenthesized_expression "(**(code **)(pcVar39 + 0x352854))" ( (pointer_expression "**(code **)(pcVar39 + 0x352854)" * (pointer_expression "*(code **)(pcVar39 + 0x352854)" * (cast_expression "(code **)(pcVar39 + 0x352854)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x352854)" ( (binary_expression "pcVar39 + 0x352854" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(iVar12 + 0x264) = uVar5;" (assignment_expression "*(undefined4 *)(iVar12 + 0x264) = uVar5" (pointer_expression "*(undefined4 *)(iVar12 + 0x264)" * (cast_expression "(undefined4 *)(iVar12 + 0x264)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x264)" ( (binary_expression "iVar12 + 0x264" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(int *)(iVar4 + 0x54) != 0) {\n      uVar5 = (**(code **)(pcVar39 + 0x352854))();\n      *(undefined4 *)(iVar12 + 0x290) = uVar5;\n    }" if (parenthesized_expression "(*(int *)(iVar4 + 0x54) != 0)" ( (binary_expression "*(int *)(iVar4 + 0x54) != 0" (pointer_expression "*(int *)(iVar4 + 0x54)" * (cast_expression "(int *)(iVar4 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x54)" ( (binary_expression "iVar4 + 0x54" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar5 = (**(code **)(pcVar39 + 0x352854))();\n      *(undefined4 *)(iVar12 + 0x290) = uVar5;\n    }" { (expression_statement "uVar5 = (**(code **)(pcVar39 + 0x352854))();" (assignment_expression "uVar5 = (**(code **)(pcVar39 + 0x352854))()" identifier = (call_expression "(**(code **)(pcVar39 + 0x352854))()" (parenthesized_expression "(**(code **)(pcVar39 + 0x352854))" ( (pointer_expression "**(code **)(pcVar39 + 0x352854)" * (pointer_expression "*(code **)(pcVar39 + 0x352854)" * (cast_expression "(code **)(pcVar39 + 0x352854)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x352854)" ( (binary_expression "pcVar39 + 0x352854" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(iVar12 + 0x290) = uVar5;" (assignment_expression "*(undefined4 *)(iVar12 + 0x290) = uVar5" (pointer_expression "*(undefined4 *)(iVar12 + 0x290)" * (cast_expression "(undefined4 *)(iVar12 + 0x290)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x290)" ( (binary_expression "iVar12 + 0x290" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "*(undefined4 *)(iVar12 + 0x23c) = *(undefined4 *)(iVar4 + 0x14);" (assignment_expression "*(undefined4 *)(iVar12 + 0x23c) = *(undefined4 *)(iVar4 + 0x14)" (pointer_expression "*(undefined4 *)(iVar12 + 0x23c)" * (cast_expression "(undefined4 *)(iVar12 + 0x23c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x23c)" ( (binary_expression "iVar12 + 0x23c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar4 + 0x14)" * (cast_expression "(undefined4 *)(iVar4 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = *(undefined4 *)(iVar4 + 0x58);" (assignment_expression "uVar5 = *(undefined4 *)(iVar4 + 0x58)" identifier = (pointer_expression "*(undefined4 *)(iVar4 + 0x58)" * (cast_expression "(undefined4 *)(iVar4 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x58)" ( (binary_expression "iVar4 + 0x58" identifier + number_literal) ))))) ;) (if_statement "if (*(double *)(*(int *)(pcVar39 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar4 + 0x58))) {\n      *(undefined4 *)(iVar12 + 0x28c) = *(undefined4 *)(iVar4 + 0x5c);\n      *(undefined4 *)(iVar12 + 0x288) = uVar5;\n    }" if (parenthesized_expression "(*(double *)(*(int *)(pcVar39 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar4 + 0x58)))" ( (binary_expression "*(double *)(*(int *)(pcVar39 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar4 + 0x58))" (pointer_expression "*(double *)(*(int *)(pcVar39 + 0x351908) + 0x43c8)" * (cast_expression "(double *)(*(int *)(pcVar39 + 0x351908) + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar39 + 0x351908) + 0x43c8)" ( (binary_expression "*(int *)(pcVar39 + 0x351908) + 0x43c8" (pointer_expression "*(int *)(pcVar39 + 0x351908)" * (cast_expression "(int *)(pcVar39 + 0x351908)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x351908)" ( (binary_expression "pcVar39 + 0x351908" identifier + number_literal) )))) + number_literal) )))) <= (call_expression "ABS(*(double *)(iVar4 + 0x58))" identifier (argument_list "(*(double *)(iVar4 + 0x58))" ( (pointer_expression "*(double *)(iVar4 + 0x58)" * (cast_expression "(double *)(iVar4 + 0x58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x58)" ( (binary_expression "iVar4 + 0x58" identifier + number_literal) )))) )))) )) (compound_statement "{\n      *(undefined4 *)(iVar12 + 0x28c) = *(undefined4 *)(iVar4 + 0x5c);\n      *(undefined4 *)(iVar12 + 0x288) = uVar5;\n    }" { (expression_statement "*(undefined4 *)(iVar12 + 0x28c) = *(undefined4 *)(iVar4 + 0x5c);" (assignment_expression "*(undefined4 *)(iVar12 + 0x28c) = *(undefined4 *)(iVar4 + 0x5c)" (pointer_expression "*(undefined4 *)(iVar12 + 0x28c)" * (cast_expression "(undefined4 *)(iVar12 + 0x28c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x28c)" ( (binary_expression "iVar12 + 0x28c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar4 + 0x5c)" * (cast_expression "(undefined4 *)(iVar4 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x5c)" ( (binary_expression "iVar4 + 0x5c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar12 + 0x288) = uVar5;" (assignment_expression "*(undefined4 *)(iVar12 + 0x288) = uVar5" (pointer_expression "*(undefined4 *)(iVar12 + 0x288)" * (cast_expression "(undefined4 *)(iVar12 + 0x288)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x288)" ( (binary_expression "iVar12 + 0x288" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "puVar10 = (undefined4 *)(iVar4 + 0x118);" (assignment_expression "puVar10 = (undefined4 *)(iVar4 + 0x118)" identifier = (cast_expression "(undefined4 *)(iVar4 + 0x118)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x118)" ( (binary_expression "iVar4 + 0x118" identifier + number_literal) )))) ;) (expression_statement "puVar2 = (undefined4 *)(iVar12 + 0x150);" (assignment_expression "puVar2 = (undefined4 *)(iVar12 + 0x150)" identifier = (cast_expression "(undefined4 *)(iVar12 + 0x150)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x150)" ( (binary_expression "iVar12 + 0x150" identifier + number_literal) )))) ;) (do_statement "do {\n      puVar17 = puVar2;\n      puVar11 = puVar10;\n      uVar29 = puVar11[1];\n      uVar27 = puVar11[2];\n      uVar5 = puVar11[3];\n      *puVar17 = *puVar11;\n      puVar17[1] = uVar29;\n      puVar17[2] = uVar27;\n      puVar17[3] = uVar5;\n      puVar10 = puVar11 + 4;\n      puVar2 = puVar17 + 4;\n    } while (puVar10 != (undefined4 *)(iVar4 + 0x168));" do (compound_statement "{\n      puVar17 = puVar2;\n      puVar11 = puVar10;\n      uVar29 = puVar11[1];\n      uVar27 = puVar11[2];\n      uVar5 = puVar11[3];\n      *puVar17 = *puVar11;\n      puVar17[1] = uVar29;\n      puVar17[2] = uVar27;\n      puVar17[3] = uVar5;\n      puVar10 = puVar11 + 4;\n      puVar2 = puVar17 + 4;\n    }" { (expression_statement "puVar17 = puVar2;" (assignment_expression "puVar17 = puVar2" identifier = identifier) ;) (expression_statement "puVar11 = puVar10;" (assignment_expression "puVar11 = puVar10" identifier = identifier) ;) (expression_statement "uVar29 = puVar11[1];" (assignment_expression "uVar29 = puVar11[1]" identifier = (subscript_expression "puVar11[1]" identifier [ number_literal ])) ;) (expression_statement "uVar27 = puVar11[2];" (assignment_expression "uVar27 = puVar11[2]" identifier = (subscript_expression "puVar11[2]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = puVar11[3];" (assignment_expression "uVar5 = puVar11[3]" identifier = (subscript_expression "puVar11[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar17 = *puVar11;" (assignment_expression "*puVar17 = *puVar11" (pointer_expression "*puVar17" * identifier) = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "puVar17[1] = uVar29;" (assignment_expression "puVar17[1] = uVar29" (subscript_expression "puVar17[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[2] = uVar27;" (assignment_expression "puVar17[2] = uVar27" (subscript_expression "puVar17[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[3] = uVar5;" (assignment_expression "puVar17[3] = uVar5" (subscript_expression "puVar17[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10 = puVar11 + 4;" (assignment_expression "puVar10 = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) (expression_statement "puVar2 = puVar17 + 4;" (assignment_expression "puVar2 = puVar17 + 4" identifier = (binary_expression "puVar17 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar10 != (undefined4 *)(iVar4 + 0x168))" ( (binary_expression "puVar10 != (undefined4 *)(iVar4 + 0x168)" identifier != (cast_expression "(undefined4 *)(iVar4 + 0x168)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x168)" ( (binary_expression "iVar4 + 0x168" identifier + number_literal) )))) )) ;) (expression_statement "uVar5 = puVar11[5];" (assignment_expression "uVar5 = puVar11[5]" identifier = (subscript_expression "puVar11[5]" identifier [ number_literal ])) ;) (expression_statement "puVar17[4] = *puVar10;" (assignment_expression "puVar17[4] = *puVar10" (subscript_expression "puVar17[4]" identifier [ number_literal ]) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "puVar17[5] = uVar5;" (assignment_expression "puVar17[5] = uVar5" (subscript_expression "puVar17[5]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (*(int *)(iVar4 + 0x48) != 0) {\n      uVar5 = (**(code **)(pcVar39 + 0x352854))();\n      *(undefined4 *)(iVar12 + 0x29c) = uVar5;\n    }" if (parenthesized_expression "(*(int *)(iVar4 + 0x48) != 0)" ( (binary_expression "*(int *)(iVar4 + 0x48) != 0" (pointer_expression "*(int *)(iVar4 + 0x48)" * (cast_expression "(int *)(iVar4 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x48)" ( (binary_expression "iVar4 + 0x48" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar5 = (**(code **)(pcVar39 + 0x352854))();\n      *(undefined4 *)(iVar12 + 0x29c) = uVar5;\n    }" { (expression_statement "uVar5 = (**(code **)(pcVar39 + 0x352854))();" (assignment_expression "uVar5 = (**(code **)(pcVar39 + 0x352854))()" identifier = (call_expression "(**(code **)(pcVar39 + 0x352854))()" (parenthesized_expression "(**(code **)(pcVar39 + 0x352854))" ( (pointer_expression "**(code **)(pcVar39 + 0x352854)" * (pointer_expression "*(code **)(pcVar39 + 0x352854)" * (cast_expression "(code **)(pcVar39 + 0x352854)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x352854)" ( (binary_expression "pcVar39 + 0x352854" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(iVar12 + 0x29c) = uVar5;" (assignment_expression "*(undefined4 *)(iVar12 + 0x29c) = uVar5" (pointer_expression "*(undefined4 *)(iVar12 + 0x29c)" * (cast_expression "(undefined4 *)(iVar12 + 0x29c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x29c)" ( (binary_expression "iVar12 + 0x29c" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6ac4);" (assignment_expression "iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6ac4)" identifier = (call_expression "(**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6ac4)" (parenthesized_expression "(**(code **)(pcVar39 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar39 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar39 + 0x3521a8)" * (cast_expression "(code **)(pcVar39 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x3521a8)" ( (binary_expression "pcVar39 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6ac4)" ( identifier , (binary_expression "*(int *)(pcVar39 + 0x35190c) + 0x6ac4" (pointer_expression "*(int *)(pcVar39 + 0x35190c)" * (cast_expression "(int *)(pcVar39 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x35190c)" ( (binary_expression "pcVar39 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar51 != 0) {\n      uVar5 = (**(code **)(pcVar39 + 0x3526d4))(0x14,0,iVar51);\n      *(undefined4 *)(iVar12 + 0x388) = uVar5;\n      goto LAB_000a8298;\n    }" if (parenthesized_expression "(iVar51 != 0)" ( (binary_expression "iVar51 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar5 = (**(code **)(pcVar39 + 0x3526d4))(0x14,0,iVar51);\n      *(undefined4 *)(iVar12 + 0x388) = uVar5;\n      goto LAB_000a8298;\n    }" { (expression_statement "uVar5 = (**(code **)(pcVar39 + 0x3526d4))(0x14,0,iVar51);" (assignment_expression "uVar5 = (**(code **)(pcVar39 + 0x3526d4))(0x14,0,iVar51)" identifier = (call_expression "(**(code **)(pcVar39 + 0x3526d4))(0x14,0,iVar51)" (parenthesized_expression "(**(code **)(pcVar39 + 0x3526d4))" ( (pointer_expression "**(code **)(pcVar39 + 0x3526d4)" * (pointer_expression "*(code **)(pcVar39 + 0x3526d4)" * (cast_expression "(code **)(pcVar39 + 0x3526d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x3526d4)" ( (binary_expression "pcVar39 + 0x3526d4" identifier + number_literal) ))))) )) (argument_list "(0x14,0,iVar51)" ( number_literal , number_literal , identifier )))) ;) (expression_statement "*(undefined4 *)(iVar12 + 0x388) = uVar5;" (assignment_expression "*(undefined4 *)(iVar12 + 0x388) = uVar5" (pointer_expression "*(undefined4 *)(iVar12 + 0x388)" * (cast_expression "(undefined4 *)(iVar12 + 0x388)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x388)" ( (binary_expression "iVar12 + 0x388" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_000a8298;" goto statement_identifier ;) })) }))) (expression_statement "*(undefined4 *)(iVar12 + 0x388) = 0;" (assignment_expression "*(undefined4 *)(iVar12 + 0x388) = 0" (pointer_expression "*(undefined4 *)(iVar12 + 0x388)" * (cast_expression "(undefined4 *)(iVar12 + 0x388)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x388)" ( (binary_expression "iVar12 + 0x388" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_000a8298:\n  iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6ad0);" statement_identifier : (expression_statement "iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6ad0);" (assignment_expression "iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6ad0)" identifier = (call_expression "(**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6ad0)" (parenthesized_expression "(**(code **)(pcVar39 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar39 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar39 + 0x3521a8)" * (cast_expression "(code **)(pcVar39 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x3521a8)" ( (binary_expression "pcVar39 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6ad0)" ( identifier , (binary_expression "*(int *)(pcVar39 + 0x35190c) + 0x6ad0" (pointer_expression "*(int *)(pcVar39 + 0x35190c)" * (cast_expression "(int *)(pcVar39 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x35190c)" ( (binary_expression "pcVar39 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) ;)) (if_statement "if (iVar51 != 0) {\n    (**(code **)(pcVar39 + 0x3524c8))(iVar12 + 0x280,iVar51);\n  }" if (parenthesized_expression "(iVar51 != 0)" ( (binary_expression "iVar51 != 0" identifier != number_literal) )) (compound_statement "{\n    (**(code **)(pcVar39 + 0x3524c8))(iVar12 + 0x280,iVar51);\n  }" { (expression_statement "(**(code **)(pcVar39 + 0x3524c8))(iVar12 + 0x280,iVar51);" (call_expression "(**(code **)(pcVar39 + 0x3524c8))(iVar12 + 0x280,iVar51)" (parenthesized_expression "(**(code **)(pcVar39 + 0x3524c8))" ( (pointer_expression "**(code **)(pcVar39 + 0x3524c8)" * (pointer_expression "*(code **)(pcVar39 + 0x3524c8)" * (cast_expression "(code **)(pcVar39 + 0x3524c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x3524c8)" ( (binary_expression "pcVar39 + 0x3524c8" identifier + number_literal) ))))) )) (argument_list "(iVar12 + 0x280,iVar51)" ( (binary_expression "iVar12 + 0x280" identifier + number_literal) , identifier ))) ;) })) (expression_statement "iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6adc);" (assignment_expression "iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6adc)" identifier = (call_expression "(**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6adc)" (parenthesized_expression "(**(code **)(pcVar39 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar39 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar39 + 0x3521a8)" * (cast_expression "(code **)(pcVar39 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x3521a8)" ( (binary_expression "pcVar39 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6adc)" ( identifier , (binary_expression "*(int *)(pcVar39 + 0x35190c) + 0x6adc" (pointer_expression "*(int *)(pcVar39 + 0x35190c)" * (cast_expression "(int *)(pcVar39 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x35190c)" ( (binary_expression "pcVar39 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar51 != 0) {\n    (**(code **)(pcVar39 + 0x3524c8))(iVar12 + 0x26c,iVar51);\n  }" if (parenthesized_expression "(iVar51 != 0)" ( (binary_expression "iVar51 != 0" identifier != number_literal) )) (compound_statement "{\n    (**(code **)(pcVar39 + 0x3524c8))(iVar12 + 0x26c,iVar51);\n  }" { (expression_statement "(**(code **)(pcVar39 + 0x3524c8))(iVar12 + 0x26c,iVar51);" (call_expression "(**(code **)(pcVar39 + 0x3524c8))(iVar12 + 0x26c,iVar51)" (parenthesized_expression "(**(code **)(pcVar39 + 0x3524c8))" ( (pointer_expression "**(code **)(pcVar39 + 0x3524c8)" * (pointer_expression "*(code **)(pcVar39 + 0x3524c8)" * (cast_expression "(code **)(pcVar39 + 0x3524c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x3524c8)" ( (binary_expression "pcVar39 + 0x3524c8" identifier + number_literal) ))))) )) (argument_list "(iVar12 + 0x26c,iVar51)" ( (binary_expression "iVar12 + 0x26c" identifier + number_literal) , identifier ))) ;) })) (expression_statement "iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6ae4);" (assignment_expression "iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6ae4)" identifier = (call_expression "(**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6ae4)" (parenthesized_expression "(**(code **)(pcVar39 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar39 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar39 + 0x3521a8)" * (cast_expression "(code **)(pcVar39 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x3521a8)" ( (binary_expression "pcVar39 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6ae4)" ( identifier , (binary_expression "*(int *)(pcVar39 + 0x35190c) + 0x6ae4" (pointer_expression "*(int *)(pcVar39 + 0x35190c)" * (cast_expression "(int *)(pcVar39 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x35190c)" ( (binary_expression "pcVar39 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar51 != 0) {\n    (**(code **)(pcVar39 + 0x351e54))(iVar51,0x7fffffff,ppiVar36,pdVar31);\n  }" if (parenthesized_expression "(iVar51 != 0)" ( (binary_expression "iVar51 != 0" identifier != number_literal) )) (compound_statement "{\n    (**(code **)(pcVar39 + 0x351e54))(iVar51,0x7fffffff,ppiVar36,pdVar31);\n  }" { (expression_statement "(**(code **)(pcVar39 + 0x351e54))(iVar51,0x7fffffff,ppiVar36,pdVar31);" (call_expression "(**(code **)(pcVar39 + 0x351e54))(iVar51,0x7fffffff,ppiVar36,pdVar31)" (parenthesized_expression "(**(code **)(pcVar39 + 0x351e54))" ( (pointer_expression "**(code **)(pcVar39 + 0x351e54)" * (pointer_expression "*(code **)(pcVar39 + 0x351e54)" * (cast_expression "(code **)(pcVar39 + 0x351e54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x351e54)" ( (binary_expression "pcVar39 + 0x351e54" identifier + number_literal) ))))) )) (argument_list "(iVar51,0x7fffffff,ppiVar36,pdVar31)" ( identifier , number_literal , identifier , identifier ))) ;) })) (expression_statement "iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6aec);" (assignment_expression "iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6aec)" identifier = (call_expression "(**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6aec)" (parenthesized_expression "(**(code **)(pcVar39 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar39 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar39 + 0x3521a8)" * (cast_expression "(code **)(pcVar39 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x3521a8)" ( (binary_expression "pcVar39 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6aec)" ( identifier , (binary_expression "*(int *)(pcVar39 + 0x35190c) + 0x6aec" (pointer_expression "*(int *)(pcVar39 + 0x35190c)" * (cast_expression "(int *)(pcVar39 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x35190c)" ( (binary_expression "pcVar39 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar51 != 0) {\n    uVar5 = (**(code **)(pcVar39 + 0x3526d4))(0x21,0,iVar51);\n    *(undefined4 *)(iVar12 + 0x298) = uVar5;\n  }" if (parenthesized_expression "(iVar51 != 0)" ( (binary_expression "iVar51 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar5 = (**(code **)(pcVar39 + 0x3526d4))(0x21,0,iVar51);\n    *(undefined4 *)(iVar12 + 0x298) = uVar5;\n  }" { (expression_statement "uVar5 = (**(code **)(pcVar39 + 0x3526d4))(0x21,0,iVar51);" (assignment_expression "uVar5 = (**(code **)(pcVar39 + 0x3526d4))(0x21,0,iVar51)" identifier = (call_expression "(**(code **)(pcVar39 + 0x3526d4))(0x21,0,iVar51)" (parenthesized_expression "(**(code **)(pcVar39 + 0x3526d4))" ( (pointer_expression "**(code **)(pcVar39 + 0x3526d4)" * (pointer_expression "*(code **)(pcVar39 + 0x3526d4)" * (cast_expression "(code **)(pcVar39 + 0x3526d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x3526d4)" ( (binary_expression "pcVar39 + 0x3526d4" identifier + number_literal) ))))) )) (argument_list "(0x21,0,iVar51)" ( number_literal , number_literal , identifier )))) ;) (expression_statement "*(undefined4 *)(iVar12 + 0x298) = uVar5;" (assignment_expression "*(undefined4 *)(iVar12 + 0x298) = uVar5" (pointer_expression "*(undefined4 *)(iVar12 + 0x298)" * (cast_expression "(undefined4 *)(iVar12 + 0x298)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x298)" ( (binary_expression "iVar12 + 0x298" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6af4);" (assignment_expression "iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6af4)" identifier = (call_expression "(**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6af4)" (parenthesized_expression "(**(code **)(pcVar39 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar39 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar39 + 0x3521a8)" * (cast_expression "(code **)(pcVar39 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x3521a8)" ( (binary_expression "pcVar39 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6af4)" ( identifier , (binary_expression "*(int *)(pcVar39 + 0x35190c) + 0x6af4" (pointer_expression "*(int *)(pcVar39 + 0x35190c)" * (cast_expression "(int *)(pcVar39 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x35190c)" ( (binary_expression "pcVar39 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar51 != 0) {\n    dVar41 = (double)(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898);\n    if (NAN(dVar41)) {\n      dVar41 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41) {\n      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }\n    }\n    else {\n      dVar41 = 0.0;\n    }\n    *(double *)(iVar12 + 0x380) = dVar41;\n  }" if (parenthesized_expression "(iVar51 != 0)" ( (binary_expression "iVar51 != 0" identifier != number_literal) )) (compound_statement "{\n    dVar41 = (double)(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898);\n    if (NAN(dVar41)) {\n      dVar41 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41) {\n      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }\n    }\n    else {\n      dVar41 = 0.0;\n    }\n    *(double *)(iVar12 + 0x380) = dVar41;\n  }" { (expression_statement "dVar41 = (double)(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898);" (assignment_expression "dVar41 = (double)(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898)" identifier = (cast_expression "(double)(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898)" (parenthesized_expression "(**(code **)(pcVar39 + 0x3527a8))" ( (pointer_expression "**(code **)(pcVar39 + 0x3527a8)" * (pointer_expression "*(code **)(pcVar39 + 0x3527a8)" * (cast_expression "(code **)(pcVar39 + 0x3527a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x3527a8)" ( (binary_expression "pcVar39 + 0x3527a8" identifier + number_literal) ))))) )) (argument_list "(iVar51,auStack_898)" ( identifier , identifier ))))) ;) (if_statement "if (NAN(dVar41)) {\n      dVar41 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41) {\n      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }\n    }\n    else {\n      dVar41 = 0.0;\n    }" if (parenthesized_expression "(NAN(dVar41))" ( (call_expression "NAN(dVar41)" identifier (argument_list "(dVar41)" ( identifier ))) )) (compound_statement "{\n      dVar41 = 0.0;\n    }" { (expression_statement "dVar41 = 0.0;" (assignment_expression "dVar41 = 0.0" identifier = number_literal) ;) }) (else_clause "else if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41) {\n      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }\n    }\n    else {\n      dVar41 = 0.0;\n    }" else (if_statement "if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41) {\n      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }\n    }\n    else {\n      dVar41 = 0.0;\n    }" if (parenthesized_expression "(*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41)" ( (binary_expression "*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41" (pointer_expression "*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960)" * (cast_expression "(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar39 + 0x35190c) + 0x7960)" ( (binary_expression "*(int *)(pcVar39 + 0x35190c) + 0x7960" (pointer_expression "*(int *)(pcVar39 + 0x35190c)" * (cast_expression "(int *)(pcVar39 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x35190c)" ( (binary_expression "pcVar39 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) <= identifier) )) (compound_statement "{\n      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }\n    }" { (if_statement "if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }" if (parenthesized_expression "(*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41)" ( (binary_expression "*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41" (pointer_expression "*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968)" * (cast_expression "(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar39 + 0x35190c) + 0x7968)" ( (binary_expression "*(int *)(pcVar39 + 0x35190c) + 0x7968" (pointer_expression "*(int *)(pcVar39 + 0x35190c)" * (cast_expression "(int *)(pcVar39 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x35190c)" ( (binary_expression "pcVar39 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) < identifier) )) (compound_statement "{\n        dVar41 = 0.0;\n      }" { (expression_statement "dVar41 = 0.0;" (assignment_expression "dVar41 = 0.0" identifier = number_literal) ;) })) }) (else_clause "else {\n      dVar41 = 0.0;\n    }" else (compound_statement "{\n      dVar41 = 0.0;\n    }" { (expression_statement "dVar41 = 0.0;" (assignment_expression "dVar41 = 0.0" identifier = number_literal) ;) }))))) (expression_statement "*(double *)(iVar12 + 0x380) = dVar41;" (assignment_expression "*(double *)(iVar12 + 0x380) = dVar41" (pointer_expression "*(double *)(iVar12 + 0x380)" * (cast_expression "(double *)(iVar12 + 0x380)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x380)" ( (binary_expression "iVar12 + 0x380" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b08);" (assignment_expression "iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b08)" identifier = (call_expression "(**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b08)" (parenthesized_expression "(**(code **)(pcVar39 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar39 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar39 + 0x3521a8)" * (cast_expression "(code **)(pcVar39 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x3521a8)" ( (binary_expression "pcVar39 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b08)" ( identifier , (binary_expression "*(int *)(pcVar39 + 0x35190c) + 0x6b08" (pointer_expression "*(int *)(pcVar39 + 0x35190c)" * (cast_expression "(int *)(pcVar39 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x35190c)" ( (binary_expression "pcVar39 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar51 != 0) {\n    dVar41 = (double)(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898);\n    if (NAN(dVar41)) {\n      dVar41 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41) {\n      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }\n    }\n    else {\n      dVar41 = 0.0;\n    }\n    *(double *)(iVar12 + 0x378) = dVar41;\n  }" if (parenthesized_expression "(iVar51 != 0)" ( (binary_expression "iVar51 != 0" identifier != number_literal) )) (compound_statement "{\n    dVar41 = (double)(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898);\n    if (NAN(dVar41)) {\n      dVar41 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41) {\n      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }\n    }\n    else {\n      dVar41 = 0.0;\n    }\n    *(double *)(iVar12 + 0x378) = dVar41;\n  }" { (expression_statement "dVar41 = (double)(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898);" (assignment_expression "dVar41 = (double)(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898)" identifier = (cast_expression "(double)(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898)" (parenthesized_expression "(**(code **)(pcVar39 + 0x3527a8))" ( (pointer_expression "**(code **)(pcVar39 + 0x3527a8)" * (pointer_expression "*(code **)(pcVar39 + 0x3527a8)" * (cast_expression "(code **)(pcVar39 + 0x3527a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x3527a8)" ( (binary_expression "pcVar39 + 0x3527a8" identifier + number_literal) ))))) )) (argument_list "(iVar51,auStack_898)" ( identifier , identifier ))))) ;) (if_statement "if (NAN(dVar41)) {\n      dVar41 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41) {\n      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }\n    }\n    else {\n      dVar41 = 0.0;\n    }" if (parenthesized_expression "(NAN(dVar41))" ( (call_expression "NAN(dVar41)" identifier (argument_list "(dVar41)" ( identifier ))) )) (compound_statement "{\n      dVar41 = 0.0;\n    }" { (expression_statement "dVar41 = 0.0;" (assignment_expression "dVar41 = 0.0" identifier = number_literal) ;) }) (else_clause "else if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41) {\n      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }\n    }\n    else {\n      dVar41 = 0.0;\n    }" else (if_statement "if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41) {\n      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }\n    }\n    else {\n      dVar41 = 0.0;\n    }" if (parenthesized_expression "(*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41)" ( (binary_expression "*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41" (pointer_expression "*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960)" * (cast_expression "(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar39 + 0x35190c) + 0x7960)" ( (binary_expression "*(int *)(pcVar39 + 0x35190c) + 0x7960" (pointer_expression "*(int *)(pcVar39 + 0x35190c)" * (cast_expression "(int *)(pcVar39 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x35190c)" ( (binary_expression "pcVar39 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) <= identifier) )) (compound_statement "{\n      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }\n    }" { (if_statement "if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }" if (parenthesized_expression "(*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41)" ( (binary_expression "*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41" (pointer_expression "*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968)" * (cast_expression "(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar39 + 0x35190c) + 0x7968)" ( (binary_expression "*(int *)(pcVar39 + 0x35190c) + 0x7968" (pointer_expression "*(int *)(pcVar39 + 0x35190c)" * (cast_expression "(int *)(pcVar39 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x35190c)" ( (binary_expression "pcVar39 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) < identifier) )) (compound_statement "{\n        dVar41 = 0.0;\n      }" { (expression_statement "dVar41 = 0.0;" (assignment_expression "dVar41 = 0.0" identifier = number_literal) ;) })) }) (else_clause "else {\n      dVar41 = 0.0;\n    }" else (compound_statement "{\n      dVar41 = 0.0;\n    }" { (expression_statement "dVar41 = 0.0;" (assignment_expression "dVar41 = 0.0" identifier = number_literal) ;) }))))) (expression_statement "*(double *)(iVar12 + 0x378) = dVar41;" (assignment_expression "*(double *)(iVar12 + 0x378) = dVar41" (pointer_expression "*(double *)(iVar12 + 0x378)" * (cast_expression "(double *)(iVar12 + 0x378)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x378)" ( (binary_expression "iVar12 + 0x378" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b1c);" (assignment_expression "iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b1c)" identifier = (call_expression "(**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b1c)" (parenthesized_expression "(**(code **)(pcVar39 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar39 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar39 + 0x3521a8)" * (cast_expression "(code **)(pcVar39 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x3521a8)" ( (binary_expression "pcVar39 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b1c)" ( identifier , (binary_expression "*(int *)(pcVar39 + 0x35190c) + 0x6b1c" (pointer_expression "*(int *)(pcVar39 + 0x35190c)" * (cast_expression "(int *)(pcVar39 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x35190c)" ( (binary_expression "pcVar39 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar51 != 0) {\n    dVar41 = (double)(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898);\n    if (NAN(dVar41)) {\n      dVar41 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41) {\n      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }\n    }\n    else {\n      dVar41 = 0.0;\n    }\n    *(double *)(iVar12 + 0x370) = dVar41;\n  }" if (parenthesized_expression "(iVar51 != 0)" ( (binary_expression "iVar51 != 0" identifier != number_literal) )) (compound_statement "{\n    dVar41 = (double)(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898);\n    if (NAN(dVar41)) {\n      dVar41 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41) {\n      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }\n    }\n    else {\n      dVar41 = 0.0;\n    }\n    *(double *)(iVar12 + 0x370) = dVar41;\n  }" { (expression_statement "dVar41 = (double)(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898);" (assignment_expression "dVar41 = (double)(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898)" identifier = (cast_expression "(double)(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898)" (parenthesized_expression "(**(code **)(pcVar39 + 0x3527a8))" ( (pointer_expression "**(code **)(pcVar39 + 0x3527a8)" * (pointer_expression "*(code **)(pcVar39 + 0x3527a8)" * (cast_expression "(code **)(pcVar39 + 0x3527a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x3527a8)" ( (binary_expression "pcVar39 + 0x3527a8" identifier + number_literal) ))))) )) (argument_list "(iVar51,auStack_898)" ( identifier , identifier ))))) ;) (if_statement "if (NAN(dVar41)) {\n      dVar41 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41) {\n      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }\n    }\n    else {\n      dVar41 = 0.0;\n    }" if (parenthesized_expression "(NAN(dVar41))" ( (call_expression "NAN(dVar41)" identifier (argument_list "(dVar41)" ( identifier ))) )) (compound_statement "{\n      dVar41 = 0.0;\n    }" { (expression_statement "dVar41 = 0.0;" (assignment_expression "dVar41 = 0.0" identifier = number_literal) ;) }) (else_clause "else if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41) {\n      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }\n    }\n    else {\n      dVar41 = 0.0;\n    }" else (if_statement "if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41) {\n      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }\n    }\n    else {\n      dVar41 = 0.0;\n    }" if (parenthesized_expression "(*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41)" ( (binary_expression "*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41" (pointer_expression "*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960)" * (cast_expression "(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar39 + 0x35190c) + 0x7960)" ( (binary_expression "*(int *)(pcVar39 + 0x35190c) + 0x7960" (pointer_expression "*(int *)(pcVar39 + 0x35190c)" * (cast_expression "(int *)(pcVar39 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x35190c)" ( (binary_expression "pcVar39 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) <= identifier) )) (compound_statement "{\n      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }\n    }" { (if_statement "if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }" if (parenthesized_expression "(*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41)" ( (binary_expression "*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41" (pointer_expression "*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968)" * (cast_expression "(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar39 + 0x35190c) + 0x7968)" ( (binary_expression "*(int *)(pcVar39 + 0x35190c) + 0x7968" (pointer_expression "*(int *)(pcVar39 + 0x35190c)" * (cast_expression "(int *)(pcVar39 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x35190c)" ( (binary_expression "pcVar39 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) < identifier) )) (compound_statement "{\n        dVar41 = 0.0;\n      }" { (expression_statement "dVar41 = 0.0;" (assignment_expression "dVar41 = 0.0" identifier = number_literal) ;) })) }) (else_clause "else {\n      dVar41 = 0.0;\n    }" else (compound_statement "{\n      dVar41 = 0.0;\n    }" { (expression_statement "dVar41 = 0.0;" (assignment_expression "dVar41 = 0.0" identifier = number_literal) ;) }))))) (expression_statement "*(double *)(iVar12 + 0x370) = dVar41;" (assignment_expression "*(double *)(iVar12 + 0x370) = dVar41" (pointer_expression "*(double *)(iVar12 + 0x370)" * (cast_expression "(double *)(iVar12 + 0x370)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x370)" ( (binary_expression "iVar12 + 0x370" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b24);" (assignment_expression "iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b24)" identifier = (call_expression "(**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b24)" (parenthesized_expression "(**(code **)(pcVar39 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar39 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar39 + 0x3521a8)" * (cast_expression "(code **)(pcVar39 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x3521a8)" ( (binary_expression "pcVar39 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b24)" ( identifier , (binary_expression "*(int *)(pcVar39 + 0x35190c) + 0x6b24" (pointer_expression "*(int *)(pcVar39 + 0x35190c)" * (cast_expression "(int *)(pcVar39 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x35190c)" ( (binary_expression "pcVar39 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar51 != 0) {\n    (**(code **)(pcVar39 + 0x351e54))(iVar51,0x7fffffff,ppiVar35,pdVar31);\n  }" if (parenthesized_expression "(iVar51 != 0)" ( (binary_expression "iVar51 != 0" identifier != number_literal) )) (compound_statement "{\n    (**(code **)(pcVar39 + 0x351e54))(iVar51,0x7fffffff,ppiVar35,pdVar31);\n  }" { (expression_statement "(**(code **)(pcVar39 + 0x351e54))(iVar51,0x7fffffff,ppiVar35,pdVar31);" (call_expression "(**(code **)(pcVar39 + 0x351e54))(iVar51,0x7fffffff,ppiVar35,pdVar31)" (parenthesized_expression "(**(code **)(pcVar39 + 0x351e54))" ( (pointer_expression "**(code **)(pcVar39 + 0x351e54)" * (pointer_expression "*(code **)(pcVar39 + 0x351e54)" * (cast_expression "(code **)(pcVar39 + 0x351e54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x351e54)" ( (binary_expression "pcVar39 + 0x351e54" identifier + number_literal) ))))) )) (argument_list "(iVar51,0x7fffffff,ppiVar35,pdVar31)" ( identifier , number_literal , identifier , identifier ))) ;) })) (expression_statement "iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b2c);" (assignment_expression "iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b2c)" identifier = (call_expression "(**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b2c)" (parenthesized_expression "(**(code **)(pcVar39 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar39 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar39 + 0x3521a8)" * (cast_expression "(code **)(pcVar39 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x3521a8)" ( (binary_expression "pcVar39 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b2c)" ( identifier , (binary_expression "*(int *)(pcVar39 + 0x35190c) + 0x6b2c" (pointer_expression "*(int *)(pcVar39 + 0x35190c)" * (cast_expression "(int *)(pcVar39 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x35190c)" ( (binary_expression "pcVar39 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar51 != 0) {\n    dVar41 = (double)(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898);\n    if (NAN(dVar41)) {\n      dVar41 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41) {\n      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }\n    }\n    else {\n      dVar41 = 0.0;\n    }\n    *(double *)(iVar12 + 0x1b0) = dVar41;\n  }" if (parenthesized_expression "(iVar51 != 0)" ( (binary_expression "iVar51 != 0" identifier != number_literal) )) (compound_statement "{\n    dVar41 = (double)(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898);\n    if (NAN(dVar41)) {\n      dVar41 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41) {\n      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }\n    }\n    else {\n      dVar41 = 0.0;\n    }\n    *(double *)(iVar12 + 0x1b0) = dVar41;\n  }" { (expression_statement "dVar41 = (double)(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898);" (assignment_expression "dVar41 = (double)(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898)" identifier = (cast_expression "(double)(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcVar39 + 0x3527a8))(iVar51,auStack_898)" (parenthesized_expression "(**(code **)(pcVar39 + 0x3527a8))" ( (pointer_expression "**(code **)(pcVar39 + 0x3527a8)" * (pointer_expression "*(code **)(pcVar39 + 0x3527a8)" * (cast_expression "(code **)(pcVar39 + 0x3527a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x3527a8)" ( (binary_expression "pcVar39 + 0x3527a8" identifier + number_literal) ))))) )) (argument_list "(iVar51,auStack_898)" ( identifier , identifier ))))) ;) (if_statement "if (NAN(dVar41)) {\n      dVar41 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41) {\n      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }\n    }\n    else {\n      dVar41 = 0.0;\n    }" if (parenthesized_expression "(NAN(dVar41))" ( (call_expression "NAN(dVar41)" identifier (argument_list "(dVar41)" ( identifier ))) )) (compound_statement "{\n      dVar41 = 0.0;\n    }" { (expression_statement "dVar41 = 0.0;" (assignment_expression "dVar41 = 0.0" identifier = number_literal) ;) }) (else_clause "else if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41) {\n      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }\n    }\n    else {\n      dVar41 = 0.0;\n    }" else (if_statement "if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41) {\n      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }\n    }\n    else {\n      dVar41 = 0.0;\n    }" if (parenthesized_expression "(*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41)" ( (binary_expression "*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960) <= dVar41" (pointer_expression "*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960)" * (cast_expression "(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7960)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar39 + 0x35190c) + 0x7960)" ( (binary_expression "*(int *)(pcVar39 + 0x35190c) + 0x7960" (pointer_expression "*(int *)(pcVar39 + 0x35190c)" * (cast_expression "(int *)(pcVar39 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x35190c)" ( (binary_expression "pcVar39 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) <= identifier) )) (compound_statement "{\n      if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }\n    }" { (if_statement "if (*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41) {\n        dVar41 = 0.0;\n      }" if (parenthesized_expression "(*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41)" ( (binary_expression "*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968) < dVar41" (pointer_expression "*(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968)" * (cast_expression "(double *)(*(int *)(pcVar39 + 0x35190c) + 0x7968)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar39 + 0x35190c) + 0x7968)" ( (binary_expression "*(int *)(pcVar39 + 0x35190c) + 0x7968" (pointer_expression "*(int *)(pcVar39 + 0x35190c)" * (cast_expression "(int *)(pcVar39 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x35190c)" ( (binary_expression "pcVar39 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) < identifier) )) (compound_statement "{\n        dVar41 = 0.0;\n      }" { (expression_statement "dVar41 = 0.0;" (assignment_expression "dVar41 = 0.0" identifier = number_literal) ;) })) }) (else_clause "else {\n      dVar41 = 0.0;\n    }" else (compound_statement "{\n      dVar41 = 0.0;\n    }" { (expression_statement "dVar41 = 0.0;" (assignment_expression "dVar41 = 0.0" identifier = number_literal) ;) }))))) (expression_statement "*(double *)(iVar12 + 0x1b0) = dVar41;" (assignment_expression "*(double *)(iVar12 + 0x1b0) = dVar41" (pointer_expression "*(double *)(iVar12 + 0x1b0)" * (cast_expression "(double *)(iVar12 + 0x1b0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x1b0)" ( (binary_expression "iVar12 + 0x1b0" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b38);" (assignment_expression "iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b38)" identifier = (call_expression "(**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b38)" (parenthesized_expression "(**(code **)(pcVar39 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar39 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar39 + 0x3521a8)" * (cast_expression "(code **)(pcVar39 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x3521a8)" ( (binary_expression "pcVar39 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b38)" ( identifier , (binary_expression "*(int *)(pcVar39 + 0x35190c) + 0x6b38" (pointer_expression "*(int *)(pcVar39 + 0x35190c)" * (cast_expression "(int *)(pcVar39 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x35190c)" ( (binary_expression "pcVar39 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar51 != 0) {\n    uVar5 = (**(code **)(pcVar39 + 0x3526d4))(0x47,0,iVar51);\n    *(undefined4 *)(iVar12 + 0x274) = uVar5;\n  }" if (parenthesized_expression "(iVar51 != 0)" ( (binary_expression "iVar51 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar5 = (**(code **)(pcVar39 + 0x3526d4))(0x47,0,iVar51);\n    *(undefined4 *)(iVar12 + 0x274) = uVar5;\n  }" { (expression_statement "uVar5 = (**(code **)(pcVar39 + 0x3526d4))(0x47,0,iVar51);" (assignment_expression "uVar5 = (**(code **)(pcVar39 + 0x3526d4))(0x47,0,iVar51)" identifier = (call_expression "(**(code **)(pcVar39 + 0x3526d4))(0x47,0,iVar51)" (parenthesized_expression "(**(code **)(pcVar39 + 0x3526d4))" ( (pointer_expression "**(code **)(pcVar39 + 0x3526d4)" * (pointer_expression "*(code **)(pcVar39 + 0x3526d4)" * (cast_expression "(code **)(pcVar39 + 0x3526d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x3526d4)" ( (binary_expression "pcVar39 + 0x3526d4" identifier + number_literal) ))))) )) (argument_list "(0x47,0,iVar51)" ( number_literal , number_literal , identifier )))) ;) (expression_statement "*(undefined4 *)(iVar12 + 0x274) = uVar5;" (assignment_expression "*(undefined4 *)(iVar12 + 0x274) = uVar5" (pointer_expression "*(undefined4 *)(iVar12 + 0x274)" * (cast_expression "(undefined4 *)(iVar12 + 0x274)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x274)" ( (binary_expression "iVar12 + 0x274" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b40);" (assignment_expression "iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b40)" identifier = (call_expression "(**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b40)" (parenthesized_expression "(**(code **)(pcVar39 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar39 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar39 + 0x3521a8)" * (cast_expression "(code **)(pcVar39 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x3521a8)" ( (binary_expression "pcVar39 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar4,*(int *)(pcVar39 + 0x35190c) + 0x6b40)" ( identifier , (binary_expression "*(int *)(pcVar39 + 0x35190c) + 0x6b40" (pointer_expression "*(int *)(pcVar39 + 0x35190c)" * (cast_expression "(int *)(pcVar39 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x35190c)" ( (binary_expression "pcVar39 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar51 != 0) {\n    (**(code **)(pcVar39 + 0x351e54))(iVar51,0x7fffffff,iVar12 + 0xf8,pdVar31);\n  }" if (parenthesized_expression "(iVar51 != 0)" ( (binary_expression "iVar51 != 0" identifier != number_literal) )) (compound_statement "{\n    (**(code **)(pcVar39 + 0x351e54))(iVar51,0x7fffffff,iVar12 + 0xf8,pdVar31);\n  }" { (expression_statement "(**(code **)(pcVar39 + 0x351e54))(iVar51,0x7fffffff,iVar12 + 0xf8,pdVar31);" (call_expression "(**(code **)(pcVar39 + 0x351e54))(iVar51,0x7fffffff,iVar12 + 0xf8,pdVar31)" (parenthesized_expression "(**(code **)(pcVar39 + 0x351e54))" ( (pointer_expression "**(code **)(pcVar39 + 0x351e54)" * (pointer_expression "*(code **)(pcVar39 + 0x351e54)" * (cast_expression "(code **)(pcVar39 + 0x351e54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x351e54)" ( (binary_expression "pcVar39 + 0x351e54" identifier + number_literal) ))))) )) (argument_list "(iVar51,0x7fffffff,iVar12 + 0xf8,pdVar31)" ( identifier , number_literal , (binary_expression "iVar12 + 0xf8" identifier + number_literal) , identifier ))) ;) })) (expression_statement "iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x351920) + -0x3000);" (assignment_expression "iVar51 = (**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x351920) + -0x3000)" identifier = (call_expression "(**(code **)(pcVar39 + 0x3521a8))(iVar4,*(int *)(pcVar39 + 0x351920) + -0x3000)" (parenthesized_expression "(**(code **)(pcVar39 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar39 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar39 + 0x3521a8)" * (cast_expression "(code **)(pcVar39 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x3521a8)" ( (binary_expression "pcVar39 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar4,*(int *)(pcVar39 + 0x351920) + -0x3000)" ( identifier , (binary_expression "*(int *)(pcVar39 + 0x351920) + -0x3000" (pointer_expression "*(int *)(pcVar39 + 0x351920)" * (cast_expression "(int *)(pcVar39 + 0x351920)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x351920)" ( (binary_expression "pcVar39 + 0x351920" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar51 != 0) {\n    iVar30 = (**(code **)(pcVar39 + 0x3526d4))(0x4c,0,iVar51);\n    if (iVar30 == -1) {\n      uVar5 = (**(code **)(pcVar39 + 0x352380))(iVar51,0,10);\n      *(undefined4 *)(iVar12 + 0x27c) = uVar5;\n    }\n    else {\n      *(int *)(iVar12 + 0x27c) = iVar30;\n    }\n  }" if (parenthesized_expression "(iVar51 != 0)" ( (binary_expression "iVar51 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar30 = (**(code **)(pcVar39 + 0x3526d4))(0x4c,0,iVar51);\n    if (iVar30 == -1) {\n      uVar5 = (**(code **)(pcVar39 + 0x352380))(iVar51,0,10);\n      *(undefined4 *)(iVar12 + 0x27c) = uVar5;\n    }\n    else {\n      *(int *)(iVar12 + 0x27c) = iVar30;\n    }\n  }" { (expression_statement "iVar30 = (**(code **)(pcVar39 + 0x3526d4))(0x4c,0,iVar51);" (assignment_expression "iVar30 = (**(code **)(pcVar39 + 0x3526d4))(0x4c,0,iVar51)" identifier = (call_expression "(**(code **)(pcVar39 + 0x3526d4))(0x4c,0,iVar51)" (parenthesized_expression "(**(code **)(pcVar39 + 0x3526d4))" ( (pointer_expression "**(code **)(pcVar39 + 0x3526d4)" * (pointer_expression "*(code **)(pcVar39 + 0x3526d4)" * (cast_expression "(code **)(pcVar39 + 0x3526d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x3526d4)" ( (binary_expression "pcVar39 + 0x3526d4" identifier + number_literal) ))))) )) (argument_list "(0x4c,0,iVar51)" ( number_literal , number_literal , identifier )))) ;) (if_statement "if (iVar30 == -1) {\n      uVar5 = (**(code **)(pcVar39 + 0x352380))(iVar51,0,10);\n      *(undefined4 *)(iVar12 + 0x27c) = uVar5;\n    }\n    else {\n      *(int *)(iVar12 + 0x27c) = iVar30;\n    }" if (parenthesized_expression "(iVar30 == -1)" ( (binary_expression "iVar30 == -1" identifier == number_literal) )) (compound_statement "{\n      uVar5 = (**(code **)(pcVar39 + 0x352380))(iVar51,0,10);\n      *(undefined4 *)(iVar12 + 0x27c) = uVar5;\n    }" { (expression_statement "uVar5 = (**(code **)(pcVar39 + 0x352380))(iVar51,0,10);" (assignment_expression "uVar5 = (**(code **)(pcVar39 + 0x352380))(iVar51,0,10)" identifier = (call_expression "(**(code **)(pcVar39 + 0x352380))(iVar51,0,10)" (parenthesized_expression "(**(code **)(pcVar39 + 0x352380))" ( (pointer_expression "**(code **)(pcVar39 + 0x352380)" * (pointer_expression "*(code **)(pcVar39 + 0x352380)" * (cast_expression "(code **)(pcVar39 + 0x352380)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x352380)" ( (binary_expression "pcVar39 + 0x352380" identifier + number_literal) ))))) )) (argument_list "(iVar51,0,10)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "*(undefined4 *)(iVar12 + 0x27c) = uVar5;" (assignment_expression "*(undefined4 *)(iVar12 + 0x27c) = uVar5" (pointer_expression "*(undefined4 *)(iVar12 + 0x27c)" * (cast_expression "(undefined4 *)(iVar12 + 0x27c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x27c)" ( (binary_expression "iVar12 + 0x27c" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n      *(int *)(iVar12 + 0x27c) = iVar30;\n    }" else (compound_statement "{\n      *(int *)(iVar12 + 0x27c) = iVar30;\n    }" { (expression_statement "*(int *)(iVar12 + 0x27c) = iVar30;" (assignment_expression "*(int *)(iVar12 + 0x27c) = iVar30" (pointer_expression "*(int *)(iVar12 + 0x27c)" * (cast_expression "(int *)(iVar12 + 0x27c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x27c)" ( (binary_expression "iVar12 + 0x27c" identifier + number_literal) )))) = identifier) ;) }))) })) (expression_statement "(**(code **)(pcVar39 + 0x351d90))(pdVar31);" (call_expression "(**(code **)(pcVar39 + 0x351d90))(pdVar31)" (parenthesized_expression "(**(code **)(pcVar39 + 0x351d90))" ( (pointer_expression "**(code **)(pcVar39 + 0x351d90)" * (pointer_expression "*(code **)(pcVar39 + 0x351d90)" * (cast_expression "(code **)(pcVar39 + 0x351d90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x351d90)" ( (binary_expression "pcVar39 + 0x351d90" identifier + number_literal) ))))) )) (argument_list "(pdVar31)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(iVar12 + 0x390) = 0xabacadab;" (assignment_expression "*(undefined4 *)(iVar12 + 0x390) = 0xabacadab" (pointer_expression "*(undefined4 *)(iVar12 + 0x390)" * (cast_expression "(undefined4 *)(iVar12 + 0x390)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x390)" ( (binary_expression "iVar12 + 0x390" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(pcVar39 + 0x352628))(iVar4);" (call_expression "(**(code **)(pcVar39 + 0x352628))(iVar4)" (parenthesized_expression "(**(code **)(pcVar39 + 0x352628))" ( (pointer_expression "**(code **)(pcVar39 + 0x352628)" * (pointer_expression "*(code **)(pcVar39 + 0x352628)" * (cast_expression "(code **)(pcVar39 + 0x352628)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x352628)" ( (binary_expression "pcVar39 + 0x352628" identifier + number_literal) ))))) )) (argument_list "(iVar4)" ( identifier ))) ;) (if_statement "if (iStack_894 == **(int **)(pcVar39 + 0x352270)) {\n    return;\n  }" if (parenthesized_expression "(iStack_894 == **(int **)(pcVar39 + 0x352270))" ( (binary_expression "iStack_894 == **(int **)(pcVar39 + 0x352270)" identifier == (pointer_expression "**(int **)(pcVar39 + 0x352270)" * (pointer_expression "*(int **)(pcVar39 + 0x352270)" * (cast_expression "(int **)(pcVar39 + 0x352270)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x352270)" ( (binary_expression "pcVar39 + 0x352270" identifier + number_literal) )))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar39 = *(code **)(pcVar39 + 0x3520a4);" (assignment_expression "pcVar39 = *(code **)(pcVar39 + 0x3520a4)" identifier = (pointer_expression "*(code **)(pcVar39 + 0x3520a4)" * (cast_expression "(code **)(pcVar39 + 0x3520a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x3520a4)" ( (binary_expression "pcVar39 + 0x3520a4" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar39)();" (call_expression "(*pcVar39)()" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "uVar5 = (**(code **)(pcVar39 + 0x351be4))(0x3c0);" (assignment_expression "uVar5 = (**(code **)(pcVar39 + 0x351be4))(0x3c0)" identifier = (call_expression "(**(code **)(pcVar39 + 0x351be4))(0x3c0)" (parenthesized_expression "(**(code **)(pcVar39 + 0x351be4))" ( (pointer_expression "**(code **)(pcVar39 + 0x351be4)" * (pointer_expression "*(code **)(pcVar39 + 0x351be4)" * (cast_expression "(code **)(pcVar39 + 0x351be4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x351be4)" ( (binary_expression "pcVar39 + 0x351be4" identifier + number_literal) ))))) )) (argument_list "(0x3c0)" ( number_literal )))) ;) (expression_statement "(**(code **)(pcVar39 + 0x3518b4))(0,uVar5);" (call_expression "(**(code **)(pcVar39 + 0x3518b4))(0,uVar5)" (parenthesized_expression "(**(code **)(pcVar39 + 0x3518b4))" ( (pointer_expression "**(code **)(pcVar39 + 0x3518b4)" * (pointer_expression "*(code **)(pcVar39 + 0x3518b4)" * (cast_expression "(code **)(pcVar39 + 0x3518b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x3518b4)" ( (binary_expression "pcVar39 + 0x3518b4" identifier + number_literal) ))))) )) (argument_list "(0,uVar5)" ( number_literal , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "int FUN_000a34c4(undefined4 *param_1)\n\n{\n  bool bVar1;\n  int *piVar2;\n  int iVar3;\n  undefined4 uVar4;\n  double *pdVar5;\n  undefined *puVar6;\n  int *piVar7;\n  uint uVar8;\n  undefined4 *puVar9;\n  int iVar10;\n  int *piVar11;\n  int iVar12;\n  undefined4 *puVar13;\n  double *pdVar14;\n  int extraout_v1;\n  double *extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  double *extraout_v1_03;\n  int extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int extraout_v1_07;\n  int extraout_v1_08;\n  undefined4 *puVar15;\n  double *pdVar16;\n  int *piVar17;\n  uint uVar18;\n  int *piVar19;\n  undefined8 *puVar20;\n  undefined4 *puVar21;\n  uint uVar22;\n  uint *puVar23;\n  int **ppiVar24;\n  undefined4 uVar25;\n  uint uVar26;\n  undefined4 uVar27;\n  int iVar28;\n  double *pdVar29;\n  double *pdVar30;\n  int unaff_s2;\n  int iVar31;\n  uint *puVar32;\n  double *unaff_s3;\n  int **ppiVar33;\n  int *unaff_s4;\n  int **ppiVar34;\n  undefined1 *puVar35;\n  double *unaff_s6;\n  uint unaff_s7;\n  undefined *puVar36;\n  code *pcVar37;\n  code *pcVar38;\n  double dVar39;\n  double dVar40;\n  double dVar41;\n  float fVar43;\n  double dVar42;\n  double dVar44;\n  double dVar45;\n  double dVar46;\n  double in_f20_21;\n  double dVar47;\n  double in_f22_23;\n  double in_f24_25;\n  double in_f26_27;\n  double in_f28_29;\n  double in_f30_31;\n  int *piVar48;\n  int iVar49;\n  int iVar50;\n  undefined8 uVar51;\n  undefined1 auStack_898 [4];\n  int iStack_894;\n  undefined8 *puStack_88c;\n  int iStack_888;\n  double *pdStack_884;\n  int **ppiStack_880;\n  int **ppiStack_87c;\n  undefined1 *puStack_878;\n  code *pcStack_874;\n  int iStack_860;\n  code *pcStack_858;\n  undefined4 uStack_850;\n  code *pcStack_84c;\n  int iStack_838;\n  int iStack_834;\n  code *pcStack_830;\n  int *piStack_828;\n  int *piStack_824;\n  int *piStack_820;\n  int *piStack_81c;\n  double dStack_818;\n  int iStack_810;\n  double *pdStack_80c;\n  undefined4 uStack_808;\n  int **ppiStack_804;\n  int **ppiStack_800;\n  undefined1 *puStack_7fc;\n  int **ppiStack_7f8;\n  int iStack_7f4;\n  undefined1 auStack_7f0 [92];\n  undefined8 *puStack_794;\n  double *pdStack_790;\n  int *piStack_78c;\n  uint *puStack_788;\n  double *pdStack_784;\n  int iStack_780;\n  code *pcStack_77c;\n  double dStack_778;\n  int iStack_760;\n  int *piStack_75c;\n  code *pcStack_758;\n  double dStack_750;\n  double dStack_748;\n  double dStack_740;\n  double dStack_738;\n  int *piStack_72c;\n  uint *puStack_728;\n  double *pdStack_724;\n  double *pdStack_720;\n  undefined1 *puStack_71c;\n  undefined4 uStack_718;\n  undefined1 *puStack_714;\n  double *pdStack_710;\n  int iStack_70c;\n  int iStack_708;\n  int iStack_704;\n  double dStack_700;\n  double dStack_6f8;\n  double dStack_6f0;\n  double dStack_6e8;\n  double dStack_6e0;\n  double dStack_6d8;\n  undefined1 auStack_6d0 [88];\n  undefined8 uStack_678;\n  undefined4 uStack_670;\n  undefined4 uStack_66c;\n  double dStack_668;\n  undefined4 uStack_660;\n  undefined4 uStack_65c;\n  double dStack_658;\n  double dStack_650;\n  undefined4 uStack_648;\n  undefined4 uStack_644;\n  double dStack_640;\n  undefined8 uStack_638;\n  double *pdStack_62c;\n  int *piStack_628;\n  uint *puStack_624;\n  double *pdStack_620;\n  int iStack_61c;\n  undefined1 *puStack_618;\n  double *pdStack_614;\n  uint uStack_610;\n  code *pcStack_60c;\n  double dStack_608;\n  double dStack_600;\n  double dStack_5f8;\n  double dStack_5f0;\n  int iStack_5d8;\n  code *pcStack_5d0;\n  double *pdStack_5c8;\n  code *pcStack_5c4;\n  undefined4 uStack_5b0;\n  uint uStack_5ac;\n  code *pcStack_5a8;\n  undefined8 uStack_5a0;\n  double dStack_598;\n  double dStack_590;\n  double *pdStack_588;\n  int iStack_584;\n  double dStack_580;\n  double dStack_578;\n  int iStack_570;\n  undefined1 *puStack_56c;\n  double *pdStack_568;\n  uint uStack_564;\n  double dStack_560;\n  double dStack_558;\n  uint uStack_550;\n  undefined4 uStack_54c;\n  double dStack_548;\n  double dStack_540;\n  uint uStack_538;\n  undefined4 uStack_534;\n  double dStack_530;\n  uint uStack_528;\n  undefined4 uStack_524;\n  double dStack_520;\n  double dStack_518;\n  int aiStack_510 [4];\n  undefined8 uStack_500;\n  int iStack_4f8;\n  double dStack_4e8;\n  double dStack_4e0;\n  double dStack_4d8;\n  double dStack_4d0;\n  double dStack_4c8;\n  double dStack_4c0;\n  int iStack_4b4;\n  uint uStack_4b0;\n  int iStack_4ac;\n  double *pdStack_4a8;\n  double *pdStack_4a4;\n  int iStack_4a0;\n  undefined4 *puStack_49c;\n  double *pdStack_498;\n  uint uStack_494;\n  int iStack_490;\n  code *pcStack_48c;\n  double dStack_488;\n  double dStack_480;\n  double dStack_478;\n  double dStack_470;\n  double dStack_468;\n  double dStack_460;\n  int *piStack_448;\n  uint uStack_444;\n  code *pcStack_440;\n  uint uStack_434;\n  uint uStack_430;\n  double *pdStack_42c;\n  uint uStack_428;\n  uint uStack_424;\n  uint uStack_420;\n  undefined4 uStack_41c;\n  int aiStack_418 [10];\n  double dStack_3f0;\n  double dStack_3e8;\n  double dStack_3e0;\n  double dStack_3d8;\n  double dStack_3d0;\n  int iStack_3bc;\n  int iStack_3b8;\n  uint uStack_3b4;\n  double *pdStack_3b0;\n  double *pdStack_3ac;\n  int *piStack_3a8;\n  undefined4 *puStack_3a4;\n  double *pdStack_3a0;\n  uint uStack_39c;\n  int iStack_398;\n  code *pcStack_394;\n  double dStack_390;\n  double dStack_388;\n  double dStack_380;\n  double dStack_378;\n  double dStack_370;\n  undefined4 *puStack_358;\n  undefined4 uStack_354;\n  undefined *puStack_350;\n  undefined8 uStack_348;\n  double dStack_340;\n  double dStack_338;\n  double dStack_330;\n  uint uStack_328;\n  int iStack_324;\n  double dStack_320;\n  double dStack_318;\n  uint uStack_310;\n  undefined4 uStack_30c;\n  int iStack_308;\n  int *piStack_304;\n  double dStack_300;\n  uint uStack_2f8;\n  int iStack_2f4;\n  int iStack_2f0;\n  double *pdStack_2ec;\n  uint uStack_2e8;\n  undefined4 uStack_2e4;\n  uint uStack_2e0;\n  undefined4 uStack_2dc;\n  double *pdStack_2d8;\n  uint uStack_2d4;\n  undefined4 uStack_2d0;\n  double *pdStack_2cc;\n  uint uStack_2c8;\n  undefined4 uStack_2c4;\n  int iStack_2c0;\n  undefined4 *puStack_2bc;\n  double dStack_2b8;\n  uint uStack_2b0;\n  undefined4 uStack_2ac;\n  double *pdStack_2a8;\n  undefined1 *puStack_2a4;\n  double *pdStack_2a0;\n  int iStack_29c;\n  undefined4 auStack_298 [18];\n  double dStack_250;\n  undefined4 auStack_240 [18];\n  double dStack_1f8;\n  int iStack_1e4;\n  double *pdStack_1e0;\n  int *piStack_1dc;\n  int iStack_1d8;\n  double *pdStack_1d4;\n  int *piStack_1d0;\n  undefined4 *puStack_1cc;\n  double *pdStack_1c8;\n  uint uStack_1c4;\n  int iStack_1c0;\n  code *pcStack_1bc;\n  double dStack_1b8;\n  double dStack_1b0;\n  double dStack_1a8;\n  double dStack_1a0;\n  double dStack_198;\n  double dStack_190;\n  undefined8 local_178;\n  double local_170;\n  int *local_168;\n  int *local_164;\n  int local_110 [4];\n  undefined8 local_100;\n  int local_f8;\n  double local_e8;\n  double local_e0;\n  double local_d8;\n  double local_d0;\n  double local_c8;\n  double local_c0;\n  int local_b8 [10];\n  double local_90;\n  double local_88;\n  double local_80;\n  double local_78;\n  double local_70;\n  int local_5c;\n  \n  local_5c = *(int *)PTR___stack_chk_guard_003fa248;\n  pdVar29 = (double *)param_1[8];\n  piVar2 = (int *)(*(code *)PTR_omp_get_num_threads_003fa924)();\n  iVar3 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n  puVar36 = PTR_LAB_003f98e0;\n  iVar10 = (param_1[9] + 1) - (int)pdVar29;\n  if (piVar2 == (int *)0x0) {\n    trap(7);\n  }\n  iVar49 = iVar10 / (int)piVar2;\n  iVar10 = iVar10 % (int)piVar2;\n  if (iVar3 < iVar10) {\n    iVar49 = iVar49 + 1;\n    iVar10 = 0;\n  }\n  iVar10 = iVar49 * iVar3 + iVar10;\n  pdVar16 = (double *)(iVar49 + iVar10);\n  iVar3 = (int)pdVar29 + iVar10;\n  if (iVar10 < (int)pdVar16) {\n    uVar4 = param_1[5];\n    pdVar5 = (double *)param_1[4];\n    unaff_s4 = (int *)param_1[2];\n    unaff_s7 = param_1[1];\n    piVar2 = (int *)*param_1;\n    puVar6 = (undefined *)((int)pdVar29 + (int)pdVar16);\n    dVar39 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    in_f26_27 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    in_f30_31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n    do {\n      in_f24_25 = (double)iVar3;\n      pdVar29 = (double *)param_1[3];\n      in_f20_21 = *(double *)param_1[7];\n      in_f28_29 = ((double *)param_1[7])[2];\n      dVar40 = in_f24_25 * pdVar29[2] + pdVar29[4];\n      dVar47 = *pdVar29;\n      dVar41 = in_f28_29;\n      if (dVar39 <= dVar47) {\n        in_f22_23 = -dVar40 / dVar47;\n        if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }\n        dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n        if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }\n        dVar47 = (dVar44 - dVar40) / dVar47;\n        if (dVar47 < in_f28_29) {\n          dVar41 = dVar47;\n        }\nLAB_000a3890:\n        dVar40 = in_f24_25 * pdVar29[3] + pdVar29[5];\n        dVar47 = pdVar29[1];\n        if (*(double *)(puVar36 + 0x43c8) <= dVar47) {\n          dVar44 = -dVar40 / dVar47;\n          if (-dVar40 / dVar47 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = *(double **)(unaff_s7 + 0x1c);\n          dVar44 = (double)(int)pdVar16;\n          if ((int)pdVar16 < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar44 - dVar40) / dVar47;\n          if (dVar41 <= in_f20_21) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }\n        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;\n      }\n      else {\n        if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar44 - dVar40) / dVar47;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar40) {\n          dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n          if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar41;\n          if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar36 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar41 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar41;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar40 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar41 = (dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar41 < in_f20_21) {\n          uVar26 = (uint)dVar41;\n        }\n        else {\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar16 = pdVar5;\n        pdVar29 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26);\n        if (pdVar29 != (double *)0x0) {\n          piVar17 = (int *)param_1[6];\n          piVar48 = piVar17;\n          piVar19 = local_b8;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          piVar48 = piVar17;\n          piVar19 = local_110;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }\n          pdVar16 = pdVar5;\n          iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);\n          if (iVar10 == 0) {\n            param_1[10] = 0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n      unaff_s6 = (double *)puVar36;\n    } while (iVar3 < (int)puVar6);\n  }\n  if (local_5c == *(int *)PTR___stack_chk_guard_003fa248) {\n    return *(int *)PTR___stack_chk_guard_003fa248;\n  }\n  pcVar37 = FUN_000a3ef0;\n  puVar36 = PTR___stack_chk_fail_003fa07c;\n  (*(code *)PTR___stack_chk_fail_003fa07c)();\n  puStack_350 = puVar36 + 0x35d9c0;\n  iStack_1e4 = **(int **)(puVar36 + 0x356358);\n  iVar28 = *(int *)((int)pdVar16 + 0x24);\n  pdStack_2a8 = pdVar16;\n  pdStack_1e0 = pdVar29;\n  piStack_1dc = piVar2;\n  iStack_1d8 = unaff_s2;\n  pdStack_1d4 = unaff_s3;\n  piStack_1d0 = unaff_s4;\n  puStack_1cc = param_1;\n  pdStack_1c8 = unaff_s6;\n  uStack_1c4 = unaff_s7;\n  iStack_1c0 = iVar3;\n  pcStack_1bc = pcVar37;\n  dStack_1b8 = in_f20_21;\n  dStack_1b0 = in_f22_23;\n  dStack_1a8 = in_f24_25;\n  dStack_1a0 = in_f26_27;\n  dStack_198 = in_f28_29;\n  dStack_190 = in_f30_31;\n  iVar10 = (**(code **)(puVar36 + 0x356a34))();\n  iVar49 = (**(code **)(puStack_350 + -0x7390))();\n  iVar12 = (*(int *)(pdVar16 + 5) + 1) - iVar28;\n  if (iVar10 == 0) {\n    trap(7);\n  }\n  iVar50 = iVar12 / iVar10;\n  iVar12 = iVar12 % iVar10;\n  uVar26 = (uint)(iVar49 < iVar12);\n  if (uVar26 != 0) {\n    iVar50 = iVar50 + 1;\n    iVar12 = 0;\n  }\n  uVar8 = iVar50 * iVar49 + iVar12;\n  pdVar29 = (double *)(iVar50 + uVar8);\n  if ((int)uVar8 < (int)pdVar29) {\n    iStack_29c = *(int *)((int)pdStack_2a8 + 0x1c);\n    in_f28_29 = *pdStack_2a8;\n    iStack_2f4 = *(int *)(pdStack_2a8 + 3);\n    pdStack_2a0 = *(double **)((int)pdStack_2a8 + 0x14);\n    uStack_2d0 = *(undefined4 *)(pdStack_2a8 + 2);\n    iStack_324 = *(int *)((int)pdStack_2a8 + 0xc);\n    unaff_s6 = *(double **)(pdStack_2a8 + 1);\n    iStack_2f0 = iVar28 + uVar8;\n    puStack_2a4 = (undefined1 *)(iVar28 + (int)pdVar29);\n    unaff_s7 = *(uint *)(puStack_350 + -0x7fd0);\n    dStack_320 = *(double *)(unaff_s7 + 0x4408);\n    iVar3 = *(int *)(puStack_350 + -0x7fd0);\n    dStack_2b8 = *(double *)(iVar3 + 0x43c8);\n    uStack_2f8 = uVar8;\n    do {\n      iVar28 = (**(code **)(puStack_350 + -0x7390))();\n      if (*(int *)((int)pdStack_2a8 + 0x2c) != 0) {\n        pdVar29 = *(double **)(pdStack_2a8 + 4);\n        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21);\n        uStack_2d4 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21);\n        uVar26 = uStack_2d4;\n        pdVar16 = (double *)(int)dVar39;\n        uStack_354 = uStack_2d0;\n        puStack_358 = (undefined4 *)0x1;\n        pdVar29 = pdStack_2a0;\n        pdStack_2cc = pdVar16;\n        iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)));\n        if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar28 = iVar28 * 4;\n          puVar36 = puStack_350;\n          if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar29 = pdStack_2a0;\n          iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }\n      }\n      iStack_2f0 = iStack_2f0 + 1;\n      uStack_2f8 = uStack_2f8 + 1;\n    } while (iStack_2f0 < (int)puStack_2a4);\n  }\n  if (iStack_1e4 == **(int **)(puStack_350 + -0x7668)) {\n    return **(int **)(puStack_350 + -0x7668);\n  }\n  pcVar37 = *(code **)(puStack_350 + -0x7834);\n  pcVar38 = FUN_000a5040;\n  (*pcVar37)();\n  pcStack_440 = pcVar37 + 0x35c870;\n  iStack_3bc = **(int **)(pcVar37 + 0x355208);\n  uVar8 = *(uint *)(pdVar29 + 3);\n  pdVar5 = pdVar29;\n  uStack_428 = uVar8;\n  iStack_3b8 = iVar28;\n  uStack_3b4 = uVar26;\n  pdStack_3b0 = pdVar16;\n  pdStack_3ac = unaff_s3;\n  piStack_3a8 = unaff_s4;\n  puStack_3a4 = param_1;\n  pdStack_3a0 = unaff_s6;\n  uStack_39c = unaff_s7;\n  iStack_398 = iVar3;\n  pcStack_394 = pcVar38;\n  dStack_390 = in_f20_21;\n  dStack_388 = in_f22_23;\n  dStack_380 = in_f24_25;\n  dStack_378 = in_f26_27;\n  dStack_370 = in_f28_29;\n  iVar3 = (**(code **)(pcVar37 + 0x3558e4))();\n  iVar10 = (**(code **)(pcStack_440 + -0x7390))();\n  iVar49 = (*(uint *)((int)pdVar29 + 0x1c) + 1) - uVar8;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar28 = iVar49 / iVar3;\n  iVar49 = iVar49 % iVar3;\n  uVar26 = (uint)(iVar10 < iVar49);\n  if (uVar26 != 0) {\n    iVar28 = iVar28 + 1;\n    iVar49 = 0;\n  }\n  iVar49 = iVar28 * iVar10 + iVar49;\n  iVar28 = iVar28 + iVar49;\n  iVar3 = *(int *)(pcStack_440 + -0x7fd0);\n  pcVar37 = pcStack_440;\n  if (iVar49 < iVar28) {\n    pdStack_42c = *(double **)(pdVar29 + 2);\n    uStack_430 = *(uint *)((int)pdVar29 + 0xc);\n    unaff_s6 = *(double **)(pdVar29 + 1);\n    uStack_424 = *(uint *)((int)pdVar29 + 4);\n    unaff_s7 = *(uint *)pdVar29;\n    iVar49 = uStack_428 + iVar49;\n    iVar28 = uStack_428 + iVar28;\n    in_f22_23 = *(double *)(iVar3 + 0x43d0);\n    in_f26_27 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8);\n    in_f28_29 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410);\n    do {\n      in_f20_21 = *(double *)(iVar3 + 0x43d0);\n      if (*(uint *)(pdVar29 + 4) != 0) {\n        pdVar16 = *(double **)((int)pdVar29 + 0x14);\n        dVar39 = (double)(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21);\n        uStack_434 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21);\n        uVar26 = uStack_434;\n        param_1 = (undefined4 *)(int)dVar39;\n        uStack_444 = uStack_430;\n        piStack_448 = (int *)0x1;\n        pdVar5 = pdStack_42c;\n        pdVar16 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434));\n        if (pdVar16 == (double *)0x0) {\n          *(uint *)(pdVar29 + 4) = 0;\n          pcVar37 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar26 <= (int)param_1;\n          uVar26 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }\n          pdVar5 = pdStack_42c;\n          iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar37 = pcStack_440;\n          if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }\n        }\n      }\n      iVar49 = iVar49 + 1;\n    } while (iVar49 < iVar28);\n  }\n  if (iStack_3bc == **(int **)(pcVar37 + -0x7668)) {\n    return **(int **)(pcVar37 + -0x7668);\n  }\n  pcVar37 = *(code **)(pcVar37 + -0x7834);\n  pcVar38 = FUN_000a549c;\n  (*pcVar37)();\n  pcStack_5a8 = pcVar37 + 0x35c414;\n  iStack_4b4 = **(int **)(pcVar37 + 0x354dac);\n  puVar32 = *(uint **)(pdVar5 + 4);\n  pdVar30 = (double *)puVar32[3];\n  pdVar14 = pdVar5;\n  uStack_4b0 = uVar26;\n  iStack_4ac = iVar49;\n  pdStack_4a8 = pdVar16;\n  pdStack_4a4 = pdVar29;\n  iStack_4a0 = iVar28;\n  puStack_49c = param_1;\n  pdStack_498 = unaff_s6;\n  uStack_494 = unaff_s7;\n  iStack_490 = iVar3;\n  pcStack_48c = pcVar38;\n  dStack_488 = in_f20_21;\n  dStack_480 = in_f22_23;\n  dStack_478 = in_f24_25;\n  dStack_470 = in_f26_27;\n  dStack_468 = in_f28_29;\n  dStack_460 = in_f30_31;\n  iVar3 = (**(code **)(pcVar37 + 0x355488))();\n  iVar10 = (**(code **)(pcStack_5a8 + -0x7390))();\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar49 = (int)(puVar32[1] - (int)pdVar30) / iVar3;\n  piVar48 = (int *)((int)(puVar32[1] - (int)pdVar30) % iVar3);\n  piVar2 = piVar48;\n  if (iVar10 < (int)piVar48) {\n    iVar49 = iVar49 + 1;\n    piVar2 = (int *)0x0;\n  }\n  piVar2 = (int *)(iVar49 * iVar10 + (int)piVar2);\n  puVar35 = (undefined1 *)((int)pdVar30 + (int)piVar2);\n  pcVar37 = pcStack_5a8;\n  if ((int)piVar2 < iVar49 + (int)piVar2) {\n    dStack_580 = *pdVar5;\n    pdStack_588 = *(double **)(pdVar5 + 3);\n    puVar32 = *(uint **)((int)pdVar5 + 0x14);\n    pdStack_568 = *(double **)(pdVar5 + 2);\n    uStack_564 = *(uint *)((int)pdVar5 + 0xc);\n    piVar48 = *(int **)(pdVar5 + 1);\n    puStack_56c = (undefined1 *)((int)pdVar30 + iVar49 + (int)piVar2);\n    dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n    if (dStack_580 < 0.0) {\n      dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n    }\n    iStack_570 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_598 = *(double *)(iStack_570 + 0x4a48);\n    iStack_584 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_560 = *(double *)(iStack_584 + 0x43d0);\n    unaff_s6 = *(double **)(pcStack_5a8 + -0x7fd0);\n    dStack_548 = unaff_s6[0x879];\n    do {\n      if (*(uint *)((int)pdVar5 + 0x24) != 0) {\n        uStack_5ac = uStack_564;\n        uStack_5b0 = 1;\n        pdVar14 = pdStack_568;\n        pdVar30 = (double *)(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6]);\n        if (pdVar30 == (double *)0x0) {\n          *(uint *)((int)pdVar5 + 0x24) = 0;\n          pcVar37 = pcStack_5a8;\n        }\n        else {\n          piVar17 = *(int **)((int)pdVar5 + 0x1c);\n          piVar2 = piVar17;\n          piVar19 = aiStack_510;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);\n          iVar10 = *piVar2;\n          iVar3 = piVar7[5];\n          *piVar19 = iVar10;\n          piVar11[5] = iVar3;\n          in_f20_21 = *(double *)(piVar17 + 10);\n          in_f22_23 = *(double *)(piVar17 + 0xc);\n          in_f24_25 = *(double *)(piVar17 + 0xe);\n          dStack_590 = *(double *)(piVar17 + 0x10);\n          dVar39 = *(double *)(piVar17 + 0x12);\n          if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];\n          pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }\n          pdVar14 = pdStack_568;\n          iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar37 = pcStack_5a8;\n          if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }\n        }\n      }\n      puVar35 = puVar35 + 1;\n    } while ((int)puVar35 < (int)puStack_56c);\n  }\n  if (iStack_4b4 == **(int **)(pcVar37 + -0x7668)) {\n    return **(int **)(pcVar37 + -0x7668);\n  }\n  pcVar37 = *(code **)(pcVar37 + -0x7834);\n  pcVar38 = DestroyDrawInfo;\n  (*pcVar37)();\n  pcStack_5d0 = pcVar37 + 0x35a8f0;\n  pdStack_5c8 = pdVar30;\n  pcStack_5c4 = pcVar38;\n  if (pdVar14 == (double *)0x0) {\n    (**(code **)(pcVar37 + 0x353660))\n              (*(int *)(pcVar37 + 0x352920) + 0x40e4,*(int *)(pcVar37 + 0x352924) + 0x69c0,0x39a,\n               *(int *)(pcVar37 + 0x352924) + 0x7914);\n    pdVar14 = pdVar30;\nLAB_000a7234:\n    iStack_5d8 = *(int *)(pcVar37 + 0x352924) + 0x10f4;\n    (**(code **)(pcVar37 + 0x353238))\n              (0x8000,*(int *)(pcVar37 + 0x352924) + 0x69c0,*(int *)(pcVar37 + 0x352924) + 0x7904,\n               0x39c);\n    uVar26 = *(uint *)(pdVar14 + 0x72);\n  }\n  else {\n    if (*(uint *)((int)pdVar14 + 0x38c) != 0) goto LAB_000a7234;\n    uVar26 = *(uint *)(pdVar14 + 0x72);\n  }\n  if (uVar26 == 0xabacadab) {\n    if (*(uint *)(pdVar14 + 0x77) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x77) = uVar26;\n    }\n    if (*(uint *)pdVar14 != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)pdVar14 = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x4c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4c) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 4) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x35) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)(pdVar14 + 0x35) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x1ac) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x1ac) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x264) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x264) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x4d) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4d) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x26c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x26c) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x50) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x50) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x52) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x52) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x29c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)((int)pdVar14 + 0x29c) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x54) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x54) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x3e) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x3e) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x2a4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x2a4) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x3ac) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3ac) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x3b4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3b4) = uVar26;\n    }\n    *(uint *)(pdVar14 + 0x72) = 0x54535254;\n    iVar3 = (**(code **)(pcStack_5d0 + -0x78d8))(pdVar14);\n    return iVar3;\n  }\n  pdVar5 = (double *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x7914);\n  pdVar16 = (double *)&DAT_0000039d;\n  puVar23 = (uint *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x69c0);\n  piVar2 = (int *)(*(int *)(pcStack_5d0 + -0x7fd0) + 0x4128);\n  pcVar37 = *(code **)(pcStack_5d0 + -0x7290);\n  pcVar38 = DrawAffineImage;\n  (*pcVar37)();\n  pcStack_758 = pcVar37 + 0x35a61c;\n  uStack_638._4_4_ = **(int **)(pcVar37 + 0x352fb4);\n  pdStack_62c = pdVar14;\n  piStack_628 = piVar48;\n  puStack_624 = puVar32;\n  pdStack_620 = pdVar29;\n  iStack_61c = iVar28;\n  puStack_618 = puVar35;\n  pdStack_614 = unaff_s6;\n  uStack_610 = unaff_s7;\n  pcStack_60c = pcVar38;\n  dStack_608 = in_f20_21;\n  dStack_600 = in_f22_23;\n  dStack_5f8 = in_f24_25;\n  dStack_5f0 = in_f26_27;\n  if (piVar2 == (int *)0x0) {\n    (**(code **)(pcVar37 + 0x35338c))\n              (*(int *)(pcVar37 + 0x35264c) + 0x3da0,*(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c0,\n               *(int *)(pcVar37 + 0x352650) + 0x78f4);\n    pdVar16 = pdVar14;\n    piVar2 = piVar48;\n    puVar23 = puVar32;\n    pdVar5 = pdVar29;\nLAB_000a7434:\n    piVar48 = (int *)(**(code **)(pcVar37 + 0x35338c))\n                               (*(int *)(pcVar37 + 0x352650) + -0x784,\n                                *(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar37 + 0x352650) + 0x78f4);\nLAB_000a745c:\n    iStack_760 = *(int *)(pcVar37 + 0x352654) + -0x2f6c;\n    piStack_75c = piVar48;\n    (**(code **)(pcVar37 + 0x352f64))\n              (0x8000,*(int *)(pcVar37 + 0x352650) + 0x69c0,*(int *)(pcVar37 + 0x352650) + 0x78e4,\n               0x4c3);\n  }\n  else {\n    if (piVar2[0xcdb] != -0x54535255) goto LAB_000a7434;\n    piVar48 = piVar2 + 0xd0;\n    if (piVar2[0xcd4] != 0) goto LAB_000a745c;\n  }\n  pcVar37 = pcStack_758;\n  if (puVar23 == (uint *)0x0) {\n    (**(code **)(pcStack_758 + -0x7290))\n              (*(int *)(pcStack_758 + -0x7fcc) + 0x6a20,*(int *)(pcStack_758 + -0x7fcc) + 0x69c0,\n               0x4c4,*(int *)(pcStack_758 + -0x7fcc) + 0x78f4);\nLAB_000a74c4:\n    (**(code **)(pcVar37 + -0x7290))\n              (*(int *)(pcVar37 + -0x7fcc) + 0x6a40,*(int *)(pcVar37 + -0x7fcc) + 0x69c0);\nLAB_000a74e8:\n    dStack_668 = (double)(**(code **)(pcVar37 + -0x7290))\n                                   (*(int *)(pcVar37 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar37 + -0x7fcc) + 0x69c0);\nLAB_000a750c:\n    dStack_668 = dStack_668 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);\n  }\n  else {\n    if (puVar23[0xcdb] != 0xabacadab) goto LAB_000a74c4;\n    if (pdVar16 == (double *)0x0) goto LAB_000a74e8;\n    uStack_678._4_4_ = 0;\n    uStack_678._0_4_ = 0;\n    uStack_66c = 0;\n    uStack_670 = 0;\n    dStack_668 = (double)(int)puVar23[6];\n    if ((int)puVar23[6] < 0) goto LAB_000a750c;\n  }\n  dStack_668 = dStack_668 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408);\n  uStack_65c = 0;\n  uStack_660 = 0;\n  dStack_658 = dStack_668;\n  dStack_650 = (double)(int)puVar23[7];\n  if ((int)puVar23[7] < 0) {\n    dStack_650 = dStack_650 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);\n  }\n  dStack_650 = dStack_650 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408);\n  uStack_644 = 0;\n  uStack_648 = 0;\n  dStack_640 = dStack_650;\n  dVar45 = *pdVar16;\n  dVar44 = pdVar16[2];\n  dVar47 = pdVar16[4];\n  dVar40 = pdVar16[1];\n  dVar41 = pdVar16[3];\n  dVar39 = pdVar16[5];\n  pdVar14 = (double *)&uStack_678;\n  pdVar29 = pdVar14;\n  do {\n    dVar42 = *pdVar29;\n    *pdVar29 = dVar45 * dVar42 + dVar44 * pdVar29[1] + dVar47;\n    pdVar29[1] = dVar40 * dVar42 + dVar41 * pdVar29[1] + dVar39;\n    pdVar29 = pdVar29 + 2;\n  } while (pdVar29 != (double *)&uStack_638);\n  dVar39 = (double)CONCAT44(uStack_670,uStack_66c);\n  dVar41 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_);\n  dVar40 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_);\n  dVar47 = (double)CONCAT44(uStack_670,uStack_66c);\n  do {\n    dVar45 = pdVar14[2];\n    dVar44 = dVar45;\n    if (dVar41 <= dVar45) {\n      dVar44 = dVar41;\n    }\n    dVar42 = pdVar14[3];\n    dVar46 = dVar42;\n    if (dVar47 <= dVar42) {\n      dVar46 = dVar47;\n    }\n    if (dVar45 <= dVar40) {\n      dVar45 = dVar40;\n    }\n    if (dVar42 <= dVar39) {\n      dVar42 = dVar39;\n    }\n    pdVar14 = pdVar14 + 2;\n    dVar39 = dVar42;\n    dVar41 = dVar44;\n    dVar40 = dVar45;\n    dVar47 = dVar46;\n  } while ((double *)&uStack_648 != pdVar14);\n  ppiVar24 = (int **)0x1;\n  pdVar29 = pdVar5;\n  iVar3 = (**(code **)(pcVar37 + -0x7074))(piVar2);\n  if (iVar3 != 0) {\n    dStack_750 = dVar44;\n    if (dVar44 <= 0.0) {\n      dStack_750 = 0.0;\n    }\n    dStack_748 = dVar46;\n    if (dVar46 <= 0.0) {\n      dStack_748 = 0.0;\n    }\n    dStack_740 = (double)piVar2[6];\n    if (piVar2[6] < 0) {\n      dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_740 = dStack_740 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar45 < dStack_740) {\n      dStack_740 = dVar45;\n    }\n    dStack_738 = (double)piVar2[7];\n    if (piVar2[7] < 0) {\n      dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_738 = dStack_738 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar42 < dStack_738) {\n      dStack_738 = dVar42;\n    }\n    dStack_6e8 = *pdVar16 * pdVar16[3] - pdVar16[1] * pdVar16[2];\n    if (0.0 <= dStack_6e8) {\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    }\n    else {\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);\n    }\n    if (dStack_6e8 * dVar39 < *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)) {\n      dStack_6e8 = dVar39 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8);\n    }\n    else {\n      dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;\n    }\n    dStack_700 = pdVar16[3] * dStack_6e8;\n    dStack_6f8 = -pdVar16[1] * dStack_6e8;\n    dStack_6f0 = -pdVar16[2] * dStack_6e8;\n    dStack_6e8 = *pdVar16 * dStack_6e8;\n    dStack_6e0 = dStack_700 * -pdVar16[4] - dStack_6f0 * pdVar16[5];\n    dStack_6d8 = dStack_6f8 * -pdVar16[4] - dStack_6e8 * pdVar16[5];\n    (**(code **)(pcStack_758 + -0x75e4))(piVar2,auStack_6d0);\n    dVar42 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0);\n    dVar39 = (double)(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar42);\n    dVar41 = (double)(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar42);\n    uVar4 = (**(code **)(pcStack_758 + -0x7144))(puVar23,pdVar5);\n    puVar35 = (undefined1 *)(**(code **)(pcStack_758 + -0x79c4))(piVar2,pdVar5);\n    iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23);\n    if (((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23), iVar3 == 3)) &&\n       ((iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 4 ||\n        (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3)))) {\n      (**(code **)(pcStack_758 + -0x775c))(7);\n      iVar10 = (int)dVar41 - (int)dVar39;\n      iVar3 = iVar10;\n      if (iVar10 < 0) {\n        iVar3 = iVar10 + 0x3f;\n      }\n      pdVar16 = (double *)(iVar3 >> 6);\n      if (extraout_v1 < (int)pdVar16) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        bVar1 = extraout_v1_01 < 2;\n      }\n      else {\n        bVar1 = iVar10 < 0x80;\n      }\n      pdVar29 = (double *)0x1;\n      if (((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16)\n         ) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_03;\n        pdVar16 = extraout_v1_03;\n      }\n    }\n    else {\n      uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar51 < 2) {\n          pdVar29 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }\n      else {\nLAB_000a77f8:\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n      }\n      uVar51 = (*pcVar37)(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_00;\n      }\n      else {\n        pdVar29 = (double *)0x2;\n      }\n    }\nLAB_000a7818:\n    pdStack_720 = &dStack_700;\n    puStack_714 = auStack_6d0;\n    pdStack_710 = &dStack_750;\n    iStack_704 = 1;\n    ppiVar24 = &piStack_72c;\n    piStack_72c = piVar2;\n    puStack_728 = puVar23;\n    pdStack_724 = pdVar5;\n    puStack_71c = puVar35;\n    uStack_718 = uVar4;\n    iStack_70c = (int)dVar39;\n    iStack_708 = (int)dVar41;\n    (**(code **)(pcStack_758 + -0x7700))\n              (*(int *)(pcStack_758 + -0x7ea0) + 0x34c4,ppiVar24,pdVar29,0);\n    iVar3 = iStack_704;\n    (**(code **)(pcStack_758 + -0x79a4))(uVar4);\n    (**(code **)(pcStack_758 + -0x79a4))(puVar35);\n  }\n  if (uStack_638._4_4_ == **(int **)(pcStack_758 + -0x7668)) {\n    return iVar3;\n  }\n  pcVar37 = *(code **)(pcStack_758 + -0x7834);\n  pcVar38 = DrawGradientImage;\n  iVar10 = uStack_638._4_4_;\n  (*pcVar37)();\n  pcStack_830 = pcVar37 + 0x359e18;\n  puStack_794 = (undefined8 *)**(undefined4 **)(pcVar37 + 0x3527b0);\n  pdStack_790 = pdVar16;\n  piStack_78c = piVar2;\n  puStack_788 = puVar23;\n  pdStack_784 = pdVar5;\n  iStack_780 = iVar3;\n  pcStack_77c = pcVar38;\n  dStack_778 = dVar42;\n  if (iVar10 == 0) {\n    iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e48) + 0x3da0,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80a,*(int *)(pcVar37 + 0x351e4c) + 0x7818);\n    return iVar3;\n  }\n  if (*(int *)(iVar10 + 0x336c) != -0x54535255) {\n    iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e4c) + -0x784,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80b,*(int *)(pcVar37 + 0x351e4c) + 0x7818);\n    return iVar3;\n  }\n  if (*(int *)(iVar10 + 0x3350) != 0) {\n    iStack_838 = *(int *)(pcVar37 + 0x351e50) + -0x2f6c;\n    iStack_834 = iVar10 + 0x340;\n    (**(code **)(pcVar37 + 0x352760))\n              (0x8000,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,*(int *)(pcVar37 + 0x351e4c) + 0x7804,\n               0x80d);\n  }\n  if (ppiVar24 == (int **)0x0) {\n    iVar3 = (**(code **)(pcStack_830 + -0x7290))\n                      (*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x69c0,0x80e,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x7818);\n    return iVar3;\n  }\n  ppiVar33 = ppiVar24 + 0x6e;\n  (**(code **)(pcStack_830 + -0x6fc4))\n            (ppiVar24[0x7c],ppiVar24[0x7d],0x60,*(int *)(pcStack_830 + -0x7ea0) + 0x224c);\n  ppiVar34 = ppiVar24 + 0x74;\n  dVar39 = (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) *\n           (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) +\n           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76)) *\n           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76));\n  dVar41 = SQRT(dVar39);\n  if (0.0 <= dVar39) {\n    piStack_828 = ppiVar24[0x6f];\n  }\n  else {\n    (**(code **)(pcStack_830 + -0x7418))();\n    piStack_828 = ppiVar24[0x6f];\n  }\n  piStack_824 = ppiVar24[0x70];\n  piStack_820 = ppiVar24[0x71];\n  piStack_81c = ppiVar24[0x72];\n  (**(code **)(pcStack_830 + -0x75e4))(iVar10,auStack_7f0);\n  uVar4 = (**(code **)(pcStack_830 + -0x79c4))(iVar10,pdVar29);\n  iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10);\n  if ((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 == 3)) {\n    iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10);\n    if ((iVar3 != 4) && (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 != 3))\n    goto LAB_000a7bf4;\n    (**(code **)(pcStack_830 + -0x775c))(7);\n    iVar49 = (int)piStack_824 - (int)piStack_81c;\n    iVar3 = iVar49;\n    if (iVar49 < 0) {\n      iVar3 = iVar49 + 0x3f;\n    }\n    if (extraout_v1_04 < iVar3 >> 6) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = iVar49 < 0x80;\n    }\n    iVar3 = 1;\n    dStack_818 = dVar41;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = (int)piStack_824 - (int)piStack_81c;\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      iVar3 = iVar3 >> 6;\n      dStack_818 = dVar41;\n      if (extraout_v1_07 < iVar3) {\n        (**(code **)(pcStack_830 + -0x775c))(7);\n        iVar3 = extraout_v1_08;\n        dStack_818 = dVar41;\n      }\n    }\n  }\n  else {\nLAB_000a7bf4:\n    uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n      if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a7c10;\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n      if ((uint)uVar51 < 2) {\n        iVar3 = 1;\n        dStack_818 = dVar41;\n        goto LAB_000a7c30;\n      }\n    }\n    else {\nLAB_000a7c10:\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n    }\n    uVar51 = (*pcVar37)(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = extraout_v1_05;\n      dStack_818 = dVar41;\n    }\n    else {\n      iVar3 = 2;\n      dStack_818 = dVar41;\n    }\n  }\nLAB_000a7c30:\n  puStack_7fc = auStack_7f0;\n  ppiStack_7f8 = &piStack_828;\n  iStack_7f4 = 1;\n  iStack_810 = iVar10;\n  pdStack_80c = pdVar29;\n  uStack_808 = uVar4;\n  ppiStack_804 = ppiVar33;\n  ppiStack_800 = ppiVar34;\n  (**(code **)(pcStack_830 + -0x7700))(*(int *)(pcStack_830 + -0x7ea0) + 0x549c,&dStack_818,iVar3,0)\n  ;\n  iVar3 = iStack_7f4;\n  (**(code **)(pcStack_830 + -0x79a4))(uVar4);\n  if (puStack_794 == (undefined8 *)**(int **)(pcStack_830 + -0x7668)) {\n    return iVar3;\n  }\n  pcVar37 = *(code **)(pcStack_830 + -0x7834);\n  pcVar38 = GetAffineMatrix;\n  puVar20 = puStack_794;\n  (*pcVar37)();\n  pcStack_858 = pcVar37 + 0x359994;\n  iStack_860 = *(int *)(pcVar37 + 0x3519c8) + 0x10f4;\n  uStack_850 = uVar4;\n  pcStack_84c = pcVar38;\n  (**(code **)(pcVar37 + 0x3522dc))\n            (0x8000,*(int *)(pcVar37 + 0x3519c8) + 0x69c0,*(int *)(pcVar37 + 0x3519c8) + 0x76b0,\n             0x16d2);\n  if (puVar20 != (undefined8 *)0x0) {\n    (**(code **)(pcStack_858 + -0x71c4))(puVar20 + 1,0,0x28);\n    iVar3 = *(int *)(pcStack_858 + -0x7fd0);\n    uVar51 = *(undefined8 *)(iVar3 + 0x4408);\n    *puVar20 = uVar51;\n    puVar20[3] = uVar51;\n    return iVar3;\n  }\n  iVar49 = *(int *)(pcStack_858 + -0x7fcc) + 0x69c0;\n  iVar10 = *(int *)(pcStack_858 + -0x7fcc) + 0x6368;\n  pcVar37 = *(code **)(pcStack_858 + -0x7290);\n  pcVar38 = GetDrawInfo;\n  (*pcVar37)(iVar10,iVar49,0x16d3,*(int *)(pcStack_858 + -0x7fcc) + 0x76a0);\n  iStack_888 = iVar3;\n  iStack_894 = **(int **)(pcVar37 + 0x352270);\n  puStack_88c = puVar20;\n  pdStack_884 = pdVar29;\n  ppiStack_880 = ppiVar33;\n  ppiStack_87c = ppiVar34;\n  puStack_878 = puVar35;\n  pcStack_874 = pcVar38;\n  (**(code **)(pcVar37 + 0x352220))\n            (0x8000,*(int *)(pcVar37 + 0x35190c) + 0x69c0,*(int *)(pcVar37 + 0x35190c) + 0x7694,\n             0x1702,*(int *)(pcVar37 + 0x35190c) + 0x10f4);\n  if (iVar49 == 0) {\n    (**(code **)(pcVar37 + 0x352648))\n              (*(int *)(pcVar37 + 0x351908) + 0x40e4,*(int *)(pcVar37 + 0x35190c) + 0x69c0,0x1703,\n               *(int *)(pcVar37 + 0x35190c) + 0x7688);\n  }\n  else {\n    (**(code **)(pcVar37 + 0x352714))(iVar49,0,0x3c0);\n    iVar10 = (**(code **)(pcVar37 + 0x3521dc))(iVar10);\n    (**(code **)(pcVar37 + 0x351e5c))(iVar49 + 0x18);\n    pdVar29 = (double *)(**(code **)(pcVar37 + 0x351f2c))();\n    ppiVar34 = (int **)(iVar49 + 0x48);\n    (**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar34,pdVar29);\n    ppiVar33 = (int **)(iVar49 + 0xa0);\n    (**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar33,pdVar29);\n    *(undefined4 *)(iVar49 + 0x238) = *(undefined4 *)(iVar10 + 0x14);\n    *(undefined8 *)(iVar49 + 0x1b0) = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4408);\n    *(undefined4 *)(iVar49 + 0x240) = 1;\n    *(undefined4 *)(iVar49 + 0x2cc) = *(undefined4 *)(*(int *)(pcVar37 + 0x351908) + 0x4aa8);\n    uVar51 = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4a48);\n    *(undefined8 *)(iVar49 + 0x398) = uVar51;\n    *(undefined8 *)(iVar49 + 0x3a0) = uVar51;\n    *(undefined4 *)(iVar49 + 0x244) = 1;\n    *(undefined4 *)(iVar49 + 0x248) = 1;\n    *(undefined4 *)(iVar49 + 0x24c) = 10;\n    *(undefined4 *)(iVar49 + 600) = 1;\n    *(undefined8 *)(iVar49 + 0x288) = *(undefined8 *)(*(int *)(pcVar37 + 0x35190c) + 0x7970);\n    *(undefined4 *)(iVar49 + 0x144) = 0;\n    *(undefined4 *)(iVar49 + 0x140) = 0;\n    *(undefined4 *)(iVar49 + 0x25c) = 0x36;\n    *(undefined4 *)(iVar49 + 0x2d0) = 1;\n    *(undefined4 *)(iVar49 + 0x3a8) = 0;\n    uVar4 = (**(code **)(pcVar37 + 0x3527e8))();\n    *(undefined4 *)(iVar49 + 0x38c) = uVar4;\n    if (*(int *)(iVar10 + 0x4c) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x264) = uVar4;\n    }\n    if (*(int *)(iVar10 + 0x54) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x290) = uVar4;\n    }\n    *(undefined4 *)(iVar49 + 0x23c) = *(undefined4 *)(iVar10 + 0x14);\n    uVar4 = *(undefined4 *)(iVar10 + 0x58);\n    if (*(double *)(*(int *)(pcVar37 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar10 + 0x58))) {\n      *(undefined4 *)(iVar49 + 0x28c) = *(undefined4 *)(iVar10 + 0x5c);\n      *(undefined4 *)(iVar49 + 0x288) = uVar4;\n    }\n    puVar13 = (undefined4 *)(iVar10 + 0x118);\n    puVar21 = (undefined4 *)(iVar49 + 0x150);\n    do {\n      puVar15 = puVar21;\n      puVar9 = puVar13;\n      uVar27 = puVar9[1];\n      uVar25 = puVar9[2];\n      uVar4 = puVar9[3];\n      *puVar15 = *puVar9;\n      puVar15[1] = uVar27;\n      puVar15[2] = uVar25;\n      puVar15[3] = uVar4;\n      puVar13 = puVar9 + 4;\n      puVar21 = puVar15 + 4;\n    } while (puVar13 != (undefined4 *)(iVar10 + 0x168));\n    uVar4 = puVar9[5];\n    puVar15[4] = *puVar13;\n    puVar15[5] = uVar4;\n    if (*(int *)(iVar10 + 0x48) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x29c) = uVar4;\n    }\n    iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ac4);\n    if (iVar3 != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x14,0,iVar3);\n      *(undefined4 *)(iVar49 + 0x388) = uVar4;\n      goto LAB_000a8298;\n    }\n  }\n  *(undefined4 *)(iVar49 + 0x388) = 0;\nLAB_000a8298:\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ad0);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x280,iVar3);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6adc);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x26c,iVar3);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ae4);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar34,pdVar29);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6aec);\n  if (iVar3 != 0) {\n    uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x21,0,iVar3);\n    *(undefined4 *)(iVar49 + 0x298) = uVar4;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6af4);\n  if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x380) = dVar39;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b08);\n  if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x378) = dVar39;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b1c);\n  if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x370) = dVar39;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b24);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar33,pdVar29);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b2c);\n  if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x1b0) = dVar39;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b38);\n  if (iVar3 != 0) {\n    uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x47,0,iVar3);\n    *(undefined4 *)(iVar49 + 0x274) = uVar4;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b40);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,iVar49 + 0xf8,pdVar29);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x351920) + -0x3000);\n  if (iVar3 != 0) {\n    iVar28 = (**(code **)(pcVar37 + 0x3526d4))(0x4c,0,iVar3);\n    if (iVar28 == -1) {\n      uVar4 = (**(code **)(pcVar37 + 0x352380))(iVar3,0,10);\n      *(undefined4 *)(iVar49 + 0x27c) = uVar4;\n    }\n    else {\n      *(int *)(iVar49 + 0x27c) = iVar28;\n    }\n  }\n  (**(code **)(pcVar37 + 0x351d90))(pdVar29);\n  *(undefined4 *)(iVar49 + 0x390) = 0xabacadab;\n  (**(code **)(pcVar37 + 0x352628))(iVar10);\n  if (iStack_894 == **(int **)(pcVar37 + 0x352270)) {\n    return **(int **)(pcVar37 + 0x352270);\n  }\n  pcVar37 = *(code **)(pcVar37 + 0x3520a4);\n  (*pcVar37)();\n  iVar3 = (**(code **)(pcVar37 + 0x351be4))(0x3c0);\n  (**(code **)(pcVar37 + 0x3518b4))(0,iVar3);\n  return iVar3;\n}\n\n" (function_definition "int FUN_000a34c4(undefined4 *param_1)\n\n{\n  bool bVar1;\n  int *piVar2;\n  int iVar3;\n  undefined4 uVar4;\n  double *pdVar5;\n  undefined *puVar6;\n  int *piVar7;\n  uint uVar8;\n  undefined4 *puVar9;\n  int iVar10;\n  int *piVar11;\n  int iVar12;\n  undefined4 *puVar13;\n  double *pdVar14;\n  int extraout_v1;\n  double *extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  double *extraout_v1_03;\n  int extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int extraout_v1_07;\n  int extraout_v1_08;\n  undefined4 *puVar15;\n  double *pdVar16;\n  int *piVar17;\n  uint uVar18;\n  int *piVar19;\n  undefined8 *puVar20;\n  undefined4 *puVar21;\n  uint uVar22;\n  uint *puVar23;\n  int **ppiVar24;\n  undefined4 uVar25;\n  uint uVar26;\n  undefined4 uVar27;\n  int iVar28;\n  double *pdVar29;\n  double *pdVar30;\n  int unaff_s2;\n  int iVar31;\n  uint *puVar32;\n  double *unaff_s3;\n  int **ppiVar33;\n  int *unaff_s4;\n  int **ppiVar34;\n  undefined1 *puVar35;\n  double *unaff_s6;\n  uint unaff_s7;\n  undefined *puVar36;\n  code *pcVar37;\n  code *pcVar38;\n  double dVar39;\n  double dVar40;\n  double dVar41;\n  float fVar43;\n  double dVar42;\n  double dVar44;\n  double dVar45;\n  double dVar46;\n  double in_f20_21;\n  double dVar47;\n  double in_f22_23;\n  double in_f24_25;\n  double in_f26_27;\n  double in_f28_29;\n  double in_f30_31;\n  int *piVar48;\n  int iVar49;\n  int iVar50;\n  undefined8 uVar51;\n  undefined1 auStack_898 [4];\n  int iStack_894;\n  undefined8 *puStack_88c;\n  int iStack_888;\n  double *pdStack_884;\n  int **ppiStack_880;\n  int **ppiStack_87c;\n  undefined1 *puStack_878;\n  code *pcStack_874;\n  int iStack_860;\n  code *pcStack_858;\n  undefined4 uStack_850;\n  code *pcStack_84c;\n  int iStack_838;\n  int iStack_834;\n  code *pcStack_830;\n  int *piStack_828;\n  int *piStack_824;\n  int *piStack_820;\n  int *piStack_81c;\n  double dStack_818;\n  int iStack_810;\n  double *pdStack_80c;\n  undefined4 uStack_808;\n  int **ppiStack_804;\n  int **ppiStack_800;\n  undefined1 *puStack_7fc;\n  int **ppiStack_7f8;\n  int iStack_7f4;\n  undefined1 auStack_7f0 [92];\n  undefined8 *puStack_794;\n  double *pdStack_790;\n  int *piStack_78c;\n  uint *puStack_788;\n  double *pdStack_784;\n  int iStack_780;\n  code *pcStack_77c;\n  double dStack_778;\n  int iStack_760;\n  int *piStack_75c;\n  code *pcStack_758;\n  double dStack_750;\n  double dStack_748;\n  double dStack_740;\n  double dStack_738;\n  int *piStack_72c;\n  uint *puStack_728;\n  double *pdStack_724;\n  double *pdStack_720;\n  undefined1 *puStack_71c;\n  undefined4 uStack_718;\n  undefined1 *puStack_714;\n  double *pdStack_710;\n  int iStack_70c;\n  int iStack_708;\n  int iStack_704;\n  double dStack_700;\n  double dStack_6f8;\n  double dStack_6f0;\n  double dStack_6e8;\n  double dStack_6e0;\n  double dStack_6d8;\n  undefined1 auStack_6d0 [88];\n  undefined8 uStack_678;\n  undefined4 uStack_670;\n  undefined4 uStack_66c;\n  double dStack_668;\n  undefined4 uStack_660;\n  undefined4 uStack_65c;\n  double dStack_658;\n  double dStack_650;\n  undefined4 uStack_648;\n  undefined4 uStack_644;\n  double dStack_640;\n  undefined8 uStack_638;\n  double *pdStack_62c;\n  int *piStack_628;\n  uint *puStack_624;\n  double *pdStack_620;\n  int iStack_61c;\n  undefined1 *puStack_618;\n  double *pdStack_614;\n  uint uStack_610;\n  code *pcStack_60c;\n  double dStack_608;\n  double dStack_600;\n  double dStack_5f8;\n  double dStack_5f0;\n  int iStack_5d8;\n  code *pcStack_5d0;\n  double *pdStack_5c8;\n  code *pcStack_5c4;\n  undefined4 uStack_5b0;\n  uint uStack_5ac;\n  code *pcStack_5a8;\n  undefined8 uStack_5a0;\n  double dStack_598;\n  double dStack_590;\n  double *pdStack_588;\n  int iStack_584;\n  double dStack_580;\n  double dStack_578;\n  int iStack_570;\n  undefined1 *puStack_56c;\n  double *pdStack_568;\n  uint uStack_564;\n  double dStack_560;\n  double dStack_558;\n  uint uStack_550;\n  undefined4 uStack_54c;\n  double dStack_548;\n  double dStack_540;\n  uint uStack_538;\n  undefined4 uStack_534;\n  double dStack_530;\n  uint uStack_528;\n  undefined4 uStack_524;\n  double dStack_520;\n  double dStack_518;\n  int aiStack_510 [4];\n  undefined8 uStack_500;\n  int iStack_4f8;\n  double dStack_4e8;\n  double dStack_4e0;\n  double dStack_4d8;\n  double dStack_4d0;\n  double dStack_4c8;\n  double dStack_4c0;\n  int iStack_4b4;\n  uint uStack_4b0;\n  int iStack_4ac;\n  double *pdStack_4a8;\n  double *pdStack_4a4;\n  int iStack_4a0;\n  undefined4 *puStack_49c;\n  double *pdStack_498;\n  uint uStack_494;\n  int iStack_490;\n  code *pcStack_48c;\n  double dStack_488;\n  double dStack_480;\n  double dStack_478;\n  double dStack_470;\n  double dStack_468;\n  double dStack_460;\n  int *piStack_448;\n  uint uStack_444;\n  code *pcStack_440;\n  uint uStack_434;\n  uint uStack_430;\n  double *pdStack_42c;\n  uint uStack_428;\n  uint uStack_424;\n  uint uStack_420;\n  undefined4 uStack_41c;\n  int aiStack_418 [10];\n  double dStack_3f0;\n  double dStack_3e8;\n  double dStack_3e0;\n  double dStack_3d8;\n  double dStack_3d0;\n  int iStack_3bc;\n  int iStack_3b8;\n  uint uStack_3b4;\n  double *pdStack_3b0;\n  double *pdStack_3ac;\n  int *piStack_3a8;\n  undefined4 *puStack_3a4;\n  double *pdStack_3a0;\n  uint uStack_39c;\n  int iStack_398;\n  code *pcStack_394;\n  double dStack_390;\n  double dStack_388;\n  double dStack_380;\n  double dStack_378;\n  double dStack_370;\n  undefined4 *puStack_358;\n  undefined4 uStack_354;\n  undefined *puStack_350;\n  undefined8 uStack_348;\n  double dStack_340;\n  double dStack_338;\n  double dStack_330;\n  uint uStack_328;\n  int iStack_324;\n  double dStack_320;\n  double dStack_318;\n  uint uStack_310;\n  undefined4 uStack_30c;\n  int iStack_308;\n  int *piStack_304;\n  double dStack_300;\n  uint uStack_2f8;\n  int iStack_2f4;\n  int iStack_2f0;\n  double *pdStack_2ec;\n  uint uStack_2e8;\n  undefined4 uStack_2e4;\n  uint uStack_2e0;\n  undefined4 uStack_2dc;\n  double *pdStack_2d8;\n  uint uStack_2d4;\n  undefined4 uStack_2d0;\n  double *pdStack_2cc;\n  uint uStack_2c8;\n  undefined4 uStack_2c4;\n  int iStack_2c0;\n  undefined4 *puStack_2bc;\n  double dStack_2b8;\n  uint uStack_2b0;\n  undefined4 uStack_2ac;\n  double *pdStack_2a8;\n  undefined1 *puStack_2a4;\n  double *pdStack_2a0;\n  int iStack_29c;\n  undefined4 auStack_298 [18];\n  double dStack_250;\n  undefined4 auStack_240 [18];\n  double dStack_1f8;\n  int iStack_1e4;\n  double *pdStack_1e0;\n  int *piStack_1dc;\n  int iStack_1d8;\n  double *pdStack_1d4;\n  int *piStack_1d0;\n  undefined4 *puStack_1cc;\n  double *pdStack_1c8;\n  uint uStack_1c4;\n  int iStack_1c0;\n  code *pcStack_1bc;\n  double dStack_1b8;\n  double dStack_1b0;\n  double dStack_1a8;\n  double dStack_1a0;\n  double dStack_198;\n  double dStack_190;\n  undefined8 local_178;\n  double local_170;\n  int *local_168;\n  int *local_164;\n  int local_110 [4];\n  undefined8 local_100;\n  int local_f8;\n  double local_e8;\n  double local_e0;\n  double local_d8;\n  double local_d0;\n  double local_c8;\n  double local_c0;\n  int local_b8 [10];\n  double local_90;\n  double local_88;\n  double local_80;\n  double local_78;\n  double local_70;\n  int local_5c;\n  \n  local_5c = *(int *)PTR___stack_chk_guard_003fa248;\n  pdVar29 = (double *)param_1[8];\n  piVar2 = (int *)(*(code *)PTR_omp_get_num_threads_003fa924)();\n  iVar3 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n  puVar36 = PTR_LAB_003f98e0;\n  iVar10 = (param_1[9] + 1) - (int)pdVar29;\n  if (piVar2 == (int *)0x0) {\n    trap(7);\n  }\n  iVar49 = iVar10 / (int)piVar2;\n  iVar10 = iVar10 % (int)piVar2;\n  if (iVar3 < iVar10) {\n    iVar49 = iVar49 + 1;\n    iVar10 = 0;\n  }\n  iVar10 = iVar49 * iVar3 + iVar10;\n  pdVar16 = (double *)(iVar49 + iVar10);\n  iVar3 = (int)pdVar29 + iVar10;\n  if (iVar10 < (int)pdVar16) {\n    uVar4 = param_1[5];\n    pdVar5 = (double *)param_1[4];\n    unaff_s4 = (int *)param_1[2];\n    unaff_s7 = param_1[1];\n    piVar2 = (int *)*param_1;\n    puVar6 = (undefined *)((int)pdVar29 + (int)pdVar16);\n    dVar39 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    in_f26_27 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    in_f30_31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n    do {\n      in_f24_25 = (double)iVar3;\n      pdVar29 = (double *)param_1[3];\n      in_f20_21 = *(double *)param_1[7];\n      in_f28_29 = ((double *)param_1[7])[2];\n      dVar40 = in_f24_25 * pdVar29[2] + pdVar29[4];\n      dVar47 = *pdVar29;\n      dVar41 = in_f28_29;\n      if (dVar39 <= dVar47) {\n        in_f22_23 = -dVar40 / dVar47;\n        if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }\n        dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n        if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }\n        dVar47 = (dVar44 - dVar40) / dVar47;\n        if (dVar47 < in_f28_29) {\n          dVar41 = dVar47;\n        }\nLAB_000a3890:\n        dVar40 = in_f24_25 * pdVar29[3] + pdVar29[5];\n        dVar47 = pdVar29[1];\n        if (*(double *)(puVar36 + 0x43c8) <= dVar47) {\n          dVar44 = -dVar40 / dVar47;\n          if (-dVar40 / dVar47 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = *(double **)(unaff_s7 + 0x1c);\n          dVar44 = (double)(int)pdVar16;\n          if ((int)pdVar16 < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar44 - dVar40) / dVar47;\n          if (dVar41 <= in_f20_21) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }\n        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;\n      }\n      else {\n        if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar44 - dVar40) / dVar47;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar40) {\n          dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n          if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar41;\n          if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar36 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar41 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar41;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar40 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar41 = (dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar41 < in_f20_21) {\n          uVar26 = (uint)dVar41;\n        }\n        else {\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar16 = pdVar5;\n        pdVar29 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26);\n        if (pdVar29 != (double *)0x0) {\n          piVar17 = (int *)param_1[6];\n          piVar48 = piVar17;\n          piVar19 = local_b8;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          piVar48 = piVar17;\n          piVar19 = local_110;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }\n          pdVar16 = pdVar5;\n          iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);\n          if (iVar10 == 0) {\n            param_1[10] = 0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n      unaff_s6 = (double *)puVar36;\n    } while (iVar3 < (int)puVar6);\n  }\n  if (local_5c == *(int *)PTR___stack_chk_guard_003fa248) {\n    return *(int *)PTR___stack_chk_guard_003fa248;\n  }\n  pcVar37 = FUN_000a3ef0;\n  puVar36 = PTR___stack_chk_fail_003fa07c;\n  (*(code *)PTR___stack_chk_fail_003fa07c)();\n  puStack_350 = puVar36 + 0x35d9c0;\n  iStack_1e4 = **(int **)(puVar36 + 0x356358);\n  iVar28 = *(int *)((int)pdVar16 + 0x24);\n  pdStack_2a8 = pdVar16;\n  pdStack_1e0 = pdVar29;\n  piStack_1dc = piVar2;\n  iStack_1d8 = unaff_s2;\n  pdStack_1d4 = unaff_s3;\n  piStack_1d0 = unaff_s4;\n  puStack_1cc = param_1;\n  pdStack_1c8 = unaff_s6;\n  uStack_1c4 = unaff_s7;\n  iStack_1c0 = iVar3;\n  pcStack_1bc = pcVar37;\n  dStack_1b8 = in_f20_21;\n  dStack_1b0 = in_f22_23;\n  dStack_1a8 = in_f24_25;\n  dStack_1a0 = in_f26_27;\n  dStack_198 = in_f28_29;\n  dStack_190 = in_f30_31;\n  iVar10 = (**(code **)(puVar36 + 0x356a34))();\n  iVar49 = (**(code **)(puStack_350 + -0x7390))();\n  iVar12 = (*(int *)(pdVar16 + 5) + 1) - iVar28;\n  if (iVar10 == 0) {\n    trap(7);\n  }\n  iVar50 = iVar12 / iVar10;\n  iVar12 = iVar12 % iVar10;\n  uVar26 = (uint)(iVar49 < iVar12);\n  if (uVar26 != 0) {\n    iVar50 = iVar50 + 1;\n    iVar12 = 0;\n  }\n  uVar8 = iVar50 * iVar49 + iVar12;\n  pdVar29 = (double *)(iVar50 + uVar8);\n  if ((int)uVar8 < (int)pdVar29) {\n    iStack_29c = *(int *)((int)pdStack_2a8 + 0x1c);\n    in_f28_29 = *pdStack_2a8;\n    iStack_2f4 = *(int *)(pdStack_2a8 + 3);\n    pdStack_2a0 = *(double **)((int)pdStack_2a8 + 0x14);\n    uStack_2d0 = *(undefined4 *)(pdStack_2a8 + 2);\n    iStack_324 = *(int *)((int)pdStack_2a8 + 0xc);\n    unaff_s6 = *(double **)(pdStack_2a8 + 1);\n    iStack_2f0 = iVar28 + uVar8;\n    puStack_2a4 = (undefined1 *)(iVar28 + (int)pdVar29);\n    unaff_s7 = *(uint *)(puStack_350 + -0x7fd0);\n    dStack_320 = *(double *)(unaff_s7 + 0x4408);\n    iVar3 = *(int *)(puStack_350 + -0x7fd0);\n    dStack_2b8 = *(double *)(iVar3 + 0x43c8);\n    uStack_2f8 = uVar8;\n    do {\n      iVar28 = (**(code **)(puStack_350 + -0x7390))();\n      if (*(int *)((int)pdStack_2a8 + 0x2c) != 0) {\n        pdVar29 = *(double **)(pdStack_2a8 + 4);\n        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21);\n        uStack_2d4 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21);\n        uVar26 = uStack_2d4;\n        pdVar16 = (double *)(int)dVar39;\n        uStack_354 = uStack_2d0;\n        puStack_358 = (undefined4 *)0x1;\n        pdVar29 = pdStack_2a0;\n        pdStack_2cc = pdVar16;\n        iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)));\n        if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar28 = iVar28 * 4;\n          puVar36 = puStack_350;\n          if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar29 = pdStack_2a0;\n          iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }\n      }\n      iStack_2f0 = iStack_2f0 + 1;\n      uStack_2f8 = uStack_2f8 + 1;\n    } while (iStack_2f0 < (int)puStack_2a4);\n  }\n  if (iStack_1e4 == **(int **)(puStack_350 + -0x7668)) {\n    return **(int **)(puStack_350 + -0x7668);\n  }\n  pcVar37 = *(code **)(puStack_350 + -0x7834);\n  pcVar38 = FUN_000a5040;\n  (*pcVar37)();\n  pcStack_440 = pcVar37 + 0x35c870;\n  iStack_3bc = **(int **)(pcVar37 + 0x355208);\n  uVar8 = *(uint *)(pdVar29 + 3);\n  pdVar5 = pdVar29;\n  uStack_428 = uVar8;\n  iStack_3b8 = iVar28;\n  uStack_3b4 = uVar26;\n  pdStack_3b0 = pdVar16;\n  pdStack_3ac = unaff_s3;\n  piStack_3a8 = unaff_s4;\n  puStack_3a4 = param_1;\n  pdStack_3a0 = unaff_s6;\n  uStack_39c = unaff_s7;\n  iStack_398 = iVar3;\n  pcStack_394 = pcVar38;\n  dStack_390 = in_f20_21;\n  dStack_388 = in_f22_23;\n  dStack_380 = in_f24_25;\n  dStack_378 = in_f26_27;\n  dStack_370 = in_f28_29;\n  iVar3 = (**(code **)(pcVar37 + 0x3558e4))();\n  iVar10 = (**(code **)(pcStack_440 + -0x7390))();\n  iVar49 = (*(uint *)((int)pdVar29 + 0x1c) + 1) - uVar8;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar28 = iVar49 / iVar3;\n  iVar49 = iVar49 % iVar3;\n  uVar26 = (uint)(iVar10 < iVar49);\n  if (uVar26 != 0) {\n    iVar28 = iVar28 + 1;\n    iVar49 = 0;\n  }\n  iVar49 = iVar28 * iVar10 + iVar49;\n  iVar28 = iVar28 + iVar49;\n  iVar3 = *(int *)(pcStack_440 + -0x7fd0);\n  pcVar37 = pcStack_440;\n  if (iVar49 < iVar28) {\n    pdStack_42c = *(double **)(pdVar29 + 2);\n    uStack_430 = *(uint *)((int)pdVar29 + 0xc);\n    unaff_s6 = *(double **)(pdVar29 + 1);\n    uStack_424 = *(uint *)((int)pdVar29 + 4);\n    unaff_s7 = *(uint *)pdVar29;\n    iVar49 = uStack_428 + iVar49;\n    iVar28 = uStack_428 + iVar28;\n    in_f22_23 = *(double *)(iVar3 + 0x43d0);\n    in_f26_27 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8);\n    in_f28_29 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410);\n    do {\n      in_f20_21 = *(double *)(iVar3 + 0x43d0);\n      if (*(uint *)(pdVar29 + 4) != 0) {\n        pdVar16 = *(double **)((int)pdVar29 + 0x14);\n        dVar39 = (double)(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21);\n        uStack_434 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21);\n        uVar26 = uStack_434;\n        param_1 = (undefined4 *)(int)dVar39;\n        uStack_444 = uStack_430;\n        piStack_448 = (int *)0x1;\n        pdVar5 = pdStack_42c;\n        pdVar16 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434));\n        if (pdVar16 == (double *)0x0) {\n          *(uint *)(pdVar29 + 4) = 0;\n          pcVar37 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar26 <= (int)param_1;\n          uVar26 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }\n          pdVar5 = pdStack_42c;\n          iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar37 = pcStack_440;\n          if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }\n        }\n      }\n      iVar49 = iVar49 + 1;\n    } while (iVar49 < iVar28);\n  }\n  if (iStack_3bc == **(int **)(pcVar37 + -0x7668)) {\n    return **(int **)(pcVar37 + -0x7668);\n  }\n  pcVar37 = *(code **)(pcVar37 + -0x7834);\n  pcVar38 = FUN_000a549c;\n  (*pcVar37)();\n  pcStack_5a8 = pcVar37 + 0x35c414;\n  iStack_4b4 = **(int **)(pcVar37 + 0x354dac);\n  puVar32 = *(uint **)(pdVar5 + 4);\n  pdVar30 = (double *)puVar32[3];\n  pdVar14 = pdVar5;\n  uStack_4b0 = uVar26;\n  iStack_4ac = iVar49;\n  pdStack_4a8 = pdVar16;\n  pdStack_4a4 = pdVar29;\n  iStack_4a0 = iVar28;\n  puStack_49c = param_1;\n  pdStack_498 = unaff_s6;\n  uStack_494 = unaff_s7;\n  iStack_490 = iVar3;\n  pcStack_48c = pcVar38;\n  dStack_488 = in_f20_21;\n  dStack_480 = in_f22_23;\n  dStack_478 = in_f24_25;\n  dStack_470 = in_f26_27;\n  dStack_468 = in_f28_29;\n  dStack_460 = in_f30_31;\n  iVar3 = (**(code **)(pcVar37 + 0x355488))();\n  iVar10 = (**(code **)(pcStack_5a8 + -0x7390))();\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar49 = (int)(puVar32[1] - (int)pdVar30) / iVar3;\n  piVar48 = (int *)((int)(puVar32[1] - (int)pdVar30) % iVar3);\n  piVar2 = piVar48;\n  if (iVar10 < (int)piVar48) {\n    iVar49 = iVar49 + 1;\n    piVar2 = (int *)0x0;\n  }\n  piVar2 = (int *)(iVar49 * iVar10 + (int)piVar2);\n  puVar35 = (undefined1 *)((int)pdVar30 + (int)piVar2);\n  pcVar37 = pcStack_5a8;\n  if ((int)piVar2 < iVar49 + (int)piVar2) {\n    dStack_580 = *pdVar5;\n    pdStack_588 = *(double **)(pdVar5 + 3);\n    puVar32 = *(uint **)((int)pdVar5 + 0x14);\n    pdStack_568 = *(double **)(pdVar5 + 2);\n    uStack_564 = *(uint *)((int)pdVar5 + 0xc);\n    piVar48 = *(int **)(pdVar5 + 1);\n    puStack_56c = (undefined1 *)((int)pdVar30 + iVar49 + (int)piVar2);\n    dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n    if (dStack_580 < 0.0) {\n      dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n    }\n    iStack_570 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_598 = *(double *)(iStack_570 + 0x4a48);\n    iStack_584 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_560 = *(double *)(iStack_584 + 0x43d0);\n    unaff_s6 = *(double **)(pcStack_5a8 + -0x7fd0);\n    dStack_548 = unaff_s6[0x879];\n    do {\n      if (*(uint *)((int)pdVar5 + 0x24) != 0) {\n        uStack_5ac = uStack_564;\n        uStack_5b0 = 1;\n        pdVar14 = pdStack_568;\n        pdVar30 = (double *)(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6]);\n        if (pdVar30 == (double *)0x0) {\n          *(uint *)((int)pdVar5 + 0x24) = 0;\n          pcVar37 = pcStack_5a8;\n        }\n        else {\n          piVar17 = *(int **)((int)pdVar5 + 0x1c);\n          piVar2 = piVar17;\n          piVar19 = aiStack_510;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);\n          iVar10 = *piVar2;\n          iVar3 = piVar7[5];\n          *piVar19 = iVar10;\n          piVar11[5] = iVar3;\n          in_f20_21 = *(double *)(piVar17 + 10);\n          in_f22_23 = *(double *)(piVar17 + 0xc);\n          in_f24_25 = *(double *)(piVar17 + 0xe);\n          dStack_590 = *(double *)(piVar17 + 0x10);\n          dVar39 = *(double *)(piVar17 + 0x12);\n          if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];\n          pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }\n          pdVar14 = pdStack_568;\n          iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar37 = pcStack_5a8;\n          if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }\n        }\n      }\n      puVar35 = puVar35 + 1;\n    } while ((int)puVar35 < (int)puStack_56c);\n  }\n  if (iStack_4b4 == **(int **)(pcVar37 + -0x7668)) {\n    return **(int **)(pcVar37 + -0x7668);\n  }\n  pcVar37 = *(code **)(pcVar37 + -0x7834);\n  pcVar38 = DestroyDrawInfo;\n  (*pcVar37)();\n  pcStack_5d0 = pcVar37 + 0x35a8f0;\n  pdStack_5c8 = pdVar30;\n  pcStack_5c4 = pcVar38;\n  if (pdVar14 == (double *)0x0) {\n    (**(code **)(pcVar37 + 0x353660))\n              (*(int *)(pcVar37 + 0x352920) + 0x40e4,*(int *)(pcVar37 + 0x352924) + 0x69c0,0x39a,\n               *(int *)(pcVar37 + 0x352924) + 0x7914);\n    pdVar14 = pdVar30;\nLAB_000a7234:\n    iStack_5d8 = *(int *)(pcVar37 + 0x352924) + 0x10f4;\n    (**(code **)(pcVar37 + 0x353238))\n              (0x8000,*(int *)(pcVar37 + 0x352924) + 0x69c0,*(int *)(pcVar37 + 0x352924) + 0x7904,\n               0x39c);\n    uVar26 = *(uint *)(pdVar14 + 0x72);\n  }\n  else {\n    if (*(uint *)((int)pdVar14 + 0x38c) != 0) goto LAB_000a7234;\n    uVar26 = *(uint *)(pdVar14 + 0x72);\n  }\n  if (uVar26 == 0xabacadab) {\n    if (*(uint *)(pdVar14 + 0x77) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x77) = uVar26;\n    }\n    if (*(uint *)pdVar14 != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)pdVar14 = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x4c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4c) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 4) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x35) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)(pdVar14 + 0x35) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x1ac) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x1ac) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x264) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x264) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x4d) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4d) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x26c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x26c) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x50) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x50) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x52) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x52) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x29c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)((int)pdVar14 + 0x29c) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x54) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x54) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x3e) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x3e) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x2a4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x2a4) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x3ac) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3ac) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x3b4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3b4) = uVar26;\n    }\n    *(uint *)(pdVar14 + 0x72) = 0x54535254;\n    iVar3 = (**(code **)(pcStack_5d0 + -0x78d8))(pdVar14);\n    return iVar3;\n  }\n  pdVar5 = (double *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x7914);\n  pdVar16 = (double *)&DAT_0000039d;\n  puVar23 = (uint *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x69c0);\n  piVar2 = (int *)(*(int *)(pcStack_5d0 + -0x7fd0) + 0x4128);\n  pcVar37 = *(code **)(pcStack_5d0 + -0x7290);\n  pcVar38 = DrawAffineImage;\n  (*pcVar37)();\n  pcStack_758 = pcVar37 + 0x35a61c;\n  uStack_638._4_4_ = **(int **)(pcVar37 + 0x352fb4);\n  pdStack_62c = pdVar14;\n  piStack_628 = piVar48;\n  puStack_624 = puVar32;\n  pdStack_620 = pdVar29;\n  iStack_61c = iVar28;\n  puStack_618 = puVar35;\n  pdStack_614 = unaff_s6;\n  uStack_610 = unaff_s7;\n  pcStack_60c = pcVar38;\n  dStack_608 = in_f20_21;\n  dStack_600 = in_f22_23;\n  dStack_5f8 = in_f24_25;\n  dStack_5f0 = in_f26_27;\n  if (piVar2 == (int *)0x0) {\n    (**(code **)(pcVar37 + 0x35338c))\n              (*(int *)(pcVar37 + 0x35264c) + 0x3da0,*(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c0,\n               *(int *)(pcVar37 + 0x352650) + 0x78f4);\n    pdVar16 = pdVar14;\n    piVar2 = piVar48;\n    puVar23 = puVar32;\n    pdVar5 = pdVar29;\nLAB_000a7434:\n    piVar48 = (int *)(**(code **)(pcVar37 + 0x35338c))\n                               (*(int *)(pcVar37 + 0x352650) + -0x784,\n                                *(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar37 + 0x352650) + 0x78f4);\nLAB_000a745c:\n    iStack_760 = *(int *)(pcVar37 + 0x352654) + -0x2f6c;\n    piStack_75c = piVar48;\n    (**(code **)(pcVar37 + 0x352f64))\n              (0x8000,*(int *)(pcVar37 + 0x352650) + 0x69c0,*(int *)(pcVar37 + 0x352650) + 0x78e4,\n               0x4c3);\n  }\n  else {\n    if (piVar2[0xcdb] != -0x54535255) goto LAB_000a7434;\n    piVar48 = piVar2 + 0xd0;\n    if (piVar2[0xcd4] != 0) goto LAB_000a745c;\n  }\n  pcVar37 = pcStack_758;\n  if (puVar23 == (uint *)0x0) {\n    (**(code **)(pcStack_758 + -0x7290))\n              (*(int *)(pcStack_758 + -0x7fcc) + 0x6a20,*(int *)(pcStack_758 + -0x7fcc) + 0x69c0,\n               0x4c4,*(int *)(pcStack_758 + -0x7fcc) + 0x78f4);\nLAB_000a74c4:\n    (**(code **)(pcVar37 + -0x7290))\n              (*(int *)(pcVar37 + -0x7fcc) + 0x6a40,*(int *)(pcVar37 + -0x7fcc) + 0x69c0);\nLAB_000a74e8:\n    dStack_668 = (double)(**(code **)(pcVar37 + -0x7290))\n                                   (*(int *)(pcVar37 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar37 + -0x7fcc) + 0x69c0);\nLAB_000a750c:\n    dStack_668 = dStack_668 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);\n  }\n  else {\n    if (puVar23[0xcdb] != 0xabacadab) goto LAB_000a74c4;\n    if (pdVar16 == (double *)0x0) goto LAB_000a74e8;\n    uStack_678._4_4_ = 0;\n    uStack_678._0_4_ = 0;\n    uStack_66c = 0;\n    uStack_670 = 0;\n    dStack_668 = (double)(int)puVar23[6];\n    if ((int)puVar23[6] < 0) goto LAB_000a750c;\n  }\n  dStack_668 = dStack_668 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408);\n  uStack_65c = 0;\n  uStack_660 = 0;\n  dStack_658 = dStack_668;\n  dStack_650 = (double)(int)puVar23[7];\n  if ((int)puVar23[7] < 0) {\n    dStack_650 = dStack_650 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);\n  }\n  dStack_650 = dStack_650 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408);\n  uStack_644 = 0;\n  uStack_648 = 0;\n  dStack_640 = dStack_650;\n  dVar45 = *pdVar16;\n  dVar44 = pdVar16[2];\n  dVar47 = pdVar16[4];\n  dVar40 = pdVar16[1];\n  dVar41 = pdVar16[3];\n  dVar39 = pdVar16[5];\n  pdVar14 = (double *)&uStack_678;\n  pdVar29 = pdVar14;\n  do {\n    dVar42 = *pdVar29;\n    *pdVar29 = dVar45 * dVar42 + dVar44 * pdVar29[1] + dVar47;\n    pdVar29[1] = dVar40 * dVar42 + dVar41 * pdVar29[1] + dVar39;\n    pdVar29 = pdVar29 + 2;\n  } while (pdVar29 != (double *)&uStack_638);\n  dVar39 = (double)CONCAT44(uStack_670,uStack_66c);\n  dVar41 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_);\n  dVar40 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_);\n  dVar47 = (double)CONCAT44(uStack_670,uStack_66c);\n  do {\n    dVar45 = pdVar14[2];\n    dVar44 = dVar45;\n    if (dVar41 <= dVar45) {\n      dVar44 = dVar41;\n    }\n    dVar42 = pdVar14[3];\n    dVar46 = dVar42;\n    if (dVar47 <= dVar42) {\n      dVar46 = dVar47;\n    }\n    if (dVar45 <= dVar40) {\n      dVar45 = dVar40;\n    }\n    if (dVar42 <= dVar39) {\n      dVar42 = dVar39;\n    }\n    pdVar14 = pdVar14 + 2;\n    dVar39 = dVar42;\n    dVar41 = dVar44;\n    dVar40 = dVar45;\n    dVar47 = dVar46;\n  } while ((double *)&uStack_648 != pdVar14);\n  ppiVar24 = (int **)0x1;\n  pdVar29 = pdVar5;\n  iVar3 = (**(code **)(pcVar37 + -0x7074))(piVar2);\n  if (iVar3 != 0) {\n    dStack_750 = dVar44;\n    if (dVar44 <= 0.0) {\n      dStack_750 = 0.0;\n    }\n    dStack_748 = dVar46;\n    if (dVar46 <= 0.0) {\n      dStack_748 = 0.0;\n    }\n    dStack_740 = (double)piVar2[6];\n    if (piVar2[6] < 0) {\n      dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_740 = dStack_740 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar45 < dStack_740) {\n      dStack_740 = dVar45;\n    }\n    dStack_738 = (double)piVar2[7];\n    if (piVar2[7] < 0) {\n      dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_738 = dStack_738 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar42 < dStack_738) {\n      dStack_738 = dVar42;\n    }\n    dStack_6e8 = *pdVar16 * pdVar16[3] - pdVar16[1] * pdVar16[2];\n    if (0.0 <= dStack_6e8) {\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    }\n    else {\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);\n    }\n    if (dStack_6e8 * dVar39 < *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)) {\n      dStack_6e8 = dVar39 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8);\n    }\n    else {\n      dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;\n    }\n    dStack_700 = pdVar16[3] * dStack_6e8;\n    dStack_6f8 = -pdVar16[1] * dStack_6e8;\n    dStack_6f0 = -pdVar16[2] * dStack_6e8;\n    dStack_6e8 = *pdVar16 * dStack_6e8;\n    dStack_6e0 = dStack_700 * -pdVar16[4] - dStack_6f0 * pdVar16[5];\n    dStack_6d8 = dStack_6f8 * -pdVar16[4] - dStack_6e8 * pdVar16[5];\n    (**(code **)(pcStack_758 + -0x75e4))(piVar2,auStack_6d0);\n    dVar42 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0);\n    dVar39 = (double)(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar42);\n    dVar41 = (double)(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar42);\n    uVar4 = (**(code **)(pcStack_758 + -0x7144))(puVar23,pdVar5);\n    puVar35 = (undefined1 *)(**(code **)(pcStack_758 + -0x79c4))(piVar2,pdVar5);\n    iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23);\n    if (((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23), iVar3 == 3)) &&\n       ((iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 4 ||\n        (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3)))) {\n      (**(code **)(pcStack_758 + -0x775c))(7);\n      iVar10 = (int)dVar41 - (int)dVar39;\n      iVar3 = iVar10;\n      if (iVar10 < 0) {\n        iVar3 = iVar10 + 0x3f;\n      }\n      pdVar16 = (double *)(iVar3 >> 6);\n      if (extraout_v1 < (int)pdVar16) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        bVar1 = extraout_v1_01 < 2;\n      }\n      else {\n        bVar1 = iVar10 < 0x80;\n      }\n      pdVar29 = (double *)0x1;\n      if (((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16)\n         ) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_03;\n        pdVar16 = extraout_v1_03;\n      }\n    }\n    else {\n      uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar51 < 2) {\n          pdVar29 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }\n      else {\nLAB_000a77f8:\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n      }\n      uVar51 = (*pcVar37)(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_00;\n      }\n      else {\n        pdVar29 = (double *)0x2;\n      }\n    }\nLAB_000a7818:\n    pdStack_720 = &dStack_700;\n    puStack_714 = auStack_6d0;\n    pdStack_710 = &dStack_750;\n    iStack_704 = 1;\n    ppiVar24 = &piStack_72c;\n    piStack_72c = piVar2;\n    puStack_728 = puVar23;\n    pdStack_724 = pdVar5;\n    puStack_71c = puVar35;\n    uStack_718 = uVar4;\n    iStack_70c = (int)dVar39;\n    iStack_708 = (int)dVar41;\n    (**(code **)(pcStack_758 + -0x7700))\n              (*(int *)(pcStack_758 + -0x7ea0) + 0x34c4,ppiVar24,pdVar29,0);\n    iVar3 = iStack_704;\n    (**(code **)(pcStack_758 + -0x79a4))(uVar4);\n    (**(code **)(pcStack_758 + -0x79a4))(puVar35);\n  }\n  if (uStack_638._4_4_ == **(int **)(pcStack_758 + -0x7668)) {\n    return iVar3;\n  }\n  pcVar37 = *(code **)(pcStack_758 + -0x7834);\n  pcVar38 = DrawGradientImage;\n  iVar10 = uStack_638._4_4_;\n  (*pcVar37)();\n  pcStack_830 = pcVar37 + 0x359e18;\n  puStack_794 = (undefined8 *)**(undefined4 **)(pcVar37 + 0x3527b0);\n  pdStack_790 = pdVar16;\n  piStack_78c = piVar2;\n  puStack_788 = puVar23;\n  pdStack_784 = pdVar5;\n  iStack_780 = iVar3;\n  pcStack_77c = pcVar38;\n  dStack_778 = dVar42;\n  if (iVar10 == 0) {\n    iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e48) + 0x3da0,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80a,*(int *)(pcVar37 + 0x351e4c) + 0x7818);\n    return iVar3;\n  }\n  if (*(int *)(iVar10 + 0x336c) != -0x54535255) {\n    iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e4c) + -0x784,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80b,*(int *)(pcVar37 + 0x351e4c) + 0x7818);\n    return iVar3;\n  }\n  if (*(int *)(iVar10 + 0x3350) != 0) {\n    iStack_838 = *(int *)(pcVar37 + 0x351e50) + -0x2f6c;\n    iStack_834 = iVar10 + 0x340;\n    (**(code **)(pcVar37 + 0x352760))\n              (0x8000,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,*(int *)(pcVar37 + 0x351e4c) + 0x7804,\n               0x80d);\n  }\n  if (ppiVar24 == (int **)0x0) {\n    iVar3 = (**(code **)(pcStack_830 + -0x7290))\n                      (*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x69c0,0x80e,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x7818);\n    return iVar3;\n  }\n  ppiVar33 = ppiVar24 + 0x6e;\n  (**(code **)(pcStack_830 + -0x6fc4))\n            (ppiVar24[0x7c],ppiVar24[0x7d],0x60,*(int *)(pcStack_830 + -0x7ea0) + 0x224c);\n  ppiVar34 = ppiVar24 + 0x74;\n  dVar39 = (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) *\n           (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) +\n           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76)) *\n           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76));\n  dVar41 = SQRT(dVar39);\n  if (0.0 <= dVar39) {\n    piStack_828 = ppiVar24[0x6f];\n  }\n  else {\n    (**(code **)(pcStack_830 + -0x7418))();\n    piStack_828 = ppiVar24[0x6f];\n  }\n  piStack_824 = ppiVar24[0x70];\n  piStack_820 = ppiVar24[0x71];\n  piStack_81c = ppiVar24[0x72];\n  (**(code **)(pcStack_830 + -0x75e4))(iVar10,auStack_7f0);\n  uVar4 = (**(code **)(pcStack_830 + -0x79c4))(iVar10,pdVar29);\n  iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10);\n  if ((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 == 3)) {\n    iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10);\n    if ((iVar3 != 4) && (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 != 3))\n    goto LAB_000a7bf4;\n    (**(code **)(pcStack_830 + -0x775c))(7);\n    iVar49 = (int)piStack_824 - (int)piStack_81c;\n    iVar3 = iVar49;\n    if (iVar49 < 0) {\n      iVar3 = iVar49 + 0x3f;\n    }\n    if (extraout_v1_04 < iVar3 >> 6) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = iVar49 < 0x80;\n    }\n    iVar3 = 1;\n    dStack_818 = dVar41;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = (int)piStack_824 - (int)piStack_81c;\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      iVar3 = iVar3 >> 6;\n      dStack_818 = dVar41;\n      if (extraout_v1_07 < iVar3) {\n        (**(code **)(pcStack_830 + -0x775c))(7);\n        iVar3 = extraout_v1_08;\n        dStack_818 = dVar41;\n      }\n    }\n  }\n  else {\nLAB_000a7bf4:\n    uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n      if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a7c10;\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n      if ((uint)uVar51 < 2) {\n        iVar3 = 1;\n        dStack_818 = dVar41;\n        goto LAB_000a7c30;\n      }\n    }\n    else {\nLAB_000a7c10:\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n    }\n    uVar51 = (*pcVar37)(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = extraout_v1_05;\n      dStack_818 = dVar41;\n    }\n    else {\n      iVar3 = 2;\n      dStack_818 = dVar41;\n    }\n  }\nLAB_000a7c30:\n  puStack_7fc = auStack_7f0;\n  ppiStack_7f8 = &piStack_828;\n  iStack_7f4 = 1;\n  iStack_810 = iVar10;\n  pdStack_80c = pdVar29;\n  uStack_808 = uVar4;\n  ppiStack_804 = ppiVar33;\n  ppiStack_800 = ppiVar34;\n  (**(code **)(pcStack_830 + -0x7700))(*(int *)(pcStack_830 + -0x7ea0) + 0x549c,&dStack_818,iVar3,0)\n  ;\n  iVar3 = iStack_7f4;\n  (**(code **)(pcStack_830 + -0x79a4))(uVar4);\n  if (puStack_794 == (undefined8 *)**(int **)(pcStack_830 + -0x7668)) {\n    return iVar3;\n  }\n  pcVar37 = *(code **)(pcStack_830 + -0x7834);\n  pcVar38 = GetAffineMatrix;\n  puVar20 = puStack_794;\n  (*pcVar37)();\n  pcStack_858 = pcVar37 + 0x359994;\n  iStack_860 = *(int *)(pcVar37 + 0x3519c8) + 0x10f4;\n  uStack_850 = uVar4;\n  pcStack_84c = pcVar38;\n  (**(code **)(pcVar37 + 0x3522dc))\n            (0x8000,*(int *)(pcVar37 + 0x3519c8) + 0x69c0,*(int *)(pcVar37 + 0x3519c8) + 0x76b0,\n             0x16d2);\n  if (puVar20 != (undefined8 *)0x0) {\n    (**(code **)(pcStack_858 + -0x71c4))(puVar20 + 1,0,0x28);\n    iVar3 = *(int *)(pcStack_858 + -0x7fd0);\n    uVar51 = *(undefined8 *)(iVar3 + 0x4408);\n    *puVar20 = uVar51;\n    puVar20[3] = uVar51;\n    return iVar3;\n  }\n  iVar49 = *(int *)(pcStack_858 + -0x7fcc) + 0x69c0;\n  iVar10 = *(int *)(pcStack_858 + -0x7fcc) + 0x6368;\n  pcVar37 = *(code **)(pcStack_858 + -0x7290);\n  pcVar38 = GetDrawInfo;\n  (*pcVar37)(iVar10,iVar49,0x16d3,*(int *)(pcStack_858 + -0x7fcc) + 0x76a0);\n  iStack_888 = iVar3;\n  iStack_894 = **(int **)(pcVar37 + 0x352270);\n  puStack_88c = puVar20;\n  pdStack_884 = pdVar29;\n  ppiStack_880 = ppiVar33;\n  ppiStack_87c = ppiVar34;\n  puStack_878 = puVar35;\n  pcStack_874 = pcVar38;\n  (**(code **)(pcVar37 + 0x352220))\n            (0x8000,*(int *)(pcVar37 + 0x35190c) + 0x69c0,*(int *)(pcVar37 + 0x35190c) + 0x7694,\n             0x1702,*(int *)(pcVar37 + 0x35190c) + 0x10f4);\n  if (iVar49 == 0) {\n    (**(code **)(pcVar37 + 0x352648))\n              (*(int *)(pcVar37 + 0x351908) + 0x40e4,*(int *)(pcVar37 + 0x35190c) + 0x69c0,0x1703,\n               *(int *)(pcVar37 + 0x35190c) + 0x7688);\n  }\n  else {\n    (**(code **)(pcVar37 + 0x352714))(iVar49,0,0x3c0);\n    iVar10 = (**(code **)(pcVar37 + 0x3521dc))(iVar10);\n    (**(code **)(pcVar37 + 0x351e5c))(iVar49 + 0x18);\n    pdVar29 = (double *)(**(code **)(pcVar37 + 0x351f2c))();\n    ppiVar34 = (int **)(iVar49 + 0x48);\n    (**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar34,pdVar29);\n    ppiVar33 = (int **)(iVar49 + 0xa0);\n    (**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar33,pdVar29);\n    *(undefined4 *)(iVar49 + 0x238) = *(undefined4 *)(iVar10 + 0x14);\n    *(undefined8 *)(iVar49 + 0x1b0) = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4408);\n    *(undefined4 *)(iVar49 + 0x240) = 1;\n    *(undefined4 *)(iVar49 + 0x2cc) = *(undefined4 *)(*(int *)(pcVar37 + 0x351908) + 0x4aa8);\n    uVar51 = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4a48);\n    *(undefined8 *)(iVar49 + 0x398) = uVar51;\n    *(undefined8 *)(iVar49 + 0x3a0) = uVar51;\n    *(undefined4 *)(iVar49 + 0x244) = 1;\n    *(undefined4 *)(iVar49 + 0x248) = 1;\n    *(undefined4 *)(iVar49 + 0x24c) = 10;\n    *(undefined4 *)(iVar49 + 600) = 1;\n    *(undefined8 *)(iVar49 + 0x288) = *(undefined8 *)(*(int *)(pcVar37 + 0x35190c) + 0x7970);\n    *(undefined4 *)(iVar49 + 0x144) = 0;\n    *(undefined4 *)(iVar49 + 0x140) = 0;\n    *(undefined4 *)(iVar49 + 0x25c) = 0x36;\n    *(undefined4 *)(iVar49 + 0x2d0) = 1;\n    *(undefined4 *)(iVar49 + 0x3a8) = 0;\n    uVar4 = (**(code **)(pcVar37 + 0x3527e8))();\n    *(undefined4 *)(iVar49 + 0x38c) = uVar4;\n    if (*(int *)(iVar10 + 0x4c) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x264) = uVar4;\n    }\n    if (*(int *)(iVar10 + 0x54) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x290) = uVar4;\n    }\n    *(undefined4 *)(iVar49 + 0x23c) = *(undefined4 *)(iVar10 + 0x14);\n    uVar4 = *(undefined4 *)(iVar10 + 0x58);\n    if (*(double *)(*(int *)(pcVar37 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar10 + 0x58))) {\n      *(undefined4 *)(iVar49 + 0x28c) = *(undefined4 *)(iVar10 + 0x5c);\n      *(undefined4 *)(iVar49 + 0x288) = uVar4;\n    }\n    puVar13 = (undefined4 *)(iVar10 + 0x118);\n    puVar21 = (undefined4 *)(iVar49 + 0x150);\n    do {\n      puVar15 = puVar21;\n      puVar9 = puVar13;\n      uVar27 = puVar9[1];\n      uVar25 = puVar9[2];\n      uVar4 = puVar9[3];\n      *puVar15 = *puVar9;\n      puVar15[1] = uVar27;\n      puVar15[2] = uVar25;\n      puVar15[3] = uVar4;\n      puVar13 = puVar9 + 4;\n      puVar21 = puVar15 + 4;\n    } while (puVar13 != (undefined4 *)(iVar10 + 0x168));\n    uVar4 = puVar9[5];\n    puVar15[4] = *puVar13;\n    puVar15[5] = uVar4;\n    if (*(int *)(iVar10 + 0x48) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x29c) = uVar4;\n    }\n    iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ac4);\n    if (iVar3 != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x14,0,iVar3);\n      *(undefined4 *)(iVar49 + 0x388) = uVar4;\n      goto LAB_000a8298;\n    }\n  }\n  *(undefined4 *)(iVar49 + 0x388) = 0;\nLAB_000a8298:\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ad0);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x280,iVar3);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6adc);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x26c,iVar3);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ae4);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar34,pdVar29);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6aec);\n  if (iVar3 != 0) {\n    uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x21,0,iVar3);\n    *(undefined4 *)(iVar49 + 0x298) = uVar4;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6af4);\n  if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x380) = dVar39;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b08);\n  if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x378) = dVar39;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b1c);\n  if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x370) = dVar39;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b24);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar33,pdVar29);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b2c);\n  if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x1b0) = dVar39;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b38);\n  if (iVar3 != 0) {\n    uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x47,0,iVar3);\n    *(undefined4 *)(iVar49 + 0x274) = uVar4;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b40);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,iVar49 + 0xf8,pdVar29);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x351920) + -0x3000);\n  if (iVar3 != 0) {\n    iVar28 = (**(code **)(pcVar37 + 0x3526d4))(0x4c,0,iVar3);\n    if (iVar28 == -1) {\n      uVar4 = (**(code **)(pcVar37 + 0x352380))(iVar3,0,10);\n      *(undefined4 *)(iVar49 + 0x27c) = uVar4;\n    }\n    else {\n      *(int *)(iVar49 + 0x27c) = iVar28;\n    }\n  }\n  (**(code **)(pcVar37 + 0x351d90))(pdVar29);\n  *(undefined4 *)(iVar49 + 0x390) = 0xabacadab;\n  (**(code **)(pcVar37 + 0x352628))(iVar10);\n  if (iStack_894 == **(int **)(pcVar37 + 0x352270)) {\n    return **(int **)(pcVar37 + 0x352270);\n  }\n  pcVar37 = *(code **)(pcVar37 + 0x3520a4);\n  (*pcVar37)();\n  iVar3 = (**(code **)(pcVar37 + 0x351be4))(0x3c0);\n  (**(code **)(pcVar37 + 0x3518b4))(0,iVar3);\n  return iVar3;\n}" primitive_type (function_declarator "FUN_000a34c4(undefined4 *param_1)" identifier (parameter_list "(undefined4 *param_1)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  int *piVar2;\n  int iVar3;\n  undefined4 uVar4;\n  double *pdVar5;\n  undefined *puVar6;\n  int *piVar7;\n  uint uVar8;\n  undefined4 *puVar9;\n  int iVar10;\n  int *piVar11;\n  int iVar12;\n  undefined4 *puVar13;\n  double *pdVar14;\n  int extraout_v1;\n  double *extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  double *extraout_v1_03;\n  int extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int extraout_v1_07;\n  int extraout_v1_08;\n  undefined4 *puVar15;\n  double *pdVar16;\n  int *piVar17;\n  uint uVar18;\n  int *piVar19;\n  undefined8 *puVar20;\n  undefined4 *puVar21;\n  uint uVar22;\n  uint *puVar23;\n  int **ppiVar24;\n  undefined4 uVar25;\n  uint uVar26;\n  undefined4 uVar27;\n  int iVar28;\n  double *pdVar29;\n  double *pdVar30;\n  int unaff_s2;\n  int iVar31;\n  uint *puVar32;\n  double *unaff_s3;\n  int **ppiVar33;\n  int *unaff_s4;\n  int **ppiVar34;\n  undefined1 *puVar35;\n  double *unaff_s6;\n  uint unaff_s7;\n  undefined *puVar36;\n  code *pcVar37;\n  code *pcVar38;\n  double dVar39;\n  double dVar40;\n  double dVar41;\n  float fVar43;\n  double dVar42;\n  double dVar44;\n  double dVar45;\n  double dVar46;\n  double in_f20_21;\n  double dVar47;\n  double in_f22_23;\n  double in_f24_25;\n  double in_f26_27;\n  double in_f28_29;\n  double in_f30_31;\n  int *piVar48;\n  int iVar49;\n  int iVar50;\n  undefined8 uVar51;\n  undefined1 auStack_898 [4];\n  int iStack_894;\n  undefined8 *puStack_88c;\n  int iStack_888;\n  double *pdStack_884;\n  int **ppiStack_880;\n  int **ppiStack_87c;\n  undefined1 *puStack_878;\n  code *pcStack_874;\n  int iStack_860;\n  code *pcStack_858;\n  undefined4 uStack_850;\n  code *pcStack_84c;\n  int iStack_838;\n  int iStack_834;\n  code *pcStack_830;\n  int *piStack_828;\n  int *piStack_824;\n  int *piStack_820;\n  int *piStack_81c;\n  double dStack_818;\n  int iStack_810;\n  double *pdStack_80c;\n  undefined4 uStack_808;\n  int **ppiStack_804;\n  int **ppiStack_800;\n  undefined1 *puStack_7fc;\n  int **ppiStack_7f8;\n  int iStack_7f4;\n  undefined1 auStack_7f0 [92];\n  undefined8 *puStack_794;\n  double *pdStack_790;\n  int *piStack_78c;\n  uint *puStack_788;\n  double *pdStack_784;\n  int iStack_780;\n  code *pcStack_77c;\n  double dStack_778;\n  int iStack_760;\n  int *piStack_75c;\n  code *pcStack_758;\n  double dStack_750;\n  double dStack_748;\n  double dStack_740;\n  double dStack_738;\n  int *piStack_72c;\n  uint *puStack_728;\n  double *pdStack_724;\n  double *pdStack_720;\n  undefined1 *puStack_71c;\n  undefined4 uStack_718;\n  undefined1 *puStack_714;\n  double *pdStack_710;\n  int iStack_70c;\n  int iStack_708;\n  int iStack_704;\n  double dStack_700;\n  double dStack_6f8;\n  double dStack_6f0;\n  double dStack_6e8;\n  double dStack_6e0;\n  double dStack_6d8;\n  undefined1 auStack_6d0 [88];\n  undefined8 uStack_678;\n  undefined4 uStack_670;\n  undefined4 uStack_66c;\n  double dStack_668;\n  undefined4 uStack_660;\n  undefined4 uStack_65c;\n  double dStack_658;\n  double dStack_650;\n  undefined4 uStack_648;\n  undefined4 uStack_644;\n  double dStack_640;\n  undefined8 uStack_638;\n  double *pdStack_62c;\n  int *piStack_628;\n  uint *puStack_624;\n  double *pdStack_620;\n  int iStack_61c;\n  undefined1 *puStack_618;\n  double *pdStack_614;\n  uint uStack_610;\n  code *pcStack_60c;\n  double dStack_608;\n  double dStack_600;\n  double dStack_5f8;\n  double dStack_5f0;\n  int iStack_5d8;\n  code *pcStack_5d0;\n  double *pdStack_5c8;\n  code *pcStack_5c4;\n  undefined4 uStack_5b0;\n  uint uStack_5ac;\n  code *pcStack_5a8;\n  undefined8 uStack_5a0;\n  double dStack_598;\n  double dStack_590;\n  double *pdStack_588;\n  int iStack_584;\n  double dStack_580;\n  double dStack_578;\n  int iStack_570;\n  undefined1 *puStack_56c;\n  double *pdStack_568;\n  uint uStack_564;\n  double dStack_560;\n  double dStack_558;\n  uint uStack_550;\n  undefined4 uStack_54c;\n  double dStack_548;\n  double dStack_540;\n  uint uStack_538;\n  undefined4 uStack_534;\n  double dStack_530;\n  uint uStack_528;\n  undefined4 uStack_524;\n  double dStack_520;\n  double dStack_518;\n  int aiStack_510 [4];\n  undefined8 uStack_500;\n  int iStack_4f8;\n  double dStack_4e8;\n  double dStack_4e0;\n  double dStack_4d8;\n  double dStack_4d0;\n  double dStack_4c8;\n  double dStack_4c0;\n  int iStack_4b4;\n  uint uStack_4b0;\n  int iStack_4ac;\n  double *pdStack_4a8;\n  double *pdStack_4a4;\n  int iStack_4a0;\n  undefined4 *puStack_49c;\n  double *pdStack_498;\n  uint uStack_494;\n  int iStack_490;\n  code *pcStack_48c;\n  double dStack_488;\n  double dStack_480;\n  double dStack_478;\n  double dStack_470;\n  double dStack_468;\n  double dStack_460;\n  int *piStack_448;\n  uint uStack_444;\n  code *pcStack_440;\n  uint uStack_434;\n  uint uStack_430;\n  double *pdStack_42c;\n  uint uStack_428;\n  uint uStack_424;\n  uint uStack_420;\n  undefined4 uStack_41c;\n  int aiStack_418 [10];\n  double dStack_3f0;\n  double dStack_3e8;\n  double dStack_3e0;\n  double dStack_3d8;\n  double dStack_3d0;\n  int iStack_3bc;\n  int iStack_3b8;\n  uint uStack_3b4;\n  double *pdStack_3b0;\n  double *pdStack_3ac;\n  int *piStack_3a8;\n  undefined4 *puStack_3a4;\n  double *pdStack_3a0;\n  uint uStack_39c;\n  int iStack_398;\n  code *pcStack_394;\n  double dStack_390;\n  double dStack_388;\n  double dStack_380;\n  double dStack_378;\n  double dStack_370;\n  undefined4 *puStack_358;\n  undefined4 uStack_354;\n  undefined *puStack_350;\n  undefined8 uStack_348;\n  double dStack_340;\n  double dStack_338;\n  double dStack_330;\n  uint uStack_328;\n  int iStack_324;\n  double dStack_320;\n  double dStack_318;\n  uint uStack_310;\n  undefined4 uStack_30c;\n  int iStack_308;\n  int *piStack_304;\n  double dStack_300;\n  uint uStack_2f8;\n  int iStack_2f4;\n  int iStack_2f0;\n  double *pdStack_2ec;\n  uint uStack_2e8;\n  undefined4 uStack_2e4;\n  uint uStack_2e0;\n  undefined4 uStack_2dc;\n  double *pdStack_2d8;\n  uint uStack_2d4;\n  undefined4 uStack_2d0;\n  double *pdStack_2cc;\n  uint uStack_2c8;\n  undefined4 uStack_2c4;\n  int iStack_2c0;\n  undefined4 *puStack_2bc;\n  double dStack_2b8;\n  uint uStack_2b0;\n  undefined4 uStack_2ac;\n  double *pdStack_2a8;\n  undefined1 *puStack_2a4;\n  double *pdStack_2a0;\n  int iStack_29c;\n  undefined4 auStack_298 [18];\n  double dStack_250;\n  undefined4 auStack_240 [18];\n  double dStack_1f8;\n  int iStack_1e4;\n  double *pdStack_1e0;\n  int *piStack_1dc;\n  int iStack_1d8;\n  double *pdStack_1d4;\n  int *piStack_1d0;\n  undefined4 *puStack_1cc;\n  double *pdStack_1c8;\n  uint uStack_1c4;\n  int iStack_1c0;\n  code *pcStack_1bc;\n  double dStack_1b8;\n  double dStack_1b0;\n  double dStack_1a8;\n  double dStack_1a0;\n  double dStack_198;\n  double dStack_190;\n  undefined8 local_178;\n  double local_170;\n  int *local_168;\n  int *local_164;\n  int local_110 [4];\n  undefined8 local_100;\n  int local_f8;\n  double local_e8;\n  double local_e0;\n  double local_d8;\n  double local_d0;\n  double local_c8;\n  double local_c0;\n  int local_b8 [10];\n  double local_90;\n  double local_88;\n  double local_80;\n  double local_78;\n  double local_70;\n  int local_5c;\n  \n  local_5c = *(int *)PTR___stack_chk_guard_003fa248;\n  pdVar29 = (double *)param_1[8];\n  piVar2 = (int *)(*(code *)PTR_omp_get_num_threads_003fa924)();\n  iVar3 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n  puVar36 = PTR_LAB_003f98e0;\n  iVar10 = (param_1[9] + 1) - (int)pdVar29;\n  if (piVar2 == (int *)0x0) {\n    trap(7);\n  }\n  iVar49 = iVar10 / (int)piVar2;\n  iVar10 = iVar10 % (int)piVar2;\n  if (iVar3 < iVar10) {\n    iVar49 = iVar49 + 1;\n    iVar10 = 0;\n  }\n  iVar10 = iVar49 * iVar3 + iVar10;\n  pdVar16 = (double *)(iVar49 + iVar10);\n  iVar3 = (int)pdVar29 + iVar10;\n  if (iVar10 < (int)pdVar16) {\n    uVar4 = param_1[5];\n    pdVar5 = (double *)param_1[4];\n    unaff_s4 = (int *)param_1[2];\n    unaff_s7 = param_1[1];\n    piVar2 = (int *)*param_1;\n    puVar6 = (undefined *)((int)pdVar29 + (int)pdVar16);\n    dVar39 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    in_f26_27 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    in_f30_31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n    do {\n      in_f24_25 = (double)iVar3;\n      pdVar29 = (double *)param_1[3];\n      in_f20_21 = *(double *)param_1[7];\n      in_f28_29 = ((double *)param_1[7])[2];\n      dVar40 = in_f24_25 * pdVar29[2] + pdVar29[4];\n      dVar47 = *pdVar29;\n      dVar41 = in_f28_29;\n      if (dVar39 <= dVar47) {\n        in_f22_23 = -dVar40 / dVar47;\n        if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }\n        dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n        if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }\n        dVar47 = (dVar44 - dVar40) / dVar47;\n        if (dVar47 < in_f28_29) {\n          dVar41 = dVar47;\n        }\nLAB_000a3890:\n        dVar40 = in_f24_25 * pdVar29[3] + pdVar29[5];\n        dVar47 = pdVar29[1];\n        if (*(double *)(puVar36 + 0x43c8) <= dVar47) {\n          dVar44 = -dVar40 / dVar47;\n          if (-dVar40 / dVar47 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = *(double **)(unaff_s7 + 0x1c);\n          dVar44 = (double)(int)pdVar16;\n          if ((int)pdVar16 < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar44 - dVar40) / dVar47;\n          if (dVar41 <= in_f20_21) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }\n        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;\n      }\n      else {\n        if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar44 - dVar40) / dVar47;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar40) {\n          dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n          if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar41;\n          if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar36 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar41 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar41;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar40 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar41 = (dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar41 < in_f20_21) {\n          uVar26 = (uint)dVar41;\n        }\n        else {\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar16 = pdVar5;\n        pdVar29 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26);\n        if (pdVar29 != (double *)0x0) {\n          piVar17 = (int *)param_1[6];\n          piVar48 = piVar17;\n          piVar19 = local_b8;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          piVar48 = piVar17;\n          piVar19 = local_110;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }\n          pdVar16 = pdVar5;\n          iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);\n          if (iVar10 == 0) {\n            param_1[10] = 0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n      unaff_s6 = (double *)puVar36;\n    } while (iVar3 < (int)puVar6);\n  }\n  if (local_5c == *(int *)PTR___stack_chk_guard_003fa248) {\n    return *(int *)PTR___stack_chk_guard_003fa248;\n  }\n  pcVar37 = FUN_000a3ef0;\n  puVar36 = PTR___stack_chk_fail_003fa07c;\n  (*(code *)PTR___stack_chk_fail_003fa07c)();\n  puStack_350 = puVar36 + 0x35d9c0;\n  iStack_1e4 = **(int **)(puVar36 + 0x356358);\n  iVar28 = *(int *)((int)pdVar16 + 0x24);\n  pdStack_2a8 = pdVar16;\n  pdStack_1e0 = pdVar29;\n  piStack_1dc = piVar2;\n  iStack_1d8 = unaff_s2;\n  pdStack_1d4 = unaff_s3;\n  piStack_1d0 = unaff_s4;\n  puStack_1cc = param_1;\n  pdStack_1c8 = unaff_s6;\n  uStack_1c4 = unaff_s7;\n  iStack_1c0 = iVar3;\n  pcStack_1bc = pcVar37;\n  dStack_1b8 = in_f20_21;\n  dStack_1b0 = in_f22_23;\n  dStack_1a8 = in_f24_25;\n  dStack_1a0 = in_f26_27;\n  dStack_198 = in_f28_29;\n  dStack_190 = in_f30_31;\n  iVar10 = (**(code **)(puVar36 + 0x356a34))();\n  iVar49 = (**(code **)(puStack_350 + -0x7390))();\n  iVar12 = (*(int *)(pdVar16 + 5) + 1) - iVar28;\n  if (iVar10 == 0) {\n    trap(7);\n  }\n  iVar50 = iVar12 / iVar10;\n  iVar12 = iVar12 % iVar10;\n  uVar26 = (uint)(iVar49 < iVar12);\n  if (uVar26 != 0) {\n    iVar50 = iVar50 + 1;\n    iVar12 = 0;\n  }\n  uVar8 = iVar50 * iVar49 + iVar12;\n  pdVar29 = (double *)(iVar50 + uVar8);\n  if ((int)uVar8 < (int)pdVar29) {\n    iStack_29c = *(int *)((int)pdStack_2a8 + 0x1c);\n    in_f28_29 = *pdStack_2a8;\n    iStack_2f4 = *(int *)(pdStack_2a8 + 3);\n    pdStack_2a0 = *(double **)((int)pdStack_2a8 + 0x14);\n    uStack_2d0 = *(undefined4 *)(pdStack_2a8 + 2);\n    iStack_324 = *(int *)((int)pdStack_2a8 + 0xc);\n    unaff_s6 = *(double **)(pdStack_2a8 + 1);\n    iStack_2f0 = iVar28 + uVar8;\n    puStack_2a4 = (undefined1 *)(iVar28 + (int)pdVar29);\n    unaff_s7 = *(uint *)(puStack_350 + -0x7fd0);\n    dStack_320 = *(double *)(unaff_s7 + 0x4408);\n    iVar3 = *(int *)(puStack_350 + -0x7fd0);\n    dStack_2b8 = *(double *)(iVar3 + 0x43c8);\n    uStack_2f8 = uVar8;\n    do {\n      iVar28 = (**(code **)(puStack_350 + -0x7390))();\n      if (*(int *)((int)pdStack_2a8 + 0x2c) != 0) {\n        pdVar29 = *(double **)(pdStack_2a8 + 4);\n        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21);\n        uStack_2d4 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21);\n        uVar26 = uStack_2d4;\n        pdVar16 = (double *)(int)dVar39;\n        uStack_354 = uStack_2d0;\n        puStack_358 = (undefined4 *)0x1;\n        pdVar29 = pdStack_2a0;\n        pdStack_2cc = pdVar16;\n        iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)));\n        if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar28 = iVar28 * 4;\n          puVar36 = puStack_350;\n          if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar29 = pdStack_2a0;\n          iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }\n      }\n      iStack_2f0 = iStack_2f0 + 1;\n      uStack_2f8 = uStack_2f8 + 1;\n    } while (iStack_2f0 < (int)puStack_2a4);\n  }\n  if (iStack_1e4 == **(int **)(puStack_350 + -0x7668)) {\n    return **(int **)(puStack_350 + -0x7668);\n  }\n  pcVar37 = *(code **)(puStack_350 + -0x7834);\n  pcVar38 = FUN_000a5040;\n  (*pcVar37)();\n  pcStack_440 = pcVar37 + 0x35c870;\n  iStack_3bc = **(int **)(pcVar37 + 0x355208);\n  uVar8 = *(uint *)(pdVar29 + 3);\n  pdVar5 = pdVar29;\n  uStack_428 = uVar8;\n  iStack_3b8 = iVar28;\n  uStack_3b4 = uVar26;\n  pdStack_3b0 = pdVar16;\n  pdStack_3ac = unaff_s3;\n  piStack_3a8 = unaff_s4;\n  puStack_3a4 = param_1;\n  pdStack_3a0 = unaff_s6;\n  uStack_39c = unaff_s7;\n  iStack_398 = iVar3;\n  pcStack_394 = pcVar38;\n  dStack_390 = in_f20_21;\n  dStack_388 = in_f22_23;\n  dStack_380 = in_f24_25;\n  dStack_378 = in_f26_27;\n  dStack_370 = in_f28_29;\n  iVar3 = (**(code **)(pcVar37 + 0x3558e4))();\n  iVar10 = (**(code **)(pcStack_440 + -0x7390))();\n  iVar49 = (*(uint *)((int)pdVar29 + 0x1c) + 1) - uVar8;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar28 = iVar49 / iVar3;\n  iVar49 = iVar49 % iVar3;\n  uVar26 = (uint)(iVar10 < iVar49);\n  if (uVar26 != 0) {\n    iVar28 = iVar28 + 1;\n    iVar49 = 0;\n  }\n  iVar49 = iVar28 * iVar10 + iVar49;\n  iVar28 = iVar28 + iVar49;\n  iVar3 = *(int *)(pcStack_440 + -0x7fd0);\n  pcVar37 = pcStack_440;\n  if (iVar49 < iVar28) {\n    pdStack_42c = *(double **)(pdVar29 + 2);\n    uStack_430 = *(uint *)((int)pdVar29 + 0xc);\n    unaff_s6 = *(double **)(pdVar29 + 1);\n    uStack_424 = *(uint *)((int)pdVar29 + 4);\n    unaff_s7 = *(uint *)pdVar29;\n    iVar49 = uStack_428 + iVar49;\n    iVar28 = uStack_428 + iVar28;\n    in_f22_23 = *(double *)(iVar3 + 0x43d0);\n    in_f26_27 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8);\n    in_f28_29 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410);\n    do {\n      in_f20_21 = *(double *)(iVar3 + 0x43d0);\n      if (*(uint *)(pdVar29 + 4) != 0) {\n        pdVar16 = *(double **)((int)pdVar29 + 0x14);\n        dVar39 = (double)(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21);\n        uStack_434 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21);\n        uVar26 = uStack_434;\n        param_1 = (undefined4 *)(int)dVar39;\n        uStack_444 = uStack_430;\n        piStack_448 = (int *)0x1;\n        pdVar5 = pdStack_42c;\n        pdVar16 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434));\n        if (pdVar16 == (double *)0x0) {\n          *(uint *)(pdVar29 + 4) = 0;\n          pcVar37 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar26 <= (int)param_1;\n          uVar26 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }\n          pdVar5 = pdStack_42c;\n          iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar37 = pcStack_440;\n          if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }\n        }\n      }\n      iVar49 = iVar49 + 1;\n    } while (iVar49 < iVar28);\n  }\n  if (iStack_3bc == **(int **)(pcVar37 + -0x7668)) {\n    return **(int **)(pcVar37 + -0x7668);\n  }\n  pcVar37 = *(code **)(pcVar37 + -0x7834);\n  pcVar38 = FUN_000a549c;\n  (*pcVar37)();\n  pcStack_5a8 = pcVar37 + 0x35c414;\n  iStack_4b4 = **(int **)(pcVar37 + 0x354dac);\n  puVar32 = *(uint **)(pdVar5 + 4);\n  pdVar30 = (double *)puVar32[3];\n  pdVar14 = pdVar5;\n  uStack_4b0 = uVar26;\n  iStack_4ac = iVar49;\n  pdStack_4a8 = pdVar16;\n  pdStack_4a4 = pdVar29;\n  iStack_4a0 = iVar28;\n  puStack_49c = param_1;\n  pdStack_498 = unaff_s6;\n  uStack_494 = unaff_s7;\n  iStack_490 = iVar3;\n  pcStack_48c = pcVar38;\n  dStack_488 = in_f20_21;\n  dStack_480 = in_f22_23;\n  dStack_478 = in_f24_25;\n  dStack_470 = in_f26_27;\n  dStack_468 = in_f28_29;\n  dStack_460 = in_f30_31;\n  iVar3 = (**(code **)(pcVar37 + 0x355488))();\n  iVar10 = (**(code **)(pcStack_5a8 + -0x7390))();\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar49 = (int)(puVar32[1] - (int)pdVar30) / iVar3;\n  piVar48 = (int *)((int)(puVar32[1] - (int)pdVar30) % iVar3);\n  piVar2 = piVar48;\n  if (iVar10 < (int)piVar48) {\n    iVar49 = iVar49 + 1;\n    piVar2 = (int *)0x0;\n  }\n  piVar2 = (int *)(iVar49 * iVar10 + (int)piVar2);\n  puVar35 = (undefined1 *)((int)pdVar30 + (int)piVar2);\n  pcVar37 = pcStack_5a8;\n  if ((int)piVar2 < iVar49 + (int)piVar2) {\n    dStack_580 = *pdVar5;\n    pdStack_588 = *(double **)(pdVar5 + 3);\n    puVar32 = *(uint **)((int)pdVar5 + 0x14);\n    pdStack_568 = *(double **)(pdVar5 + 2);\n    uStack_564 = *(uint *)((int)pdVar5 + 0xc);\n    piVar48 = *(int **)(pdVar5 + 1);\n    puStack_56c = (undefined1 *)((int)pdVar30 + iVar49 + (int)piVar2);\n    dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n    if (dStack_580 < 0.0) {\n      dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n    }\n    iStack_570 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_598 = *(double *)(iStack_570 + 0x4a48);\n    iStack_584 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_560 = *(double *)(iStack_584 + 0x43d0);\n    unaff_s6 = *(double **)(pcStack_5a8 + -0x7fd0);\n    dStack_548 = unaff_s6[0x879];\n    do {\n      if (*(uint *)((int)pdVar5 + 0x24) != 0) {\n        uStack_5ac = uStack_564;\n        uStack_5b0 = 1;\n        pdVar14 = pdStack_568;\n        pdVar30 = (double *)(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6]);\n        if (pdVar30 == (double *)0x0) {\n          *(uint *)((int)pdVar5 + 0x24) = 0;\n          pcVar37 = pcStack_5a8;\n        }\n        else {\n          piVar17 = *(int **)((int)pdVar5 + 0x1c);\n          piVar2 = piVar17;\n          piVar19 = aiStack_510;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);\n          iVar10 = *piVar2;\n          iVar3 = piVar7[5];\n          *piVar19 = iVar10;\n          piVar11[5] = iVar3;\n          in_f20_21 = *(double *)(piVar17 + 10);\n          in_f22_23 = *(double *)(piVar17 + 0xc);\n          in_f24_25 = *(double *)(piVar17 + 0xe);\n          dStack_590 = *(double *)(piVar17 + 0x10);\n          dVar39 = *(double *)(piVar17 + 0x12);\n          if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];\n          pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }\n          pdVar14 = pdStack_568;\n          iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar37 = pcStack_5a8;\n          if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }\n        }\n      }\n      puVar35 = puVar35 + 1;\n    } while ((int)puVar35 < (int)puStack_56c);\n  }\n  if (iStack_4b4 == **(int **)(pcVar37 + -0x7668)) {\n    return **(int **)(pcVar37 + -0x7668);\n  }\n  pcVar37 = *(code **)(pcVar37 + -0x7834);\n  pcVar38 = DestroyDrawInfo;\n  (*pcVar37)();\n  pcStack_5d0 = pcVar37 + 0x35a8f0;\n  pdStack_5c8 = pdVar30;\n  pcStack_5c4 = pcVar38;\n  if (pdVar14 == (double *)0x0) {\n    (**(code **)(pcVar37 + 0x353660))\n              (*(int *)(pcVar37 + 0x352920) + 0x40e4,*(int *)(pcVar37 + 0x352924) + 0x69c0,0x39a,\n               *(int *)(pcVar37 + 0x352924) + 0x7914);\n    pdVar14 = pdVar30;\nLAB_000a7234:\n    iStack_5d8 = *(int *)(pcVar37 + 0x352924) + 0x10f4;\n    (**(code **)(pcVar37 + 0x353238))\n              (0x8000,*(int *)(pcVar37 + 0x352924) + 0x69c0,*(int *)(pcVar37 + 0x352924) + 0x7904,\n               0x39c);\n    uVar26 = *(uint *)(pdVar14 + 0x72);\n  }\n  else {\n    if (*(uint *)((int)pdVar14 + 0x38c) != 0) goto LAB_000a7234;\n    uVar26 = *(uint *)(pdVar14 + 0x72);\n  }\n  if (uVar26 == 0xabacadab) {\n    if (*(uint *)(pdVar14 + 0x77) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x77) = uVar26;\n    }\n    if (*(uint *)pdVar14 != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)pdVar14 = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x4c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4c) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 4) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x35) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)(pdVar14 + 0x35) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x1ac) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x1ac) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x264) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x264) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x4d) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4d) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x26c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x26c) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x50) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x50) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x52) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x52) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x29c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)((int)pdVar14 + 0x29c) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x54) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x54) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x3e) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x3e) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x2a4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x2a4) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x3ac) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3ac) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x3b4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3b4) = uVar26;\n    }\n    *(uint *)(pdVar14 + 0x72) = 0x54535254;\n    iVar3 = (**(code **)(pcStack_5d0 + -0x78d8))(pdVar14);\n    return iVar3;\n  }\n  pdVar5 = (double *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x7914);\n  pdVar16 = (double *)&DAT_0000039d;\n  puVar23 = (uint *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x69c0);\n  piVar2 = (int *)(*(int *)(pcStack_5d0 + -0x7fd0) + 0x4128);\n  pcVar37 = *(code **)(pcStack_5d0 + -0x7290);\n  pcVar38 = DrawAffineImage;\n  (*pcVar37)();\n  pcStack_758 = pcVar37 + 0x35a61c;\n  uStack_638._4_4_ = **(int **)(pcVar37 + 0x352fb4);\n  pdStack_62c = pdVar14;\n  piStack_628 = piVar48;\n  puStack_624 = puVar32;\n  pdStack_620 = pdVar29;\n  iStack_61c = iVar28;\n  puStack_618 = puVar35;\n  pdStack_614 = unaff_s6;\n  uStack_610 = unaff_s7;\n  pcStack_60c = pcVar38;\n  dStack_608 = in_f20_21;\n  dStack_600 = in_f22_23;\n  dStack_5f8 = in_f24_25;\n  dStack_5f0 = in_f26_27;\n  if (piVar2 == (int *)0x0) {\n    (**(code **)(pcVar37 + 0x35338c))\n              (*(int *)(pcVar37 + 0x35264c) + 0x3da0,*(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c0,\n               *(int *)(pcVar37 + 0x352650) + 0x78f4);\n    pdVar16 = pdVar14;\n    piVar2 = piVar48;\n    puVar23 = puVar32;\n    pdVar5 = pdVar29;\nLAB_000a7434:\n    piVar48 = (int *)(**(code **)(pcVar37 + 0x35338c))\n                               (*(int *)(pcVar37 + 0x352650) + -0x784,\n                                *(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar37 + 0x352650) + 0x78f4);\nLAB_000a745c:\n    iStack_760 = *(int *)(pcVar37 + 0x352654) + -0x2f6c;\n    piStack_75c = piVar48;\n    (**(code **)(pcVar37 + 0x352f64))\n              (0x8000,*(int *)(pcVar37 + 0x352650) + 0x69c0,*(int *)(pcVar37 + 0x352650) + 0x78e4,\n               0x4c3);\n  }\n  else {\n    if (piVar2[0xcdb] != -0x54535255) goto LAB_000a7434;\n    piVar48 = piVar2 + 0xd0;\n    if (piVar2[0xcd4] != 0) goto LAB_000a745c;\n  }\n  pcVar37 = pcStack_758;\n  if (puVar23 == (uint *)0x0) {\n    (**(code **)(pcStack_758 + -0x7290))\n              (*(int *)(pcStack_758 + -0x7fcc) + 0x6a20,*(int *)(pcStack_758 + -0x7fcc) + 0x69c0,\n               0x4c4,*(int *)(pcStack_758 + -0x7fcc) + 0x78f4);\nLAB_000a74c4:\n    (**(code **)(pcVar37 + -0x7290))\n              (*(int *)(pcVar37 + -0x7fcc) + 0x6a40,*(int *)(pcVar37 + -0x7fcc) + 0x69c0);\nLAB_000a74e8:\n    dStack_668 = (double)(**(code **)(pcVar37 + -0x7290))\n                                   (*(int *)(pcVar37 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar37 + -0x7fcc) + 0x69c0);\nLAB_000a750c:\n    dStack_668 = dStack_668 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);\n  }\n  else {\n    if (puVar23[0xcdb] != 0xabacadab) goto LAB_000a74c4;\n    if (pdVar16 == (double *)0x0) goto LAB_000a74e8;\n    uStack_678._4_4_ = 0;\n    uStack_678._0_4_ = 0;\n    uStack_66c = 0;\n    uStack_670 = 0;\n    dStack_668 = (double)(int)puVar23[6];\n    if ((int)puVar23[6] < 0) goto LAB_000a750c;\n  }\n  dStack_668 = dStack_668 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408);\n  uStack_65c = 0;\n  uStack_660 = 0;\n  dStack_658 = dStack_668;\n  dStack_650 = (double)(int)puVar23[7];\n  if ((int)puVar23[7] < 0) {\n    dStack_650 = dStack_650 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);\n  }\n  dStack_650 = dStack_650 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408);\n  uStack_644 = 0;\n  uStack_648 = 0;\n  dStack_640 = dStack_650;\n  dVar45 = *pdVar16;\n  dVar44 = pdVar16[2];\n  dVar47 = pdVar16[4];\n  dVar40 = pdVar16[1];\n  dVar41 = pdVar16[3];\n  dVar39 = pdVar16[5];\n  pdVar14 = (double *)&uStack_678;\n  pdVar29 = pdVar14;\n  do {\n    dVar42 = *pdVar29;\n    *pdVar29 = dVar45 * dVar42 + dVar44 * pdVar29[1] + dVar47;\n    pdVar29[1] = dVar40 * dVar42 + dVar41 * pdVar29[1] + dVar39;\n    pdVar29 = pdVar29 + 2;\n  } while (pdVar29 != (double *)&uStack_638);\n  dVar39 = (double)CONCAT44(uStack_670,uStack_66c);\n  dVar41 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_);\n  dVar40 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_);\n  dVar47 = (double)CONCAT44(uStack_670,uStack_66c);\n  do {\n    dVar45 = pdVar14[2];\n    dVar44 = dVar45;\n    if (dVar41 <= dVar45) {\n      dVar44 = dVar41;\n    }\n    dVar42 = pdVar14[3];\n    dVar46 = dVar42;\n    if (dVar47 <= dVar42) {\n      dVar46 = dVar47;\n    }\n    if (dVar45 <= dVar40) {\n      dVar45 = dVar40;\n    }\n    if (dVar42 <= dVar39) {\n      dVar42 = dVar39;\n    }\n    pdVar14 = pdVar14 + 2;\n    dVar39 = dVar42;\n    dVar41 = dVar44;\n    dVar40 = dVar45;\n    dVar47 = dVar46;\n  } while ((double *)&uStack_648 != pdVar14);\n  ppiVar24 = (int **)0x1;\n  pdVar29 = pdVar5;\n  iVar3 = (**(code **)(pcVar37 + -0x7074))(piVar2);\n  if (iVar3 != 0) {\n    dStack_750 = dVar44;\n    if (dVar44 <= 0.0) {\n      dStack_750 = 0.0;\n    }\n    dStack_748 = dVar46;\n    if (dVar46 <= 0.0) {\n      dStack_748 = 0.0;\n    }\n    dStack_740 = (double)piVar2[6];\n    if (piVar2[6] < 0) {\n      dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_740 = dStack_740 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar45 < dStack_740) {\n      dStack_740 = dVar45;\n    }\n    dStack_738 = (double)piVar2[7];\n    if (piVar2[7] < 0) {\n      dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_738 = dStack_738 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar42 < dStack_738) {\n      dStack_738 = dVar42;\n    }\n    dStack_6e8 = *pdVar16 * pdVar16[3] - pdVar16[1] * pdVar16[2];\n    if (0.0 <= dStack_6e8) {\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    }\n    else {\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);\n    }\n    if (dStack_6e8 * dVar39 < *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)) {\n      dStack_6e8 = dVar39 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8);\n    }\n    else {\n      dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;\n    }\n    dStack_700 = pdVar16[3] * dStack_6e8;\n    dStack_6f8 = -pdVar16[1] * dStack_6e8;\n    dStack_6f0 = -pdVar16[2] * dStack_6e8;\n    dStack_6e8 = *pdVar16 * dStack_6e8;\n    dStack_6e0 = dStack_700 * -pdVar16[4] - dStack_6f0 * pdVar16[5];\n    dStack_6d8 = dStack_6f8 * -pdVar16[4] - dStack_6e8 * pdVar16[5];\n    (**(code **)(pcStack_758 + -0x75e4))(piVar2,auStack_6d0);\n    dVar42 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0);\n    dVar39 = (double)(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar42);\n    dVar41 = (double)(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar42);\n    uVar4 = (**(code **)(pcStack_758 + -0x7144))(puVar23,pdVar5);\n    puVar35 = (undefined1 *)(**(code **)(pcStack_758 + -0x79c4))(piVar2,pdVar5);\n    iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23);\n    if (((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23), iVar3 == 3)) &&\n       ((iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 4 ||\n        (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3)))) {\n      (**(code **)(pcStack_758 + -0x775c))(7);\n      iVar10 = (int)dVar41 - (int)dVar39;\n      iVar3 = iVar10;\n      if (iVar10 < 0) {\n        iVar3 = iVar10 + 0x3f;\n      }\n      pdVar16 = (double *)(iVar3 >> 6);\n      if (extraout_v1 < (int)pdVar16) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        bVar1 = extraout_v1_01 < 2;\n      }\n      else {\n        bVar1 = iVar10 < 0x80;\n      }\n      pdVar29 = (double *)0x1;\n      if (((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16)\n         ) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_03;\n        pdVar16 = extraout_v1_03;\n      }\n    }\n    else {\n      uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar51 < 2) {\n          pdVar29 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }\n      else {\nLAB_000a77f8:\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n      }\n      uVar51 = (*pcVar37)(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_00;\n      }\n      else {\n        pdVar29 = (double *)0x2;\n      }\n    }\nLAB_000a7818:\n    pdStack_720 = &dStack_700;\n    puStack_714 = auStack_6d0;\n    pdStack_710 = &dStack_750;\n    iStack_704 = 1;\n    ppiVar24 = &piStack_72c;\n    piStack_72c = piVar2;\n    puStack_728 = puVar23;\n    pdStack_724 = pdVar5;\n    puStack_71c = puVar35;\n    uStack_718 = uVar4;\n    iStack_70c = (int)dVar39;\n    iStack_708 = (int)dVar41;\n    (**(code **)(pcStack_758 + -0x7700))\n              (*(int *)(pcStack_758 + -0x7ea0) + 0x34c4,ppiVar24,pdVar29,0);\n    iVar3 = iStack_704;\n    (**(code **)(pcStack_758 + -0x79a4))(uVar4);\n    (**(code **)(pcStack_758 + -0x79a4))(puVar35);\n  }\n  if (uStack_638._4_4_ == **(int **)(pcStack_758 + -0x7668)) {\n    return iVar3;\n  }\n  pcVar37 = *(code **)(pcStack_758 + -0x7834);\n  pcVar38 = DrawGradientImage;\n  iVar10 = uStack_638._4_4_;\n  (*pcVar37)();\n  pcStack_830 = pcVar37 + 0x359e18;\n  puStack_794 = (undefined8 *)**(undefined4 **)(pcVar37 + 0x3527b0);\n  pdStack_790 = pdVar16;\n  piStack_78c = piVar2;\n  puStack_788 = puVar23;\n  pdStack_784 = pdVar5;\n  iStack_780 = iVar3;\n  pcStack_77c = pcVar38;\n  dStack_778 = dVar42;\n  if (iVar10 == 0) {\n    iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e48) + 0x3da0,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80a,*(int *)(pcVar37 + 0x351e4c) + 0x7818);\n    return iVar3;\n  }\n  if (*(int *)(iVar10 + 0x336c) != -0x54535255) {\n    iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e4c) + -0x784,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80b,*(int *)(pcVar37 + 0x351e4c) + 0x7818);\n    return iVar3;\n  }\n  if (*(int *)(iVar10 + 0x3350) != 0) {\n    iStack_838 = *(int *)(pcVar37 + 0x351e50) + -0x2f6c;\n    iStack_834 = iVar10 + 0x340;\n    (**(code **)(pcVar37 + 0x352760))\n              (0x8000,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,*(int *)(pcVar37 + 0x351e4c) + 0x7804,\n               0x80d);\n  }\n  if (ppiVar24 == (int **)0x0) {\n    iVar3 = (**(code **)(pcStack_830 + -0x7290))\n                      (*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x69c0,0x80e,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x7818);\n    return iVar3;\n  }\n  ppiVar33 = ppiVar24 + 0x6e;\n  (**(code **)(pcStack_830 + -0x6fc4))\n            (ppiVar24[0x7c],ppiVar24[0x7d],0x60,*(int *)(pcStack_830 + -0x7ea0) + 0x224c);\n  ppiVar34 = ppiVar24 + 0x74;\n  dVar39 = (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) *\n           (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) +\n           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76)) *\n           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76));\n  dVar41 = SQRT(dVar39);\n  if (0.0 <= dVar39) {\n    piStack_828 = ppiVar24[0x6f];\n  }\n  else {\n    (**(code **)(pcStack_830 + -0x7418))();\n    piStack_828 = ppiVar24[0x6f];\n  }\n  piStack_824 = ppiVar24[0x70];\n  piStack_820 = ppiVar24[0x71];\n  piStack_81c = ppiVar24[0x72];\n  (**(code **)(pcStack_830 + -0x75e4))(iVar10,auStack_7f0);\n  uVar4 = (**(code **)(pcStack_830 + -0x79c4))(iVar10,pdVar29);\n  iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10);\n  if ((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 == 3)) {\n    iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10);\n    if ((iVar3 != 4) && (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 != 3))\n    goto LAB_000a7bf4;\n    (**(code **)(pcStack_830 + -0x775c))(7);\n    iVar49 = (int)piStack_824 - (int)piStack_81c;\n    iVar3 = iVar49;\n    if (iVar49 < 0) {\n      iVar3 = iVar49 + 0x3f;\n    }\n    if (extraout_v1_04 < iVar3 >> 6) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = iVar49 < 0x80;\n    }\n    iVar3 = 1;\n    dStack_818 = dVar41;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = (int)piStack_824 - (int)piStack_81c;\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      iVar3 = iVar3 >> 6;\n      dStack_818 = dVar41;\n      if (extraout_v1_07 < iVar3) {\n        (**(code **)(pcStack_830 + -0x775c))(7);\n        iVar3 = extraout_v1_08;\n        dStack_818 = dVar41;\n      }\n    }\n  }\n  else {\nLAB_000a7bf4:\n    uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n      if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a7c10;\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n      if ((uint)uVar51 < 2) {\n        iVar3 = 1;\n        dStack_818 = dVar41;\n        goto LAB_000a7c30;\n      }\n    }\n    else {\nLAB_000a7c10:\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n    }\n    uVar51 = (*pcVar37)(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = extraout_v1_05;\n      dStack_818 = dVar41;\n    }\n    else {\n      iVar3 = 2;\n      dStack_818 = dVar41;\n    }\n  }\nLAB_000a7c30:\n  puStack_7fc = auStack_7f0;\n  ppiStack_7f8 = &piStack_828;\n  iStack_7f4 = 1;\n  iStack_810 = iVar10;\n  pdStack_80c = pdVar29;\n  uStack_808 = uVar4;\n  ppiStack_804 = ppiVar33;\n  ppiStack_800 = ppiVar34;\n  (**(code **)(pcStack_830 + -0x7700))(*(int *)(pcStack_830 + -0x7ea0) + 0x549c,&dStack_818,iVar3,0)\n  ;\n  iVar3 = iStack_7f4;\n  (**(code **)(pcStack_830 + -0x79a4))(uVar4);\n  if (puStack_794 == (undefined8 *)**(int **)(pcStack_830 + -0x7668)) {\n    return iVar3;\n  }\n  pcVar37 = *(code **)(pcStack_830 + -0x7834);\n  pcVar38 = GetAffineMatrix;\n  puVar20 = puStack_794;\n  (*pcVar37)();\n  pcStack_858 = pcVar37 + 0x359994;\n  iStack_860 = *(int *)(pcVar37 + 0x3519c8) + 0x10f4;\n  uStack_850 = uVar4;\n  pcStack_84c = pcVar38;\n  (**(code **)(pcVar37 + 0x3522dc))\n            (0x8000,*(int *)(pcVar37 + 0x3519c8) + 0x69c0,*(int *)(pcVar37 + 0x3519c8) + 0x76b0,\n             0x16d2);\n  if (puVar20 != (undefined8 *)0x0) {\n    (**(code **)(pcStack_858 + -0x71c4))(puVar20 + 1,0,0x28);\n    iVar3 = *(int *)(pcStack_858 + -0x7fd0);\n    uVar51 = *(undefined8 *)(iVar3 + 0x4408);\n    *puVar20 = uVar51;\n    puVar20[3] = uVar51;\n    return iVar3;\n  }\n  iVar49 = *(int *)(pcStack_858 + -0x7fcc) + 0x69c0;\n  iVar10 = *(int *)(pcStack_858 + -0x7fcc) + 0x6368;\n  pcVar37 = *(code **)(pcStack_858 + -0x7290);\n  pcVar38 = GetDrawInfo;\n  (*pcVar37)(iVar10,iVar49,0x16d3,*(int *)(pcStack_858 + -0x7fcc) + 0x76a0);\n  iStack_888 = iVar3;\n  iStack_894 = **(int **)(pcVar37 + 0x352270);\n  puStack_88c = puVar20;\n  pdStack_884 = pdVar29;\n  ppiStack_880 = ppiVar33;\n  ppiStack_87c = ppiVar34;\n  puStack_878 = puVar35;\n  pcStack_874 = pcVar38;\n  (**(code **)(pcVar37 + 0x352220))\n            (0x8000,*(int *)(pcVar37 + 0x35190c) + 0x69c0,*(int *)(pcVar37 + 0x35190c) + 0x7694,\n             0x1702,*(int *)(pcVar37 + 0x35190c) + 0x10f4);\n  if (iVar49 == 0) {\n    (**(code **)(pcVar37 + 0x352648))\n              (*(int *)(pcVar37 + 0x351908) + 0x40e4,*(int *)(pcVar37 + 0x35190c) + 0x69c0,0x1703,\n               *(int *)(pcVar37 + 0x35190c) + 0x7688);\n  }\n  else {\n    (**(code **)(pcVar37 + 0x352714))(iVar49,0,0x3c0);\n    iVar10 = (**(code **)(pcVar37 + 0x3521dc))(iVar10);\n    (**(code **)(pcVar37 + 0x351e5c))(iVar49 + 0x18);\n    pdVar29 = (double *)(**(code **)(pcVar37 + 0x351f2c))();\n    ppiVar34 = (int **)(iVar49 + 0x48);\n    (**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar34,pdVar29);\n    ppiVar33 = (int **)(iVar49 + 0xa0);\n    (**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar33,pdVar29);\n    *(undefined4 *)(iVar49 + 0x238) = *(undefined4 *)(iVar10 + 0x14);\n    *(undefined8 *)(iVar49 + 0x1b0) = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4408);\n    *(undefined4 *)(iVar49 + 0x240) = 1;\n    *(undefined4 *)(iVar49 + 0x2cc) = *(undefined4 *)(*(int *)(pcVar37 + 0x351908) + 0x4aa8);\n    uVar51 = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4a48);\n    *(undefined8 *)(iVar49 + 0x398) = uVar51;\n    *(undefined8 *)(iVar49 + 0x3a0) = uVar51;\n    *(undefined4 *)(iVar49 + 0x244) = 1;\n    *(undefined4 *)(iVar49 + 0x248) = 1;\n    *(undefined4 *)(iVar49 + 0x24c) = 10;\n    *(undefined4 *)(iVar49 + 600) = 1;\n    *(undefined8 *)(iVar49 + 0x288) = *(undefined8 *)(*(int *)(pcVar37 + 0x35190c) + 0x7970);\n    *(undefined4 *)(iVar49 + 0x144) = 0;\n    *(undefined4 *)(iVar49 + 0x140) = 0;\n    *(undefined4 *)(iVar49 + 0x25c) = 0x36;\n    *(undefined4 *)(iVar49 + 0x2d0) = 1;\n    *(undefined4 *)(iVar49 + 0x3a8) = 0;\n    uVar4 = (**(code **)(pcVar37 + 0x3527e8))();\n    *(undefined4 *)(iVar49 + 0x38c) = uVar4;\n    if (*(int *)(iVar10 + 0x4c) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x264) = uVar4;\n    }\n    if (*(int *)(iVar10 + 0x54) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x290) = uVar4;\n    }\n    *(undefined4 *)(iVar49 + 0x23c) = *(undefined4 *)(iVar10 + 0x14);\n    uVar4 = *(undefined4 *)(iVar10 + 0x58);\n    if (*(double *)(*(int *)(pcVar37 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar10 + 0x58))) {\n      *(undefined4 *)(iVar49 + 0x28c) = *(undefined4 *)(iVar10 + 0x5c);\n      *(undefined4 *)(iVar49 + 0x288) = uVar4;\n    }\n    puVar13 = (undefined4 *)(iVar10 + 0x118);\n    puVar21 = (undefined4 *)(iVar49 + 0x150);\n    do {\n      puVar15 = puVar21;\n      puVar9 = puVar13;\n      uVar27 = puVar9[1];\n      uVar25 = puVar9[2];\n      uVar4 = puVar9[3];\n      *puVar15 = *puVar9;\n      puVar15[1] = uVar27;\n      puVar15[2] = uVar25;\n      puVar15[3] = uVar4;\n      puVar13 = puVar9 + 4;\n      puVar21 = puVar15 + 4;\n    } while (puVar13 != (undefined4 *)(iVar10 + 0x168));\n    uVar4 = puVar9[5];\n    puVar15[4] = *puVar13;\n    puVar15[5] = uVar4;\n    if (*(int *)(iVar10 + 0x48) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x29c) = uVar4;\n    }\n    iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ac4);\n    if (iVar3 != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x14,0,iVar3);\n      *(undefined4 *)(iVar49 + 0x388) = uVar4;\n      goto LAB_000a8298;\n    }\n  }\n  *(undefined4 *)(iVar49 + 0x388) = 0;\nLAB_000a8298:\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ad0);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x280,iVar3);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6adc);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x26c,iVar3);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ae4);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar34,pdVar29);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6aec);\n  if (iVar3 != 0) {\n    uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x21,0,iVar3);\n    *(undefined4 *)(iVar49 + 0x298) = uVar4;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6af4);\n  if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x380) = dVar39;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b08);\n  if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x378) = dVar39;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b1c);\n  if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x370) = dVar39;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b24);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar33,pdVar29);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b2c);\n  if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x1b0) = dVar39;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b38);\n  if (iVar3 != 0) {\n    uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x47,0,iVar3);\n    *(undefined4 *)(iVar49 + 0x274) = uVar4;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b40);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,iVar49 + 0xf8,pdVar29);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x351920) + -0x3000);\n  if (iVar3 != 0) {\n    iVar28 = (**(code **)(pcVar37 + 0x3526d4))(0x4c,0,iVar3);\n    if (iVar28 == -1) {\n      uVar4 = (**(code **)(pcVar37 + 0x352380))(iVar3,0,10);\n      *(undefined4 *)(iVar49 + 0x27c) = uVar4;\n    }\n    else {\n      *(int *)(iVar49 + 0x27c) = iVar28;\n    }\n  }\n  (**(code **)(pcVar37 + 0x351d90))(pdVar29);\n  *(undefined4 *)(iVar49 + 0x390) = 0xabacadab;\n  (**(code **)(pcVar37 + 0x352628))(iVar10);\n  if (iStack_894 == **(int **)(pcVar37 + 0x352270)) {\n    return **(int **)(pcVar37 + 0x352270);\n  }\n  pcVar37 = *(code **)(pcVar37 + 0x3520a4);\n  (*pcVar37)();\n  iVar3 = (**(code **)(pcVar37 + 0x351be4))(0x3c0);\n  (**(code **)(pcVar37 + 0x3518b4))(0,iVar3);\n  return iVar3;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "double *pdVar5;" primitive_type (pointer_declarator "*pdVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "double *pdVar14;" primitive_type (pointer_declarator "*pdVar14" * identifier) ;) (declaration "int extraout_v1;" primitive_type identifier ;) (declaration "double *extraout_v1_00;" primitive_type (pointer_declarator "*extraout_v1_00" * identifier) ;) (declaration "int extraout_v1_01;" primitive_type identifier ;) (declaration "int extraout_v1_02;" primitive_type identifier ;) (declaration "double *extraout_v1_03;" primitive_type (pointer_declarator "*extraout_v1_03" * identifier) ;) (declaration "int extraout_v1_04;" primitive_type identifier ;) (declaration "int extraout_v1_05;" primitive_type identifier ;) (declaration "int extraout_v1_06;" primitive_type identifier ;) (declaration "int extraout_v1_07;" primitive_type identifier ;) (declaration "int extraout_v1_08;" primitive_type identifier ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "double *pdVar16;" primitive_type (pointer_declarator "*pdVar16" * identifier) ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "undefined8 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "undefined4 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "uint *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "int **ppiVar24;" primitive_type (pointer_declarator "**ppiVar24" * (pointer_declarator "*ppiVar24" * identifier)) ;) (declaration "undefined4 uVar25;" type_identifier identifier ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "undefined4 uVar27;" type_identifier identifier ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "double *pdVar29;" primitive_type (pointer_declarator "*pdVar29" * identifier) ;) (declaration "double *pdVar30;" primitive_type (pointer_declarator "*pdVar30" * identifier) ;) (declaration "int unaff_s2;" primitive_type identifier ;) (declaration "int iVar31;" primitive_type identifier ;) (declaration "uint *puVar32;" type_identifier (pointer_declarator "*puVar32" * identifier) ;) (declaration "double *unaff_s3;" primitive_type (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "int **ppiVar33;" primitive_type (pointer_declarator "**ppiVar33" * (pointer_declarator "*ppiVar33" * identifier)) ;) (declaration "int *unaff_s4;" primitive_type (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "int **ppiVar34;" primitive_type (pointer_declarator "**ppiVar34" * (pointer_declarator "*ppiVar34" * identifier)) ;) (declaration "undefined1 *puVar35;" type_identifier (pointer_declarator "*puVar35" * identifier) ;) (declaration "double *unaff_s6;" primitive_type (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "uint unaff_s7;" type_identifier identifier ;) (declaration "undefined *puVar36;" type_identifier (pointer_declarator "*puVar36" * identifier) ;) (declaration "code *pcVar37;" type_identifier (pointer_declarator "*pcVar37" * identifier) ;) (declaration "code *pcVar38;" type_identifier (pointer_declarator "*pcVar38" * identifier) ;) (declaration "double dVar39;" primitive_type identifier ;) (declaration "double dVar40;" primitive_type identifier ;) (declaration "double dVar41;" primitive_type identifier ;) (declaration "float fVar43;" primitive_type identifier ;) (declaration "double dVar42;" primitive_type identifier ;) (declaration "double dVar44;" primitive_type identifier ;) (declaration "double dVar45;" primitive_type identifier ;) (declaration "double dVar46;" primitive_type identifier ;) (declaration "double in_f20_21;" primitive_type identifier ;) (declaration "double dVar47;" primitive_type identifier ;) (declaration "double in_f22_23;" primitive_type identifier ;) (declaration "double in_f24_25;" primitive_type identifier ;) (declaration "double in_f26_27;" primitive_type identifier ;) (declaration "double in_f28_29;" primitive_type identifier ;) (declaration "double in_f30_31;" primitive_type identifier ;) (declaration "int *piVar48;" primitive_type (pointer_declarator "*piVar48" * identifier) ;) (declaration "int iVar49;" primitive_type identifier ;) (declaration "int iVar50;" primitive_type identifier ;) (declaration "undefined8 uVar51;" type_identifier identifier ;) (declaration "undefined1 auStack_898 [4];" type_identifier (array_declarator "auStack_898 [4]" identifier [ number_literal ]) ;) (declaration "int iStack_894;" primitive_type identifier ;) (declaration "undefined8 *puStack_88c;" type_identifier (pointer_declarator "*puStack_88c" * identifier) ;) (declaration "int iStack_888;" primitive_type identifier ;) (declaration "double *pdStack_884;" primitive_type (pointer_declarator "*pdStack_884" * identifier) ;) (declaration "int **ppiStack_880;" primitive_type (pointer_declarator "**ppiStack_880" * (pointer_declarator "*ppiStack_880" * identifier)) ;) (declaration "int **ppiStack_87c;" primitive_type (pointer_declarator "**ppiStack_87c" * (pointer_declarator "*ppiStack_87c" * identifier)) ;) (declaration "undefined1 *puStack_878;" type_identifier (pointer_declarator "*puStack_878" * identifier) ;) (declaration "code *pcStack_874;" type_identifier (pointer_declarator "*pcStack_874" * identifier) ;) (declaration "int iStack_860;" primitive_type identifier ;) (declaration "code *pcStack_858;" type_identifier (pointer_declarator "*pcStack_858" * identifier) ;) (declaration "undefined4 uStack_850;" type_identifier identifier ;) (declaration "code *pcStack_84c;" type_identifier (pointer_declarator "*pcStack_84c" * identifier) ;) (declaration "int iStack_838;" primitive_type identifier ;) (declaration "int iStack_834;" primitive_type identifier ;) (declaration "code *pcStack_830;" type_identifier (pointer_declarator "*pcStack_830" * identifier) ;) (declaration "int *piStack_828;" primitive_type (pointer_declarator "*piStack_828" * identifier) ;) (declaration "int *piStack_824;" primitive_type (pointer_declarator "*piStack_824" * identifier) ;) (declaration "int *piStack_820;" primitive_type (pointer_declarator "*piStack_820" * identifier) ;) (declaration "int *piStack_81c;" primitive_type (pointer_declarator "*piStack_81c" * identifier) ;) (declaration "double dStack_818;" primitive_type identifier ;) (declaration "int iStack_810;" primitive_type identifier ;) (declaration "double *pdStack_80c;" primitive_type (pointer_declarator "*pdStack_80c" * identifier) ;) (declaration "undefined4 uStack_808;" type_identifier identifier ;) (declaration "int **ppiStack_804;" primitive_type (pointer_declarator "**ppiStack_804" * (pointer_declarator "*ppiStack_804" * identifier)) ;) (declaration "int **ppiStack_800;" primitive_type (pointer_declarator "**ppiStack_800" * (pointer_declarator "*ppiStack_800" * identifier)) ;) (declaration "undefined1 *puStack_7fc;" type_identifier (pointer_declarator "*puStack_7fc" * identifier) ;) (declaration "int **ppiStack_7f8;" primitive_type (pointer_declarator "**ppiStack_7f8" * (pointer_declarator "*ppiStack_7f8" * identifier)) ;) (declaration "int iStack_7f4;" primitive_type identifier ;) (declaration "undefined1 auStack_7f0 [92];" type_identifier (array_declarator "auStack_7f0 [92]" identifier [ number_literal ]) ;) (declaration "undefined8 *puStack_794;" type_identifier (pointer_declarator "*puStack_794" * identifier) ;) (declaration "double *pdStack_790;" primitive_type (pointer_declarator "*pdStack_790" * identifier) ;) (declaration "int *piStack_78c;" primitive_type (pointer_declarator "*piStack_78c" * identifier) ;) (declaration "uint *puStack_788;" type_identifier (pointer_declarator "*puStack_788" * identifier) ;) (declaration "double *pdStack_784;" primitive_type (pointer_declarator "*pdStack_784" * identifier) ;) (declaration "int iStack_780;" primitive_type identifier ;) (declaration "code *pcStack_77c;" type_identifier (pointer_declarator "*pcStack_77c" * identifier) ;) (declaration "double dStack_778;" primitive_type identifier ;) (declaration "int iStack_760;" primitive_type identifier ;) (declaration "int *piStack_75c;" primitive_type (pointer_declarator "*piStack_75c" * identifier) ;) (declaration "code *pcStack_758;" type_identifier (pointer_declarator "*pcStack_758" * identifier) ;) (declaration "double dStack_750;" primitive_type identifier ;) (declaration "double dStack_748;" primitive_type identifier ;) (declaration "double dStack_740;" primitive_type identifier ;) (declaration "double dStack_738;" primitive_type identifier ;) (declaration "int *piStack_72c;" primitive_type (pointer_declarator "*piStack_72c" * identifier) ;) (declaration "uint *puStack_728;" type_identifier (pointer_declarator "*puStack_728" * identifier) ;) (declaration "double *pdStack_724;" primitive_type (pointer_declarator "*pdStack_724" * identifier) ;) (declaration "double *pdStack_720;" primitive_type (pointer_declarator "*pdStack_720" * identifier) ;) (declaration "undefined1 *puStack_71c;" type_identifier (pointer_declarator "*puStack_71c" * identifier) ;) (declaration "undefined4 uStack_718;" type_identifier identifier ;) (declaration "undefined1 *puStack_714;" type_identifier (pointer_declarator "*puStack_714" * identifier) ;) (declaration "double *pdStack_710;" primitive_type (pointer_declarator "*pdStack_710" * identifier) ;) (declaration "int iStack_70c;" primitive_type identifier ;) (declaration "int iStack_708;" primitive_type identifier ;) (declaration "int iStack_704;" primitive_type identifier ;) (declaration "double dStack_700;" primitive_type identifier ;) (declaration "double dStack_6f8;" primitive_type identifier ;) (declaration "double dStack_6f0;" primitive_type identifier ;) (declaration "double dStack_6e8;" primitive_type identifier ;) (declaration "double dStack_6e0;" primitive_type identifier ;) (declaration "double dStack_6d8;" primitive_type identifier ;) (declaration "undefined1 auStack_6d0 [88];" type_identifier (array_declarator "auStack_6d0 [88]" identifier [ number_literal ]) ;) (declaration "undefined8 uStack_678;" type_identifier identifier ;) (declaration "undefined4 uStack_670;" type_identifier identifier ;) (declaration "undefined4 uStack_66c;" type_identifier identifier ;) (declaration "double dStack_668;" primitive_type identifier ;) (declaration "undefined4 uStack_660;" type_identifier identifier ;) (declaration "undefined4 uStack_65c;" type_identifier identifier ;) (declaration "double dStack_658;" primitive_type identifier ;) (declaration "double dStack_650;" primitive_type identifier ;) (declaration "undefined4 uStack_648;" type_identifier identifier ;) (declaration "undefined4 uStack_644;" type_identifier identifier ;) (declaration "double dStack_640;" primitive_type identifier ;) (declaration "undefined8 uStack_638;" type_identifier identifier ;) (declaration "double *pdStack_62c;" primitive_type (pointer_declarator "*pdStack_62c" * identifier) ;) (declaration "int *piStack_628;" primitive_type (pointer_declarator "*piStack_628" * identifier) ;) (declaration "uint *puStack_624;" type_identifier (pointer_declarator "*puStack_624" * identifier) ;) (declaration "double *pdStack_620;" primitive_type (pointer_declarator "*pdStack_620" * identifier) ;) (declaration "int iStack_61c;" primitive_type identifier ;) (declaration "undefined1 *puStack_618;" type_identifier (pointer_declarator "*puStack_618" * identifier) ;) (declaration "double *pdStack_614;" primitive_type (pointer_declarator "*pdStack_614" * identifier) ;) (declaration "uint uStack_610;" type_identifier identifier ;) (declaration "code *pcStack_60c;" type_identifier (pointer_declarator "*pcStack_60c" * identifier) ;) (declaration "double dStack_608;" primitive_type identifier ;) (declaration "double dStack_600;" primitive_type identifier ;) (declaration "double dStack_5f8;" primitive_type identifier ;) (declaration "double dStack_5f0;" primitive_type identifier ;) (declaration "int iStack_5d8;" primitive_type identifier ;) (declaration "code *pcStack_5d0;" type_identifier (pointer_declarator "*pcStack_5d0" * identifier) ;) (declaration "double *pdStack_5c8;" primitive_type (pointer_declarator "*pdStack_5c8" * identifier) ;) (declaration "code *pcStack_5c4;" type_identifier (pointer_declarator "*pcStack_5c4" * identifier) ;) (declaration "undefined4 uStack_5b0;" type_identifier identifier ;) (declaration "uint uStack_5ac;" type_identifier identifier ;) (declaration "code *pcStack_5a8;" type_identifier (pointer_declarator "*pcStack_5a8" * identifier) ;) (declaration "undefined8 uStack_5a0;" type_identifier identifier ;) (declaration "double dStack_598;" primitive_type identifier ;) (declaration "double dStack_590;" primitive_type identifier ;) (declaration "double *pdStack_588;" primitive_type (pointer_declarator "*pdStack_588" * identifier) ;) (declaration "int iStack_584;" primitive_type identifier ;) (declaration "double dStack_580;" primitive_type identifier ;) (declaration "double dStack_578;" primitive_type identifier ;) (declaration "int iStack_570;" primitive_type identifier ;) (declaration "undefined1 *puStack_56c;" type_identifier (pointer_declarator "*puStack_56c" * identifier) ;) (declaration "double *pdStack_568;" primitive_type (pointer_declarator "*pdStack_568" * identifier) ;) (declaration "uint uStack_564;" type_identifier identifier ;) (declaration "double dStack_560;" primitive_type identifier ;) (declaration "double dStack_558;" primitive_type identifier ;) (declaration "uint uStack_550;" type_identifier identifier ;) (declaration "undefined4 uStack_54c;" type_identifier identifier ;) (declaration "double dStack_548;" primitive_type identifier ;) (declaration "double dStack_540;" primitive_type identifier ;) (declaration "uint uStack_538;" type_identifier identifier ;) (declaration "undefined4 uStack_534;" type_identifier identifier ;) (declaration "double dStack_530;" primitive_type identifier ;) (declaration "uint uStack_528;" type_identifier identifier ;) (declaration "undefined4 uStack_524;" type_identifier identifier ;) (declaration "double dStack_520;" primitive_type identifier ;) (declaration "double dStack_518;" primitive_type identifier ;) (declaration "int aiStack_510 [4];" primitive_type (array_declarator "aiStack_510 [4]" identifier [ number_literal ]) ;) (declaration "undefined8 uStack_500;" type_identifier identifier ;) (declaration "int iStack_4f8;" primitive_type identifier ;) (declaration "double dStack_4e8;" primitive_type identifier ;) (declaration "double dStack_4e0;" primitive_type identifier ;) (declaration "double dStack_4d8;" primitive_type identifier ;) (declaration "double dStack_4d0;" primitive_type identifier ;) (declaration "double dStack_4c8;" primitive_type identifier ;) (declaration "double dStack_4c0;" primitive_type identifier ;) (declaration "int iStack_4b4;" primitive_type identifier ;) (declaration "uint uStack_4b0;" type_identifier identifier ;) (declaration "int iStack_4ac;" primitive_type identifier ;) (declaration "double *pdStack_4a8;" primitive_type (pointer_declarator "*pdStack_4a8" * identifier) ;) (declaration "double *pdStack_4a4;" primitive_type (pointer_declarator "*pdStack_4a4" * identifier) ;) (declaration "int iStack_4a0;" primitive_type identifier ;) (declaration "undefined4 *puStack_49c;" type_identifier (pointer_declarator "*puStack_49c" * identifier) ;) (declaration "double *pdStack_498;" primitive_type (pointer_declarator "*pdStack_498" * identifier) ;) (declaration "uint uStack_494;" type_identifier identifier ;) (declaration "int iStack_490;" primitive_type identifier ;) (declaration "code *pcStack_48c;" type_identifier (pointer_declarator "*pcStack_48c" * identifier) ;) (declaration "double dStack_488;" primitive_type identifier ;) (declaration "double dStack_480;" primitive_type identifier ;) (declaration "double dStack_478;" primitive_type identifier ;) (declaration "double dStack_470;" primitive_type identifier ;) (declaration "double dStack_468;" primitive_type identifier ;) (declaration "double dStack_460;" primitive_type identifier ;) (declaration "int *piStack_448;" primitive_type (pointer_declarator "*piStack_448" * identifier) ;) (declaration "uint uStack_444;" type_identifier identifier ;) (declaration "code *pcStack_440;" type_identifier (pointer_declarator "*pcStack_440" * identifier) ;) (declaration "uint uStack_434;" type_identifier identifier ;) (declaration "uint uStack_430;" type_identifier identifier ;) (declaration "double *pdStack_42c;" primitive_type (pointer_declarator "*pdStack_42c" * identifier) ;) (declaration "uint uStack_428;" type_identifier identifier ;) (declaration "uint uStack_424;" type_identifier identifier ;) (declaration "uint uStack_420;" type_identifier identifier ;) (declaration "undefined4 uStack_41c;" type_identifier identifier ;) (declaration "int aiStack_418 [10];" primitive_type (array_declarator "aiStack_418 [10]" identifier [ number_literal ]) ;) (declaration "double dStack_3f0;" primitive_type identifier ;) (declaration "double dStack_3e8;" primitive_type identifier ;) (declaration "double dStack_3e0;" primitive_type identifier ;) (declaration "double dStack_3d8;" primitive_type identifier ;) (declaration "double dStack_3d0;" primitive_type identifier ;) (declaration "int iStack_3bc;" primitive_type identifier ;) (declaration "int iStack_3b8;" primitive_type identifier ;) (declaration "uint uStack_3b4;" type_identifier identifier ;) (declaration "double *pdStack_3b0;" primitive_type (pointer_declarator "*pdStack_3b0" * identifier) ;) (declaration "double *pdStack_3ac;" primitive_type (pointer_declarator "*pdStack_3ac" * identifier) ;) (declaration "int *piStack_3a8;" primitive_type (pointer_declarator "*piStack_3a8" * identifier) ;) (declaration "undefined4 *puStack_3a4;" type_identifier (pointer_declarator "*puStack_3a4" * identifier) ;) (declaration "double *pdStack_3a0;" primitive_type (pointer_declarator "*pdStack_3a0" * identifier) ;) (declaration "uint uStack_39c;" type_identifier identifier ;) (declaration "int iStack_398;" primitive_type identifier ;) (declaration "code *pcStack_394;" type_identifier (pointer_declarator "*pcStack_394" * identifier) ;) (declaration "double dStack_390;" primitive_type identifier ;) (declaration "double dStack_388;" primitive_type identifier ;) (declaration "double dStack_380;" primitive_type identifier ;) (declaration "double dStack_378;" primitive_type identifier ;) (declaration "double dStack_370;" primitive_type identifier ;) (declaration "undefined4 *puStack_358;" type_identifier (pointer_declarator "*puStack_358" * identifier) ;) (declaration "undefined4 uStack_354;" type_identifier identifier ;) (declaration "undefined *puStack_350;" type_identifier (pointer_declarator "*puStack_350" * identifier) ;) (declaration "undefined8 uStack_348;" type_identifier identifier ;) (declaration "double dStack_340;" primitive_type identifier ;) (declaration "double dStack_338;" primitive_type identifier ;) (declaration "double dStack_330;" primitive_type identifier ;) (declaration "uint uStack_328;" type_identifier identifier ;) (declaration "int iStack_324;" primitive_type identifier ;) (declaration "double dStack_320;" primitive_type identifier ;) (declaration "double dStack_318;" primitive_type identifier ;) (declaration "uint uStack_310;" type_identifier identifier ;) (declaration "undefined4 uStack_30c;" type_identifier identifier ;) (declaration "int iStack_308;" primitive_type identifier ;) (declaration "int *piStack_304;" primitive_type (pointer_declarator "*piStack_304" * identifier) ;) (declaration "double dStack_300;" primitive_type identifier ;) (declaration "uint uStack_2f8;" type_identifier identifier ;) (declaration "int iStack_2f4;" primitive_type identifier ;) (declaration "int iStack_2f0;" primitive_type identifier ;) (declaration "double *pdStack_2ec;" primitive_type (pointer_declarator "*pdStack_2ec" * identifier) ;) (declaration "uint uStack_2e8;" type_identifier identifier ;) (declaration "undefined4 uStack_2e4;" type_identifier identifier ;) (declaration "uint uStack_2e0;" type_identifier identifier ;) (declaration "undefined4 uStack_2dc;" type_identifier identifier ;) (declaration "double *pdStack_2d8;" primitive_type (pointer_declarator "*pdStack_2d8" * identifier) ;) (declaration "uint uStack_2d4;" type_identifier identifier ;) (declaration "undefined4 uStack_2d0;" type_identifier identifier ;) (declaration "double *pdStack_2cc;" primitive_type (pointer_declarator "*pdStack_2cc" * identifier) ;) (declaration "uint uStack_2c8;" type_identifier identifier ;) (declaration "undefined4 uStack_2c4;" type_identifier identifier ;) (declaration "int iStack_2c0;" primitive_type identifier ;) (declaration "undefined4 *puStack_2bc;" type_identifier (pointer_declarator "*puStack_2bc" * identifier) ;) (declaration "double dStack_2b8;" primitive_type identifier ;) (declaration "uint uStack_2b0;" type_identifier identifier ;) (declaration "undefined4 uStack_2ac;" type_identifier identifier ;) (declaration "double *pdStack_2a8;" primitive_type (pointer_declarator "*pdStack_2a8" * identifier) ;) (declaration "undefined1 *puStack_2a4;" type_identifier (pointer_declarator "*puStack_2a4" * identifier) ;) (declaration "double *pdStack_2a0;" primitive_type (pointer_declarator "*pdStack_2a0" * identifier) ;) (declaration "int iStack_29c;" primitive_type identifier ;) (declaration "undefined4 auStack_298 [18];" type_identifier (array_declarator "auStack_298 [18]" identifier [ number_literal ]) ;) (declaration "double dStack_250;" primitive_type identifier ;) (declaration "undefined4 auStack_240 [18];" type_identifier (array_declarator "auStack_240 [18]" identifier [ number_literal ]) ;) (declaration "double dStack_1f8;" primitive_type identifier ;) (declaration "int iStack_1e4;" primitive_type identifier ;) (declaration "double *pdStack_1e0;" primitive_type (pointer_declarator "*pdStack_1e0" * identifier) ;) (declaration "int *piStack_1dc;" primitive_type (pointer_declarator "*piStack_1dc" * identifier) ;) (declaration "int iStack_1d8;" primitive_type identifier ;) (declaration "double *pdStack_1d4;" primitive_type (pointer_declarator "*pdStack_1d4" * identifier) ;) (declaration "int *piStack_1d0;" primitive_type (pointer_declarator "*piStack_1d0" * identifier) ;) (declaration "undefined4 *puStack_1cc;" type_identifier (pointer_declarator "*puStack_1cc" * identifier) ;) (declaration "double *pdStack_1c8;" primitive_type (pointer_declarator "*pdStack_1c8" * identifier) ;) (declaration "uint uStack_1c4;" type_identifier identifier ;) (declaration "int iStack_1c0;" primitive_type identifier ;) (declaration "code *pcStack_1bc;" type_identifier (pointer_declarator "*pcStack_1bc" * identifier) ;) (declaration "double dStack_1b8;" primitive_type identifier ;) (declaration "double dStack_1b0;" primitive_type identifier ;) (declaration "double dStack_1a8;" primitive_type identifier ;) (declaration "double dStack_1a0;" primitive_type identifier ;) (declaration "double dStack_198;" primitive_type identifier ;) (declaration "double dStack_190;" primitive_type identifier ;) (declaration "undefined8 local_178;" type_identifier identifier ;) (declaration "double local_170;" primitive_type identifier ;) (declaration "int *local_168;" primitive_type (pointer_declarator "*local_168" * identifier) ;) (declaration "int *local_164;" primitive_type (pointer_declarator "*local_164" * identifier) ;) (declaration "int local_110 [4];" primitive_type (array_declarator "local_110 [4]" identifier [ number_literal ]) ;) (declaration "undefined8 local_100;" type_identifier identifier ;) (declaration "int local_f8;" primitive_type identifier ;) (declaration "double local_e8;" primitive_type identifier ;) (declaration "double local_e0;" primitive_type identifier ;) (declaration "double local_d8;" primitive_type identifier ;) (declaration "double local_d0;" primitive_type identifier ;) (declaration "double local_c8;" primitive_type identifier ;) (declaration "double local_c0;" primitive_type identifier ;) (declaration "int local_b8 [10];" primitive_type (array_declarator "local_b8 [10]" identifier [ number_literal ]) ;) (declaration "double local_90;" primitive_type identifier ;) (declaration "double local_88;" primitive_type identifier ;) (declaration "double local_80;" primitive_type identifier ;) (declaration "double local_78;" primitive_type identifier ;) (declaration "double local_70;" primitive_type identifier ;) (declaration "int local_5c;" primitive_type identifier ;) (expression_statement "local_5c = *(int *)PTR___stack_chk_guard_003fa248;" (assignment_expression "local_5c = *(int *)PTR___stack_chk_guard_003fa248" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_003fa248" * (cast_expression "(int *)PTR___stack_chk_guard_003fa248" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pdVar29 = (double *)param_1[8];" (assignment_expression "pdVar29 = (double *)param_1[8]" identifier = (cast_expression "(double *)param_1[8]" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[8]" identifier [ number_literal ]))) ;) (expression_statement "piVar2 = (int *)(*(code *)PTR_omp_get_num_threads_003fa924)();" (assignment_expression "piVar2 = (int *)(*(code *)PTR_omp_get_num_threads_003fa924)()" identifier = (cast_expression "(int *)(*(code *)PTR_omp_get_num_threads_003fa924)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_omp_get_num_threads_003fa924)()" (parenthesized_expression "(*(code *)PTR_omp_get_num_threads_003fa924)" ( (pointer_expression "*(code *)PTR_omp_get_num_threads_003fa924" * (cast_expression "(code *)PTR_omp_get_num_threads_003fa924" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar3 = (*(code *)PTR_omp_get_thread_num_003fa520)();" (assignment_expression "iVar3 = (*(code *)PTR_omp_get_thread_num_003fa520)()" identifier = (call_expression "(*(code *)PTR_omp_get_thread_num_003fa520)()" (parenthesized_expression "(*(code *)PTR_omp_get_thread_num_003fa520)" ( (pointer_expression "*(code *)PTR_omp_get_thread_num_003fa520" * (cast_expression "(code *)PTR_omp_get_thread_num_003fa520" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "puVar36 = PTR_LAB_003f98e0;" (assignment_expression "puVar36 = PTR_LAB_003f98e0" identifier = identifier) ;) (expression_statement "iVar10 = (param_1[9] + 1) - (int)pdVar29;" (assignment_expression "iVar10 = (param_1[9] + 1) - (int)pdVar29" identifier = (binary_expression "(param_1[9] + 1) - (int)pdVar29" (parenthesized_expression "(param_1[9] + 1)" ( (binary_expression "param_1[9] + 1" (subscript_expression "param_1[9]" identifier [ number_literal ]) + number_literal) )) - (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (piVar2 == (int *)0x0) {\n    trap(7);\n  }" if (parenthesized_expression "(piVar2 == (int *)0x0)" ( (binary_expression "piVar2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "iVar49 = iVar10 / (int)piVar2;" (assignment_expression "iVar49 = iVar10 / (int)piVar2" identifier = (binary_expression "iVar10 / (int)piVar2" identifier / (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar10 = iVar10 % (int)piVar2;" (assignment_expression "iVar10 = iVar10 % (int)piVar2" identifier = (binary_expression "iVar10 % (int)piVar2" identifier % (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (iVar3 < iVar10) {\n    iVar49 = iVar49 + 1;\n    iVar10 = 0;\n  }" if (parenthesized_expression "(iVar3 < iVar10)" ( (binary_expression "iVar3 < iVar10" identifier < identifier) )) (compound_statement "{\n    iVar49 = iVar49 + 1;\n    iVar10 = 0;\n  }" { (expression_statement "iVar49 = iVar49 + 1;" (assignment_expression "iVar49 = iVar49 + 1" identifier = (binary_expression "iVar49 + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) })) (expression_statement "iVar10 = iVar49 * iVar3 + iVar10;" (assignment_expression "iVar10 = iVar49 * iVar3 + iVar10" identifier = (binary_expression "iVar49 * iVar3 + iVar10" (binary_expression "iVar49 * iVar3" identifier * identifier) + identifier)) ;) (expression_statement "pdVar16 = (double *)(iVar49 + iVar10);" (assignment_expression "pdVar16 = (double *)(iVar49 + iVar10)" identifier = (cast_expression "(double *)(iVar49 + iVar10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + iVar10)" ( (binary_expression "iVar49 + iVar10" identifier + identifier) )))) ;) (expression_statement "iVar3 = (int)pdVar29 + iVar10;" (assignment_expression "iVar3 = (int)pdVar29 + iVar10" identifier = (binary_expression "(int)pdVar29 + iVar10" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (if_statement "if (iVar10 < (int)pdVar16) {\n    uVar4 = param_1[5];\n    pdVar5 = (double *)param_1[4];\n    unaff_s4 = (int *)param_1[2];\n    unaff_s7 = param_1[1];\n    piVar2 = (int *)*param_1;\n    puVar6 = (undefined *)((int)pdVar29 + (int)pdVar16);\n    dVar39 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    in_f26_27 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    in_f30_31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n    do {\n      in_f24_25 = (double)iVar3;\n      pdVar29 = (double *)param_1[3];\n      in_f20_21 = *(double *)param_1[7];\n      in_f28_29 = ((double *)param_1[7])[2];\n      dVar40 = in_f24_25 * pdVar29[2] + pdVar29[4];\n      dVar47 = *pdVar29;\n      dVar41 = in_f28_29;\n      if (dVar39 <= dVar47) {\n        in_f22_23 = -dVar40 / dVar47;\n        if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }\n        dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n        if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }\n        dVar47 = (dVar44 - dVar40) / dVar47;\n        if (dVar47 < in_f28_29) {\n          dVar41 = dVar47;\n        }\nLAB_000a3890:\n        dVar40 = in_f24_25 * pdVar29[3] + pdVar29[5];\n        dVar47 = pdVar29[1];\n        if (*(double *)(puVar36 + 0x43c8) <= dVar47) {\n          dVar44 = -dVar40 / dVar47;\n          if (-dVar40 / dVar47 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = *(double **)(unaff_s7 + 0x1c);\n          dVar44 = (double)(int)pdVar16;\n          if ((int)pdVar16 < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar44 - dVar40) / dVar47;\n          if (dVar41 <= in_f20_21) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }\n        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;\n      }\n      else {\n        if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar44 - dVar40) / dVar47;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar40) {\n          dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n          if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar41;\n          if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar36 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar41 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar41;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar40 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar41 = (dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar41 < in_f20_21) {\n          uVar26 = (uint)dVar41;\n        }\n        else {\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar16 = pdVar5;\n        pdVar29 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26);\n        if (pdVar29 != (double *)0x0) {\n          piVar17 = (int *)param_1[6];\n          piVar48 = piVar17;\n          piVar19 = local_b8;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          piVar48 = piVar17;\n          piVar19 = local_110;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }\n          pdVar16 = pdVar5;\n          iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);\n          if (iVar10 == 0) {\n            param_1[10] = 0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n      unaff_s6 = (double *)puVar36;\n    } while (iVar3 < (int)puVar6);\n  }" if (parenthesized_expression "(iVar10 < (int)pdVar16)" ( (binary_expression "iVar10 < (int)pdVar16" identifier < (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    uVar4 = param_1[5];\n    pdVar5 = (double *)param_1[4];\n    unaff_s4 = (int *)param_1[2];\n    unaff_s7 = param_1[1];\n    piVar2 = (int *)*param_1;\n    puVar6 = (undefined *)((int)pdVar29 + (int)pdVar16);\n    dVar39 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    in_f26_27 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    in_f30_31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n    do {\n      in_f24_25 = (double)iVar3;\n      pdVar29 = (double *)param_1[3];\n      in_f20_21 = *(double *)param_1[7];\n      in_f28_29 = ((double *)param_1[7])[2];\n      dVar40 = in_f24_25 * pdVar29[2] + pdVar29[4];\n      dVar47 = *pdVar29;\n      dVar41 = in_f28_29;\n      if (dVar39 <= dVar47) {\n        in_f22_23 = -dVar40 / dVar47;\n        if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }\n        dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n        if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }\n        dVar47 = (dVar44 - dVar40) / dVar47;\n        if (dVar47 < in_f28_29) {\n          dVar41 = dVar47;\n        }\nLAB_000a3890:\n        dVar40 = in_f24_25 * pdVar29[3] + pdVar29[5];\n        dVar47 = pdVar29[1];\n        if (*(double *)(puVar36 + 0x43c8) <= dVar47) {\n          dVar44 = -dVar40 / dVar47;\n          if (-dVar40 / dVar47 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = *(double **)(unaff_s7 + 0x1c);\n          dVar44 = (double)(int)pdVar16;\n          if ((int)pdVar16 < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar44 - dVar40) / dVar47;\n          if (dVar41 <= in_f20_21) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }\n        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;\n      }\n      else {\n        if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar44 - dVar40) / dVar47;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar40) {\n          dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n          if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar41;\n          if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar36 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar41 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar41;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar40 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar41 = (dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar41 < in_f20_21) {\n          uVar26 = (uint)dVar41;\n        }\n        else {\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar16 = pdVar5;\n        pdVar29 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26);\n        if (pdVar29 != (double *)0x0) {\n          piVar17 = (int *)param_1[6];\n          piVar48 = piVar17;\n          piVar19 = local_b8;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          piVar48 = piVar17;\n          piVar19 = local_110;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }\n          pdVar16 = pdVar5;\n          iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);\n          if (iVar10 == 0) {\n            param_1[10] = 0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n      unaff_s6 = (double *)puVar36;\n    } while (iVar3 < (int)puVar6);\n  }" { (expression_statement "uVar4 = param_1[5];" (assignment_expression "uVar4 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "pdVar5 = (double *)param_1[4];" (assignment_expression "pdVar5 = (double *)param_1[4]" identifier = (cast_expression "(double *)param_1[4]" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[4]" identifier [ number_literal ]))) ;) (expression_statement "unaff_s4 = (int *)param_1[2];" (assignment_expression "unaff_s4 = (int *)param_1[2]" identifier = (cast_expression "(int *)param_1[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "unaff_s7 = param_1[1];" (assignment_expression "unaff_s7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "piVar2 = (int *)*param_1;" (assignment_expression "piVar2 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "puVar6 = (undefined *)((int)pdVar29 + (int)pdVar16);" (assignment_expression "puVar6 = (undefined *)((int)pdVar29 + (int)pdVar16)" identifier = (cast_expression "(undefined *)((int)pdVar29 + (int)pdVar16)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + (int)pdVar16)" ( (binary_expression "(int)pdVar29 + (int)pdVar16" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "dVar39 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);" (assignment_expression "dVar39 = *(double *)(PTR_LAB_003f98e0 + 0x43c8)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43c8)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43c8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43c8" identifier + number_literal) ))))) ;) (expression_statement "in_f26_27 = *(double *)(PTR_LAB_003f98e0 + 0x4410);" (assignment_expression "in_f26_27 = *(double *)(PTR_LAB_003f98e0 + 0x4410)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4410)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4410)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4410" identifier + number_literal) ))))) ;) (expression_statement "in_f30_31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);" (assignment_expression "in_f30_31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4a48)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4a48)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4a48" identifier + number_literal) ))))) ;) (do_statement "do {\n      in_f24_25 = (double)iVar3;\n      pdVar29 = (double *)param_1[3];\n      in_f20_21 = *(double *)param_1[7];\n      in_f28_29 = ((double *)param_1[7])[2];\n      dVar40 = in_f24_25 * pdVar29[2] + pdVar29[4];\n      dVar47 = *pdVar29;\n      dVar41 = in_f28_29;\n      if (dVar39 <= dVar47) {\n        in_f22_23 = -dVar40 / dVar47;\n        if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }\n        dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n        if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }\n        dVar47 = (dVar44 - dVar40) / dVar47;\n        if (dVar47 < in_f28_29) {\n          dVar41 = dVar47;\n        }\nLAB_000a3890:\n        dVar40 = in_f24_25 * pdVar29[3] + pdVar29[5];\n        dVar47 = pdVar29[1];\n        if (*(double *)(puVar36 + 0x43c8) <= dVar47) {\n          dVar44 = -dVar40 / dVar47;\n          if (-dVar40 / dVar47 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = *(double **)(unaff_s7 + 0x1c);\n          dVar44 = (double)(int)pdVar16;\n          if ((int)pdVar16 < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar44 - dVar40) / dVar47;\n          if (dVar41 <= in_f20_21) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }\n        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;\n      }\n      else {\n        if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar44 - dVar40) / dVar47;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar40) {\n          dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n          if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar41;\n          if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar36 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar41 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar41;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar40 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar41 = (dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar41 < in_f20_21) {\n          uVar26 = (uint)dVar41;\n        }\n        else {\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar16 = pdVar5;\n        pdVar29 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26);\n        if (pdVar29 != (double *)0x0) {\n          piVar17 = (int *)param_1[6];\n          piVar48 = piVar17;\n          piVar19 = local_b8;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          piVar48 = piVar17;\n          piVar19 = local_110;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }\n          pdVar16 = pdVar5;\n          iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);\n          if (iVar10 == 0) {\n            param_1[10] = 0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n      unaff_s6 = (double *)puVar36;\n    } while (iVar3 < (int)puVar6);" do (compound_statement "{\n      in_f24_25 = (double)iVar3;\n      pdVar29 = (double *)param_1[3];\n      in_f20_21 = *(double *)param_1[7];\n      in_f28_29 = ((double *)param_1[7])[2];\n      dVar40 = in_f24_25 * pdVar29[2] + pdVar29[4];\n      dVar47 = *pdVar29;\n      dVar41 = in_f28_29;\n      if (dVar39 <= dVar47) {\n        in_f22_23 = -dVar40 / dVar47;\n        if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }\n        dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n        if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }\n        dVar47 = (dVar44 - dVar40) / dVar47;\n        if (dVar47 < in_f28_29) {\n          dVar41 = dVar47;\n        }\nLAB_000a3890:\n        dVar40 = in_f24_25 * pdVar29[3] + pdVar29[5];\n        dVar47 = pdVar29[1];\n        if (*(double *)(puVar36 + 0x43c8) <= dVar47) {\n          dVar44 = -dVar40 / dVar47;\n          if (-dVar40 / dVar47 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = *(double **)(unaff_s7 + 0x1c);\n          dVar44 = (double)(int)pdVar16;\n          if ((int)pdVar16 < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar44 - dVar40) / dVar47;\n          if (dVar41 <= in_f20_21) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }\n        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;\n      }\n      else {\n        if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar44 - dVar40) / dVar47;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar40) {\n          dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n          if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar41;\n          if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar36 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar41 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar41;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar40 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar41 = (dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar41 < in_f20_21) {\n          uVar26 = (uint)dVar41;\n        }\n        else {\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar16 = pdVar5;\n        pdVar29 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26);\n        if (pdVar29 != (double *)0x0) {\n          piVar17 = (int *)param_1[6];\n          piVar48 = piVar17;\n          piVar19 = local_b8;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          piVar48 = piVar17;\n          piVar19 = local_110;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }\n          pdVar16 = pdVar5;\n          iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);\n          if (iVar10 == 0) {\n            param_1[10] = 0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n      unaff_s6 = (double *)puVar36;\n    }" { (expression_statement "in_f24_25 = (double)iVar3;" (assignment_expression "in_f24_25 = (double)iVar3" identifier = (cast_expression "(double)iVar3" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "pdVar29 = (double *)param_1[3];" (assignment_expression "pdVar29 = (double *)param_1[3]" identifier = (cast_expression "(double *)param_1[3]" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[3]" identifier [ number_literal ]))) ;) (expression_statement "in_f20_21 = *(double *)param_1[7];" (assignment_expression "in_f20_21 = *(double *)param_1[7]" identifier = (pointer_expression "*(double *)param_1[7]" * (cast_expression "(double *)param_1[7]" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[7]" identifier [ number_literal ])))) ;) (expression_statement "in_f28_29 = ((double *)param_1[7])[2];" (assignment_expression "in_f28_29 = ((double *)param_1[7])[2]" identifier = (subscript_expression "((double *)param_1[7])[2]" (parenthesized_expression "((double *)param_1[7])" ( (cast_expression "(double *)param_1[7]" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[7]" identifier [ number_literal ])) )) [ number_literal ])) ;) (expression_statement "dVar40 = in_f24_25 * pdVar29[2] + pdVar29[4];" (assignment_expression "dVar40 = in_f24_25 * pdVar29[2] + pdVar29[4]" identifier = (binary_expression "in_f24_25 * pdVar29[2] + pdVar29[4]" (binary_expression "in_f24_25 * pdVar29[2]" identifier * (subscript_expression "pdVar29[2]" identifier [ number_literal ])) + (subscript_expression "pdVar29[4]" identifier [ number_literal ]))) ;) (expression_statement "dVar47 = *pdVar29;" (assignment_expression "dVar47 = *pdVar29" identifier = (pointer_expression "*pdVar29" * identifier)) ;) (expression_statement "dVar41 = in_f28_29;" (assignment_expression "dVar41 = in_f28_29" identifier = identifier) ;) (if_statement "if (dVar39 <= dVar47) {\n        in_f22_23 = -dVar40 / dVar47;\n        if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }\n        dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n        if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }\n        dVar47 = (dVar44 - dVar40) / dVar47;\n        if (dVar47 < in_f28_29) {\n          dVar41 = dVar47;\n        }\nLAB_000a3890:\n        dVar40 = in_f24_25 * pdVar29[3] + pdVar29[5];\n        dVar47 = pdVar29[1];\n        if (*(double *)(puVar36 + 0x43c8) <= dVar47) {\n          dVar44 = -dVar40 / dVar47;\n          if (-dVar40 / dVar47 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = *(double **)(unaff_s7 + 0x1c);\n          dVar44 = (double)(int)pdVar16;\n          if ((int)pdVar16 < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar44 - dVar40) / dVar47;\n          if (dVar41 <= in_f20_21) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }\n        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;\n      }\n      else {\n        if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar44 - dVar40) / dVar47;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar40) {\n          dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n          if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar41;\n          if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar36 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar41 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar41;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar40 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar41 = (dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar41 < in_f20_21) {\n          uVar26 = (uint)dVar41;\n        }\n        else {\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar16 = pdVar5;\n        pdVar29 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26);\n        if (pdVar29 != (double *)0x0) {\n          piVar17 = (int *)param_1[6];\n          piVar48 = piVar17;\n          piVar19 = local_b8;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          piVar48 = piVar17;\n          piVar19 = local_110;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }\n          pdVar16 = pdVar5;\n          iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);\n          if (iVar10 == 0) {\n            param_1[10] = 0;\n          }\n        }\n      }" if (parenthesized_expression "(dVar39 <= dVar47)" ( (binary_expression "dVar39 <= dVar47" identifier <= identifier) )) (compound_statement "{\n        in_f22_23 = -dVar40 / dVar47;\n        if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }\n        dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n        if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }\n        dVar47 = (dVar44 - dVar40) / dVar47;\n        if (dVar47 < in_f28_29) {\n          dVar41 = dVar47;\n        }\nLAB_000a3890:\n        dVar40 = in_f24_25 * pdVar29[3] + pdVar29[5];\n        dVar47 = pdVar29[1];\n        if (*(double *)(puVar36 + 0x43c8) <= dVar47) {\n          dVar44 = -dVar40 / dVar47;\n          if (-dVar40 / dVar47 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = *(double **)(unaff_s7 + 0x1c);\n          dVar44 = (double)(int)pdVar16;\n          if ((int)pdVar16 < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar44 - dVar40) / dVar47;\n          if (dVar41 <= in_f20_21) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }\n        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;\n      }" { (expression_statement "in_f22_23 = -dVar40 / dVar47;" (assignment_expression "in_f22_23 = -dVar40 / dVar47" identifier = (binary_expression "-dVar40 / dVar47" (unary_expression "-dVar40" - identifier) / identifier)) ;) (if_statement "if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }" if (parenthesized_expression "(in_f22_23 <= in_f20_21)" ( (binary_expression "in_f22_23 <= in_f20_21" identifier <= identifier) )) (compound_statement "{\n          in_f22_23 = in_f20_21;\n        }" { (expression_statement "in_f22_23 = in_f20_21;" (assignment_expression "in_f22_23 = in_f20_21" identifier = identifier) ;) })) (expression_statement "dVar44 = (double)*(int *)(unaff_s7 + 0x18);" (assignment_expression "dVar44 = (double)*(int *)(unaff_s7 + 0x18)" identifier = (cast_expression "(double)*(int *)(unaff_s7 + 0x18)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(unaff_s7 + 0x18)" * (cast_expression "(int *)(unaff_s7 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x18)" ( (binary_expression "unaff_s7 + 0x18" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }" if (parenthesized_expression "(*(int *)(unaff_s7 + 0x18) < 0)" ( (binary_expression "*(int *)(unaff_s7 + 0x18) < 0" (pointer_expression "*(int *)(unaff_s7 + 0x18)" * (cast_expression "(int *)(unaff_s7 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x18)" ( (binary_expression "unaff_s7 + 0x18" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n          dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }" { (expression_statement "dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);" (assignment_expression "dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" identifier = (binary_expression "dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" identifier + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e8)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e8" identifier + number_literal) )))))) ;) })) (expression_statement "dVar47 = (dVar44 - dVar40) / dVar47;" (assignment_expression "dVar47 = (dVar44 - dVar40) / dVar47" identifier = (binary_expression "(dVar44 - dVar40) / dVar47" (parenthesized_expression "(dVar44 - dVar40)" ( (binary_expression "dVar44 - dVar40" identifier - identifier) )) / identifier)) ;) (if_statement "if (dVar47 < in_f28_29) {\n          dVar41 = dVar47;\n        }" if (parenthesized_expression "(dVar47 < in_f28_29)" ( (binary_expression "dVar47 < in_f28_29" identifier < identifier) )) (compound_statement "{\n          dVar41 = dVar47;\n        }" { (expression_statement "dVar41 = dVar47;" (assignment_expression "dVar41 = dVar47" identifier = identifier) ;) })) (labeled_statement "LAB_000a3890:\n        dVar40 = in_f24_25 * pdVar29[3] + pdVar29[5];" statement_identifier : (expression_statement "dVar40 = in_f24_25 * pdVar29[3] + pdVar29[5];" (assignment_expression "dVar40 = in_f24_25 * pdVar29[3] + pdVar29[5]" identifier = (binary_expression "in_f24_25 * pdVar29[3] + pdVar29[5]" (binary_expression "in_f24_25 * pdVar29[3]" identifier * (subscript_expression "pdVar29[3]" identifier [ number_literal ])) + (subscript_expression "pdVar29[5]" identifier [ number_literal ]))) ;)) (expression_statement "dVar47 = pdVar29[1];" (assignment_expression "dVar47 = pdVar29[1]" identifier = (subscript_expression "pdVar29[1]" identifier [ number_literal ])) ;) (if_statement "if (*(double *)(puVar36 + 0x43c8) <= dVar47) {\n          dVar44 = -dVar40 / dVar47;\n          if (-dVar40 / dVar47 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = *(double **)(unaff_s7 + 0x1c);\n          dVar44 = (double)(int)pdVar16;\n          if ((int)pdVar16 < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar44 - dVar40) / dVar47;\n          if (dVar41 <= in_f20_21) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }" if (parenthesized_expression "(*(double *)(puVar36 + 0x43c8) <= dVar47)" ( (binary_expression "*(double *)(puVar36 + 0x43c8) <= dVar47" (pointer_expression "*(double *)(puVar36 + 0x43c8)" * (cast_expression "(double *)(puVar36 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x43c8)" ( (binary_expression "puVar36 + 0x43c8" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n          dVar44 = -dVar40 / dVar47;\n          if (-dVar40 / dVar47 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = *(double **)(unaff_s7 + 0x1c);\n          dVar44 = (double)(int)pdVar16;\n          if ((int)pdVar16 < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar44 - dVar40) / dVar47;\n          if (dVar41 <= in_f20_21) {\n            in_f20_21 = dVar41;\n          }\n        }" { (expression_statement "dVar44 = -dVar40 / dVar47;" (assignment_expression "dVar44 = -dVar40 / dVar47" identifier = (binary_expression "-dVar40 / dVar47" (unary_expression "-dVar40" - identifier) / identifier)) ;) (if_statement "if (-dVar40 / dVar47 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }" if (parenthesized_expression "(-dVar40 / dVar47 <= in_f22_23)" ( (binary_expression "-dVar40 / dVar47 <= in_f22_23" (binary_expression "-dVar40 / dVar47" (unary_expression "-dVar40" - identifier) / identifier) <= identifier) )) (compound_statement "{\n            dVar44 = in_f22_23;\n          }" { (expression_statement "dVar44 = in_f22_23;" (assignment_expression "dVar44 = in_f22_23" identifier = identifier) ;) })) (expression_statement "in_f22_23 = dVar44;" (assignment_expression "in_f22_23 = dVar44" identifier = identifier) ;) (expression_statement "pdVar16 = *(double **)(unaff_s7 + 0x1c);" (assignment_expression "pdVar16 = *(double **)(unaff_s7 + 0x1c)" identifier = (pointer_expression "*(double **)(unaff_s7 + 0x1c)" * (cast_expression "(double **)(unaff_s7 + 0x1c)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s7 + 0x1c)" ( (binary_expression "unaff_s7 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "dVar44 = (double)(int)pdVar16;" (assignment_expression "dVar44 = (double)(int)pdVar16" identifier = (cast_expression "(double)(int)pdVar16" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)pdVar16 < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }" if (parenthesized_expression "((int)pdVar16 < 0)" ( (binary_expression "(int)pdVar16 < 0" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }" { (expression_statement "dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);" (assignment_expression "dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" identifier = (binary_expression "dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" identifier + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e8)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e8" identifier + number_literal) )))))) ;) (expression_statement "pdVar16 = (double *)PTR_LAB_003f98e0;" (assignment_expression "pdVar16 = (double *)PTR_LAB_003f98e0" identifier = (cast_expression "(double *)PTR_LAB_003f98e0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "in_f20_21 = (dVar44 - dVar40) / dVar47;" (assignment_expression "in_f20_21 = (dVar44 - dVar40) / dVar47" identifier = (binary_expression "(dVar44 - dVar40) / dVar47" (parenthesized_expression "(dVar44 - dVar40)" ( (binary_expression "dVar44 - dVar40" identifier - identifier) )) / identifier)) ;) (if_statement "if (dVar41 <= in_f20_21) {\n            in_f20_21 = dVar41;\n          }" if (parenthesized_expression "(dVar41 <= in_f20_21)" ( (binary_expression "dVar41 <= in_f20_21" identifier <= identifier) )) (compound_statement "{\n            in_f20_21 = dVar41;\n          }" { (expression_statement "in_f20_21 = dVar41;" (assignment_expression "in_f20_21 = dVar41" identifier = identifier) ;) })) }) (else_clause "else if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }" else (if_statement "if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }" if (parenthesized_expression "(dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8))" ( (binary_expression "dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)" identifier < (pointer_expression "*(double *)(PTR_UINT_003f98e4 + 0x65b8)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + 0x65b8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + 0x65b8)" ( (binary_expression "PTR_UINT_003f98e4 + 0x65b8" identifier + number_literal) ))))) )) (compound_statement "{\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }" { (expression_statement "dVar44 = (double)*(int *)(unaff_s7 + 0x1c);" (assignment_expression "dVar44 = (double)*(int *)(unaff_s7 + 0x1c)" identifier = (cast_expression "(double)*(int *)(unaff_s7 + 0x1c)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(unaff_s7 + 0x1c)" * (cast_expression "(int *)(unaff_s7 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x1c)" ( (binary_expression "unaff_s7 + 0x1c" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }" if (parenthesized_expression "(*(int *)(unaff_s7 + 0x1c) < 0)" ( (binary_expression "*(int *)(unaff_s7 + 0x1c) < 0" (pointer_expression "*(int *)(unaff_s7 + 0x1c)" * (cast_expression "(int *)(unaff_s7 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x1c)" ( (binary_expression "unaff_s7 + 0x1c" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }" { (expression_statement "dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);" (assignment_expression "dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" identifier = (binary_expression "dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" identifier + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e8)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e8" identifier + number_literal) )))))) ;) })) (expression_statement "dVar44 = (dVar44 - dVar40) / dVar47;" (assignment_expression "dVar44 = (dVar44 - dVar40) / dVar47" identifier = (binary_expression "(dVar44 - dVar40) / dVar47" (parenthesized_expression "(dVar44 - dVar40)" ( (binary_expression "dVar44 - dVar40" identifier - identifier) )) / identifier)) ;) (if_statement "if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }" if (parenthesized_expression "(dVar44 <= in_f22_23)" ( (binary_expression "dVar44 <= in_f22_23" identifier <= identifier) )) (compound_statement "{\n            dVar44 = in_f22_23;\n          }" { (expression_statement "dVar44 = in_f22_23;" (assignment_expression "dVar44 = in_f22_23" identifier = identifier) ;) })) (expression_statement "in_f22_23 = dVar44;" (assignment_expression "in_f22_23 = dVar44" identifier = identifier) ;) (expression_statement "pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);" (assignment_expression "pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000)" identifier = (cast_expression "(double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000)" ( (binary_expression "(uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000" (call_expression "(uint)((ulonglong)dVar40 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)dVar40 >> 0x20)" ( (binary_expression "(ulonglong)dVar40 >> 0x20" (cast_expression "(ulonglong)dVar40" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) ^ number_literal) )))) ;) (expression_statement "in_f20_21 = -dVar40 / dVar47;" (assignment_expression "in_f20_21 = -dVar40 / dVar47" identifier = (binary_expression "-dVar40 / dVar47" (unary_expression "-dVar40" - identifier) / identifier)) ;) (if_statement "if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }" if (parenthesized_expression "(dVar41 <= -dVar40 / dVar47)" ( (binary_expression "dVar41 <= -dVar40 / dVar47" identifier <= (binary_expression "-dVar40 / dVar47" (unary_expression "-dVar40" - identifier) / identifier)) )) (compound_statement "{\n            in_f20_21 = dVar41;\n          }" { (expression_statement "in_f20_21 = dVar41;" (assignment_expression "in_f20_21 = dVar41" identifier = identifier) ;) })) }) (else_clause "else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }" else (compound_statement "{\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }" { (expression_statement "pdVar16 = (double *)puVar36;" (assignment_expression "pdVar16 = (double *)puVar36" identifier = (cast_expression "(double *)puVar36" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "in_f20_21 = in_f28_29;" (assignment_expression "in_f20_21 = in_f28_29" identifier = identifier) ;) (if_statement "if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }" if (parenthesized_expression "(0.0 <= dVar40)" ( (binary_expression "0.0 <= dVar40" number_literal <= identifier) )) (compound_statement "{\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }" { (expression_statement "dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));" (assignment_expression "dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0))" identifier = (cast_expression "(double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0))" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0))" (parenthesized_expression "(*(code *)PTR_floor_003fa688)" ( (pointer_expression "*(code *)PTR_floor_003fa688" * (cast_expression "(code *)PTR_floor_003fa688" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar40 + *(double *)(puVar36 + 0x43d0))" ( (binary_expression "dVar40 + *(double *)(puVar36 + 0x43d0)" identifier + (pointer_expression "*(double *)(puVar36 + 0x43d0)" * (cast_expression "(double *)(puVar36 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x43d0)" ( (binary_expression "puVar36 + 0x43d0" identifier + number_literal) ))))) ))))) ;) (if_statement "if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }" if (parenthesized_expression "(dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0))" ( (binary_expression "dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier < (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) ))))) )) (compound_statement "{\n              uVar26 = (uint)dVar40;\n            }" { (expression_statement "uVar26 = (uint)dVar40;" (assignment_expression "uVar26 = (uint)dVar40" identifier = (cast_expression "(uint)dVar40" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }" else (compound_statement "{\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }" { (expression_statement "uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;" (assignment_expression "uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000" identifier = (binary_expression "(int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000" (cast_expression "(int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0))" ( (binary_expression "dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier - (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "in_f20_21 = dVar41;" (assignment_expression "in_f20_21 = dVar41" identifier = identifier) ;) (if_statement "if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }" if (parenthesized_expression "(*(uint *)(unaff_s7 + 0x1c) <= uVar26)" ( (binary_expression "*(uint *)(unaff_s7 + 0x1c) <= uVar26" (pointer_expression "*(uint *)(unaff_s7 + 0x1c)" * (cast_expression "(uint *)(unaff_s7 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x1c)" ( (binary_expression "unaff_s7 + 0x1c" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n              in_f20_21 = in_f28_29;\n            }" { (expression_statement "in_f20_21 = in_f28_29;" (assignment_expression "in_f20_21 = in_f28_29" identifier = identifier) ;) })) })) }))))) (if_statement "if (in_f22_23 <= in_f20_21) goto LAB_000a3938;" if (parenthesized_expression "(in_f22_23 <= in_f20_21)" ( (binary_expression "in_f22_23 <= in_f20_21" identifier <= identifier) )) (goto_statement "goto LAB_000a3938;" goto statement_identifier ;)) }) (else_clause "else {\n        if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar44 - dVar40) / dVar47;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar40) {\n          dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n          if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar41;\n          if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar36 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar41 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar41;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar40 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar41 = (dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar41 < in_f20_21) {\n          uVar26 = (uint)dVar41;\n        }\n        else {\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar16 = pdVar5;\n        pdVar29 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26);\n        if (pdVar29 != (double *)0x0) {\n          piVar17 = (int *)param_1[6];\n          piVar48 = piVar17;\n          piVar19 = local_b8;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          piVar48 = piVar17;\n          piVar19 = local_110;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }\n          pdVar16 = pdVar5;\n          iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);\n          if (iVar10 == 0) {\n            param_1[10] = 0;\n          }\n        }\n      }" else (compound_statement "{\n        if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar44 - dVar40) / dVar47;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar40) {\n          dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n          if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar41;\n          if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar36 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar41 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar41;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar40 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar41 = (dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar41 < in_f20_21) {\n          uVar26 = (uint)dVar41;\n        }\n        else {\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar16 = pdVar5;\n        pdVar29 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26);\n        if (pdVar29 != (double *)0x0) {\n          piVar17 = (int *)param_1[6];\n          piVar48 = piVar17;\n          piVar19 = local_b8;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          piVar48 = piVar17;\n          piVar19 = local_110;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }\n          pdVar16 = pdVar5;\n          iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);\n          if (iVar10 == 0) {\n            param_1[10] = 0;\n          }\n        }\n      }" { (if_statement "if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar44 - dVar40) / dVar47;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }\n          goto LAB_000a3890;\n        }" if (parenthesized_expression "(dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8))" ( (binary_expression "dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)" identifier < (pointer_expression "*(double *)(PTR_UINT_003f98e4 + 0x65b8)" * (cast_expression "(double *)(PTR_UINT_003f98e4 + 0x65b8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_003f98e4 + 0x65b8)" ( (binary_expression "PTR_UINT_003f98e4 + 0x65b8" identifier + number_literal) ))))) )) (compound_statement "{\n          dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar44 - dVar40) / dVar47;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }\n          goto LAB_000a3890;\n        }" { (expression_statement "dVar44 = (double)*(int *)(unaff_s7 + 0x18);" (assignment_expression "dVar44 = (double)*(int *)(unaff_s7 + 0x18)" identifier = (cast_expression "(double)*(int *)(unaff_s7 + 0x18)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(unaff_s7 + 0x18)" * (cast_expression "(int *)(unaff_s7 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x18)" ( (binary_expression "unaff_s7 + 0x18" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }" if (parenthesized_expression "(*(int *)(unaff_s7 + 0x18) < 0)" ( (binary_expression "*(int *)(unaff_s7 + 0x18) < 0" (pointer_expression "*(int *)(unaff_s7 + 0x18)" * (cast_expression "(int *)(unaff_s7 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x18)" ( (binary_expression "unaff_s7 + 0x18" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }" { (expression_statement "dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);" (assignment_expression "dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" identifier = (binary_expression "dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" identifier + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e8)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e8" identifier + number_literal) )))))) ;) })) (expression_statement "in_f22_23 = (dVar44 - dVar40) / dVar47;" (assignment_expression "in_f22_23 = (dVar44 - dVar40) / dVar47" identifier = (binary_expression "(dVar44 - dVar40) / dVar47" (parenthesized_expression "(dVar44 - dVar40)" ( (binary_expression "dVar44 - dVar40" identifier - identifier) )) / identifier)) ;) (if_statement "if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }" if (parenthesized_expression "(in_f22_23 <= in_f20_21)" ( (binary_expression "in_f22_23 <= in_f20_21" identifier <= identifier) )) (compound_statement "{\n            in_f22_23 = in_f20_21;\n          }" { (expression_statement "in_f22_23 = in_f20_21;" (assignment_expression "in_f22_23 = in_f20_21" identifier = identifier) ;) })) (if_statement "if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }" if (parenthesized_expression "(-dVar40 / dVar47 < in_f28_29)" ( (binary_expression "-dVar40 / dVar47 < in_f28_29" (binary_expression "-dVar40 / dVar47" (unary_expression "-dVar40" - identifier) / identifier) < identifier) )) (compound_statement "{\n            dVar41 = -dVar40 / dVar47;\n          }" { (expression_statement "dVar41 = -dVar40 / dVar47;" (assignment_expression "dVar41 = -dVar40 / dVar47" identifier = (binary_expression "-dVar40 / dVar47" (unary_expression "-dVar40" - identifier) / identifier)) ;) })) (goto_statement "goto LAB_000a3890;" goto statement_identifier ;) })) (expression_statement "in_f22_23 = in_f20_21;" (assignment_expression "in_f22_23 = in_f20_21" identifier = identifier) ;) (if_statement "if (0.0 <= dVar40) {\n          dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n          if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar41;\n          if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }" if (parenthesized_expression "(0.0 <= dVar40)" ( (binary_expression "0.0 <= dVar40" number_literal <= identifier) )) (compound_statement "{\n          dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n          if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar41;\n          if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }" { (expression_statement "dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));" (assignment_expression "dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0))" identifier = (cast_expression "(double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0))" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0))" (parenthesized_expression "(*(code *)PTR_floor_003fa688)" ( (pointer_expression "*(code *)PTR_floor_003fa688" * (cast_expression "(code *)PTR_floor_003fa688" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar40 + *(double *)(puVar36 + 0x43d0))" ( (binary_expression "dVar40 + *(double *)(puVar36 + 0x43d0)" identifier + (pointer_expression "*(double *)(puVar36 + 0x43d0)" * (cast_expression "(double *)(puVar36 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x43d0)" ( (binary_expression "puVar36 + 0x43d0" identifier + number_literal) ))))) ))))) ;) (if_statement "if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }" if (parenthesized_expression "(dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0))" ( (binary_expression "dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier < (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) ))))) )) (compound_statement "{\n            uVar26 = (uint)dVar40;\n          }" { (expression_statement "uVar26 = (uint)dVar40;" (assignment_expression "uVar26 = (uint)dVar40" identifier = (cast_expression "(uint)dVar40" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }" else (compound_statement "{\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }" { (expression_statement "uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;" (assignment_expression "uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000" identifier = (binary_expression "(int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000" (cast_expression "(int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0))" ( (binary_expression "dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier - (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "in_f22_23 = in_f20_21;" (assignment_expression "in_f22_23 = in_f20_21" identifier = identifier) ;) (expression_statement "in_f28_29 = dVar41;" (assignment_expression "in_f28_29 = dVar41" identifier = identifier) ;) (if_statement "if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;" if (parenthesized_expression "(uVar26 < *(uint *)(unaff_s7 + 0x18))" ( (binary_expression "uVar26 < *(uint *)(unaff_s7 + 0x18)" identifier < (pointer_expression "*(uint *)(unaff_s7 + 0x18)" * (cast_expression "(uint *)(unaff_s7 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x18)" ( (binary_expression "unaff_s7 + 0x18" identifier + number_literal) ))))) )) (goto_statement "goto LAB_000a3890;" goto statement_identifier ;)) })) (labeled_statement "LAB_000a3938:\n        in_f28_29 = *(double *)(puVar36 + 0x43d0);" statement_identifier : (expression_statement "in_f28_29 = *(double *)(puVar36 + 0x43d0);" (assignment_expression "in_f28_29 = *(double *)(puVar36 + 0x43d0)" identifier = (pointer_expression "*(double *)(puVar36 + 0x43d0)" * (cast_expression "(double *)(puVar36 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x43d0)" ( (binary_expression "puVar36 + 0x43d0" identifier + number_literal) ))))) ;)) (expression_statement "in_f22_23 = in_f22_23 - in_f28_29;" (assignment_expression "in_f22_23 = in_f22_23 - in_f28_29" identifier = (binary_expression "in_f22_23 - in_f28_29" identifier - identifier)) ;) (expression_statement "dVar41 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);" (assignment_expression "dVar41 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23)" identifier = (cast_expression "(double)(*(code *)PTR_ceil_003f9c38)(in_f22_23)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_ceil_003f9c38)(in_f22_23)" (parenthesized_expression "(*(code *)PTR_ceil_003f9c38)" ( (pointer_expression "*(code *)PTR_ceil_003f9c38" * (cast_expression "(code *)PTR_ceil_003f9c38" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(in_f22_23)" ( identifier ))))) ;) (expression_statement "unaff_s2 = (int)dVar41;" (assignment_expression "unaff_s2 = (int)dVar41" identifier = (cast_expression "(int)dVar41" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "in_f28_29 = in_f20_21 + in_f28_29;" (assignment_expression "in_f28_29 = in_f20_21 + in_f28_29" identifier = (binary_expression "in_f20_21 + in_f28_29" identifier + identifier)) ;) (expression_statement "dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);" (assignment_expression "dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29)" identifier = (cast_expression "(double)(*(code *)PTR_floor_003fa688)(in_f28_29)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_floor_003fa688)(in_f28_29)" (parenthesized_expression "(*(code *)PTR_floor_003fa688)" ( (pointer_expression "*(code *)PTR_floor_003fa688" * (cast_expression "(code *)PTR_floor_003fa688" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(in_f28_29)" ( identifier ))))) ;) (expression_statement "dVar40 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);" (assignment_expression "dVar40 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23)" identifier = (cast_expression "(double)(*(code *)PTR_ceil_003f9c38)(in_f22_23)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_ceil_003f9c38)(in_f22_23)" (parenthesized_expression "(*(code *)PTR_ceil_003f9c38)" ( (pointer_expression "*(code *)PTR_ceil_003f9c38" * (cast_expression "(code *)PTR_ceil_003f9c38" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(in_f22_23)" ( identifier ))))) ;) (expression_statement "dVar41 = (dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408);" (assignment_expression "dVar41 = (dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408)" identifier = (binary_expression "(dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408)" (parenthesized_expression "(dVar41 - dVar40)" ( (binary_expression "dVar41 - dVar40" identifier - identifier) )) + (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4408)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4408)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4408" identifier + number_literal) )))))) ;) (expression_statement "in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);" (assignment_expression "in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" ( (binary_expression "PTR_LAB_003f98e0 + 0x43e0" identifier + number_literal) ))))) ;) (if_statement "if (dVar41 < in_f20_21) {\n          uVar26 = (uint)dVar41;\n        }\n        else {\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }" if (parenthesized_expression "(dVar41 < in_f20_21)" ( (binary_expression "dVar41 < in_f20_21" identifier < identifier) )) (compound_statement "{\n          uVar26 = (uint)dVar41;\n        }" { (expression_statement "uVar26 = (uint)dVar41;" (assignment_expression "uVar26 = (uint)dVar41" identifier = (cast_expression "(uint)dVar41" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }" else (compound_statement "{\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }" { (expression_statement "uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;" (assignment_expression "uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000" identifier = (binary_expression "(int)(dVar41 - in_f20_21) | 0x80000000" (cast_expression "(int)(dVar41 - in_f20_21)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar41 - in_f20_21)" ( (binary_expression "dVar41 - in_f20_21" identifier - identifier) ))) | number_literal)) ;) }))) (expression_statement "local_178 = (double)CONCAT44(1,unaff_s4);" (assignment_expression "local_178 = (double)CONCAT44(1,unaff_s4)" identifier = (cast_expression "(double)CONCAT44(1,unaff_s4)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(1,unaff_s4)" identifier (argument_list "(1,unaff_s4)" ( number_literal , identifier ))))) ;) (expression_statement "pdVar16 = pdVar5;" (assignment_expression "pdVar16 = pdVar5" identifier = identifier) ;) (expression_statement "pdVar29 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26);" (assignment_expression "pdVar29 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26)" identifier = (cast_expression "(double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26)" (parenthesized_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)" ( (pointer_expression "*(code *)PTR_GetCacheViewAuthenticPixels_003fa664" * (cast_expression "(code *)PTR_GetCacheViewAuthenticPixels_003fa664" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pdVar5,unaff_s2,iVar3,uVar26)" ( identifier , identifier , identifier , identifier ))))) ;) (if_statement "if (pdVar29 != (double *)0x0) {\n          piVar17 = (int *)param_1[6];\n          piVar48 = piVar17;\n          piVar19 = local_b8;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          piVar48 = piVar17;\n          piVar19 = local_110;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }\n          pdVar16 = pdVar5;\n          iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);\n          if (iVar10 == 0) {\n            param_1[10] = 0;\n          }\n        }" if (parenthesized_expression "(pdVar29 != (double *)0x0)" ( (binary_expression "pdVar29 != (double *)0x0" identifier != (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          piVar17 = (int *)param_1[6];\n          piVar48 = piVar17;\n          piVar19 = local_b8;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          piVar48 = piVar17;\n          piVar19 = local_110;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }\n          pdVar16 = pdVar5;\n          iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);\n          if (iVar10 == 0) {\n            param_1[10] = 0;\n          }\n        }" { (expression_statement "piVar17 = (int *)param_1[6];" (assignment_expression "piVar17 = (int *)param_1[6]" identifier = (cast_expression "(int *)param_1[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[6]" identifier [ number_literal ]))) ;) (expression_statement "piVar48 = piVar17;" (assignment_expression "piVar48 = piVar17" identifier = identifier) ;) (expression_statement "piVar19 = local_b8;" (assignment_expression "piVar19 = local_b8" identifier = identifier) ;) (do_statement "do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);" do (compound_statement "{\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          }" { (expression_statement "piVar11 = piVar19;" (assignment_expression "piVar11 = piVar19" identifier = identifier) ;) (expression_statement "piVar7 = piVar48;" (assignment_expression "piVar7 = piVar48" identifier = identifier) ;) (expression_statement "iVar28 = piVar7[1];" (assignment_expression "iVar28 = piVar7[1]" identifier = (subscript_expression "piVar7[1]" identifier [ number_literal ])) ;) (expression_statement "iVar49 = piVar7[2];" (assignment_expression "iVar49 = piVar7[2]" identifier = (subscript_expression "piVar7[2]" identifier [ number_literal ])) ;) (expression_statement "iVar10 = piVar7[3];" (assignment_expression "iVar10 = piVar7[3]" identifier = (subscript_expression "piVar7[3]" identifier [ number_literal ])) ;) (expression_statement "*piVar11 = *piVar7;" (assignment_expression "*piVar11 = *piVar7" (pointer_expression "*piVar11" * identifier) = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "piVar11[1] = iVar28;" (assignment_expression "piVar11[1] = iVar28" (subscript_expression "piVar11[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar11[2] = iVar49;" (assignment_expression "piVar11[2] = iVar49" (subscript_expression "piVar11[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar11[3] = iVar10;" (assignment_expression "piVar11[3] = iVar10" (subscript_expression "piVar11[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar48 = piVar7 + 4;" (assignment_expression "piVar48 = piVar7 + 4" identifier = (binary_expression "piVar7 + 4" identifier + number_literal)) ;) (expression_statement "piVar19 = piVar11 + 4;" (assignment_expression "piVar19 = piVar11 + 4" identifier = (binary_expression "piVar11 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar48 != piVar17 + 0x14)" ( (binary_expression "piVar48 != piVar17 + 0x14" identifier != (binary_expression "piVar17 + 0x14" identifier + number_literal)) )) ;) (expression_statement "iVar10 = piVar7[5];" (assignment_expression "iVar10 = piVar7[5]" identifier = (subscript_expression "piVar7[5]" identifier [ number_literal ])) ;) (expression_statement "piVar11[4] = *piVar48;" (assignment_expression "piVar11[4] = *piVar48" (subscript_expression "piVar11[4]" identifier [ number_literal ]) = (pointer_expression "*piVar48" * identifier)) ;) (expression_statement "piVar11[5] = iVar10;" (assignment_expression "piVar11[5] = iVar10" (subscript_expression "piVar11[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar48 = piVar17;" (assignment_expression "piVar48 = piVar17" identifier = identifier) ;) (expression_statement "piVar19 = local_110;" (assignment_expression "piVar19 = local_110" identifier = identifier) ;) (do_statement "do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);" do (compound_statement "{\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          }" { (expression_statement "piVar11 = piVar19;" (assignment_expression "piVar11 = piVar19" identifier = identifier) ;) (expression_statement "piVar7 = piVar48;" (assignment_expression "piVar7 = piVar48" identifier = identifier) ;) (expression_statement "iVar28 = piVar7[1];" (assignment_expression "iVar28 = piVar7[1]" identifier = (subscript_expression "piVar7[1]" identifier [ number_literal ])) ;) (expression_statement "iVar49 = piVar7[2];" (assignment_expression "iVar49 = piVar7[2]" identifier = (subscript_expression "piVar7[2]" identifier [ number_literal ])) ;) (expression_statement "iVar10 = piVar7[3];" (assignment_expression "iVar10 = piVar7[3]" identifier = (subscript_expression "piVar7[3]" identifier [ number_literal ])) ;) (expression_statement "*piVar11 = *piVar7;" (assignment_expression "*piVar11 = *piVar7" (pointer_expression "*piVar11" * identifier) = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "piVar11[1] = iVar28;" (assignment_expression "piVar11[1] = iVar28" (subscript_expression "piVar11[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar11[2] = iVar49;" (assignment_expression "piVar11[2] = iVar49" (subscript_expression "piVar11[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar11[3] = iVar10;" (assignment_expression "piVar11[3] = iVar10" (subscript_expression "piVar11[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar48 = piVar7 + 4;" (assignment_expression "piVar48 = piVar7 + 4" identifier = (binary_expression "piVar7 + 4" identifier + number_literal)) ;) (expression_statement "piVar19 = piVar11 + 4;" (assignment_expression "piVar19 = piVar11 + 4" identifier = (binary_expression "piVar11 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar48 != piVar17 + 0x14)" ( (binary_expression "piVar48 != piVar17 + 0x14" identifier != (binary_expression "piVar17 + 0x14" identifier + number_literal)) )) ;) (expression_statement "iVar10 = piVar7[5];" (assignment_expression "iVar10 = piVar7[5]" identifier = (subscript_expression "piVar7[5]" identifier [ number_literal ])) ;) (expression_statement "piVar11[4] = *piVar48;" (assignment_expression "piVar11[4] = *piVar48" (subscript_expression "piVar11[4]" identifier [ number_literal ]) = (pointer_expression "*piVar48" * identifier)) ;) (expression_statement "piVar11[5] = iVar10;" (assignment_expression "piVar11[5] = iVar10" (subscript_expression "piVar11[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);" (assignment_expression "dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29)" identifier = (cast_expression "(double)(*(code *)PTR_floor_003fa688)(in_f28_29)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_floor_003fa688)(in_f28_29)" (parenthesized_expression "(*(code *)PTR_floor_003fa688)" ( (pointer_expression "*(code *)PTR_floor_003fa688" * (cast_expression "(code *)PTR_floor_003fa688" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(in_f28_29)" ( identifier ))))) ;) (expression_statement "unaff_s3 = (double *)PTR_LAB_003f98e0;" (assignment_expression "unaff_s3 = (double *)PTR_LAB_003f98e0" identifier = (cast_expression "(double *)PTR_LAB_003f98e0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);" (assignment_expression "in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4418)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4418)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4418" identifier + number_literal) ))))) ;) (expression_statement "in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);" (assignment_expression "in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408)" identifier = (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4408)" * (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4408)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4408" identifier + number_literal) ))))) ;) (for_statement "for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }" for ( ; (binary_expression "unaff_s2 <= (int)dVar41" identifier <= (cast_expression "(int)dVar41" ( (type_descriptor "int" primitive_type) ) identifier)) ; (assignment_expression "unaff_s2 = unaff_s2 + 1" identifier = (binary_expression "unaff_s2 + 1" identifier + number_literal)) ) (compound_statement "{\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }" { (expression_statement "pdVar16 = (double *)param_1[3];" (assignment_expression "pdVar16 = (double *)param_1[3]" identifier = (cast_expression "(double *)param_1[3]" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[3]" identifier [ number_literal ]))) ;) (expression_statement "local_168 = local_b8;" (assignment_expression "local_168 = local_b8" identifier = identifier) ;) (expression_statement "local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];" (assignment_expression "local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5]" identifier = (binary_expression "(double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5]" (binary_expression "(double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3]" (binary_expression "(double)unaff_s2 * pdVar16[1]" (cast_expression "(double)unaff_s2" ( (type_descriptor "double" primitive_type) ) identifier) * (subscript_expression "pdVar16[1]" identifier [ number_literal ])) + (binary_expression "in_f24_25 * pdVar16[3]" identifier * (subscript_expression "pdVar16[3]" identifier [ number_literal ]))) + (subscript_expression "pdVar16[5]" identifier [ number_literal ]))) ;) (expression_statement "local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];" (assignment_expression "local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4]" identifier = (binary_expression "(double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4]" (binary_expression "(double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2]" (binary_expression "(double)unaff_s2 * *pdVar16" (cast_expression "(double)unaff_s2" ( (type_descriptor "double" primitive_type) ) identifier) * (pointer_expression "*pdVar16" * identifier)) + (binary_expression "in_f24_25 * pdVar16[2]" identifier * (subscript_expression "pdVar16[2]" identifier [ number_literal ]))) + (subscript_expression "pdVar16[4]" identifier [ number_literal ]))) ;) (expression_statement "local_164 = unaff_s4;" (assignment_expression "local_164 = unaff_s4" identifier = identifier) ;) (expression_statement "iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);" (assignment_expression "iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0)" identifier = (call_expression "(*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0)" (parenthesized_expression "(*(code *)PTR_InterpolatePixelInfo_003fa0a4)" ( (pointer_expression "*(code *)PTR_InterpolatePixelInfo_003fa0a4" * (cast_expression "(code *)PTR_InterpolatePixelInfo_003fa0a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s7,uVar4,0)" ( identifier , identifier , number_literal )))) ;) (expression_statement "param_1[10] = iVar10;" (assignment_expression "param_1[10] = iVar10" (subscript_expression "param_1[10]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "(*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);" (call_expression "(*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58)" (parenthesized_expression "(*(code *)PTR_ResetMagickMemory_003fa00c)" ( (pointer_expression "*(code *)PTR_ResetMagickMemory_003fa00c" * (cast_expression "(code *)PTR_ResetMagickMemory_003fa00c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_110,0,0x58)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "local_110[0] = 1;" (assignment_expression "local_110[0] = 1" (subscript_expression "local_110[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_110[1] = 0x17;" (assignment_expression "local_110[1] = 0x17" (subscript_expression "local_110[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_f8 = 0x10;" (assignment_expression "local_f8 = 0x10" identifier = number_literal) ;) (expression_statement "local_110[2] = 0;" (assignment_expression "local_110[2] = 0" (subscript_expression "local_110[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_c8 = in_f30_31;" (assignment_expression "local_c8 = in_f30_31" identifier = identifier) ;) (if_statement "if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }" if (parenthesized_expression "(piVar2 != (int *)0x0)" ( (binary_expression "piVar2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }" { (expression_statement "local_110[0] = *piVar2;" (assignment_expression "local_110[0] = *piVar2" (subscript_expression "local_110[0]" identifier [ number_literal ]) = (pointer_expression "*piVar2" * identifier)) ;) (expression_statement "local_110[1] = piVar2[1];" (assignment_expression "local_110[1] = piVar2[1]" (subscript_expression "local_110[1]" identifier [ number_literal ]) = (subscript_expression "piVar2[1]" identifier [ number_literal ])) ;) (expression_statement "local_100 = *(undefined8 *)(piVar2 + 0x92);" (assignment_expression "local_100 = *(undefined8 *)(piVar2 + 0x92)" identifier = (pointer_expression "*(undefined8 *)(piVar2 + 0x92)" * (cast_expression "(undefined8 *)(piVar2 + 0x92)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar2 + 0x92)" ( (binary_expression "piVar2 + 0x92" identifier + number_literal) ))))) ;) (expression_statement "local_f8 = piVar2[8];" (assignment_expression "local_f8 = piVar2[8]" identifier = (subscript_expression "piVar2[8]" identifier [ number_literal ])) ;) (expression_statement "local_110[2] = piVar2[0xaf];" (assignment_expression "local_110[2] = piVar2[0xaf]" (subscript_expression "local_110[2]" identifier [ number_literal ]) = (subscript_expression "piVar2[0xaf]" identifier [ number_literal ])) ;) (if_statement "if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }" if (parenthesized_expression "(pdVar29 != (double *)0x0)" ( (binary_expression "pdVar29 != (double *)0x0" identifier != (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }" { (expression_statement "iVar10 = piVar2[0xb4];" (assignment_expression "iVar10 = piVar2[0xb4]" identifier = (subscript_expression "piVar2[0xb4]" identifier [ number_literal ])) ;) (expression_statement "local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);" (assignment_expression "local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4)" identifier = (cast_expression "(double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4)" * (cast_expression "(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + *(int *)(iVar10 + 8) * 4)" ( (binary_expression "(int)pdVar29 + *(int *)(iVar10 + 8) * 4" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar10 + 8) * 4" (pointer_expression "*(int *)(iVar10 + 8)" * (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);" (assignment_expression "local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4)" identifier = (cast_expression "(double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4)" * (cast_expression "(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4)" ( (binary_expression "(int)pdVar29 + *(int *)(iVar10 + 0x14) * 4" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar10 + 0x14) * 4" (pointer_expression "*(int *)(iVar10 + 0x14)" * (cast_expression "(int *)(iVar10 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);" (assignment_expression "local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4)" identifier = (cast_expression "(double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4)" * (cast_expression "(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4)" ( (binary_expression "(int)pdVar29 + *(int *)(iVar10 + 0x20) * 4" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar10 + 0x20) * 4" (pointer_expression "*(int *)(iVar10 + 0x20)" * (cast_expression "(int *)(iVar10 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x20)" ( (binary_expression "iVar10 + 0x20" identifier + number_literal) )))) * number_literal)) )))))) ;) (if_statement "if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }" if (parenthesized_expression "(*(int *)(iVar10 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x28) != 0" (pointer_expression "*(int *)(iVar10 + 0x28)" * (cast_expression "(int *)(iVar10 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x28)" ( (binary_expression "iVar10 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }" { (expression_statement "local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);" (assignment_expression "local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4)" identifier = (cast_expression "(double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4)" * (cast_expression "(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4)" ( (binary_expression "(int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar10 + 0x2c) * 4" (pointer_expression "*(int *)(iVar10 + 0x2c)" * (cast_expression "(int *)(iVar10 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x2c)" ( (binary_expression "iVar10 + 0x2c" identifier + number_literal) )))) * number_literal)) )))))) ;) })) (if_statement "if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }" if (parenthesized_expression "(*(int *)(iVar10 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x34) != 0" (pointer_expression "*(int *)(iVar10 + 0x34)" * (cast_expression "(int *)(iVar10 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x34)" ( (binary_expression "iVar10 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }" { (expression_statement "local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);" (assignment_expression "local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4)" identifier = (cast_expression "(double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4)" * (cast_expression "(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4)" ( (binary_expression "(int)pdVar29 + *(int *)(iVar10 + 0x38) * 4" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar10 + 0x38) * 4" (pointer_expression "*(int *)(iVar10 + 0x38)" * (cast_expression "(int *)(iVar10 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x38)" ( (binary_expression "iVar10 + 0x38" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "local_110[2] = 4;" (assignment_expression "local_110[2] = 4" (subscript_expression "local_110[2]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }" if (parenthesized_expression "(*(int *)(iVar10 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x40) != 0" (pointer_expression "*(int *)(iVar10 + 0x40)" * (cast_expression "(int *)(iVar10 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x40)" ( (binary_expression "iVar10 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }" { (expression_statement "local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);" (assignment_expression "local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4)" identifier = (cast_expression "(double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4)" * (cast_expression "(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4)" ( (binary_expression "(int)pdVar29 + *(int *)(iVar10 + 0x44) * 4" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar10 + 0x44) * 4" (pointer_expression "*(int *)(iVar10 + 0x44)" * (cast_expression "(int *)(iVar10 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x44)" ( (binary_expression "iVar10 + 0x44" identifier + number_literal) )))) * number_literal)) )))))) ;) })) })) })) (expression_statement "dVar40 = local_70 * in_f26_27;" (assignment_expression "dVar40 = local_70 * in_f26_27" identifier = (binary_expression "local_70 * in_f26_27" identifier * identifier)) ;) (expression_statement "dVar47 = local_c8 * in_f26_27;" (assignment_expression "dVar47 = local_c8 * in_f26_27" identifier = (binary_expression "local_c8 * in_f26_27" identifier * identifier)) ;) (expression_statement "dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;" (assignment_expression "dVar44 = (dVar40 + dVar47) - dVar40 * dVar47" identifier = (binary_expression "(dVar40 + dVar47) - dVar40 * dVar47" (parenthesized_expression "(dVar40 + dVar47)" ( (binary_expression "dVar40 + dVar47" identifier + identifier) )) - (binary_expression "dVar40 * dVar47" identifier * identifier))) ;) (if_statement "if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }" if (parenthesized_expression "(0.0 <= dVar44)" ( (binary_expression "0.0 <= dVar44" number_literal <= identifier) )) (compound_statement "{\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }" { (expression_statement "local_c8 = dVar44;" (assignment_expression "local_c8 = dVar44" identifier = identifier) ;) (if_statement "if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }" if (parenthesized_expression "(in_f20_21 < dVar44)" ( (binary_expression "in_f20_21 < dVar44" identifier < identifier) )) (compound_statement "{\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }" { (expression_statement "local_c8 = *(double *)((int)unaff_s3 + 0x4408);" (assignment_expression "local_c8 = *(double *)((int)unaff_s3 + 0x4408)" identifier = (pointer_expression "*(double *)((int)unaff_s3 + 0x4408)" * (cast_expression "(double *)((int)unaff_s3 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s3 + 0x4408)" ( (binary_expression "(int)unaff_s3 + 0x4408" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) })) (expression_statement "local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);" (assignment_expression "local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48)" identifier = (binary_expression "local_c8 * *(double *)(puVar36 + 0x4a48)" identifier * (pointer_expression "*(double *)(puVar36 + 0x4a48)" * (cast_expression "(double *)(puVar36 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x4a48)" ( (binary_expression "puVar36 + 0x4a48" identifier + number_literal) )))))) ;) (if_statement "if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }" if (parenthesized_expression "(0.0 <= dVar44)" ( (binary_expression "0.0 <= dVar44" number_literal <= identifier) )) (compound_statement "{\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }" { (expression_statement "dVar45 = *(double *)((int)unaff_s3 + 0x4408);" (assignment_expression "dVar45 = *(double *)((int)unaff_s3 + 0x4408)" identifier = (pointer_expression "*(double *)((int)unaff_s3 + 0x4408)" * (cast_expression "(double *)((int)unaff_s3 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s3 + 0x4408)" ( (binary_expression "(int)unaff_s3 + 0x4408" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }) (else_clause "else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }" else (compound_statement "{\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }" { (expression_statement "dVar45 = *(double *)((int)unaff_s3 + 0x4418);" (assignment_expression "dVar45 = *(double *)((int)unaff_s3 + 0x4418)" identifier = (pointer_expression "*(double *)((int)unaff_s3 + 0x4418)" * (cast_expression "(double *)((int)unaff_s3 + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s3 + 0x4418)" ( (binary_expression "(int)unaff_s3 + 0x4418" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }))) }) (else_clause "else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }" else (compound_statement "{\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }" { (expression_statement "local_c8 = 0.0;" (assignment_expression "local_c8 = 0.0" identifier = number_literal) ;) (expression_statement "dVar45 = in_f22_23;" (assignment_expression "dVar45 = in_f22_23" identifier = identifier) ;) }))) (if_statement "if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }" if (parenthesized_expression "(*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45)" ( (binary_expression "*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45" (pointer_expression "*(double *)(puVar36 + 0x43c8)" * (cast_expression "(double *)(puVar36 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x43c8)" ( (binary_expression "puVar36 + 0x43c8" identifier + number_literal) )))) <= (binary_expression "dVar44 * dVar45" identifier * identifier)) )) (compound_statement "{\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }" { (expression_statement "dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;" (assignment_expression "dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44" identifier = (binary_expression "*(double *)((int)unaff_s3 + 0x4408) / dVar44" (pointer_expression "*(double *)((int)unaff_s3 + 0x4408)" * (cast_expression "(double *)((int)unaff_s3 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s3 + 0x4408)" ( (binary_expression "(int)unaff_s3 + 0x4408" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) / identifier)) ;) }) (else_clause "else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }" else (compound_statement "{\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }" { (expression_statement "dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);" (assignment_expression "dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8)" identifier = (binary_expression "dVar45 / *(double *)(puVar36 + 0x43c8)" identifier / (pointer_expression "*(double *)(puVar36 + 0x43c8)" * (cast_expression "(double *)(puVar36 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x43c8)" ( (binary_expression "puVar36 + 0x43c8" identifier + number_literal) )))))) ;) }))) (expression_statement "dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;" (assignment_expression "dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40" identifier = (binary_expression "*(double *)((int)unaff_s3 + 0x4408) - dVar40" (pointer_expression "*(double *)((int)unaff_s3 + 0x4408)" * (cast_expression "(double *)((int)unaff_s3 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s3 + 0x4408)" ( (binary_expression "(int)unaff_s3 + 0x4408" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) - identifier)) ;) (expression_statement "local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;" (assignment_expression "local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45" identifier = (binary_expression "(dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45" (parenthesized_expression "(dVar47 * local_e8 * dVar44 + dVar40 * local_90)" ( (binary_expression "dVar47 * local_e8 * dVar44 + dVar40 * local_90" (binary_expression "dVar47 * local_e8 * dVar44" (binary_expression "dVar47 * local_e8" identifier * identifier) * identifier) + (binary_expression "dVar40 * local_90" identifier * identifier)) )) * identifier)) ;) (expression_statement "local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;" (assignment_expression "local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45" identifier = (binary_expression "(dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45" (parenthesized_expression "(dVar47 * local_e0 * dVar44 + dVar40 * local_88)" ( (binary_expression "dVar47 * local_e0 * dVar44 + dVar40 * local_88" (binary_expression "dVar47 * local_e0 * dVar44" (binary_expression "dVar47 * local_e0" identifier * identifier) * identifier) + (binary_expression "dVar40 * local_88" identifier * identifier)) )) * identifier)) ;) (expression_statement "local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;" (assignment_expression "local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45" identifier = (binary_expression "(dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45" (parenthesized_expression "(dVar47 * local_d8 * dVar44 + dVar40 * local_80)" ( (binary_expression "dVar47 * local_d8 * dVar44 + dVar40 * local_80" (binary_expression "dVar47 * local_d8 * dVar44" (binary_expression "dVar47 * local_d8" identifier * identifier) * identifier) + (binary_expression "dVar40 * local_80" identifier * identifier)) )) * identifier)) ;) (if_statement "if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }" if (parenthesized_expression "(local_110[1] == 2)" ( (binary_expression "local_110[1] == 2" (subscript_expression "local_110[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }" { (expression_statement "local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;" (assignment_expression "local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45" identifier = (binary_expression "(dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45" (parenthesized_expression "(dVar47 * local_d0 * dVar44 + dVar40 * local_78)" ( (binary_expression "dVar47 * local_d0 * dVar44 + dVar40 * local_78" (binary_expression "dVar47 * local_d0 * dVar44" (binary_expression "dVar47 * local_d0" identifier * identifier) * identifier) + (binary_expression "dVar40 * local_78" identifier * identifier)) )) * identifier)) ;) })) (expression_statement "iVar10 = piVar2[0xb4];" (assignment_expression "iVar10 = piVar2[0xb4]" identifier = (subscript_expression "piVar2[0xb4]" identifier [ number_literal ])) ;) (expression_statement "*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;" (assignment_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8" (pointer_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4)" * (cast_expression "(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + *(int *)(iVar10 + 8) * 4)" ( (binary_expression "(int)pdVar29 + *(int *)(iVar10 + 8) * 4" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar10 + 8) * 4" (pointer_expression "*(int *)(iVar10 + 8)" * (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)local_e8" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;" (assignment_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0" (pointer_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4)" * (cast_expression "(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4)" ( (binary_expression "(int)pdVar29 + *(int *)(iVar10 + 0x14) * 4" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar10 + 0x14) * 4" (pointer_expression "*(int *)(iVar10 + 0x14)" * (cast_expression "(int *)(iVar10 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)local_e0" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;" (assignment_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8" (pointer_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4)" * (cast_expression "(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4)" ( (binary_expression "(int)pdVar29 + *(int *)(iVar10 + 0x20) * 4" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar10 + 0x20) * 4" (pointer_expression "*(int *)(iVar10 + 0x20)" * (cast_expression "(int *)(iVar10 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x20)" ( (binary_expression "iVar10 + 0x20" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)local_d8" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (if_statement "if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }" if (parenthesized_expression "(*(int *)(iVar10 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x28) != 0" (pointer_expression "*(int *)(iVar10 + 0x28)" * (cast_expression "(int *)(iVar10 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x28)" ( (binary_expression "iVar10 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }" { (expression_statement "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;" (assignment_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0" (pointer_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4)" * (cast_expression "(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4)" ( (binary_expression "(int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar10 + 0x2c) * 4" (pointer_expression "*(int *)(iVar10 + 0x2c)" * (cast_expression "(int *)(iVar10 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x2c)" ( (binary_expression "iVar10 + 0x2c" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)local_d0" ( (type_descriptor "float" primitive_type) ) identifier)) ;) })) (if_statement "if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }" if (parenthesized_expression "(*(int *)(iVar10 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x34) != 0" (pointer_expression "*(int *)(iVar10 + 0x34)" * (cast_expression "(int *)(iVar10 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x34)" ( (binary_expression "iVar10 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }" { (if_statement "if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }" if (parenthesized_expression "(local_110[2] == 0)" ( (binary_expression "local_110[2] == 0" (subscript_expression "local_110[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }" { (expression_statement "fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);" (assignment_expression "fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" identifier = (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" * (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" ( (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                fVar43 = (float)local_c8;\n              }" else (compound_statement "{\n                fVar43 = (float)local_c8;\n              }" { (expression_statement "fVar43 = (float)local_c8;" (assignment_expression "fVar43 = (float)local_c8" identifier = (cast_expression "(float)local_c8" ( (type_descriptor "float" primitive_type) ) identifier)) ;) }))) (expression_statement "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;" (assignment_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43" (pointer_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4)" * (cast_expression "(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4)" ( (binary_expression "(int)pdVar29 + *(int *)(iVar10 + 0x38) * 4" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar10 + 0x38) * 4" (pointer_expression "*(int *)(iVar10 + 0x38)" * (cast_expression "(int *)(iVar10 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x38)" ( (binary_expression "iVar10 + 0x38" identifier + number_literal) )))) * number_literal)) )))) = identifier) ;) })) (expression_statement "pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);" (assignment_expression "pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4)" identifier = (cast_expression "(double *)((int)pdVar29 + piVar2[0xb0] * 4)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + piVar2[0xb0] * 4)" ( (binary_expression "(int)pdVar29 + piVar2[0xb0] * 4" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "piVar2[0xb0] * 4" (subscript_expression "piVar2[0xb0]" identifier [ number_literal ]) * number_literal)) )))) ;) })) (expression_statement "pdVar16 = pdVar5;" (assignment_expression "pdVar16 = pdVar5" identifier = identifier) ;) (expression_statement "iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);" (assignment_expression "iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4)" identifier = (call_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4)" (parenthesized_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)" ( (pointer_expression "*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510" * (cast_expression "(code *)PTR_SyncCacheViewAuthenticPixels_003fa510" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pdVar5,unaff_s4)" ( identifier , identifier )))) ;) (if_statement "if (iVar10 == 0) {\n            param_1[10] = 0;\n          }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n            param_1[10] = 0;\n          }" { (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) })) })) }))) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s6 = (double *)puVar36;" (assignment_expression "unaff_s6 = (double *)puVar36" identifier = (cast_expression "(double *)puVar36" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(iVar3 < (int)puVar6)" ( (binary_expression "iVar3 < (int)puVar6" identifier < (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (if_statement "if (local_5c == *(int *)PTR___stack_chk_guard_003fa248) {\n    return *(int *)PTR___stack_chk_guard_003fa248;\n  }" if (parenthesized_expression "(local_5c == *(int *)PTR___stack_chk_guard_003fa248)" ( (binary_expression "local_5c == *(int *)PTR___stack_chk_guard_003fa248" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_003fa248" * (cast_expression "(int *)PTR___stack_chk_guard_003fa248" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return *(int *)PTR___stack_chk_guard_003fa248;\n  }" { (return_statement "return *(int *)PTR___stack_chk_guard_003fa248;" return (pointer_expression "*(int *)PTR___stack_chk_guard_003fa248" * (cast_expression "(int *)PTR___stack_chk_guard_003fa248" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "pcVar37 = FUN_000a3ef0;" (assignment_expression "pcVar37 = FUN_000a3ef0" identifier = identifier) ;) (expression_statement "puVar36 = PTR___stack_chk_fail_003fa07c;" (assignment_expression "puVar36 = 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 "puStack_350 = puVar36 + 0x35d9c0;" (assignment_expression "puStack_350 = puVar36 + 0x35d9c0" identifier = (binary_expression "puVar36 + 0x35d9c0" identifier + number_literal)) ;) (expression_statement "iStack_1e4 = **(int **)(puVar36 + 0x356358);" (assignment_expression "iStack_1e4 = **(int **)(puVar36 + 0x356358)" identifier = (pointer_expression "**(int **)(puVar36 + 0x356358)" * (pointer_expression "*(int **)(puVar36 + 0x356358)" * (cast_expression "(int **)(puVar36 + 0x356358)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x356358)" ( (binary_expression "puVar36 + 0x356358" identifier + number_literal) )))))) ;) (expression_statement "iVar28 = *(int *)((int)pdVar16 + 0x24);" (assignment_expression "iVar28 = *(int *)((int)pdVar16 + 0x24)" identifier = (pointer_expression "*(int *)((int)pdVar16 + 0x24)" * (cast_expression "(int *)((int)pdVar16 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 0x24)" ( (binary_expression "(int)pdVar16 + 0x24" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pdStack_2a8 = pdVar16;" (assignment_expression "pdStack_2a8 = pdVar16" identifier = identifier) ;) (expression_statement "pdStack_1e0 = pdVar29;" (assignment_expression "pdStack_1e0 = pdVar29" identifier = identifier) ;) (expression_statement "piStack_1dc = piVar2;" (assignment_expression "piStack_1dc = piVar2" identifier = identifier) ;) (expression_statement "iStack_1d8 = unaff_s2;" (assignment_expression "iStack_1d8 = unaff_s2" identifier = identifier) ;) (expression_statement "pdStack_1d4 = unaff_s3;" (assignment_expression "pdStack_1d4 = unaff_s3" identifier = identifier) ;) (expression_statement "piStack_1d0 = unaff_s4;" (assignment_expression "piStack_1d0 = unaff_s4" identifier = identifier) ;) (expression_statement "puStack_1cc = param_1;" (assignment_expression "puStack_1cc = param_1" identifier = identifier) ;) (expression_statement "pdStack_1c8 = unaff_s6;" (assignment_expression "pdStack_1c8 = unaff_s6" identifier = identifier) ;) (expression_statement "uStack_1c4 = unaff_s7;" (assignment_expression "uStack_1c4 = unaff_s7" identifier = identifier) ;) (expression_statement "iStack_1c0 = iVar3;" (assignment_expression "iStack_1c0 = iVar3" identifier = identifier) ;) (expression_statement "pcStack_1bc = pcVar37;" (assignment_expression "pcStack_1bc = pcVar37" identifier = identifier) ;) (expression_statement "dStack_1b8 = in_f20_21;" (assignment_expression "dStack_1b8 = in_f20_21" identifier = identifier) ;) (expression_statement "dStack_1b0 = in_f22_23;" (assignment_expression "dStack_1b0 = in_f22_23" identifier = identifier) ;) (expression_statement "dStack_1a8 = in_f24_25;" (assignment_expression "dStack_1a8 = in_f24_25" identifier = identifier) ;) (expression_statement "dStack_1a0 = in_f26_27;" (assignment_expression "dStack_1a0 = in_f26_27" identifier = identifier) ;) (expression_statement "dStack_198 = in_f28_29;" (assignment_expression "dStack_198 = in_f28_29" identifier = identifier) ;) (expression_statement "dStack_190 = in_f30_31;" (assignment_expression "dStack_190 = in_f30_31" identifier = identifier) ;) (expression_statement "iVar10 = (**(code **)(puVar36 + 0x356a34))();" (assignment_expression "iVar10 = (**(code **)(puVar36 + 0x356a34))()" identifier = (call_expression "(**(code **)(puVar36 + 0x356a34))()" (parenthesized_expression "(**(code **)(puVar36 + 0x356a34))" ( (pointer_expression "**(code **)(puVar36 + 0x356a34)" * (pointer_expression "*(code **)(puVar36 + 0x356a34)" * (cast_expression "(code **)(puVar36 + 0x356a34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x356a34)" ( (binary_expression "puVar36 + 0x356a34" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar49 = (**(code **)(puStack_350 + -0x7390))();" (assignment_expression "iVar49 = (**(code **)(puStack_350 + -0x7390))()" identifier = (call_expression "(**(code **)(puStack_350 + -0x7390))()" (parenthesized_expression "(**(code **)(puStack_350 + -0x7390))" ( (pointer_expression "**(code **)(puStack_350 + -0x7390)" * (pointer_expression "*(code **)(puStack_350 + -0x7390)" * (cast_expression "(code **)(puStack_350 + -0x7390)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_350 + -0x7390)" ( (binary_expression "puStack_350 + -0x7390" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar12 = (*(int *)(pdVar16 + 5) + 1) - iVar28;" (assignment_expression "iVar12 = (*(int *)(pdVar16 + 5) + 1) - iVar28" identifier = (binary_expression "(*(int *)(pdVar16 + 5) + 1) - iVar28" (parenthesized_expression "(*(int *)(pdVar16 + 5) + 1)" ( (binary_expression "*(int *)(pdVar16 + 5) + 1" (pointer_expression "*(int *)(pdVar16 + 5)" * (cast_expression "(int *)(pdVar16 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 5)" ( (binary_expression "pdVar16 + 5" identifier + number_literal) )))) + number_literal) )) - identifier)) ;) (if_statement "if (iVar10 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 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 "iVar50 = iVar12 / iVar10;" (assignment_expression "iVar50 = iVar12 / iVar10" identifier = (binary_expression "iVar12 / iVar10" identifier / identifier)) ;) (expression_statement "iVar12 = iVar12 % iVar10;" (assignment_expression "iVar12 = iVar12 % iVar10" identifier = (binary_expression "iVar12 % iVar10" identifier % identifier)) ;) (expression_statement "uVar26 = (uint)(iVar49 < iVar12);" (assignment_expression "uVar26 = (uint)(iVar49 < iVar12)" identifier = (call_expression "(uint)(iVar49 < iVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar49 < iVar12)" ( (binary_expression "iVar49 < iVar12" identifier < identifier) )))) ;) (if_statement "if (uVar26 != 0) {\n    iVar50 = iVar50 + 1;\n    iVar12 = 0;\n  }" if (parenthesized_expression "(uVar26 != 0)" ( (binary_expression "uVar26 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar50 = iVar50 + 1;\n    iVar12 = 0;\n  }" { (expression_statement "iVar50 = iVar50 + 1;" (assignment_expression "iVar50 = iVar50 + 1" identifier = (binary_expression "iVar50 + 1" identifier + number_literal)) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) })) (expression_statement "uVar8 = iVar50 * iVar49 + iVar12;" (assignment_expression "uVar8 = iVar50 * iVar49 + iVar12" identifier = (binary_expression "iVar50 * iVar49 + iVar12" (binary_expression "iVar50 * iVar49" identifier * identifier) + identifier)) ;) (expression_statement "pdVar29 = (double *)(iVar50 + uVar8);" (assignment_expression "pdVar29 = (double *)(iVar50 + uVar8)" identifier = (cast_expression "(double *)(iVar50 + uVar8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar50 + uVar8)" ( (binary_expression "iVar50 + uVar8" identifier + identifier) )))) ;) (if_statement "if ((int)uVar8 < (int)pdVar29) {\n    iStack_29c = *(int *)((int)pdStack_2a8 + 0x1c);\n    in_f28_29 = *pdStack_2a8;\n    iStack_2f4 = *(int *)(pdStack_2a8 + 3);\n    pdStack_2a0 = *(double **)((int)pdStack_2a8 + 0x14);\n    uStack_2d0 = *(undefined4 *)(pdStack_2a8 + 2);\n    iStack_324 = *(int *)((int)pdStack_2a8 + 0xc);\n    unaff_s6 = *(double **)(pdStack_2a8 + 1);\n    iStack_2f0 = iVar28 + uVar8;\n    puStack_2a4 = (undefined1 *)(iVar28 + (int)pdVar29);\n    unaff_s7 = *(uint *)(puStack_350 + -0x7fd0);\n    dStack_320 = *(double *)(unaff_s7 + 0x4408);\n    iVar3 = *(int *)(puStack_350 + -0x7fd0);\n    dStack_2b8 = *(double *)(iVar3 + 0x43c8);\n    uStack_2f8 = uVar8;\n    do {\n      iVar28 = (**(code **)(puStack_350 + -0x7390))();\n      if (*(int *)((int)pdStack_2a8 + 0x2c) != 0) {\n        pdVar29 = *(double **)(pdStack_2a8 + 4);\n        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21);\n        uStack_2d4 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21);\n        uVar26 = uStack_2d4;\n        pdVar16 = (double *)(int)dVar39;\n        uStack_354 = uStack_2d0;\n        puStack_358 = (undefined4 *)0x1;\n        pdVar29 = pdStack_2a0;\n        pdStack_2cc = pdVar16;\n        iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)));\n        if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar28 = iVar28 * 4;\n          puVar36 = puStack_350;\n          if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar29 = pdStack_2a0;\n          iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }\n      }\n      iStack_2f0 = iStack_2f0 + 1;\n      uStack_2f8 = uStack_2f8 + 1;\n    } while (iStack_2f0 < (int)puStack_2a4);\n  }" if (parenthesized_expression "((int)uVar8 < (int)pdVar29)" ( (binary_expression "(int)uVar8 < (int)pdVar29" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    iStack_29c = *(int *)((int)pdStack_2a8 + 0x1c);\n    in_f28_29 = *pdStack_2a8;\n    iStack_2f4 = *(int *)(pdStack_2a8 + 3);\n    pdStack_2a0 = *(double **)((int)pdStack_2a8 + 0x14);\n    uStack_2d0 = *(undefined4 *)(pdStack_2a8 + 2);\n    iStack_324 = *(int *)((int)pdStack_2a8 + 0xc);\n    unaff_s6 = *(double **)(pdStack_2a8 + 1);\n    iStack_2f0 = iVar28 + uVar8;\n    puStack_2a4 = (undefined1 *)(iVar28 + (int)pdVar29);\n    unaff_s7 = *(uint *)(puStack_350 + -0x7fd0);\n    dStack_320 = *(double *)(unaff_s7 + 0x4408);\n    iVar3 = *(int *)(puStack_350 + -0x7fd0);\n    dStack_2b8 = *(double *)(iVar3 + 0x43c8);\n    uStack_2f8 = uVar8;\n    do {\n      iVar28 = (**(code **)(puStack_350 + -0x7390))();\n      if (*(int *)((int)pdStack_2a8 + 0x2c) != 0) {\n        pdVar29 = *(double **)(pdStack_2a8 + 4);\n        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21);\n        uStack_2d4 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21);\n        uVar26 = uStack_2d4;\n        pdVar16 = (double *)(int)dVar39;\n        uStack_354 = uStack_2d0;\n        puStack_358 = (undefined4 *)0x1;\n        pdVar29 = pdStack_2a0;\n        pdStack_2cc = pdVar16;\n        iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)));\n        if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar28 = iVar28 * 4;\n          puVar36 = puStack_350;\n          if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar29 = pdStack_2a0;\n          iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }\n      }\n      iStack_2f0 = iStack_2f0 + 1;\n      uStack_2f8 = uStack_2f8 + 1;\n    } while (iStack_2f0 < (int)puStack_2a4);\n  }" { (expression_statement "iStack_29c = *(int *)((int)pdStack_2a8 + 0x1c);" (assignment_expression "iStack_29c = *(int *)((int)pdStack_2a8 + 0x1c)" identifier = (pointer_expression "*(int *)((int)pdStack_2a8 + 0x1c)" * (cast_expression "(int *)((int)pdStack_2a8 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdStack_2a8 + 0x1c)" ( (binary_expression "(int)pdStack_2a8 + 0x1c" (cast_expression "(int)pdStack_2a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "in_f28_29 = *pdStack_2a8;" (assignment_expression "in_f28_29 = *pdStack_2a8" identifier = (pointer_expression "*pdStack_2a8" * identifier)) ;) (expression_statement "iStack_2f4 = *(int *)(pdStack_2a8 + 3);" (assignment_expression "iStack_2f4 = *(int *)(pdStack_2a8 + 3)" identifier = (pointer_expression "*(int *)(pdStack_2a8 + 3)" * (cast_expression "(int *)(pdStack_2a8 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdStack_2a8 + 3)" ( (binary_expression "pdStack_2a8 + 3" identifier + number_literal) ))))) ;) (expression_statement "pdStack_2a0 = *(double **)((int)pdStack_2a8 + 0x14);" (assignment_expression "pdStack_2a0 = *(double **)((int)pdStack_2a8 + 0x14)" identifier = (pointer_expression "*(double **)((int)pdStack_2a8 + 0x14)" * (cast_expression "(double **)((int)pdStack_2a8 + 0x14)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pdStack_2a8 + 0x14)" ( (binary_expression "(int)pdStack_2a8 + 0x14" (cast_expression "(int)pdStack_2a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uStack_2d0 = *(undefined4 *)(pdStack_2a8 + 2);" (assignment_expression "uStack_2d0 = *(undefined4 *)(pdStack_2a8 + 2)" identifier = (pointer_expression "*(undefined4 *)(pdStack_2a8 + 2)" * (cast_expression "(undefined4 *)(pdStack_2a8 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdStack_2a8 + 2)" ( (binary_expression "pdStack_2a8 + 2" identifier + number_literal) ))))) ;) (expression_statement "iStack_324 = *(int *)((int)pdStack_2a8 + 0xc);" (assignment_expression "iStack_324 = *(int *)((int)pdStack_2a8 + 0xc)" identifier = (pointer_expression "*(int *)((int)pdStack_2a8 + 0xc)" * (cast_expression "(int *)((int)pdStack_2a8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdStack_2a8 + 0xc)" ( (binary_expression "(int)pdStack_2a8 + 0xc" (cast_expression "(int)pdStack_2a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "unaff_s6 = *(double **)(pdStack_2a8 + 1);" (assignment_expression "unaff_s6 = *(double **)(pdStack_2a8 + 1)" identifier = (pointer_expression "*(double **)(pdStack_2a8 + 1)" * (cast_expression "(double **)(pdStack_2a8 + 1)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdStack_2a8 + 1)" ( (binary_expression "pdStack_2a8 + 1" identifier + number_literal) ))))) ;) (expression_statement "iStack_2f0 = iVar28 + uVar8;" (assignment_expression "iStack_2f0 = iVar28 + uVar8" identifier = (binary_expression "iVar28 + uVar8" identifier + identifier)) ;) (expression_statement "puStack_2a4 = (undefined1 *)(iVar28 + (int)pdVar29);" (assignment_expression "puStack_2a4 = (undefined1 *)(iVar28 + (int)pdVar29)" identifier = (cast_expression "(undefined1 *)(iVar28 + (int)pdVar29)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + (int)pdVar29)" ( (binary_expression "iVar28 + (int)pdVar29" identifier + (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "unaff_s7 = *(uint *)(puStack_350 + -0x7fd0);" (assignment_expression "unaff_s7 = *(uint *)(puStack_350 + -0x7fd0)" identifier = (pointer_expression "*(uint *)(puStack_350 + -0x7fd0)" * (cast_expression "(uint *)(puStack_350 + -0x7fd0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_350 + -0x7fd0)" ( (binary_expression "puStack_350 + -0x7fd0" identifier + number_literal) ))))) ;) (expression_statement "dStack_320 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dStack_320 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(puStack_350 + -0x7fd0);" (assignment_expression "iVar3 = *(int *)(puStack_350 + -0x7fd0)" identifier = (pointer_expression "*(int *)(puStack_350 + -0x7fd0)" * (cast_expression "(int *)(puStack_350 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_350 + -0x7fd0)" ( (binary_expression "puStack_350 + -0x7fd0" identifier + number_literal) ))))) ;) (expression_statement "dStack_2b8 = *(double *)(iVar3 + 0x43c8);" (assignment_expression "dStack_2b8 = *(double *)(iVar3 + 0x43c8)" identifier = (pointer_expression "*(double *)(iVar3 + 0x43c8)" * (cast_expression "(double *)(iVar3 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x43c8)" ( (binary_expression "iVar3 + 0x43c8" identifier + number_literal) ))))) ;) (expression_statement "uStack_2f8 = uVar8;" (assignment_expression "uStack_2f8 = uVar8" identifier = identifier) ;) (do_statement "do {\n      iVar28 = (**(code **)(puStack_350 + -0x7390))();\n      if (*(int *)((int)pdStack_2a8 + 0x2c) != 0) {\n        pdVar29 = *(double **)(pdStack_2a8 + 4);\n        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21);\n        uStack_2d4 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21);\n        uVar26 = uStack_2d4;\n        pdVar16 = (double *)(int)dVar39;\n        uStack_354 = uStack_2d0;\n        puStack_358 = (undefined4 *)0x1;\n        pdVar29 = pdStack_2a0;\n        pdStack_2cc = pdVar16;\n        iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)));\n        if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar28 = iVar28 * 4;\n          puVar36 = puStack_350;\n          if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar29 = pdStack_2a0;\n          iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }\n      }\n      iStack_2f0 = iStack_2f0 + 1;\n      uStack_2f8 = uStack_2f8 + 1;\n    } while (iStack_2f0 < (int)puStack_2a4);" do (compound_statement "{\n      iVar28 = (**(code **)(puStack_350 + -0x7390))();\n      if (*(int *)((int)pdStack_2a8 + 0x2c) != 0) {\n        pdVar29 = *(double **)(pdStack_2a8 + 4);\n        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21);\n        uStack_2d4 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21);\n        uVar26 = uStack_2d4;\n        pdVar16 = (double *)(int)dVar39;\n        uStack_354 = uStack_2d0;\n        puStack_358 = (undefined4 *)0x1;\n        pdVar29 = pdStack_2a0;\n        pdStack_2cc = pdVar16;\n        iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)));\n        if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar28 = iVar28 * 4;\n          puVar36 = puStack_350;\n          if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar29 = pdStack_2a0;\n          iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }\n      }\n      iStack_2f0 = iStack_2f0 + 1;\n      uStack_2f8 = uStack_2f8 + 1;\n    }" { (expression_statement "iVar28 = (**(code **)(puStack_350 + -0x7390))();" (assignment_expression "iVar28 = (**(code **)(puStack_350 + -0x7390))()" identifier = (call_expression "(**(code **)(puStack_350 + -0x7390))()" (parenthesized_expression "(**(code **)(puStack_350 + -0x7390))" ( (pointer_expression "**(code **)(puStack_350 + -0x7390)" * (pointer_expression "*(code **)(puStack_350 + -0x7390)" * (cast_expression "(code **)(puStack_350 + -0x7390)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_350 + -0x7390)" ( (binary_expression "puStack_350 + -0x7390" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (*(int *)((int)pdStack_2a8 + 0x2c) != 0) {\n        pdVar29 = *(double **)(pdStack_2a8 + 4);\n        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21);\n        uStack_2d4 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21);\n        uVar26 = uStack_2d4;\n        pdVar16 = (double *)(int)dVar39;\n        uStack_354 = uStack_2d0;\n        puStack_358 = (undefined4 *)0x1;\n        pdVar29 = pdStack_2a0;\n        pdStack_2cc = pdVar16;\n        iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)));\n        if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar28 = iVar28 * 4;\n          puVar36 = puStack_350;\n          if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar29 = pdStack_2a0;\n          iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }\n      }" if (parenthesized_expression "(*(int *)((int)pdStack_2a8 + 0x2c) != 0)" ( (binary_expression "*(int *)((int)pdStack_2a8 + 0x2c) != 0" (pointer_expression "*(int *)((int)pdStack_2a8 + 0x2c)" * (cast_expression "(int *)((int)pdStack_2a8 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdStack_2a8 + 0x2c)" ( (binary_expression "(int)pdStack_2a8 + 0x2c" (cast_expression "(int)pdStack_2a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n        pdVar29 = *(double **)(pdStack_2a8 + 4);\n        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21);\n        uStack_2d4 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21);\n        uVar26 = uStack_2d4;\n        pdVar16 = (double *)(int)dVar39;\n        uStack_354 = uStack_2d0;\n        puStack_358 = (undefined4 *)0x1;\n        pdVar29 = pdStack_2a0;\n        pdStack_2cc = pdVar16;\n        iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)));\n        if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar28 = iVar28 * 4;\n          puVar36 = puStack_350;\n          if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar29 = pdStack_2a0;\n          iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }\n      }" { (expression_statement "pdVar29 = *(double **)(pdStack_2a8 + 4);" (assignment_expression "pdVar29 = *(double **)(pdStack_2a8 + 4)" identifier = (pointer_expression "*(double **)(pdStack_2a8 + 4)" * (cast_expression "(double **)(pdStack_2a8 + 4)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdStack_2a8 + 4)" ( (binary_expression "pdStack_2a8 + 4" identifier + number_literal) ))))) ;) (expression_statement "in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);" (assignment_expression "in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0)" identifier = (pointer_expression "*(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0)" * (cast_expression "(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_350 + -0x7fd0) + 0x43d0)" ( (binary_expression "*(int *)(puStack_350 + -0x7fd0) + 0x43d0" (pointer_expression "*(int *)(puStack_350 + -0x7fd0)" * (cast_expression "(int *)(puStack_350 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_350 + -0x7fd0)" ( (binary_expression "puStack_350 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "dVar39 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21);" (assignment_expression "dVar39 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21)" identifier = (cast_expression "(double)(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21)" (parenthesized_expression "(**(code **)(puStack_350 + -0x7c78))" ( (pointer_expression "**(code **)(puStack_350 + -0x7c78)" * (pointer_expression "*(code **)(puStack_350 + -0x7c78)" * (cast_expression "(code **)(puStack_350 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_350 + -0x7c78)" ( (binary_expression "puStack_350 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(*pdVar29 - in_f20_21)" ( (binary_expression "*pdVar29 - in_f20_21" (pointer_expression "*pdVar29" * identifier) - identifier) ))))) ;) (expression_statement "uStack_2d4 = (uint)dVar39;" (assignment_expression "uStack_2d4 = (uint)dVar39" identifier = (cast_expression "(uint)dVar39" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "dVar39 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21);" (assignment_expression "dVar39 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21)" identifier = (cast_expression "(double)(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21)" (parenthesized_expression "(**(code **)(puStack_350 + -0x7228))" ( (pointer_expression "**(code **)(puStack_350 + -0x7228)" * (pointer_expression "*(code **)(puStack_350 + -0x7228)" * (cast_expression "(code **)(puStack_350 + -0x7228)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_350 + -0x7228)" ( (binary_expression "puStack_350 + -0x7228" identifier + number_literal) ))))) )) (argument_list "(pdVar29[2] + in_f20_21)" ( (binary_expression "pdVar29[2] + in_f20_21" (subscript_expression "pdVar29[2]" identifier [ number_literal ]) + identifier) ))))) ;) (expression_statement "uVar26 = uStack_2d4;" (assignment_expression "uVar26 = uStack_2d4" identifier = identifier) ;) (expression_statement "pdVar16 = (double *)(int)dVar39;" (assignment_expression "pdVar16 = (double *)(int)dVar39" identifier = (cast_expression "(double *)(int)dVar39" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)dVar39" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uStack_354 = uStack_2d0;" (assignment_expression "uStack_354 = uStack_2d0" identifier = identifier) ;) (expression_statement "puStack_358 = (undefined4 *)0x1;" (assignment_expression "puStack_358 = (undefined4 *)0x1" identifier = (cast_expression "(undefined4 *)0x1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pdVar29 = pdStack_2a0;" (assignment_expression "pdVar29 = pdStack_2a0" identifier = identifier) ;) (expression_statement "pdStack_2cc = pdVar16;" (assignment_expression "pdStack_2cc = pdVar16" identifier = identifier) ;) (expression_statement "iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)));" (assignment_expression "iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)))" identifier = (call_expression "(**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)))" (parenthesized_expression "(**(code **)(puStack_350 + -0x724c))" ( (pointer_expression "**(code **)(puStack_350 + -0x724c)" * (pointer_expression "*(code **)(puStack_350 + -0x724c)" * (cast_expression "(code **)(puStack_350 + -0x724c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_350 + -0x724c)" ( (binary_expression "puStack_350 + -0x724c" identifier + number_literal) ))))) )) (argument_list "(pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)))" ( identifier , identifier , identifier , (cast_expression "(undefined *)((int)pdVar16 + (1 - uStack_2d4))" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + (1 - uStack_2d4))" ( (binary_expression "(int)pdVar16 + (1 - uStack_2d4)" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(1 - uStack_2d4)" ( (binary_expression "1 - uStack_2d4" number_literal - identifier) ))) ))) )))) ;) (if_statement "if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar28 = iVar28 * 4;\n          puVar36 = puStack_350;\n          if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar29 = pdStack_2a0;\n          iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }" if (parenthesized_expression "(iStack_308 == 0)" ( (binary_expression "iStack_308 == 0" identifier == number_literal) )) (compound_statement "{\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }" { (expression_statement "*(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0" (pointer_expression "*(undefined4 *)((int)pdStack_2a8 + 0x2c)" * (cast_expression "(undefined4 *)((int)pdStack_2a8 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdStack_2a8 + 0x2c)" ( (binary_expression "(int)pdStack_2a8 + 0x2c" (cast_expression "(int)pdStack_2a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n          iVar28 = iVar28 * 4;\n          puVar36 = puStack_350;\n          if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar29 = pdStack_2a0;\n          iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }" else (compound_statement "{\n          iVar28 = iVar28 * 4;\n          puVar36 = puStack_350;\n          if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar29 = pdStack_2a0;\n          iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }" { (expression_statement "iVar28 = iVar28 * 4;" (assignment_expression "iVar28 = iVar28 * 4" identifier = (binary_expression "iVar28 * 4" identifier * number_literal)) ;) (expression_statement "puVar36 = puStack_350;" (assignment_expression "puVar36 = puStack_350" identifier = identifier) ;) (if_statement "if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }" if (parenthesized_expression "((int)uVar26 <= (int)pdVar16)" ( (binary_expression "(int)uVar26 <= (int)pdVar16" (cast_expression "(int)uVar26" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }" { (expression_statement "puStack_2bc = (undefined4 *)(iStack_29c + iVar28);" (assignment_expression "puStack_2bc = (undefined4 *)(iStack_29c + iVar28)" identifier = (cast_expression "(undefined4 *)(iStack_29c + iVar28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_29c + iVar28)" ( (binary_expression "iStack_29c + iVar28" identifier + identifier) )))) ;) (expression_statement "uStack_328 = uStack_2d4;" (assignment_expression "uStack_328 = uStack_2d4" identifier = identifier) ;) (expression_statement "pdVar16 = unaff_s6;" (assignment_expression "pdVar16 = unaff_s6" identifier = identifier) ;) (do_statement "do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);" do (compound_statement "{\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            }" { (expression_statement "unaff_s4 = (int *)*puStack_2bc;" (assignment_expression "unaff_s4 = (int *)*puStack_2bc" identifier = (cast_expression "(int *)*puStack_2bc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puStack_2bc" * identifier))) ;) (expression_statement "iStack_2c0 = *(int *)(iStack_324 + 0x240);" (assignment_expression "iStack_2c0 = *(int *)(iStack_324 + 0x240)" identifier = (pointer_expression "*(int *)(iStack_324 + 0x240)" * (cast_expression "(int *)(iStack_324 + 0x240)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x240)" ( (binary_expression "iStack_324 + 0x240" identifier + number_literal) ))))) ;) (expression_statement "unaff_s3 = (double *)*unaff_s4;" (assignment_expression "unaff_s3 = (double *)*unaff_s4" identifier = (cast_expression "(double *)*unaff_s4" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*unaff_s4" * identifier))) ;) (expression_statement "puVar13 = (undefined4 *)unaff_s4[1];" (assignment_expression "puVar13 = (undefined4 *)unaff_s4[1]" identifier = (cast_expression "(undefined4 *)unaff_s4[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "unaff_s4[1]" identifier [ number_literal ]))) ;) (expression_statement "pdStack_2ec = unaff_s3;" (assignment_expression "pdStack_2ec = unaff_s3" identifier = identifier) ;) (if_statement "if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }" if (parenthesized_expression "((int)puVar13 < 1)" ( (binary_expression "(int)puVar13 < 1" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }" { (if_statement "if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }" if (parenthesized_expression "(iStack_2f4 != 0)" ( (binary_expression "iStack_2f4 != 0" identifier != number_literal) )) (compound_statement "{\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }" { (expression_statement "dStack_338 = 0.0;" (assignment_expression "dStack_338 = 0.0" identifier = number_literal) ;) (expression_statement "dStack_340 = 0.0;" (assignment_expression "dStack_340 = 0.0" identifier = number_literal) ;) (expression_statement "dVar39 = in_f30_31;" (assignment_expression "dVar39 = in_f30_31" identifier = identifier) ;) (labeled_statement "LAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;" statement_identifier : (expression_statement "pdVar29 = (double *)*unaff_s4;" (assignment_expression "pdVar29 = (double *)*unaff_s4" identifier = (cast_expression "(double *)*unaff_s4" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*unaff_s4" * identifier))) ;)) (if_statement "if (0 < (int)puVar13) goto LAB_000a4f3c;" if (parenthesized_expression "(0 < (int)puVar13)" ( (binary_expression "0 < (int)puVar13" number_literal < (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_000a4f3c;" goto statement_identifier ;)) (goto_statement "goto LAB_000a4684;" goto statement_identifier ;) })) (labeled_statement "LAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }" statement_identifier : (if_statement "if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }" if (parenthesized_expression "(*(int *)(iStack_324 + 0x238) == 0)" ( (binary_expression "*(int *)(iStack_324 + 0x238) == 0" (pointer_expression "*(int *)(iStack_324 + 0x238)" * (cast_expression "(int *)(iStack_324 + 0x238)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x238)" ( (binary_expression "iStack_324 + 0x238" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }" { (expression_statement "dStack_338 = 0.0;" (assignment_expression "dStack_338 = 0.0" identifier = number_literal) ;) (expression_statement "dStack_340 = 0.0;" (assignment_expression "dStack_340 = 0.0" identifier = number_literal) ;) (expression_statement "dVar39 = in_f30_31;" (assignment_expression "dVar39 = in_f30_31" identifier = identifier) ;) (labeled_statement "LAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);" statement_identifier : (expression_statement "iVar10 = *(int *)(puVar36 + -0x7fd0);" (assignment_expression "iVar10 = *(int *)(puVar36 + -0x7fd0)" identifier = (pointer_expression "*(int *)(puVar36 + -0x7fd0)" * (cast_expression "(int *)(puVar36 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fd0)" ( (binary_expression "puVar36 + -0x7fd0" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_000a4ec4;" goto statement_identifier ;) }))) (expression_statement "dStack_338 = 0.0;" (assignment_expression "dStack_338 = 0.0" identifier = number_literal) ;) (expression_statement "dStack_340 = 0.0;" (assignment_expression "dStack_340 = 0.0" identifier = number_literal) ;) (expression_statement "dVar39 = in_f30_31;" (assignment_expression "dVar39 = in_f30_31" identifier = identifier) ;) }) (else_clause "else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }" else (compound_statement "{\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }" { (expression_statement "in_f26_27 = (double)iStack_2f0;" (assignment_expression "in_f26_27 = (double)iStack_2f0" identifier = (cast_expression "(double)iStack_2f0" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "iVar10 = *(int *)(puVar36 + -0x7fd0);" (assignment_expression "iVar10 = *(int *)(puVar36 + -0x7fd0)" identifier = (pointer_expression "*(int *)(puVar36 + -0x7fd0)" * (cast_expression "(int *)(puVar36 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fd0)" ( (binary_expression "puVar36 + -0x7fd0" identifier + number_literal) ))))) ;) (expression_statement "dVar39 = *(double *)(iVar10 + 0x43d0);" (assignment_expression "dVar39 = *(double *)(iVar10 + 0x43d0)" identifier = (pointer_expression "*(double *)(iVar10 + 0x43d0)" * (cast_expression "(double *)(iVar10 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x43d0)" ( (binary_expression "iVar10 + 0x43d0" identifier + number_literal) ))))) ;) (expression_statement "param_1 = (undefined4 *)0x0;" (assignment_expression "param_1 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }" if (parenthesized_expression "((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27)" ( (binary_expression "(unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27" (binary_expression "(unaff_s3[1] - in_f28_29) - dVar39" (parenthesized_expression "(unaff_s3[1] - in_f28_29)" ( (binary_expression "unaff_s3[1] - in_f28_29" (subscript_expression "unaff_s3[1]" identifier [ number_literal ]) - identifier) )) - identifier) < identifier) )) (compound_statement "{\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }" { (expression_statement "dStack_338 = 0.0;" (assignment_expression "dStack_338 = 0.0" identifier = number_literal) ;) (expression_statement "dStack_340 = 0.0;" (assignment_expression "dStack_340 = 0.0" identifier = number_literal) ;) (expression_statement "pdVar29 = unaff_s3;" (assignment_expression "pdVar29 = unaff_s3" identifier = identifier) ;) (expression_statement "dStack_330 = dVar39;" (assignment_expression "dStack_330 = dVar39" identifier = identifier) ;) (expression_statement "pdStack_2d8 = pdVar16;" (assignment_expression "pdStack_2d8 = pdVar16" identifier = identifier) ;) (do_statement "do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));" do (compound_statement "{\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  }" { (expression_statement "pdVar16 = pdStack_2ec;" (assignment_expression "pdVar16 = pdStack_2ec" identifier = identifier) ;) (expression_statement "iVar49 = iStack_2f4;" (assignment_expression "iVar49 = iStack_2f4" identifier = identifier) ;) (if_statement "if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }" if (parenthesized_expression "(in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39)" ( (binary_expression "in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39" identifier <= (binary_expression "in_f28_29 + pdVar29[3] + dVar39" (binary_expression "in_f28_29 + pdVar29[3]" identifier + (subscript_expression "pdVar29[3]" identifier [ number_literal ])) + identifier)) )) (compound_statement "{\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }" { (expression_statement "in_f22_23 = (double)(int)uStack_328;" (assignment_expression "in_f22_23 = (double)(int)uStack_328" identifier = (cast_expression "(double)(int)uStack_328" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)uStack_328" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }" if (parenthesized_expression "(((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0)))" ( (binary_expression "((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))" (parenthesized_expression "((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23)" ( (binary_expression "(*pdVar29 - in_f28_29) - dStack_330 < in_f22_23" (binary_expression "(*pdVar29 - in_f28_29) - dStack_330" (parenthesized_expression "(*pdVar29 - in_f28_29)" ( (binary_expression "*pdVar29 - in_f28_29" (pointer_expression "*pdVar29" * identifier) - identifier) )) - identifier) < identifier) )) && (parenthesized_expression "(in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))" ( (binary_expression "in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0)" identifier <= (binary_expression "in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0)" (binary_expression "in_f28_29 + pdVar29[2]" identifier + (subscript_expression "pdVar29[2]" identifier [ number_literal ])) + (pointer_expression "*(double *)(iVar10 + 0x43d0)" * (cast_expression "(double *)(iVar10 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x43d0)" ( (binary_expression "iVar10 + 0x43d0" identifier + number_literal) )))))) ))) )) (compound_statement "{\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }" { (expression_statement "iVar28 = *(int *)(pdVar29 + 7);" (assignment_expression "iVar28 = *(int *)(pdVar29 + 7)" identifier = (pointer_expression "*(int *)(pdVar29 + 7)" * (cast_expression "(int *)(pdVar29 + 7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar29 + 7)" ( (binary_expression "pdVar29 + 7" identifier + number_literal) ))))) ;) (expression_statement "dVar41 = (double)iVar28;" (assignment_expression "dVar41 = (double)iVar28" identifier = (cast_expression "(double)iVar28" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }" if (parenthesized_expression "(iVar28 < 0)" ( (binary_expression "iVar28 < 0" identifier < number_literal) )) (compound_statement "{\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }" { (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8)" identifier = (binary_expression "dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8)" identifier + (pointer_expression "*(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8)" * (cast_expression "(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + -0x7fd0) + 0x43e8)" ( (binary_expression "*(int *)(puVar36 + -0x7fd0) + 0x43e8" (pointer_expression "*(int *)(puVar36 + -0x7fd0)" * (cast_expression "(int *)(puVar36 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fd0)" ( (binary_expression "puVar36 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) })) (if_statement "if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }" if (parenthesized_expression "(dVar41 <= *(double *)(unaff_s7 + 0x4408))" ( (binary_expression "dVar41 <= *(double *)(unaff_s7 + 0x4408)" identifier <= (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) )) (compound_statement "{\n                          iVar28 = 1;\n                        }" { (expression_statement "iVar28 = 1;" (assignment_expression "iVar28 = 1" identifier = number_literal) ;) })) (if_statement "if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }" if (parenthesized_expression "(iVar28 < *(int *)((int)pdVar29 + 0x2c))" ( (binary_expression "iVar28 < *(int *)((int)pdVar29 + 0x2c)" identifier < (pointer_expression "*(int *)((int)pdVar29 + 0x2c)" * (cast_expression "(int *)((int)pdVar29 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + 0x2c)" ( (binary_expression "(int)pdVar29 + 0x2c" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (compound_statement "{\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }" { (expression_statement "iVar12 = *(int *)(pdVar29 + 5);" (assignment_expression "iVar12 = *(int *)(pdVar29 + 5)" identifier = (pointer_expression "*(int *)(pdVar29 + 5)" * (cast_expression "(int *)(pdVar29 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar29 + 5)" ( (binary_expression "pdVar29 + 5" identifier + number_literal) ))))) ;) (expression_statement "iVar50 = (iVar28 + 0xfffffff) * 0x10;" (assignment_expression "iVar50 = (iVar28 + 0xfffffff) * 0x10" identifier = (binary_expression "(iVar28 + 0xfffffff) * 0x10" (parenthesized_expression "(iVar28 + 0xfffffff)" ( (binary_expression "iVar28 + 0xfffffff" identifier + number_literal) )) * number_literal)) ;) (expression_statement "pdVar16 = (double *)(iVar12 + iVar50);" (assignment_expression "pdVar16 = (double *)(iVar12 + iVar50)" identifier = (cast_expression "(double *)(iVar12 + iVar50)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + iVar50)" ( (binary_expression "iVar12 + iVar50" identifier + identifier) )))) ;) (expression_statement "dVar41 = *(double *)(iVar10 + 0x43d0);" (assignment_expression "dVar41 = *(double *)(iVar10 + 0x43d0)" identifier = (pointer_expression "*(double *)(iVar10 + 0x43d0)" * (cast_expression "(double *)(iVar10 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x43d0)" ( (binary_expression "iVar10 + 0x43d0" identifier + number_literal) ))))) ;) (if_statement "if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }" if (parenthesized_expression "((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27)" ( (binary_expression "(pdVar16[1] - in_f28_29) - dVar41 < in_f26_27" (binary_expression "(pdVar16[1] - in_f28_29) - dVar41" (parenthesized_expression "(pdVar16[1] - in_f28_29)" ( (binary_expression "pdVar16[1] - in_f28_29" (subscript_expression "pdVar16[1]" identifier [ number_literal ]) - identifier) )) - identifier) < identifier) )) (compound_statement "{\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }" { (expression_statement "dStack_318 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dStack_318 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) (expression_statement "iVar31 = *(int *)(puVar36 + -0x7fcc);" (assignment_expression "iVar31 = *(int *)(puVar36 + -0x7fcc)" identifier = (pointer_expression "*(int *)(puVar36 + -0x7fcc)" * (cast_expression "(int *)(puVar36 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fcc)" ( (binary_expression "puVar36 + -0x7fcc" identifier + number_literal) ))))) ;) (expression_statement "dStack_300 = *(double *)(iVar31 + 0x2a8);" (assignment_expression "dStack_300 = *(double *)(iVar31 + 0x2a8)" identifier = (pointer_expression "*(double *)(iVar31 + 0x2a8)" * (cast_expression "(double *)(iVar31 + 0x2a8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0x2a8)" ( (binary_expression "iVar31 + 0x2a8" identifier + number_literal) ))))) ;) (expression_statement "piStack_304 = unaff_s4;" (assignment_expression "piStack_304 = unaff_s4" identifier = identifier) ;) (do_statement "do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);" do (compound_statement "{\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            }" { (expression_statement "iVar50 = iVar50 + 0x10;" (assignment_expression "iVar50 = iVar50 + 0x10" identifier = (binary_expression "iVar50 + 0x10" identifier + number_literal)) ;) (expression_statement "dVar40 = dStack_340;" (assignment_expression "dVar40 = dStack_340" identifier = identifier) ;) (if_statement "if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }" if (parenthesized_expression "(in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 )" ( (binary_expression "in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41" identifier <= (binary_expression "in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41" (binary_expression "in_f28_29 + *(double *)(iVar12 + iVar50 + 8)" identifier + (pointer_expression "*(double *)(iVar12 + iVar50 + 8)" * (cast_expression "(double *)(iVar12 + iVar50 + 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + iVar50 + 8)" ( (binary_expression "iVar12 + iVar50 + 8" (binary_expression "iVar12 + iVar50" identifier + identifier) + number_literal) ))))) + identifier)) )) (compound_statement "{\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }" { (if_statement "if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }" if (parenthesized_expression "(in_f26_27 != pdVar29[4])" ( (binary_expression "in_f26_27 != pdVar29[4]" identifier != (subscript_expression "pdVar29[4]" identifier [ number_literal ])) )) (compound_statement "{\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }" { (expression_statement "pdVar29[4] = in_f26_27;" (assignment_expression "pdVar29[4] = in_f26_27" (subscript_expression "pdVar29[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(int *)(pdVar29 + 7) = iVar28;" (assignment_expression "*(int *)(pdVar29 + 7) = iVar28" (pointer_expression "*(int *)(pdVar29 + 7)" * (cast_expression "(int *)(pdVar29 + 7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar29 + 7)" ( (binary_expression "pdVar29 + 7" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "dVar44 = pdVar16[2] - *pdVar16;" (assignment_expression "dVar44 = pdVar16[2] - *pdVar16" identifier = (binary_expression "pdVar16[2] - *pdVar16" (subscript_expression "pdVar16[2]" identifier [ number_literal ]) - (pointer_expression "*pdVar16" * identifier))) ;) (expression_statement "dVar42 = pdVar16[3] - pdVar16[1];" (assignment_expression "dVar42 = pdVar16[3] - pdVar16[1]" identifier = (binary_expression "pdVar16[3] - pdVar16[1]" (subscript_expression "pdVar16[3]" identifier [ number_literal ]) - (subscript_expression "pdVar16[1]" identifier [ number_literal ]))) ;) (expression_statement "dVar47 = in_f22_23 - *pdVar16;" (assignment_expression "dVar47 = in_f22_23 - *pdVar16" identifier = (binary_expression "in_f22_23 - *pdVar16" identifier - (pointer_expression "*pdVar16" * identifier))) ;) (expression_statement "dVar40 = in_f26_27 - pdVar16[1];" (assignment_expression "dVar40 = in_f26_27 - pdVar16[1]" identifier = (binary_expression "in_f26_27 - pdVar16[1]" identifier - (subscript_expression "pdVar16[1]" identifier [ number_literal ]))) ;) (expression_statement "dVar45 = dVar44 * dVar47 + dVar42 * dVar40;" (assignment_expression "dVar45 = dVar44 * dVar47 + dVar42 * dVar40" identifier = (binary_expression "dVar44 * dVar47 + dVar42 * dVar40" (binary_expression "dVar44 * dVar47" identifier * identifier) + (binary_expression "dVar42 * dVar40" identifier * identifier))) ;) (if_statement "if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }" if (parenthesized_expression "(0.0 < dVar45)" ( (binary_expression "0.0 < dVar45" number_literal < identifier) )) (compound_statement "{\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }" { (expression_statement "dVar46 = dVar44 * dVar44 + dVar42 * dVar42;" (assignment_expression "dVar46 = dVar44 * dVar44 + dVar42 * dVar42" identifier = (binary_expression "dVar44 * dVar44 + dVar42 * dVar42" (binary_expression "dVar44 * dVar44" identifier * identifier) + (binary_expression "dVar42 * dVar42" identifier * identifier))) ;) (if_statement "if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }" if (parenthesized_expression "(dVar46 <= dVar45)" ( (binary_expression "dVar46 <= dVar45" identifier <= identifier) )) (compound_statement "{\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }" { (expression_statement "dVar47 = in_f22_23 - pdVar16[2];" (assignment_expression "dVar47 = in_f22_23 - pdVar16[2]" identifier = (binary_expression "in_f22_23 - pdVar16[2]" identifier - (subscript_expression "pdVar16[2]" identifier [ number_literal ]))) ;) (expression_statement "dVar40 = in_f26_27 - pdVar16[3];" (assignment_expression "dVar40 = in_f26_27 - pdVar16[3]" identifier = (binary_expression "in_f26_27 - pdVar16[3]" identifier - (subscript_expression "pdVar16[3]" identifier [ number_literal ]))) ;) (expression_statement "in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;" (assignment_expression "in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40" identifier = (binary_expression "dVar47 * dVar47 + dVar40 * dVar40" (binary_expression "dVar47 * dVar47" identifier * identifier) + (binary_expression "dVar40 * dVar40" identifier * identifier))) ;) }) (else_clause "else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }" else (compound_statement "{\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }" { (if_statement "if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }" if (parenthesized_expression "(*(double *)(iVar3 + 0x43c8) <= dVar46)" ( (binary_expression "*(double *)(iVar3 + 0x43c8) <= dVar46" (pointer_expression "*(double *)(iVar3 + 0x43c8)" * (cast_expression "(double *)(iVar3 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x43c8)" ( (binary_expression "iVar3 + 0x43c8" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }" { (expression_statement "dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;" (assignment_expression "dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46" identifier = (binary_expression "*(double *)(unaff_s7 + 0x4408) / dVar46" (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) )))) / identifier)) ;) }) (else_clause "else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }" else (compound_statement "{\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }" { (expression_statement "dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);" (assignment_expression "dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40)" identifier = (pointer_expression "*(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40)" * (cast_expression "(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + -0x7fd0) + 0x4a40)" ( (binary_expression "*(int *)(puVar36 + -0x7fd0) + 0x4a40" (pointer_expression "*(int *)(puVar36 + -0x7fd0)" * (cast_expression "(int *)(puVar36 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fd0)" ( (binary_expression "puVar36 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (expression_statement "in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);" (assignment_expression "in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8)" identifier = (binary_expression "(dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8)" (parenthesized_expression "(dVar44 * dVar40 - dVar42 * dVar47)" ( (binary_expression "dVar44 * dVar40 - dVar42 * dVar47" (binary_expression "dVar44 * dVar40" identifier * identifier) - (binary_expression "dVar42 * dVar47" identifier * identifier)) )) + (pointer_expression "*(double *)(iVar3 + 0x43c8)" * (cast_expression "(double *)(iVar3 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x43c8)" ( (binary_expression "iVar3 + 0x43c8" identifier + number_literal) )))))) ;) (expression_statement "in_f20_21 = in_f20_21 * dVar46 * in_f20_21;" (assignment_expression "in_f20_21 = in_f20_21 * dVar46 * in_f20_21" identifier = (binary_expression "in_f20_21 * dVar46 * in_f20_21" (binary_expression "in_f20_21 * dVar46" identifier * identifier) * identifier)) ;) }))) }) (else_clause "else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }" else (compound_statement "{\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }" { (expression_statement "in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;" (assignment_expression "in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40" identifier = (binary_expression "dVar47 * dVar47 + dVar40 * dVar40" (binary_expression "dVar47 * dVar47" identifier * identifier) + (binary_expression "dVar40 * dVar40" identifier * identifier))) ;) }))) (expression_statement "dVar40 = dStack_338;" (assignment_expression "dVar40 = dStack_338" identifier = identifier) ;) (if_statement "if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }" if (parenthesized_expression "(*(int *)((int)pdVar29 + 0x34) == 0)" ( (binary_expression "*(int *)((int)pdVar29 + 0x34) == 0" (pointer_expression "*(int *)((int)pdVar29 + 0x34)" * (cast_expression "(int *)((int)pdVar29 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + 0x34)" ( (binary_expression "(int)pdVar29 + 0x34" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }" { (if_statement "if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }" if (parenthesized_expression "(*(double *)(unaff_s7 + 0x4408) <= dStack_338)" ( (binary_expression "*(double *)(unaff_s7 + 0x4408) <= dStack_338" (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                                    uStack_348 = 0.0;\n                                  }" { (expression_statement "uStack_348 = 0.0;" (assignment_expression "uStack_348 = 0.0" identifier = number_literal) ;) }) (else_clause "else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }" else (compound_statement "{\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }" { (expression_statement "dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;" (assignment_expression "dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300" identifier = (binary_expression "in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300" (binary_expression "in_f28_29 + *(double *)(iVar10 + 0x43d0)" identifier + (pointer_expression "*(double *)(iVar10 + 0x43d0)" * (cast_expression "(double *)(iVar10 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x43d0)" ( (binary_expression "iVar10 + 0x43d0" identifier + number_literal) ))))) + identifier)) ;) (if_statement "if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }" if (parenthesized_expression "(in_f20_21 <= dVar47 * dVar47)" ( (binary_expression "in_f20_21 <= dVar47 * dVar47" identifier <= (binary_expression "dVar47 * dVar47" identifier * identifier)) )) (compound_statement "{\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }" { (expression_statement "dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);" (assignment_expression "dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8)" identifier = (binary_expression "(in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8)" (parenthesized_expression "(in_f28_29 - *(double *)(iVar10 + 0x43d0))" ( (binary_expression "in_f28_29 - *(double *)(iVar10 + 0x43d0)" identifier - (pointer_expression "*(double *)(iVar10 + 0x43d0)" * (cast_expression "(double *)(iVar10 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x43d0)" ( (binary_expression "iVar10 + 0x43d0" identifier + number_literal) ))))) )) + (pointer_expression "*(double *)(iVar31 + 0x2a8)" * (cast_expression "(double *)(iVar31 + 0x2a8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0x2a8)" ( (binary_expression "iVar31 + 0x2a8" identifier + number_literal) )))))) ;) (if_statement "if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }" if (parenthesized_expression "(dVar40 * dVar40 < in_f20_21)" ( (binary_expression "dVar40 * dVar40 < in_f20_21" (binary_expression "dVar40 * dVar40" identifier * identifier) < identifier) )) (compound_statement "{\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }" { (expression_statement "dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408)" identifier = (binary_expression "in_f20_21 - *(double *)(unaff_s7 + 0x4408)" identifier - (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) )))))) ;) (expression_statement "uStack_2ac = SUB84(dVar40,0);" (assignment_expression "uStack_2ac = SUB84(dVar40,0)" identifier = (call_expression "SUB84(dVar40,0)" identifier (argument_list "(dVar40,0)" ( identifier , number_literal )))) ;) (expression_statement "uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;" (assignment_expression "uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff" identifier = (binary_expression "(uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff" (call_expression "(uint)((ulonglong)dVar40 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)dVar40 >> 0x20)" ( (binary_expression "(ulonglong)dVar40 >> 0x20" (cast_expression "(ulonglong)dVar40" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & number_literal)) ;) (expression_statement "uStack_348 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "uStack_348 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) (if_statement "if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }" if (parenthesized_expression "((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0))" ( (binary_expression "(*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)" (parenthesized_expression "(*(double *)(iVar3 + 0x43c8) <= ABS(dVar40))" ( (binary_expression "*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)" (pointer_expression "*(double *)(iVar3 + 0x43c8)" * (cast_expression "(double *)(iVar3 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x43c8)" ( (binary_expression "iVar3 + 0x43c8" identifier + number_literal) )))) <= (call_expression "ABS(dVar40)" identifier (argument_list "(dVar40)" ( identifier )))) )) && (parenthesized_expression "(uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)" ( (comma_expression "uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0" (assignment_expression "uStack_348 = SQRT(in_f20_21)" identifier = (call_expression "SQRT(in_f20_21)" identifier (argument_list "(in_f20_21)" ( identifier )))) , (binary_expression "in_f20_21 < 0.0" identifier < number_literal)) ))) )) (compound_statement "{\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }" { (expression_statement "(**(code **)(puVar36 + -0x7418))(in_f20_21);" (call_expression "(**(code **)(puVar36 + -0x7418))(in_f20_21)" (parenthesized_expression "(**(code **)(puVar36 + -0x7418))" ( (pointer_expression "**(code **)(puVar36 + -0x7418)" * (pointer_expression "*(code **)(puVar36 + -0x7418)" * (cast_expression "(code **)(puVar36 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x7418)" ( (binary_expression "puVar36 + -0x7418" identifier + number_literal) ))))) )) (argument_list "(in_f20_21)" ( identifier ))) ;) (expression_statement "puVar36 = puStack_350;" (assignment_expression "puVar36 = puStack_350" identifier = identifier) ;) })) (expression_statement "dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);" (assignment_expression "dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8)" identifier = (binary_expression "((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8)" (parenthesized_expression "((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0))" ( (binary_expression "(uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)" (parenthesized_expression "(uStack_348 - in_f28_29)" ( (binary_expression "uStack_348 - in_f28_29" identifier - identifier) )) - (pointer_expression "*(double *)(iVar10 + 0x43d0)" * (cast_expression "(double *)(iVar10 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x43d0)" ( (binary_expression "iVar10 + 0x43d0" identifier + number_literal) ))))) )) - (pointer_expression "*(double *)(iVar31 + 0x2a8)" * (cast_expression "(double *)(iVar31 + 0x2a8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0x2a8)" ( (binary_expression "iVar31 + 0x2a8" identifier + number_literal) )))))) ;) (expression_statement "dVar40 = dVar40 * dVar40;" (assignment_expression "dVar40 = dVar40 * dVar40" identifier = (binary_expression "dVar40 * dVar40" identifier * identifier)) ;) (if_statement "if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }" if (parenthesized_expression "(dVar40 <= dStack_338)" ( (binary_expression "dVar40 <= dStack_338" identifier <= identifier) )) (compound_statement "{\n                                          dVar40 = dStack_338;\n                                        }" { (expression_statement "dVar40 = dStack_338;" (assignment_expression "dVar40 = dStack_338" identifier = identifier) ;) })) }) (else_clause "else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }" else (compound_statement "{\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }" { (expression_statement "uStack_348 = 0.0;" (assignment_expression "uStack_348 = 0.0" identifier = number_literal) ;) (expression_statement "dVar40 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dVar40 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) }))) }) (else_clause "else {\n                                      uStack_348 = 0.0;\n                                    }" else (compound_statement "{\n                                      uStack_348 = 0.0;\n                                    }" { (expression_statement "uStack_348 = 0.0;" (assignment_expression "uStack_348 = 0.0" identifier = number_literal) ;) }))) }))) }) (else_clause "else {\n                                  uStack_348 = 0.0;\n                                }" else (compound_statement "{\n                                  uStack_348 = 0.0;\n                                }" { (expression_statement "uStack_348 = 0.0;" (assignment_expression "uStack_348 = 0.0" identifier = number_literal) ;) }))) (expression_statement "dStack_338 = dVar40;" (assignment_expression "dStack_338 = dVar40" identifier = identifier) ;) (expression_statement "dVar40 = dStack_340;" (assignment_expression "dVar40 = dStack_340" identifier = identifier) ;) (if_statement "if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }" if (parenthesized_expression "(((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318))" ( (binary_expression "((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)" (parenthesized_expression "((iVar49 != 0) && (in_f20_21 <= dStack_320))" ( (binary_expression "(iVar49 != 0) && (in_f20_21 <= dStack_320)" (parenthesized_expression "(iVar49 != 0)" ( (binary_expression "iVar49 != 0" identifier != number_literal) )) && (parenthesized_expression "(in_f20_21 <= dStack_320)" ( (binary_expression "in_f20_21 <= dStack_320" identifier <= identifier) ))) )) && (parenthesized_expression "(dStack_340 < dStack_318)" ( (binary_expression "dStack_340 < dStack_318" identifier < identifier) ))) )) (compound_statement "{\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }" { (if_statement "if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }" if (parenthesized_expression "(0.0 < in_f20_21)" ( (binary_expression "0.0 < in_f20_21" number_literal < identifier) )) (compound_statement "{\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }" { (expression_statement "uStack_310 = uStack_348._0_4_ & 0x7fffffff;" (assignment_expression "uStack_310 = uStack_348._0_4_ & 0x7fffffff" identifier = (binary_expression "uStack_348._0_4_ & 0x7fffffff" (field_expression "uStack_348._0_4_" identifier . field_identifier) & number_literal)) ;) (expression_statement "uStack_30c = uStack_348._4_4_;" (assignment_expression "uStack_30c = uStack_348._4_4_" identifier = (field_expression "uStack_348._4_4_" identifier . field_identifier)) ;) (expression_statement "dVar40 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dVar40 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) (if_statement "if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }" if (parenthesized_expression "(ABS(uStack_348) < dStack_2b8)" ( (binary_expression "ABS(uStack_348) < dStack_2b8" (call_expression "ABS(uStack_348)" identifier (argument_list "(uStack_348)" ( identifier ))) < identifier) )) (compound_statement "{\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }" { (expression_statement "dVar40 = in_f20_21 - dVar40;" (assignment_expression "dVar40 = in_f20_21 - dVar40" identifier = (binary_expression "in_f20_21 - dVar40" identifier - identifier)) ;) (expression_statement "uStack_2c4 = SUB84(dVar40,0);" (assignment_expression "uStack_2c4 = SUB84(dVar40,0)" identifier = (call_expression "SUB84(dVar40,0)" identifier (argument_list "(dVar40,0)" ( identifier , number_literal )))) ;) (expression_statement "uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;" (assignment_expression "uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff" identifier = (binary_expression "(uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff" (call_expression "(uint)((ulonglong)dVar40 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)dVar40 >> 0x20)" ( (binary_expression "(ulonglong)dVar40 >> 0x20" (cast_expression "(ulonglong)dVar40" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & number_literal)) ;) (expression_statement "uStack_348 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "uStack_348 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) (if_statement "if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }" if (parenthesized_expression "((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21))" ( (binary_expression "(ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)" (parenthesized_expression "(ABS(dVar40) < *(double *)(iVar3 + 0x43c8))" ( (binary_expression "ABS(dVar40) < *(double *)(iVar3 + 0x43c8)" (call_expression "ABS(dVar40)" identifier (argument_list "(dVar40)" ( identifier ))) < (pointer_expression "*(double *)(iVar3 + 0x43c8)" * (cast_expression "(double *)(iVar3 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x43c8)" ( (binary_expression "iVar3 + 0x43c8" identifier + number_literal) ))))) )) || (parenthesized_expression "(uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)" ( (comma_expression "uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21" (assignment_expression "uStack_348 = SQRT(in_f20_21)" identifier = (call_expression "SQRT(in_f20_21)" identifier (argument_list "(in_f20_21)" ( identifier )))) , (binary_expression "0.0 <= in_f20_21" number_literal <= identifier)) ))) )) (compound_statement "{\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }" { (expression_statement "dVar40 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dVar40 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }" else (compound_statement "{\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }" { (expression_statement "(**(code **)(puVar36 + -0x7418))(in_f20_21);" (call_expression "(**(code **)(puVar36 + -0x7418))(in_f20_21)" (parenthesized_expression "(**(code **)(puVar36 + -0x7418))" ( (pointer_expression "**(code **)(puVar36 + -0x7418)" * (pointer_expression "*(code **)(puVar36 + -0x7418)" * (cast_expression "(code **)(puVar36 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x7418)" ( (binary_expression "puVar36 + -0x7418" identifier + number_literal) ))))) )) (argument_list "(in_f20_21)" ( identifier ))) ;) (expression_statement "dVar40 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dVar40 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) (expression_statement "puVar36 = puStack_350;" (assignment_expression "puVar36 = puStack_350" identifier = identifier) ;) }))) })) (expression_statement "dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);" (assignment_expression "dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40)" identifier = (binary_expression "(uStack_348 - dVar40) * (uStack_348 - dVar40)" (parenthesized_expression "(uStack_348 - dVar40)" ( (binary_expression "uStack_348 - dVar40" identifier - identifier) )) * (parenthesized_expression "(uStack_348 - dVar40)" ( (binary_expression "uStack_348 - dVar40" identifier - identifier) )))) ;) (if_statement "if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }" if (parenthesized_expression "(dVar40 <= dStack_340)" ( (binary_expression "dVar40 <= dStack_340" identifier <= identifier) )) (compound_statement "{\n                                      dVar40 = dStack_340;\n                                    }" { (expression_statement "dVar40 = dStack_340;" (assignment_expression "dVar40 = dStack_340" identifier = identifier) ;) })) }) (else_clause "else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }" else (compound_statement "{\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }" { (expression_statement "dVar40 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dVar40 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) }))) })) })) (expression_statement "dStack_340 = dVar40;" (assignment_expression "dStack_340 = dVar40" identifier = identifier) ;) (expression_statement "iVar28 = iVar28 + 1;" (assignment_expression "iVar28 = iVar28 + 1" identifier = (binary_expression "iVar28 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s4 = piStack_304;" (assignment_expression "unaff_s4 = piStack_304" identifier = identifier) ;) (expression_statement "in_f24_25 = dVar41;" (assignment_expression "in_f24_25 = dVar41" identifier = identifier) ;) (if_statement "if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;" if (parenthesized_expression "(*(int *)((int)pdVar29 + 0x2c) <= iVar28)" ( (binary_expression "*(int *)((int)pdVar29 + 0x2c) <= iVar28" (pointer_expression "*(int *)((int)pdVar29 + 0x2c)" * (cast_expression "(int *)((int)pdVar29 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + 0x2c)" ( (binary_expression "(int)pdVar29 + 0x2c" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) <= identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = *(int *)(pdVar29 + 5);" (assignment_expression "iVar12 = *(int *)(pdVar29 + 5)" identifier = (pointer_expression "*(int *)(pdVar29 + 5)" * (cast_expression "(int *)(pdVar29 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar29 + 5)" ( (binary_expression "pdVar29 + 5" identifier + number_literal) ))))) ;) (expression_statement "pdVar16 = (double *)(iVar12 + iVar50);" (assignment_expression "pdVar16 = (double *)(iVar12 + iVar50)" identifier = (cast_expression "(double *)(iVar12 + iVar50)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + iVar50)" ( (binary_expression "iVar12 + iVar50" identifier + identifier) )))) ;) }) while (parenthesized_expression "((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27)" ( (binary_expression "(pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27" (binary_expression "(pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0)" (parenthesized_expression "(pdVar16[1] - in_f28_29)" ( (binary_expression "pdVar16[1] - in_f28_29" (subscript_expression "pdVar16[1]" identifier [ number_literal ]) - identifier) )) - (pointer_expression "*(double *)(iVar10 + 0x43d0)" * (cast_expression "(double *)(iVar10 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x43d0)" ( (binary_expression "iVar10 + 0x43d0" identifier + number_literal) ))))) < identifier) )) ;) })) })) })) }) (else_clause "else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }" else (compound_statement "{\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }" { (if_statement "if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }" if (parenthesized_expression "(puVar13 <= param_1)" ( (binary_expression "puVar13 <= param_1" identifier <= identifier) )) (compound_statement "{\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }" { (expression_statement "iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);" (assignment_expression "iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c)" identifier = (call_expression "(**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c)" (parenthesized_expression "(**(code **)(puVar36 + -0x7290))" ( (pointer_expression "**(code **)(puVar36 + -0x7290)" * (pointer_expression "*(code **)(puVar36 + -0x7290)" * (cast_expression "(code **)(puVar36 + -0x7290)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x7290)" ( (binary_expression "puVar36 + -0x7290" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c)" ( (binary_expression "*(int *)(puVar36 + -0x7fcc) + 0x69fc" (pointer_expression "*(int *)(puVar36 + -0x7fcc)" * (cast_expression "(int *)(puVar36 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fcc)" ( (binary_expression "puVar36 + -0x7fcc" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar36 + -0x7fcc) + 0x69c0" (pointer_expression "*(int *)(puVar36 + -0x7fcc)" * (cast_expression "(int *)(puVar36 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fcc)" ( (binary_expression "puVar36 + -0x7fcc" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar36 + -0x7fcc) + 0x773c" (pointer_expression "*(int *)(puVar36 + -0x7fcc)" * (cast_expression "(int *)(puVar36 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fcc)" ( (binary_expression "puVar36 + -0x7fcc" identifier + number_literal) )))) + number_literal) )))) ;) (return_statement "return iVar3;" return identifier ;) })) (expression_statement "iVar49 = *unaff_s4 - (int)pdStack_2ec;" (assignment_expression "iVar49 = *unaff_s4 - (int)pdStack_2ec" identifier = (binary_expression "*unaff_s4 - (int)pdStack_2ec" (pointer_expression "*unaff_s4" * identifier) - (cast_expression "(int)pdStack_2ec" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));" (assignment_expression "uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28))" identifier = (call_expression "(**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28))" (parenthesized_expression "(**(code **)(puVar36 + -0x78d8))" ( (pointer_expression "**(code **)(puVar36 + -0x78d8)" * (pointer_expression "*(code **)(puVar36 + -0x78d8)" * (cast_expression "(code **)(puVar36 + -0x78d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x78d8)" ( (binary_expression "puVar36 + -0x78d8" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)((int)pdVar29 + iVar49 + 0x28))" ( (pointer_expression "*(undefined4 *)((int)pdVar29 + iVar49 + 0x28)" * (cast_expression "(undefined4 *)((int)pdVar29 + iVar49 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + iVar49 + 0x28)" ( (binary_expression "(int)pdVar29 + iVar49 + 0x28" (binary_expression "(int)pdVar29 + iVar49" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) )))) ;) (expression_statement "*(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;" (assignment_expression "*(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4" (pointer_expression "*(undefined4 *)((int)pdVar29 + iVar49 + 0x28)" * (cast_expression "(undefined4 *)((int)pdVar29 + iVar49 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + iVar49 + 0x28)" ( (binary_expression "(int)pdVar29 + iVar49 + 0x28" (binary_expression "(int)pdVar29 + iVar49" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar13 = (undefined4 *)(unaff_s4[1] + -1);" (assignment_expression "puVar13 = (undefined4 *)(unaff_s4[1] + -1)" identifier = (cast_expression "(undefined4 *)(unaff_s4[1] + -1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s4[1] + -1)" ( (binary_expression "unaff_s4[1] + -1" (subscript_expression "unaff_s4[1]" identifier [ number_literal ]) + number_literal) )))) ;) (expression_statement "unaff_s4[1] = (int)puVar13;" (assignment_expression "unaff_s4[1] = (int)puVar13" (subscript_expression "unaff_s4[1]" identifier [ number_literal ]) = (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar36 = puStack_350;" (assignment_expression "puVar36 = puStack_350" identifier = identifier) ;) (if_statement "if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }" if (parenthesized_expression "(param_1 < puVar13)" ( (binary_expression "param_1 < puVar13" identifier < identifier) )) (compound_statement "{\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }" { (expression_statement "(**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);" (call_expression "(**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40)" (parenthesized_expression "(**(code **)(puStack_350 + -0x7948))" ( (pointer_expression "**(code **)(puStack_350 + -0x7948)" * (pointer_expression "*(code **)(puStack_350 + -0x7948)" * (cast_expression "(code **)(puStack_350 + -0x7948)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_350 + -0x7948)" ( (binary_expression "puStack_350 + -0x7948" identifier + number_literal) ))))) )) (argument_list "((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40)" ( (cast_expression "(undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16))" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + (*unaff_s4 - (int)pdVar16))" ( (binary_expression "(int)pdVar29 + (*unaff_s4 - (int)pdVar16)" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(*unaff_s4 - (int)pdVar16)" ( (binary_expression "*unaff_s4 - (int)pdVar16" (pointer_expression "*unaff_s4" * identifier) - (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) , (binary_expression "*unaff_s4 + ((int)param_1 + 1) * 0x40" (pointer_expression "*unaff_s4" * identifier) + (binary_expression "((int)param_1 + 1) * 0x40" (parenthesized_expression "((int)param_1 + 1)" ( (binary_expression "(int)param_1 + 1" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) * number_literal)) , (binary_expression "((int)puVar13 - (int)param_1) * 0x40" (parenthesized_expression "((int)puVar13 - (int)param_1)" ( (binary_expression "(int)puVar13 - (int)param_1" (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal) ))) ;) (expression_statement "puVar36 = puStack_350;" (assignment_expression "puVar36 = puStack_350" identifier = identifier) ;) })) }))) (expression_statement "param_1 = (undefined4 *)((int)param_1 + 1);" (assignment_expression "param_1 = (undefined4 *)((int)param_1 + 1)" identifier = (cast_expression "(undefined4 *)((int)param_1 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 1)" ( (binary_expression "(int)param_1 + 1" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "unaff_s3 = pdVar29 + 8;" (assignment_expression "unaff_s3 = pdVar29 + 8" identifier = (binary_expression "pdVar29 + 8" identifier + number_literal)) ;) (expression_statement "puVar13 = (undefined4 *)unaff_s4[1];" (assignment_expression "puVar13 = (undefined4 *)unaff_s4[1]" identifier = (cast_expression "(undefined4 *)unaff_s4[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "unaff_s4[1]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27))" ( (binary_expression "((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27)" (parenthesized_expression "((int)param_1 < (int)puVar13)" ( (binary_expression "(int)param_1 < (int)puVar13" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27)" ( (comma_expression "pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27" (assignment_expression "pdVar16 = pdVar29 + 9" identifier = (binary_expression "pdVar29 + 9" identifier + number_literal)) , (comma_expression "pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27" (assignment_expression "pdVar29 = unaff_s3" identifier = identifier) , (binary_expression "(*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27" (binary_expression "(*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0)" (parenthesized_expression "(*pdVar16 - in_f28_29)" ( (binary_expression "*pdVar16 - in_f28_29" (pointer_expression "*pdVar16" * identifier) - identifier) )) - (pointer_expression "*(double *)(iVar10 + 0x43d0)" * (cast_expression "(double *)(iVar10 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x43d0)" ( (binary_expression "iVar10 + 0x43d0" identifier + number_literal) ))))) < identifier))) ))) )) ;) (expression_statement "pdVar16 = pdStack_2d8;" (assignment_expression "pdVar16 = pdStack_2d8" identifier = identifier) ;) (if_statement "if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }" if (parenthesized_expression "(iStack_2f4 != 0)" ( (binary_expression "iStack_2f4 != 0" identifier != number_literal) )) (compound_statement "{\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }" { (if_statement "if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;" if (parenthesized_expression "(dStack_340 < *(double *)(unaff_s7 + 0x4408))" ( (binary_expression "dStack_340 < *(double *)(unaff_s7 + 0x4408)" identifier < (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) )) (goto_statement "goto LAB_000a4f34;" goto statement_identifier ;)) (goto_statement "goto LAB_000a4528;" goto statement_identifier ;) })) (if_statement "if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }" if (parenthesized_expression "(*(int *)(iStack_324 + 0x238) == 0)" ( (binary_expression "*(int *)(iStack_324 + 0x238) == 0" (pointer_expression "*(int *)(iStack_324 + 0x238)" * (cast_expression "(int *)(iStack_324 + 0x238)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x238)" ( (binary_expression "iStack_324 + 0x238" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }" { (expression_statement "dStack_340 = 0.0;" (assignment_expression "dStack_340 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_000a4ec0;" goto statement_identifier ;) })) (expression_statement "dStack_340 = 0.0;" (assignment_expression "dStack_340 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_000a46d8;" goto statement_identifier ;) })) (if_statement "if (iStack_2f4 == 0) goto LAB_000a4f94;" if (parenthesized_expression "(iStack_2f4 == 0)" ( (binary_expression "iStack_2f4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000a4f94;" goto statement_identifier ;)) (expression_statement "pdVar29 = (double *)*unaff_s4;" (assignment_expression "pdVar29 = (double *)*unaff_s4" identifier = (cast_expression "(double *)*unaff_s4" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*unaff_s4" * identifier))) ;) (expression_statement "dStack_338 = 0.0;" (assignment_expression "dStack_338 = 0.0" identifier = number_literal) ;) (expression_statement "dStack_340 = 0.0;" (assignment_expression "dStack_340 = 0.0" identifier = number_literal) ;) (expression_statement "dVar39 = in_f30_31;" (assignment_expression "dVar39 = in_f30_31" identifier = identifier) ;) (labeled_statement "LAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;" statement_identifier : (expression_statement "dVar41 = (double)iStack_2f0;" (assignment_expression "dVar41 = (double)iStack_2f0" identifier = (cast_expression "(double)iStack_2f0" ( (type_descriptor "double" primitive_type) ) identifier)) ;)) (expression_statement "puVar21 = (undefined4 *)0x0;" (assignment_expression "puVar21 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }" if (parenthesized_expression "(pdVar29[1] < dVar41)" ( (binary_expression "pdVar29[1] < dVar41" (subscript_expression "pdVar29[1]" identifier [ number_literal ]) < identifier) )) (compound_statement "{\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }" { (expression_statement "uVar26 = 0;" (assignment_expression "uVar26 = 0" identifier = number_literal) ;) (do_statement "do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));" do (compound_statement "{\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  }" { (if_statement "if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }" if (parenthesized_expression "((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40))" ( (binary_expression "(dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)" (parenthesized_expression "(dVar41 <= pdVar29[3])" ( (binary_expression "dVar41 <= pdVar29[3]" identifier <= (subscript_expression "pdVar29[3]" identifier [ number_literal ])) )) && (parenthesized_expression "(dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)" ( (comma_expression "dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40" (assignment_expression "dVar40 = (double)(int)uStack_328" identifier = (cast_expression "(double)(int)uStack_328" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)uStack_328" ( (type_descriptor "int" primitive_type) ) identifier))) , (binary_expression "*pdVar29 < dVar40" (pointer_expression "*pdVar29" * identifier) < identifier)) ))) )) (compound_statement "{\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }" { (expression_statement "iVar10 = -1;" (assignment_expression "iVar10 = -1" identifier = number_literal) ;) (if_statement "if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }" if (parenthesized_expression "(dVar40 <= pdVar29[2])" ( (binary_expression "dVar40 <= pdVar29[2]" identifier <= (subscript_expression "pdVar29[2]" identifier [ number_literal ])) )) (compound_statement "{\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }" { (expression_statement "iVar10 = *(int *)(pdVar29 + 7);" (assignment_expression "iVar10 = *(int *)(pdVar29 + 7)" identifier = (pointer_expression "*(int *)(pdVar29 + 7)" * (cast_expression "(int *)(pdVar29 + 7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar29 + 7)" ( (binary_expression "pdVar29 + 7" identifier + number_literal) ))))) ;) (expression_statement "dVar47 = (double)iVar10;" (assignment_expression "dVar47 = (double)iVar10" identifier = (cast_expression "(double)iVar10" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }" if (parenthesized_expression "(iVar10 < 0)" ( (binary_expression "iVar10 < 0" identifier < number_literal) )) (compound_statement "{\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }" { (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8)" identifier = (binary_expression "dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8)" identifier + (pointer_expression "*(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8)" * (cast_expression "(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + -0x7fd0) + 0x43e8)" ( (binary_expression "*(int *)(puVar36 + -0x7fd0) + 0x43e8" (pointer_expression "*(int *)(puVar36 + -0x7fd0)" * (cast_expression "(int *)(puVar36 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fd0)" ( (binary_expression "puVar36 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) })) (if_statement "if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }" if (parenthesized_expression "(dVar47 <= *(double *)(unaff_s7 + 0x4408))" ( (binary_expression "dVar47 <= *(double *)(unaff_s7 + 0x4408)" identifier <= (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) )) (compound_statement "{\n                          iVar10 = 1;\n                        }" { (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) })) (expression_statement "iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;" (assignment_expression "iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1" identifier = (binary_expression "*(int *)((int)pdVar29 + 0x2c) + -1" (pointer_expression "*(int *)((int)pdVar29 + 0x2c)" * (cast_expression "(int *)((int)pdVar29 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + 0x2c)" ( (binary_expression "(int)pdVar29 + 0x2c" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal)) ;) (if_statement "if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }" if (parenthesized_expression "(iVar10 < iVar49)" ( (binary_expression "iVar10 < iVar49" identifier < identifier) )) (compound_statement "{\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }" { (expression_statement "iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;" (assignment_expression "iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10" identifier = (binary_expression "*(int *)(pdVar29 + 5) + iVar10 * 0x10" (pointer_expression "*(int *)(pdVar29 + 5)" * (cast_expression "(int *)(pdVar29 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar29 + 5)" ( (binary_expression "pdVar29 + 5" identifier + number_literal) )))) + (binary_expression "iVar10 * 0x10" identifier * number_literal))) ;) (expression_statement "dVar47 = *(double *)(iVar28 + 8);" (assignment_expression "dVar47 = *(double *)(iVar28 + 8)" identifier = (pointer_expression "*(double *)(iVar28 + 8)" * (cast_expression "(double *)(iVar28 + 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + 8)" ( (binary_expression "iVar28 + 8" identifier + number_literal) ))))) ;) (while_statement "while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }" while (parenthesized_expression "(dVar47 < dVar41)" ( (binary_expression "dVar47 < dVar41" identifier < identifier) )) (compound_statement "{\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }" { (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (if_statement "if (iVar49 <= iVar10) break;" if (parenthesized_expression "(iVar49 <= iVar10)" ( (binary_expression "iVar49 <= iVar10" identifier <= identifier) )) (break_statement "break;" break ;)) (expression_statement "dVar47 = *(double *)(iVar28 + 0x18);" (assignment_expression "dVar47 = *(double *)(iVar28 + 0x18)" identifier = (pointer_expression "*(double *)(iVar28 + 0x18)" * (cast_expression "(double *)(iVar28 + 0x18)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + 0x18)" ( (binary_expression "iVar28 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "iVar28 = iVar28 + 0x10;" (assignment_expression "iVar28 = iVar28 + 0x10" identifier = (binary_expression "iVar28 + 0x10" identifier + number_literal)) ;) })) })) (expression_statement "pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);" (assignment_expression "pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10)" identifier = (cast_expression "(double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10)" ( (binary_expression "*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10" (pointer_expression "*(int *)(pdVar29 + 5)" * (cast_expression "(int *)(pdVar29 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar29 + 5)" ( (binary_expression "pdVar29 + 5" identifier + number_literal) )))) + (binary_expression "(iVar10 + 0xfffffff) * 0x10" (parenthesized_expression "(iVar10 + 0xfffffff)" ( (binary_expression "iVar10 + 0xfffffff" identifier + number_literal) )) * number_literal)) )))) ;) (expression_statement "iVar10 = -1;" (assignment_expression "iVar10 = -1" identifier = number_literal) ;) (if_statement "if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }" if (parenthesized_expression "((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5))" ( (binary_expression "(pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)" (binary_expression "(pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1])" (parenthesized_expression "(pdVar5[2] - *pdVar5)" ( (binary_expression "pdVar5[2] - *pdVar5" (subscript_expression "pdVar5[2]" identifier [ number_literal ]) - (pointer_expression "*pdVar5" * identifier)) )) * (parenthesized_expression "(dVar41 - pdVar5[1])" ( (binary_expression "dVar41 - pdVar5[1]" identifier - (subscript_expression "pdVar5[1]" identifier [ number_literal ])) ))) <= (binary_expression "(pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)" (parenthesized_expression "(pdVar5[3] - pdVar5[1])" ( (binary_expression "pdVar5[3] - pdVar5[1]" (subscript_expression "pdVar5[3]" identifier [ number_literal ]) - (subscript_expression "pdVar5[1]" identifier [ number_literal ])) )) * (parenthesized_expression "(dVar40 - *pdVar5)" ( (binary_expression "dVar40 - *pdVar5" identifier - (pointer_expression "*pdVar5" * identifier)) )))) )) (compound_statement "{\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }" { (if_statement "if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }" if (parenthesized_expression "(*(int *)(pdVar29 + 6) != 0)" ( (binary_expression "*(int *)(pdVar29 + 6) != 0" (pointer_expression "*(int *)(pdVar29 + 6)" * (cast_expression "(int *)(pdVar29 + 6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar29 + 6)" ( (binary_expression "pdVar29 + 6" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                            iVar10 = 1;\n                          }" { (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) })) (expression_statement "uVar26 = uVar26 + iVar10;" (assignment_expression "uVar26 = uVar26 + iVar10" identifier = (binary_expression "uVar26 + iVar10" identifier + identifier)) ;) })) }) (else_clause "else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }" else (compound_statement "{\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }" { (if_statement "if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }" if (parenthesized_expression "(*(int *)(pdVar29 + 6) != 0)" ( (binary_expression "*(int *)(pdVar29 + 6) != 0" (pointer_expression "*(int *)(pdVar29 + 6)" * (cast_expression "(int *)(pdVar29 + 6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar29 + 6)" ( (binary_expression "pdVar29 + 6" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                          iVar10 = 1;\n                        }" { (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) })) (expression_statement "uVar26 = uVar26 + iVar10;" (assignment_expression "uVar26 = uVar26 + iVar10" identifier = (binary_expression "uVar26 + iVar10" identifier + identifier)) ;) }))) })) (expression_statement "puVar21 = (undefined4 *)((int)puVar21 + 1);" (assignment_expression "puVar21 = (undefined4 *)((int)puVar21 + 1)" identifier = (cast_expression "(undefined4 *)((int)puVar21 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar21 + 1)" ( (binary_expression "(int)puVar21 + 1" (cast_expression "(int)puVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41))" ( (binary_expression "(puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41)" (parenthesized_expression "(puVar21 != puVar13)" ( (binary_expression "puVar21 != puVar13" identifier != identifier) )) && (parenthesized_expression "(pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41)" ( (comma_expression "pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41" (assignment_expression "pdVar5 = pdVar29 + 9" identifier = (binary_expression "pdVar29 + 9" identifier + number_literal)) , (comma_expression "pdVar29 = pdVar29 + 8, *pdVar5 < dVar41" (assignment_expression "pdVar29 = pdVar29 + 8" identifier = (binary_expression "pdVar29 + 8" identifier + number_literal)) , (binary_expression "*pdVar5 < dVar41" (pointer_expression "*pdVar5" * identifier) < identifier))) ))) )) ;) (if_statement "if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }" if (parenthesized_expression "(iStack_2c0 != 2)" ( (binary_expression "iStack_2c0 != 2" identifier != number_literal) )) (compound_statement "{\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }" { (if_statement "if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }" if (parenthesized_expression "((int)uVar26 < 0)" ( (binary_expression "(int)uVar26 < 0" (cast_expression "(int)uVar26" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                      uVar26 = -uVar26;\n                    }" { (expression_statement "uVar26 = -uVar26;" (assignment_expression "uVar26 = -uVar26" identifier = (unary_expression "-uVar26" - identifier)) ;) })) (if_statement "if ((uVar26 & 1) != 0) goto LAB_000a4528;" if (parenthesized_expression "((uVar26 & 1) != 0)" ( (binary_expression "(uVar26 & 1) != 0" (parenthesized_expression "(uVar26 & 1)" ( (binary_expression "uVar26 & 1" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000a4528;" goto statement_identifier ;)) (goto_statement "goto LAB_000a4684;" goto statement_identifier ;) })) (if_statement "if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }" if (parenthesized_expression "(uVar26 != 0)" ( (binary_expression "uVar26 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }" { (labeled_statement "LAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);" statement_identifier : (expression_statement "dStack_340 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dStack_340 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;)) (if_statement "if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;" if (parenthesized_expression "(*(int *)(iStack_324 + 0x238) == 0)" ( (binary_expression "*(int *)(iStack_324 + 0x238) == 0" (pointer_expression "*(int *)(iStack_324 + 0x238)" * (cast_expression "(int *)(iStack_324 + 0x238)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x238)" ( (binary_expression "iStack_324 + 0x238" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000a4ec0;" goto statement_identifier ;)) (goto_statement "goto LAB_000a46d8;" goto statement_identifier ;) })) (expression_statement "iVar10 = *(int *)(iStack_324 + 0x238);" (assignment_expression "iVar10 = *(int *)(iStack_324 + 0x238)" identifier = (pointer_expression "*(int *)(iStack_324 + 0x238)" * (cast_expression "(int *)(iStack_324 + 0x238)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x238)" ( (binary_expression "iStack_324 + 0x238" identifier + number_literal) ))))) ;) }) (else_clause "else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }" else (compound_statement "{\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }" { (labeled_statement "LAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);" statement_identifier : (expression_statement "iVar10 = *(int *)(iStack_324 + 0x238);" (assignment_expression "iVar10 = *(int *)(iStack_324 + 0x238)" identifier = (pointer_expression "*(int *)(iStack_324 + 0x238)" * (cast_expression "(int *)(iStack_324 + 0x238)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x238)" ( (binary_expression "iStack_324 + 0x238" identifier + number_literal) ))))) ;)) }))) (if_statement "if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }" { (expression_statement "iVar10 = *(int *)(puVar36 + -0x7fd0);" (assignment_expression "iVar10 = *(int *)(puVar36 + -0x7fd0)" identifier = (pointer_expression "*(int *)(puVar36 + -0x7fd0)" * (cast_expression "(int *)(puVar36 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fd0)" ( (binary_expression "puVar36 + -0x7fd0" identifier + number_literal) ))))) ;) (expression_statement "bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);" (assignment_expression "bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0)" identifier = (binary_expression "dStack_340 <= *(double *)(iVar10 + 0x43d0)" identifier <= (pointer_expression "*(double *)(iVar10 + 0x43d0)" * (cast_expression "(double *)(iVar10 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x43d0)" ( (binary_expression "iVar10 + 0x43d0" identifier + number_literal) )))))) ;) (expression_statement "dStack_340 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dStack_340 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) (if_statement "if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }" { (expression_statement "dStack_340 = 0.0;" (assignment_expression "dStack_340 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_000a4ec0;" goto statement_identifier ;) })) (labeled_statement "LAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);" statement_identifier : (expression_statement "bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);" (assignment_expression "bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0)" identifier = (binary_expression "dStack_338 <= *(double *)(iVar10 + 0x43d0)" identifier <= (pointer_expression "*(double *)(iVar10 + 0x43d0)" * (cast_expression "(double *)(iVar10 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x43d0)" ( (binary_expression "iVar10 + 0x43d0" identifier + number_literal) )))))) ;)) (expression_statement "dStack_338 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dStack_338 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) (if_statement "if (bVar1) {\n                    dStack_338 = 0.0;\n                  }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                    dStack_338 = 0.0;\n                  }" { (expression_statement "dStack_338 = 0.0;" (assignment_expression "dStack_338 = 0.0" identifier = number_literal) ;) })) })) }))) (labeled_statement "LAB_000a46d8:\n              uVar26 = uStack_2f8;" statement_identifier : (expression_statement "uVar26 = uStack_2f8;" (assignment_expression "uVar26 = uStack_2f8" identifier = identifier) ;)) (expression_statement "iVar28 = uStack_328 - uStack_2d4;" (assignment_expression "iVar28 = uStack_328 - uStack_2d4" identifier = (binary_expression "uStack_328 - uStack_2d4" identifier - identifier)) ;) (expression_statement "iVar10 = *(int *)(iStack_324 + 0x1a8);" (assignment_expression "iVar10 = *(int *)(iStack_324 + 0x1a8)" identifier = (pointer_expression "*(int *)(iStack_324 + 0x1a8)" * (cast_expression "(int *)(iStack_324 + 0x1a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x1a8)" ( (binary_expression "iStack_324 + 0x1a8" identifier + number_literal) ))))) ;) (if_statement "if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }" { (expression_statement "puVar13 = (undefined4 *)(iStack_324 + 0x48);" (assignment_expression "puVar13 = (undefined4 *)(iStack_324 + 0x48)" identifier = (cast_expression "(undefined4 *)(iStack_324 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x48)" ( (binary_expression "iStack_324 + 0x48" identifier + number_literal) )))) ;) (expression_statement "puVar21 = auStack_298;" (assignment_expression "puVar21 = auStack_298" identifier = identifier) ;) (do_statement "do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));" do (compound_statement "{\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                }" { (expression_statement "puVar15 = puVar21;" (assignment_expression "puVar15 = puVar21" identifier = identifier) ;) (expression_statement "puVar9 = puVar13;" (assignment_expression "puVar9 = puVar13" identifier = identifier) ;) (expression_statement "uVar27 = puVar9[1];" (assignment_expression "uVar27 = puVar9[1]" identifier = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "uVar25 = puVar9[2];" (assignment_expression "uVar25 = puVar9[2]" identifier = (subscript_expression "puVar9[2]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = puVar9[3];" (assignment_expression "uVar4 = puVar9[3]" identifier = (subscript_expression "puVar9[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar15 = *puVar9;" (assignment_expression "*puVar15 = *puVar9" (pointer_expression "*puVar15" * identifier) = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar15[1] = uVar27;" (assignment_expression "puVar15[1] = uVar27" (subscript_expression "puVar15[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[2] = uVar25;" (assignment_expression "puVar15[2] = uVar25" (subscript_expression "puVar15[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[3] = uVar4;" (assignment_expression "puVar15[3] = uVar4" (subscript_expression "puVar15[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13 = puVar9 + 4;" (assignment_expression "puVar13 = puVar9 + 4" identifier = (binary_expression "puVar9 + 4" identifier + number_literal)) ;) (expression_statement "puVar21 = puVar15 + 4;" (assignment_expression "puVar21 = puVar15 + 4" identifier = (binary_expression "puVar15 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar13 != (undefined4 *)(iStack_324 + 0x98))" ( (binary_expression "puVar13 != (undefined4 *)(iStack_324 + 0x98)" identifier != (cast_expression "(undefined4 *)(iStack_324 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x98)" ( (binary_expression "iStack_324 + 0x98" identifier + number_literal) )))) )) ;) (expression_statement "uVar4 = puVar9[5];" (assignment_expression "uVar4 = puVar9[5]" identifier = (subscript_expression "puVar9[5]" identifier [ number_literal ])) ;) (expression_statement "puVar15[4] = *puVar13;" (assignment_expression "puVar15[4] = *puVar13" (subscript_expression "puVar15[4]" identifier [ number_literal ]) = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "puVar15[5] = uVar4;" (assignment_expression "puVar15[5] = uVar4" (subscript_expression "puVar15[5]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }" else (compound_statement "{\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }" { (expression_statement "uStack_354 = uStack_2d0;" (assignment_expression "uStack_354 = uStack_2d0" identifier = identifier) ;) (expression_statement "puStack_358 = auStack_298;" (assignment_expression "puStack_358 = auStack_298" identifier = identifier) ;) (expression_statement "(**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));" (call_expression "(**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c))" (parenthesized_expression "(**(code **)(puVar36 + -0x747c))" ( (pointer_expression "**(code **)(puVar36 + -0x747c)" * (pointer_expression "*(code **)(puVar36 + -0x747c)" * (cast_expression "(code **)(puVar36 + -0x747c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x747c)" ( (binary_expression "puVar36 + -0x747c" identifier + number_literal) ))))) )) (argument_list "(iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c))" ( identifier , number_literal , (binary_expression "iVar28 + *(int *)(iVar10 + 0x298)" identifier + (pointer_expression "*(int *)(iVar10 + 0x298)" * (cast_expression "(int *)(iVar10 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x298)" ( (binary_expression "iVar10 + 0x298" identifier + number_literal) ))))) , (binary_expression "uStack_2f8 + *(int *)(iVar10 + 0x29c)" identifier + (pointer_expression "*(int *)(iVar10 + 0x29c)" * (cast_expression "(int *)(iVar10 + 0x29c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x29c)" ( (binary_expression "iVar10 + 0x29c" identifier + number_literal) ))))) ))) ;) (expression_statement "uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);" (assignment_expression "uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c)" identifier = (pointer_expression "*(undefined4 *)(iStack_324 + 0x39c)" * (cast_expression "(undefined4 *)(iStack_324 + 0x39c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x39c)" ( (binary_expression "iStack_324 + 0x39c" identifier + number_literal) ))))) ;) (expression_statement "pdVar29 = (double *)(iStack_324 + 0x398);" (assignment_expression "pdVar29 = (double *)(iStack_324 + 0x398)" identifier = (cast_expression "(double *)(iStack_324 + 0x398)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x398)" ( (binary_expression "iStack_324 + 0x398" identifier + number_literal) )))) ;) (expression_statement "uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;" (assignment_expression "uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff" identifier = (binary_expression "*(uint *)pdVar29 & 0x7fffffff" (pointer_expression "*(uint *)pdVar29" * (cast_expression "(uint *)pdVar29" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal)) ;) (expression_statement "puVar36 = puStack_350;" (assignment_expression "puVar36 = puStack_350" identifier = identifier) ;) (if_statement "if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }" if (parenthesized_expression "(*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29))" ( (binary_expression "*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)" (pointer_expression "*(double *)(iVar3 + 0x43c8)" * (cast_expression "(double *)(iVar3 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x43c8)" ( (binary_expression "iVar3 + 0x43c8" identifier + number_literal) )))) <= (call_expression "ABS(*pdVar29)" identifier (argument_list "(*pdVar29)" ( (pointer_expression "*pdVar29" * identifier) )))) )) (compound_statement "{\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }" { (expression_statement "dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);" (assignment_expression "dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" identifier = (binary_expression "dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" (binary_expression "dStack_250 *\n                               *pdVar29" identifier * (pointer_expression "*pdVar29" * identifier)) * (pointer_expression "*(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" * (cast_expression "(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" ( (binary_expression "*(int *)(puStack_350 + -0x7fd0) + 0x4410" (pointer_expression "*(int *)(puStack_350 + -0x7fd0)" * (cast_expression "(int *)(puStack_350 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_350 + -0x7fd0)" ( (binary_expression "puStack_350 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) })) }))) (if_statement "if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }" if (parenthesized_expression "(*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0)" ( (binary_expression "*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0" (pointer_expression "*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34)" * (cast_expression "(int *)(*(int *)(pdVar16 + 0x5a) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar16 + 0x5a) + 0x34)" ( (binary_expression "*(int *)(pdVar16 + 0x5a) + 0x34" (pointer_expression "*(int *)(pdVar16 + 0x5a)" * (cast_expression "(int *)(pdVar16 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x5a)" ( (binary_expression "pdVar16 + 0x5a" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }" { (expression_statement "fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);" (assignment_expression "fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8)" identifier = (pointer_expression "*(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8)" * (cast_expression "(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + -0x7fd0) + 0x4aa8)" ( (binary_expression "*(int *)(puVar36 + -0x7fd0) + 0x4aa8" (pointer_expression "*(int *)(puVar36 + -0x7fd0)" * (cast_expression "(int *)(puVar36 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fd0)" ( (binary_expression "puVar36 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }" else (compound_statement "{\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }" { (expression_statement "fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);" (assignment_expression "fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4)" identifier = (pointer_expression "*(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4)" * (cast_expression "(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4)" ( (binary_expression "iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4" identifier + (binary_expression "*(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4" (pointer_expression "*(int *)(*(int *)(pdVar16 + 0x5a) + 0x38)" * (cast_expression "(int *)(*(int *)(pdVar16 + 0x5a) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar16 + 0x5a) + 0x38)" ( (binary_expression "*(int *)(pdVar16 + 0x5a) + 0x38" (pointer_expression "*(int *)(pdVar16 + 0x5a)" * (cast_expression "(int *)(pdVar16 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x5a)" ( (binary_expression "pdVar16 + 0x5a" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) }))) (expression_statement "dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);" (assignment_expression "dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" identifier = (binary_expression "dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" (binary_expression "dStack_340 * dStack_250" identifier * identifier) * (pointer_expression "*(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" * (cast_expression "(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + -0x7fd0) + 0x4410)" ( (binary_expression "*(int *)(puVar36 + -0x7fd0) + 0x4410" (pointer_expression "*(int *)(puVar36 + -0x7fd0)" * (cast_expression "(int *)(puVar36 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fd0)" ( (binary_expression "puVar36 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);" (assignment_expression "dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" identifier = (binary_expression "(double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" (cast_expression "(double)fVar43" ( (type_descriptor "double" primitive_type) ) identifier) * (pointer_expression "*(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" * (cast_expression "(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + -0x7fd0) + 0x4410)" ( (binary_expression "*(int *)(puVar36 + -0x7fd0) + 0x4410" (pointer_expression "*(int *)(puVar36 + -0x7fd0)" * (cast_expression "(int *)(puVar36 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fd0)" ( (binary_expression "puVar36 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;" (assignment_expression "dVar41 = (dVar41 + dVar40) - dVar41 * dVar40" identifier = (binary_expression "(dVar41 + dVar40) - dVar41 * dVar40" (parenthesized_expression "(dVar41 + dVar40)" ( (binary_expression "dVar41 + dVar40" identifier + identifier) )) - (binary_expression "dVar41 * dVar40" identifier * identifier))) ;) (expression_statement "in_f30_31 = dVar39;" (assignment_expression "in_f30_31 = dVar39" identifier = identifier) ;) (if_statement "if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }" if (parenthesized_expression "(0 < *(int *)(pdVar16 + 0x58))" ( (binary_expression "0 < *(int *)(pdVar16 + 0x58)" number_literal < (pointer_expression "*(int *)(pdVar16 + 0x58)" * (cast_expression "(int *)(pdVar16 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x58)" ( (binary_expression "pdVar16 + 0x58" identifier + number_literal) ))))) )) (compound_statement "{\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }" { (expression_statement "iVar49 = 0;" (assignment_expression "iVar49 = 0" identifier = number_literal) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "in_f26_27 = 0.0;" (assignment_expression "in_f26_27 = 0.0" identifier = number_literal) ;) (expression_statement "in_f20_21 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "in_f20_21 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) (do_statement "do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));" do (compound_statement "{\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                }" { (expression_statement "uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);" (assignment_expression "uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49)" identifier = (pointer_expression "*(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49)" * (cast_expression "(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar16 + 0x5a) + iVar49)" ( (binary_expression "*(int *)(pdVar16 + 0x5a) + iVar49" (pointer_expression "*(int *)(pdVar16 + 0x5a)" * (cast_expression "(int *)(pdVar16 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x5a)" ( (binary_expression "pdVar16 + 0x5a" identifier + number_literal) )))) + identifier) ))))) ;) (expression_statement "uStack_348 = dVar41;" (assignment_expression "uStack_348 = dVar41" identifier = identifier) ;) (if_statement "if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }" if (parenthesized_expression "((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5))" ( (binary_expression "(*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)" (parenthesized_expression "(*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0)" ( (binary_expression "*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0" (pointer_expression "*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4)" * (cast_expression "(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4)" ( (binary_expression "*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4" (binary_expression "*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc" (pointer_expression "*(int *)(pdVar16 + 0x5a)" * (cast_expression "(int *)(pdVar16 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x5a)" ( (binary_expression "pdVar16 + 0x5a" identifier + number_literal) )))) + (binary_expression "uVar8 * 0xc" identifier * number_literal)) + number_literal) )))) != number_literal) )) && (parenthesized_expression "(uVar8 < 5)" ( (binary_expression "uVar8 < 5" identifier < number_literal) ))) )) (compound_statement "{\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }" { (expression_statement "iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;" (assignment_expression "iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()" identifier = (call_expression "(*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()" (parenthesized_expression "(*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))" ( (pointer_expression "*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4))" * (cast_expression "(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4))" ( (binary_expression "puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)" * (cast_expression "(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)" ( (binary_expression "*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4" (binary_expression "*(int *)(puVar36 + -0x7fcc) + 0x7370" (pointer_expression "*(int *)(puVar36 + -0x7fcc)" * (cast_expression "(int *)(puVar36 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fcc)" ( (binary_expression "puVar36 + -0x7fcc" identifier + number_literal) )))) + number_literal) + (binary_expression "uVar8 * 4" identifier * number_literal)) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar3;" return identifier ;) })) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "iVar49 = iVar49 + 0xc;" (assignment_expression "iVar49 = iVar49 + 0xc" identifier = (binary_expression "iVar49 + 0xc" identifier + number_literal)) ;) (expression_statement "in_f22_23 = in_f20_21;" (assignment_expression "in_f22_23 = in_f20_21" identifier = identifier) ;) (expression_statement "in_f24_25 = in_f20_21;" (assignment_expression "in_f24_25 = in_f20_21" identifier = identifier) ;) (expression_statement "in_f30_31 = in_f20_21;" (assignment_expression "in_f30_31 = in_f20_21" identifier = identifier) ;) }) while (parenthesized_expression "(iVar10 < *(int *)(pdVar16 + 0x58))" ( (binary_expression "iVar10 < *(int *)(pdVar16 + 0x58)" identifier < (pointer_expression "*(int *)(pdVar16 + 0x58)" * (cast_expression "(int *)(pdVar16 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x58)" ( (binary_expression "pdVar16 + 0x58" identifier + number_literal) ))))) )) ;) })) (expression_statement "iVar10 = *(int *)(iStack_324 + 0x1ac);" (assignment_expression "iVar10 = *(int *)(iStack_324 + 0x1ac)" identifier = (pointer_expression "*(int *)(iStack_324 + 0x1ac)" * (cast_expression "(int *)(iStack_324 + 0x1ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x1ac)" ( (binary_expression "iStack_324 + 0x1ac" identifier + number_literal) ))))) ;) (if_statement "if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }" { (expression_statement "puVar13 = (undefined4 *)(iStack_324 + 0xa0);" (assignment_expression "puVar13 = (undefined4 *)(iStack_324 + 0xa0)" identifier = (cast_expression "(undefined4 *)(iStack_324 + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0xa0)" ( (binary_expression "iStack_324 + 0xa0" identifier + number_literal) )))) ;) (expression_statement "puVar21 = auStack_240;" (assignment_expression "puVar21 = auStack_240" identifier = identifier) ;) (do_statement "do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));" do (compound_statement "{\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                }" { (expression_statement "puVar15 = puVar21;" (assignment_expression "puVar15 = puVar21" identifier = identifier) ;) (expression_statement "puVar9 = puVar13;" (assignment_expression "puVar9 = puVar13" identifier = identifier) ;) (expression_statement "uVar27 = puVar9[1];" (assignment_expression "uVar27 = puVar9[1]" identifier = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "uVar25 = puVar9[2];" (assignment_expression "uVar25 = puVar9[2]" identifier = (subscript_expression "puVar9[2]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = puVar9[3];" (assignment_expression "uVar4 = puVar9[3]" identifier = (subscript_expression "puVar9[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar15 = *puVar9;" (assignment_expression "*puVar15 = *puVar9" (pointer_expression "*puVar15" * identifier) = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar15[1] = uVar27;" (assignment_expression "puVar15[1] = uVar27" (subscript_expression "puVar15[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[2] = uVar25;" (assignment_expression "puVar15[2] = uVar25" (subscript_expression "puVar15[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[3] = uVar4;" (assignment_expression "puVar15[3] = uVar4" (subscript_expression "puVar15[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13 = puVar9 + 4;" (assignment_expression "puVar13 = puVar9 + 4" identifier = (binary_expression "puVar9 + 4" identifier + number_literal)) ;) (expression_statement "puVar21 = puVar15 + 4;" (assignment_expression "puVar21 = puVar15 + 4" identifier = (binary_expression "puVar15 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar13 != (undefined4 *)(iStack_324 + 0xf0))" ( (binary_expression "puVar13 != (undefined4 *)(iStack_324 + 0xf0)" identifier != (cast_expression "(undefined4 *)(iStack_324 + 0xf0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0xf0)" ( (binary_expression "iStack_324 + 0xf0" identifier + number_literal) )))) )) ;) (expression_statement "uVar4 = puVar9[5];" (assignment_expression "uVar4 = puVar9[5]" identifier = (subscript_expression "puVar9[5]" identifier [ number_literal ])) ;) (expression_statement "puVar15[4] = *puVar13;" (assignment_expression "puVar15[4] = *puVar13" (subscript_expression "puVar15[4]" identifier [ number_literal ]) = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "puVar15[5] = uVar4;" (assignment_expression "puVar15[5] = uVar4" (subscript_expression "puVar15[5]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }" else (compound_statement "{\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }" { (expression_statement "uStack_354 = uStack_2d0;" (assignment_expression "uStack_354 = uStack_2d0" identifier = identifier) ;) (expression_statement "puStack_358 = auStack_240;" (assignment_expression "puStack_358 = auStack_240" identifier = identifier) ;) (expression_statement "(**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));" (call_expression "(**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c))" (parenthesized_expression "(**(code **)(puVar36 + -0x747c))" ( (pointer_expression "**(code **)(puVar36 + -0x747c)" * (pointer_expression "*(code **)(puVar36 + -0x747c)" * (cast_expression "(code **)(puVar36 + -0x747c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x747c)" ( (binary_expression "puVar36 + -0x747c" identifier + number_literal) ))))) )) (argument_list "(iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c))" ( identifier , number_literal , (binary_expression "iVar28 + *(int *)(iVar10 + 0x298)" identifier + (pointer_expression "*(int *)(iVar10 + 0x298)" * (cast_expression "(int *)(iVar10 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x298)" ( (binary_expression "iVar10 + 0x298" identifier + number_literal) ))))) , (binary_expression "uVar26 + *(int *)(iVar10 + 0x29c)" identifier + (pointer_expression "*(int *)(iVar10 + 0x29c)" * (cast_expression "(int *)(iVar10 + 0x29c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x29c)" ( (binary_expression "iVar10 + 0x29c" identifier + number_literal) ))))) ))) ;) (expression_statement "uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);" (assignment_expression "uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4)" identifier = (pointer_expression "*(undefined4 *)(iStack_324 + 0x3a4)" * (cast_expression "(undefined4 *)(iStack_324 + 0x3a4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x3a4)" ( (binary_expression "iStack_324 + 0x3a4" identifier + number_literal) ))))) ;) (expression_statement "pdVar29 = (double *)(iStack_324 + 0x3a0);" (assignment_expression "pdVar29 = (double *)(iStack_324 + 0x3a0)" identifier = (cast_expression "(double *)(iStack_324 + 0x3a0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_324 + 0x3a0)" ( (binary_expression "iStack_324 + 0x3a0" identifier + number_literal) )))) ;) (expression_statement "uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;" (assignment_expression "uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff" identifier = (binary_expression "*(uint *)pdVar29 & 0x7fffffff" (pointer_expression "*(uint *)pdVar29" * (cast_expression "(uint *)pdVar29" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal)) ;) (expression_statement "puVar36 = puStack_350;" (assignment_expression "puVar36 = puStack_350" identifier = identifier) ;) (if_statement "if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }" if (parenthesized_expression "(*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29))" ( (binary_expression "*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)" (pointer_expression "*(double *)(iVar3 + 0x43c8)" * (cast_expression "(double *)(iVar3 + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x43c8)" ( (binary_expression "iVar3 + 0x43c8" identifier + number_literal) )))) <= (call_expression "ABS(*pdVar29)" identifier (argument_list "(*pdVar29)" ( (pointer_expression "*pdVar29" * identifier) )))) )) (compound_statement "{\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }" { (expression_statement "dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);" (assignment_expression "dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" identifier = (binary_expression "dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" (binary_expression "dStack_1f8 *\n                               *pdVar29" identifier * (pointer_expression "*pdVar29" * identifier)) * (pointer_expression "*(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" * (cast_expression "(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" ( (binary_expression "*(int *)(puStack_350 + -0x7fd0) + 0x4410" (pointer_expression "*(int *)(puStack_350 + -0x7fd0)" * (cast_expression "(int *)(puStack_350 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_350 + -0x7fd0)" ( (binary_expression "puStack_350 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) })) }))) (if_statement "if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }" if (parenthesized_expression "(*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0)" ( (binary_expression "*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0" (pointer_expression "*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34)" * (cast_expression "(int *)(*(int *)(pdVar16 + 0x5a) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar16 + 0x5a) + 0x34)" ( (binary_expression "*(int *)(pdVar16 + 0x5a) + 0x34" (pointer_expression "*(int *)(pdVar16 + 0x5a)" * (cast_expression "(int *)(pdVar16 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x5a)" ( (binary_expression "pdVar16 + 0x5a" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }" { (expression_statement "fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);" (assignment_expression "fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8)" identifier = (pointer_expression "*(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8)" * (cast_expression "(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + -0x7fd0) + 0x4aa8)" ( (binary_expression "*(int *)(puVar36 + -0x7fd0) + 0x4aa8" (pointer_expression "*(int *)(puVar36 + -0x7fd0)" * (cast_expression "(int *)(puVar36 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fd0)" ( (binary_expression "puVar36 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }" else (compound_statement "{\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }" { (expression_statement "fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);" (assignment_expression "fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4)" identifier = (pointer_expression "*(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4)" * (cast_expression "(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4)" ( (binary_expression "iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4" identifier + (binary_expression "*(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4" (pointer_expression "*(int *)(*(int *)(pdVar16 + 0x5a) + 0x38)" * (cast_expression "(int *)(*(int *)(pdVar16 + 0x5a) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar16 + 0x5a) + 0x38)" ( (binary_expression "*(int *)(pdVar16 + 0x5a) + 0x38" (pointer_expression "*(int *)(pdVar16 + 0x5a)" * (cast_expression "(int *)(pdVar16 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x5a)" ( (binary_expression "pdVar16 + 0x5a" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) }))) (expression_statement "dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);" (assignment_expression "dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" identifier = (binary_expression "dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" (binary_expression "dStack_338 * dStack_1f8" identifier * identifier) * (pointer_expression "*(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" * (cast_expression "(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + -0x7fd0) + 0x4410)" ( (binary_expression "*(int *)(puVar36 + -0x7fd0) + 0x4410" (pointer_expression "*(int *)(puVar36 + -0x7fd0)" * (cast_expression "(int *)(puVar36 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fd0)" ( (binary_expression "puVar36 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);" (assignment_expression "dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" identifier = (binary_expression "(double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" (cast_expression "(double)fVar43" ( (type_descriptor "double" primitive_type) ) identifier) * (pointer_expression "*(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" * (cast_expression "(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + -0x7fd0) + 0x4410)" ( (binary_expression "*(int *)(puVar36 + -0x7fd0) + 0x4410" (pointer_expression "*(int *)(puVar36 + -0x7fd0)" * (cast_expression "(int *)(puVar36 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fd0)" ( (binary_expression "puVar36 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;" (assignment_expression "dVar39 = (dVar39 + dVar41) - dVar39 * dVar41" identifier = (binary_expression "(dVar39 + dVar41) - dVar39 * dVar41" (parenthesized_expression "(dVar39 + dVar41)" ( (binary_expression "dVar39 + dVar41" identifier + identifier) )) - (binary_expression "dVar39 * dVar41" identifier * identifier))) ;) (expression_statement "iVar10 = *(int *)(pdVar16 + 0x58);" (assignment_expression "iVar10 = *(int *)(pdVar16 + 0x58)" identifier = (pointer_expression "*(int *)(pdVar16 + 0x58)" * (cast_expression "(int *)(pdVar16 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x58)" ( (binary_expression "pdVar16 + 0x58" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }" if (parenthesized_expression "(0 < iVar10)" ( (binary_expression "0 < iVar10" number_literal < identifier) )) (compound_statement "{\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "iVar49 = 0;" (assignment_expression "iVar49 = 0" identifier = number_literal) ;) (expression_statement "in_f30_31 = 0.0;" (assignment_expression "in_f30_31 = 0.0" identifier = number_literal) ;) (expression_statement "in_f20_21 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "in_f20_21 = *(double *)(unaff_s7 + 0x4408)" identifier = (pointer_expression "*(double *)(unaff_s7 + 0x4408)" * (cast_expression "(double *)(unaff_s7 + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x4408)" ( (binary_expression "unaff_s7 + 0x4408" identifier + number_literal) ))))) ;) (do_statement "do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);" do (compound_statement "{\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                }" { (expression_statement "uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);" (assignment_expression "uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12)" identifier = (pointer_expression "*(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12)" * (cast_expression "(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar16 + 0x5a) + iVar12)" ( (binary_expression "*(int *)(pdVar16 + 0x5a) + iVar12" (pointer_expression "*(int *)(pdVar16 + 0x5a)" * (cast_expression "(int *)(pdVar16 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x5a)" ( (binary_expression "pdVar16 + 0x5a" identifier + number_literal) )))) + identifier) ))))) ;) (expression_statement "uStack_348 = dVar39;" (assignment_expression "uStack_348 = dVar39" identifier = identifier) ;) (if_statement "if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }" if (parenthesized_expression "((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5))" ( (binary_expression "(*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)" (parenthesized_expression "(*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0)" ( (binary_expression "*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0" (pointer_expression "*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4)" * (cast_expression "(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4)" ( (binary_expression "*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4" (binary_expression "*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc" (pointer_expression "*(int *)(pdVar16 + 0x5a)" * (cast_expression "(int *)(pdVar16 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x5a)" ( (binary_expression "pdVar16 + 0x5a" identifier + number_literal) )))) + (binary_expression "uVar8 * 0xc" identifier * number_literal)) + number_literal) )))) != number_literal) )) && (parenthesized_expression "(uVar8 < 5)" ( (binary_expression "uVar8 < 5" identifier < number_literal) ))) )) (compound_statement "{\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }" { (expression_statement "iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));" (assignment_expression "iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48))" identifier = (call_expression "(*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48))" (parenthesized_expression "(*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))" ( (pointer_expression "*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4))" * (cast_expression "(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4))" ( (binary_expression "puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)" * (cast_expression "(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)" ( (binary_expression "*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4" (binary_expression "*(int *)(puVar36 + -0x7fcc) + 0x7384" (pointer_expression "*(int *)(puVar36 + -0x7fcc)" * (cast_expression "(int *)(puVar36 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fcc)" ( (binary_expression "puVar36 + -0x7fcc" identifier + number_literal) )))) + number_literal) + (binary_expression "uVar8 * 4" identifier * number_literal)) ))))) )))) )) (argument_list "(in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48))" ( identifier , (pointer_expression "*(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48)" * (cast_expression "(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + -0x7fd0) + 0x4a48)" ( (binary_expression "*(int *)(puVar36 + -0x7fd0) + 0x4a48" (pointer_expression "*(int *)(puVar36 + -0x7fd0)" * (cast_expression "(int *)(puVar36 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + -0x7fd0)" ( (binary_expression "puVar36 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))) )))) ;) (return_statement "return iVar3;" return identifier ;) })) (expression_statement "iVar49 = iVar49 + 1;" (assignment_expression "iVar49 = iVar49 + 1" identifier = (binary_expression "iVar49 + 1" identifier + number_literal)) ;) (expression_statement "iVar10 = *(int *)(pdVar16 + 0x58);" (assignment_expression "iVar10 = *(int *)(pdVar16 + 0x58)" identifier = (pointer_expression "*(int *)(pdVar16 + 0x58)" * (cast_expression "(int *)(pdVar16 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 0x58)" ( (binary_expression "pdVar16 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = iVar12 + 0xc;" (assignment_expression "iVar12 = iVar12 + 0xc" identifier = (binary_expression "iVar12 + 0xc" identifier + number_literal)) ;) (expression_statement "in_f22_23 = in_f20_21;" (assignment_expression "in_f22_23 = in_f20_21" identifier = identifier) ;) (expression_statement "in_f24_25 = in_f20_21;" (assignment_expression "in_f24_25 = in_f20_21" identifier = identifier) ;) (expression_statement "in_f26_27 = in_f20_21;" (assignment_expression "in_f26_27 = in_f20_21" identifier = identifier) ;) }) while (parenthesized_expression "(iVar49 < iVar10)" ( (binary_expression "iVar49 < iVar10" identifier < identifier) )) ;) })) (expression_statement "iStack_308 = iStack_308 + iVar10 * 4;" (assignment_expression "iStack_308 = iStack_308 + iVar10 * 4" identifier = (binary_expression "iStack_308 + iVar10 * 4" identifier + (binary_expression "iVar10 * 4" identifier * number_literal))) ;) (expression_statement "uStack_328 = uStack_328 + 1;" (assignment_expression "uStack_328 = uStack_328 + 1" identifier = (binary_expression "uStack_328 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s6 = pdVar16;" (assignment_expression "unaff_s6 = pdVar16" identifier = identifier) ;) }) while (parenthesized_expression "((int)uStack_328 <= (int)pdStack_2cc)" ( (binary_expression "(int)uStack_328 <= (int)pdStack_2cc" (cast_expression "(int)uStack_328" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pdStack_2cc" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "pdVar29 = pdStack_2a0;" (assignment_expression "pdVar29 = pdStack_2a0" identifier = identifier) ;) (expression_statement "iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);" (assignment_expression "iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0)" identifier = (call_expression "(**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0)" (parenthesized_expression "(**(code **)(puVar36 + -0x73a0))" ( (pointer_expression "**(code **)(puVar36 + -0x73a0)" * (pointer_expression "*(code **)(puVar36 + -0x73a0)" * (cast_expression "(code **)(puVar36 + -0x73a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + -0x73a0)" ( (binary_expression "puVar36 + -0x73a0" identifier + number_literal) ))))) )) (argument_list "(pdStack_2a0,uStack_2d0)" ( identifier , identifier )))) ;) (if_statement "if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }" { (expression_statement "*(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0" (pointer_expression "*(undefined4 *)((int)pdStack_2a8 + 0x2c)" * (cast_expression "(undefined4 *)((int)pdStack_2a8 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdStack_2a8 + 0x2c)" ( (binary_expression "(int)pdStack_2a8 + 0x2c" (cast_expression "(int)pdStack_2a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })) }))) })) (expression_statement "iStack_2f0 = iStack_2f0 + 1;" (assignment_expression "iStack_2f0 = iStack_2f0 + 1" identifier = (binary_expression "iStack_2f0 + 1" identifier + number_literal)) ;) (expression_statement "uStack_2f8 = uStack_2f8 + 1;" (assignment_expression "uStack_2f8 = uStack_2f8 + 1" identifier = (binary_expression "uStack_2f8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iStack_2f0 < (int)puStack_2a4)" ( (binary_expression "iStack_2f0 < (int)puStack_2a4" identifier < (cast_expression "(int)puStack_2a4" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (if_statement "if (iStack_1e4 == **(int **)(puStack_350 + -0x7668)) {\n    return **(int **)(puStack_350 + -0x7668);\n  }" if (parenthesized_expression "(iStack_1e4 == **(int **)(puStack_350 + -0x7668))" ( (binary_expression "iStack_1e4 == **(int **)(puStack_350 + -0x7668)" identifier == (pointer_expression "**(int **)(puStack_350 + -0x7668)" * (pointer_expression "*(int **)(puStack_350 + -0x7668)" * (cast_expression "(int **)(puStack_350 + -0x7668)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_350 + -0x7668)" ( (binary_expression "puStack_350 + -0x7668" identifier + number_literal) )))))) )) (compound_statement "{\n    return **(int **)(puStack_350 + -0x7668);\n  }" { (return_statement "return **(int **)(puStack_350 + -0x7668);" return (pointer_expression "**(int **)(puStack_350 + -0x7668)" * (pointer_expression "*(int **)(puStack_350 + -0x7668)" * (cast_expression "(int **)(puStack_350 + -0x7668)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_350 + -0x7668)" ( (binary_expression "puStack_350 + -0x7668" identifier + number_literal) ))))) ;) })) (expression_statement "pcVar37 = *(code **)(puStack_350 + -0x7834);" (assignment_expression "pcVar37 = *(code **)(puStack_350 + -0x7834)" identifier = (pointer_expression "*(code **)(puStack_350 + -0x7834)" * (cast_expression "(code **)(puStack_350 + -0x7834)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_350 + -0x7834)" ( (binary_expression "puStack_350 + -0x7834" identifier + number_literal) ))))) ;) (expression_statement "pcVar38 = FUN_000a5040;" (assignment_expression "pcVar38 = FUN_000a5040" identifier = identifier) ;) (expression_statement "(*pcVar37)();" (call_expression "(*pcVar37)()" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_440 = pcVar37 + 0x35c870;" (assignment_expression "pcStack_440 = pcVar37 + 0x35c870" identifier = (binary_expression "pcVar37 + 0x35c870" identifier + number_literal)) ;) (expression_statement "iStack_3bc = **(int **)(pcVar37 + 0x355208);" (assignment_expression "iStack_3bc = **(int **)(pcVar37 + 0x355208)" identifier = (pointer_expression "**(int **)(pcVar37 + 0x355208)" * (pointer_expression "*(int **)(pcVar37 + 0x355208)" * (cast_expression "(int **)(pcVar37 + 0x355208)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x355208)" ( (binary_expression "pcVar37 + 0x355208" identifier + number_literal) )))))) ;) (expression_statement "uVar8 = *(uint *)(pdVar29 + 3);" (assignment_expression "uVar8 = *(uint *)(pdVar29 + 3)" identifier = (pointer_expression "*(uint *)(pdVar29 + 3)" * (cast_expression "(uint *)(pdVar29 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar29 + 3)" ( (binary_expression "pdVar29 + 3" identifier + number_literal) ))))) ;) (expression_statement "pdVar5 = pdVar29;" (assignment_expression "pdVar5 = pdVar29" identifier = identifier) ;) (expression_statement "uStack_428 = uVar8;" (assignment_expression "uStack_428 = uVar8" identifier = identifier) ;) (expression_statement "iStack_3b8 = iVar28;" (assignment_expression "iStack_3b8 = iVar28" identifier = identifier) ;) (expression_statement "uStack_3b4 = uVar26;" (assignment_expression "uStack_3b4 = uVar26" identifier = identifier) ;) (expression_statement "pdStack_3b0 = pdVar16;" (assignment_expression "pdStack_3b0 = pdVar16" identifier = identifier) ;) (expression_statement "pdStack_3ac = unaff_s3;" (assignment_expression "pdStack_3ac = unaff_s3" identifier = identifier) ;) (expression_statement "piStack_3a8 = unaff_s4;" (assignment_expression "piStack_3a8 = unaff_s4" identifier = identifier) ;) (expression_statement "puStack_3a4 = param_1;" (assignment_expression "puStack_3a4 = param_1" identifier = identifier) ;) (expression_statement "pdStack_3a0 = unaff_s6;" (assignment_expression "pdStack_3a0 = unaff_s6" identifier = identifier) ;) (expression_statement "uStack_39c = unaff_s7;" (assignment_expression "uStack_39c = unaff_s7" identifier = identifier) ;) (expression_statement "iStack_398 = iVar3;" (assignment_expression "iStack_398 = iVar3" identifier = identifier) ;) (expression_statement "pcStack_394 = pcVar38;" (assignment_expression "pcStack_394 = pcVar38" identifier = identifier) ;) (expression_statement "dStack_390 = in_f20_21;" (assignment_expression "dStack_390 = in_f20_21" identifier = identifier) ;) (expression_statement "dStack_388 = in_f22_23;" (assignment_expression "dStack_388 = in_f22_23" identifier = identifier) ;) (expression_statement "dStack_380 = in_f24_25;" (assignment_expression "dStack_380 = in_f24_25" identifier = identifier) ;) (expression_statement "dStack_378 = in_f26_27;" (assignment_expression "dStack_378 = in_f26_27" identifier = identifier) ;) (expression_statement "dStack_370 = in_f28_29;" (assignment_expression "dStack_370 = in_f28_29" identifier = identifier) ;) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3558e4))();" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3558e4))()" identifier = (call_expression "(**(code **)(pcVar37 + 0x3558e4))()" (parenthesized_expression "(**(code **)(pcVar37 + 0x3558e4))" ( (pointer_expression "**(code **)(pcVar37 + 0x3558e4)" * (pointer_expression "*(code **)(pcVar37 + 0x3558e4)" * (cast_expression "(code **)(pcVar37 + 0x3558e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3558e4)" ( (binary_expression "pcVar37 + 0x3558e4" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar10 = (**(code **)(pcStack_440 + -0x7390))();" (assignment_expression "iVar10 = (**(code **)(pcStack_440 + -0x7390))()" identifier = (call_expression "(**(code **)(pcStack_440 + -0x7390))()" (parenthesized_expression "(**(code **)(pcStack_440 + -0x7390))" ( (pointer_expression "**(code **)(pcStack_440 + -0x7390)" * (pointer_expression "*(code **)(pcStack_440 + -0x7390)" * (cast_expression "(code **)(pcStack_440 + -0x7390)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_440 + -0x7390)" ( (binary_expression "pcStack_440 + -0x7390" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar49 = (*(uint *)((int)pdVar29 + 0x1c) + 1) - uVar8;" (assignment_expression "iVar49 = (*(uint *)((int)pdVar29 + 0x1c) + 1) - uVar8" identifier = (binary_expression "(*(uint *)((int)pdVar29 + 0x1c) + 1) - uVar8" (parenthesized_expression "(*(uint *)((int)pdVar29 + 0x1c) + 1)" ( (binary_expression "*(uint *)((int)pdVar29 + 0x1c) + 1" (pointer_expression "*(uint *)((int)pdVar29 + 0x1c)" * (cast_expression "(uint *)((int)pdVar29 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + 0x1c)" ( (binary_expression "(int)pdVar29 + 0x1c" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) )) - identifier)) ;) (if_statement "if (iVar3 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 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 "iVar28 = iVar49 / iVar3;" (assignment_expression "iVar28 = iVar49 / iVar3" identifier = (binary_expression "iVar49 / iVar3" identifier / identifier)) ;) (expression_statement "iVar49 = iVar49 % iVar3;" (assignment_expression "iVar49 = iVar49 % iVar3" identifier = (binary_expression "iVar49 % iVar3" identifier % identifier)) ;) (expression_statement "uVar26 = (uint)(iVar10 < iVar49);" (assignment_expression "uVar26 = (uint)(iVar10 < iVar49)" identifier = (call_expression "(uint)(iVar10 < iVar49)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar10 < iVar49)" ( (binary_expression "iVar10 < iVar49" identifier < identifier) )))) ;) (if_statement "if (uVar26 != 0) {\n    iVar28 = iVar28 + 1;\n    iVar49 = 0;\n  }" if (parenthesized_expression "(uVar26 != 0)" ( (binary_expression "uVar26 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar28 = iVar28 + 1;\n    iVar49 = 0;\n  }" { (expression_statement "iVar28 = iVar28 + 1;" (assignment_expression "iVar28 = iVar28 + 1" identifier = (binary_expression "iVar28 + 1" identifier + number_literal)) ;) (expression_statement "iVar49 = 0;" (assignment_expression "iVar49 = 0" identifier = number_literal) ;) })) (expression_statement "iVar49 = iVar28 * iVar10 + iVar49;" (assignment_expression "iVar49 = iVar28 * iVar10 + iVar49" identifier = (binary_expression "iVar28 * iVar10 + iVar49" (binary_expression "iVar28 * iVar10" identifier * identifier) + identifier)) ;) (expression_statement "iVar28 = iVar28 + iVar49;" (assignment_expression "iVar28 = iVar28 + iVar49" identifier = (binary_expression "iVar28 + iVar49" identifier + identifier)) ;) (expression_statement "iVar3 = *(int *)(pcStack_440 + -0x7fd0);" (assignment_expression "iVar3 = *(int *)(pcStack_440 + -0x7fd0)" identifier = (pointer_expression "*(int *)(pcStack_440 + -0x7fd0)" * (cast_expression "(int *)(pcStack_440 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_440 + -0x7fd0)" ( (binary_expression "pcStack_440 + -0x7fd0" identifier + number_literal) ))))) ;) (expression_statement "pcVar37 = pcStack_440;" (assignment_expression "pcVar37 = pcStack_440" identifier = identifier) ;) (if_statement "if (iVar49 < iVar28) {\n    pdStack_42c = *(double **)(pdVar29 + 2);\n    uStack_430 = *(uint *)((int)pdVar29 + 0xc);\n    unaff_s6 = *(double **)(pdVar29 + 1);\n    uStack_424 = *(uint *)((int)pdVar29 + 4);\n    unaff_s7 = *(uint *)pdVar29;\n    iVar49 = uStack_428 + iVar49;\n    iVar28 = uStack_428 + iVar28;\n    in_f22_23 = *(double *)(iVar3 + 0x43d0);\n    in_f26_27 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8);\n    in_f28_29 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410);\n    do {\n      in_f20_21 = *(double *)(iVar3 + 0x43d0);\n      if (*(uint *)(pdVar29 + 4) != 0) {\n        pdVar16 = *(double **)((int)pdVar29 + 0x14);\n        dVar39 = (double)(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21);\n        uStack_434 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21);\n        uVar26 = uStack_434;\n        param_1 = (undefined4 *)(int)dVar39;\n        uStack_444 = uStack_430;\n        piStack_448 = (int *)0x1;\n        pdVar5 = pdStack_42c;\n        pdVar16 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434));\n        if (pdVar16 == (double *)0x0) {\n          *(uint *)(pdVar29 + 4) = 0;\n          pcVar37 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar26 <= (int)param_1;\n          uVar26 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }\n          pdVar5 = pdStack_42c;\n          iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar37 = pcStack_440;\n          if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }\n        }\n      }\n      iVar49 = iVar49 + 1;\n    } while (iVar49 < iVar28);\n  }" if (parenthesized_expression "(iVar49 < iVar28)" ( (binary_expression "iVar49 < iVar28" identifier < identifier) )) (compound_statement "{\n    pdStack_42c = *(double **)(pdVar29 + 2);\n    uStack_430 = *(uint *)((int)pdVar29 + 0xc);\n    unaff_s6 = *(double **)(pdVar29 + 1);\n    uStack_424 = *(uint *)((int)pdVar29 + 4);\n    unaff_s7 = *(uint *)pdVar29;\n    iVar49 = uStack_428 + iVar49;\n    iVar28 = uStack_428 + iVar28;\n    in_f22_23 = *(double *)(iVar3 + 0x43d0);\n    in_f26_27 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8);\n    in_f28_29 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410);\n    do {\n      in_f20_21 = *(double *)(iVar3 + 0x43d0);\n      if (*(uint *)(pdVar29 + 4) != 0) {\n        pdVar16 = *(double **)((int)pdVar29 + 0x14);\n        dVar39 = (double)(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21);\n        uStack_434 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21);\n        uVar26 = uStack_434;\n        param_1 = (undefined4 *)(int)dVar39;\n        uStack_444 = uStack_430;\n        piStack_448 = (int *)0x1;\n        pdVar5 = pdStack_42c;\n        pdVar16 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434));\n        if (pdVar16 == (double *)0x0) {\n          *(uint *)(pdVar29 + 4) = 0;\n          pcVar37 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar26 <= (int)param_1;\n          uVar26 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }\n          pdVar5 = pdStack_42c;\n          iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar37 = pcStack_440;\n          if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }\n        }\n      }\n      iVar49 = iVar49 + 1;\n    } while (iVar49 < iVar28);\n  }" { (expression_statement "pdStack_42c = *(double **)(pdVar29 + 2);" (assignment_expression "pdStack_42c = *(double **)(pdVar29 + 2)" identifier = (pointer_expression "*(double **)(pdVar29 + 2)" * (cast_expression "(double **)(pdVar29 + 2)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar29 + 2)" ( (binary_expression "pdVar29 + 2" identifier + number_literal) ))))) ;) (expression_statement "uStack_430 = *(uint *)((int)pdVar29 + 0xc);" (assignment_expression "uStack_430 = *(uint *)((int)pdVar29 + 0xc)" identifier = (pointer_expression "*(uint *)((int)pdVar29 + 0xc)" * (cast_expression "(uint *)((int)pdVar29 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + 0xc)" ( (binary_expression "(int)pdVar29 + 0xc" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "unaff_s6 = *(double **)(pdVar29 + 1);" (assignment_expression "unaff_s6 = *(double **)(pdVar29 + 1)" identifier = (pointer_expression "*(double **)(pdVar29 + 1)" * (cast_expression "(double **)(pdVar29 + 1)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar29 + 1)" ( (binary_expression "pdVar29 + 1" identifier + number_literal) ))))) ;) (expression_statement "uStack_424 = *(uint *)((int)pdVar29 + 4);" (assignment_expression "uStack_424 = *(uint *)((int)pdVar29 + 4)" identifier = (pointer_expression "*(uint *)((int)pdVar29 + 4)" * (cast_expression "(uint *)((int)pdVar29 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar29 + 4)" ( (binary_expression "(int)pdVar29 + 4" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "unaff_s7 = *(uint *)pdVar29;" (assignment_expression "unaff_s7 = *(uint *)pdVar29" identifier = (pointer_expression "*(uint *)pdVar29" * (cast_expression "(uint *)pdVar29" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar49 = uStack_428 + iVar49;" (assignment_expression "iVar49 = uStack_428 + iVar49" identifier = (binary_expression "uStack_428 + iVar49" identifier + identifier)) ;) (expression_statement "iVar28 = uStack_428 + iVar28;" (assignment_expression "iVar28 = uStack_428 + iVar28" identifier = (binary_expression "uStack_428 + iVar28" identifier + identifier)) ;) (expression_statement "in_f22_23 = *(double *)(iVar3 + 0x43d0);" (assignment_expression "in_f22_23 = *(double *)(iVar3 + 0x43d0)" identifier = (pointer_expression "*(double *)(iVar3 + 0x43d0)" * (cast_expression "(double *)(iVar3 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x43d0)" ( (binary_expression "iVar3 + 0x43d0" identifier + number_literal) ))))) ;) (expression_statement "in_f26_27 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8);" (assignment_expression "in_f26_27 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8)" * (cast_expression "(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8)" ( (binary_expression "*(int *)(pcStack_440 + -0x7fd0) + 0x43c8" (pointer_expression "*(int *)(pcStack_440 + -0x7fd0)" * (cast_expression "(int *)(pcStack_440 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_440 + -0x7fd0)" ( (binary_expression "pcStack_440 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "in_f28_29 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410);" (assignment_expression "in_f28_29 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410)" * (cast_expression "(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_440 + -0x7fd0) + 0x4410)" ( (binary_expression "*(int *)(pcStack_440 + -0x7fd0) + 0x4410" (pointer_expression "*(int *)(pcStack_440 + -0x7fd0)" * (cast_expression "(int *)(pcStack_440 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_440 + -0x7fd0)" ( (binary_expression "pcStack_440 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) (do_statement "do {\n      in_f20_21 = *(double *)(iVar3 + 0x43d0);\n      if (*(uint *)(pdVar29 + 4) != 0) {\n        pdVar16 = *(double **)((int)pdVar29 + 0x14);\n        dVar39 = (double)(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21);\n        uStack_434 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21);\n        uVar26 = uStack_434;\n        param_1 = (undefined4 *)(int)dVar39;\n        uStack_444 = uStack_430;\n        piStack_448 = (int *)0x1;\n        pdVar5 = pdStack_42c;\n        pdVar16 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434));\n        if (pdVar16 == (double *)0x0) {\n          *(uint *)(pdVar29 + 4) = 0;\n          pcVar37 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar26 <= (int)param_1;\n          uVar26 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }\n          pdVar5 = pdStack_42c;\n          iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar37 = pcStack_440;\n          if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }\n        }\n      }\n      iVar49 = iVar49 + 1;\n    } while (iVar49 < iVar28);" do (compound_statement "{\n      in_f20_21 = *(double *)(iVar3 + 0x43d0);\n      if (*(uint *)(pdVar29 + 4) != 0) {\n        pdVar16 = *(double **)((int)pdVar29 + 0x14);\n        dVar39 = (double)(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21);\n        uStack_434 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21);\n        uVar26 = uStack_434;\n        param_1 = (undefined4 *)(int)dVar39;\n        uStack_444 = uStack_430;\n        piStack_448 = (int *)0x1;\n        pdVar5 = pdStack_42c;\n        pdVar16 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434));\n        if (pdVar16 == (double *)0x0) {\n          *(uint *)(pdVar29 + 4) = 0;\n          pcVar37 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar26 <= (int)param_1;\n          uVar26 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }\n          pdVar5 = pdStack_42c;\n          iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar37 = pcStack_440;\n          if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }\n        }\n      }\n      iVar49 = iVar49 + 1;\n    }" { (expression_statement "in_f20_21 = *(double *)(iVar3 + 0x43d0);" (assignment_expression "in_f20_21 = *(double *)(iVar3 + 0x43d0)" identifier = (pointer_expression "*(double *)(iVar3 + 0x43d0)" * (cast_expression "(double *)(iVar3 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x43d0)" ( (binary_expression "iVar3 + 0x43d0" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(pdVar29 + 4) != 0) {\n        pdVar16 = *(double **)((int)pdVar29 + 0x14);\n        dVar39 = (double)(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21);\n        uStack_434 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21);\n        uVar26 = uStack_434;\n        param_1 = (undefined4 *)(int)dVar39;\n        uStack_444 = uStack_430;\n        piStack_448 = (int *)0x1;\n        pdVar5 = pdStack_42c;\n        pdVar16 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434));\n        if (pdVar16 == (double *)0x0) {\n          *(uint *)(pdVar29 + 4) = 0;\n          pcVar37 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar26 <= (int)param_1;\n          uVar26 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }\n          pdVar5 = pdStack_42c;\n          iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar37 = pcStack_440;\n          if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }\n        }\n      }" if (parenthesized_expression "(*(uint *)(pdVar29 + 4) != 0)" ( (binary_expression "*(uint *)(pdVar29 + 4) != 0" (pointer_expression "*(uint *)(pdVar29 + 4)" * (cast_expression "(uint *)(pdVar29 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar29 + 4)" ( (binary_expression "pdVar29 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        pdVar16 = *(double **)((int)pdVar29 + 0x14);\n        dVar39 = (double)(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21);\n        uStack_434 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21);\n        uVar26 = uStack_434;\n        param_1 = (undefined4 *)(int)dVar39;\n        uStack_444 = uStack_430;\n        piStack_448 = (int *)0x1;\n        pdVar5 = pdStack_42c;\n        pdVar16 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434));\n        if (pdVar16 == (double *)0x0) {\n          *(uint *)(pdVar29 + 4) = 0;\n          pcVar37 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar26 <= (int)param_1;\n          uVar26 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }\n          pdVar5 = pdStack_42c;\n          iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar37 = pcStack_440;\n          if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }\n        }\n      }" { (expression_statement "pdVar16 = *(double **)((int)pdVar29 + 0x14);" (assignment_expression "pdVar16 = *(double **)((int)pdVar29 + 0x14)" identifier = (pointer_expression "*(double **)((int)pdVar29 + 0x14)" * (cast_expression "(double **)((int)pdVar29 + 0x14)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pdVar29 + 0x14)" ( (binary_expression "(int)pdVar29 + 0x14" (cast_expression "(int)pdVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "dVar39 = (double)(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21);" (assignment_expression "dVar39 = (double)(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21)" identifier = (cast_expression "(double)(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21)" (parenthesized_expression "(**(code **)(pcVar37 + -0x7c78))" ( (pointer_expression "**(code **)(pcVar37 + -0x7c78)" * (pointer_expression "*(code **)(pcVar37 + -0x7c78)" * (cast_expression "(code **)(pcVar37 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + -0x7c78)" ( (binary_expression "pcVar37 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(*pdVar16 - in_f20_21)" ( (binary_expression "*pdVar16 - in_f20_21" (pointer_expression "*pdVar16" * identifier) - identifier) ))))) ;) (expression_statement "uStack_434 = (uint)dVar39;" (assignment_expression "uStack_434 = (uint)dVar39" identifier = (cast_expression "(uint)dVar39" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "dVar39 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21);" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21)" identifier = (cast_expression "(double)(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21)" (parenthesized_expression "(**(code **)(pcStack_440 + -0x7228))" ( (pointer_expression "**(code **)(pcStack_440 + -0x7228)" * (pointer_expression "*(code **)(pcStack_440 + -0x7228)" * (cast_expression "(code **)(pcStack_440 + -0x7228)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_440 + -0x7228)" ( (binary_expression "pcStack_440 + -0x7228" identifier + number_literal) ))))) )) (argument_list "(pdVar16[2] + in_f20_21)" ( (binary_expression "pdVar16[2] + in_f20_21" (subscript_expression "pdVar16[2]" identifier [ number_literal ]) + identifier) ))))) ;) (expression_statement "uVar26 = uStack_434;" (assignment_expression "uVar26 = uStack_434" identifier = identifier) ;) (expression_statement "param_1 = (undefined4 *)(int)dVar39;" (assignment_expression "param_1 = (undefined4 *)(int)dVar39" identifier = (cast_expression "(undefined4 *)(int)dVar39" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)dVar39" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uStack_444 = uStack_430;" (assignment_expression "uStack_444 = uStack_430" identifier = identifier) ;) (expression_statement "piStack_448 = (int *)0x1;" (assignment_expression "piStack_448 = (int *)0x1" identifier = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pdVar5 = pdStack_42c;" (assignment_expression "pdVar5 = pdStack_42c" identifier = identifier) ;) (expression_statement "pdVar16 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434));" (assignment_expression "pdVar16 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434))" identifier = (cast_expression "(double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434))" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434))" (parenthesized_expression "(**(code **)(pcStack_440 + -0x724c))" ( (pointer_expression "**(code **)(pcStack_440 + -0x724c)" * (pointer_expression "*(code **)(pcStack_440 + -0x724c)" * (cast_expression "(code **)(pcStack_440 + -0x724c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_440 + -0x724c)" ( (binary_expression "pcStack_440 + -0x724c" identifier + number_literal) ))))) )) (argument_list "(pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434))" ( identifier , identifier , identifier , (binary_expression "(int)param_1 + (1 - uStack_434)" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(1 - uStack_434)" ( (binary_expression "1 - uStack_434" number_literal - identifier) ))) ))))) ;) (if_statement "if (pdVar16 == (double *)0x0) {\n          *(uint *)(pdVar29 + 4) = 0;\n          pcVar37 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar26 <= (int)param_1;\n          uVar26 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }\n          pdVar5 = pdStack_42c;\n          iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar37 = pcStack_440;\n          if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }\n        }" if (parenthesized_expression "(pdVar16 == (double *)0x0)" ( (binary_expression "pdVar16 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *(uint *)(pdVar29 + 4) = 0;\n          pcVar37 = pcStack_440;\n        }" { (expression_statement "*(uint *)(pdVar29 + 4) = 0;" (assignment_expression "*(uint *)(pdVar29 + 4) = 0" (pointer_expression "*(uint *)(pdVar29 + 4)" * (cast_expression "(uint *)(pdVar29 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar29 + 4)" ( (binary_expression "pdVar29 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar37 = pcStack_440;" (assignment_expression "pcVar37 = pcStack_440" identifier = identifier) ;) }) (else_clause "else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar26 <= (int)param_1;\n          uVar26 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }\n          pdVar5 = pdStack_42c;\n          iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar37 = pcStack_440;\n          if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }\n        }" else (compound_statement "{\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar26 <= (int)param_1;\n          uVar26 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }\n          pdVar5 = pdStack_42c;\n          iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar37 = pcStack_440;\n          if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }\n        }" { (expression_statement "(**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);" (call_expression "(**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418)" (parenthesized_expression "(**(code **)(pcStack_440 + -0x75e4))" ( (pointer_expression "**(code **)(pcStack_440 + -0x75e4)" * (pointer_expression "*(code **)(pcStack_440 + -0x75e4)" * (cast_expression "(code **)(pcStack_440 + -0x75e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_440 + -0x75e4)" ( (binary_expression "pcStack_440 + -0x75e4" identifier + number_literal) ))))) )) (argument_list "(unaff_s7,aiStack_418)" ( identifier , identifier ))) ;) (expression_statement "bVar1 = (int)uVar26 <= (int)param_1;" (assignment_expression "bVar1 = (int)uVar26 <= (int)param_1" identifier = (binary_expression "(int)uVar26 <= (int)param_1" (cast_expression "(int)uVar26" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar26 = uStack_434;" (assignment_expression "uVar26 = uStack_434" identifier = identifier) ;) (if_statement "if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }" { (expression_statement "in_f20_21 = *(double *)(iVar3 + 0x43d0);" (assignment_expression "in_f20_21 = *(double *)(iVar3 + 0x43d0)" identifier = (pointer_expression "*(double *)(iVar3 + 0x43d0)" * (cast_expression "(double *)(iVar3 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x43d0)" ( (binary_expression "iVar3 + 0x43d0" identifier + number_literal) ))))) ;) (expression_statement "in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));" (assignment_expression "in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8))" identifier = (cast_expression "(double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8))" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8))" identifier (argument_list "((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8))" ( (cast_expression "(int)((ulonglong)in_f24_25 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)in_f24_25 >> 0x20)" ( (binary_expression "(ulonglong)in_f24_25 >> 0x20" (cast_expression "(ulonglong)in_f24_25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (pointer_expression "*(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8)" * (cast_expression "(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8)" ( (binary_expression "*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8" (pointer_expression "*(int *)(pcStack_440 + -0x7fd0)" * (cast_expression "(int *)(pcStack_440 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_440 + -0x7fd0)" ( (binary_expression "pcStack_440 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))) ))))) ;) (do_statement "do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);" do (compound_statement "{\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            }" { (expression_statement "dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21)" identifier = (cast_expression "(double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21)" (parenthesized_expression "(**(code **)(pcStack_440 + -0x7c78))" ( (pointer_expression "**(code **)(pcStack_440 + -0x7c78)" * (pointer_expression "*(code **)(pcStack_440 + -0x7c78)" * (cast_expression "(code **)(pcStack_440 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_440 + -0x7c78)" ( (binary_expression "pcStack_440 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(*unaff_s6 - in_f20_21)" ( (binary_expression "*unaff_s6 - in_f20_21" (pointer_expression "*unaff_s6" * identifier) - identifier) ))))) ;) (if_statement "if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }" if (parenthesized_expression "(((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39))" ( (binary_expression "((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)" (parenthesized_expression "((int)dVar39 == uVar26)" ( (binary_expression "(int)dVar39 == uVar26" (cast_expression "(int)dVar39" ( (type_descriptor "int" primitive_type) ) identifier) == identifier) )) && (parenthesized_expression "(dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)" ( (comma_expression "dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23)" identifier = (cast_expression "(double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23)" (parenthesized_expression "(**(code **)(pcStack_440 + -0x7c78))" ( (pointer_expression "**(code **)(pcStack_440 + -0x7c78)" * (pointer_expression "*(code **)(pcStack_440 + -0x7c78)" * (cast_expression "(code **)(pcStack_440 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_440 + -0x7c78)" ( (binary_expression "pcStack_440 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(unaff_s6[1] - in_f22_23)" ( (binary_expression "unaff_s6[1] - in_f22_23" (subscript_expression "unaff_s6[1]" identifier [ number_literal ]) - identifier) ))))) , (binary_expression "iVar49 == (int)dVar39" identifier == (cast_expression "(int)dVar39" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }" { (expression_statement "iVar10 = *(int *)(uStack_424 + 0x1a8);" (assignment_expression "iVar10 = *(int *)(uStack_424 + 0x1a8)" identifier = (pointer_expression "*(int *)(uStack_424 + 0x1a8)" * (cast_expression "(int *)(uStack_424 + 0x1a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uStack_424 + 0x1a8)" ( (binary_expression "uStack_424 + 0x1a8" identifier + number_literal) ))))) ;) (if_statement "if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }" { (expression_statement "piVar2 = (int *)(uStack_424 + 0x48);" (assignment_expression "piVar2 = (int *)(uStack_424 + 0x48)" identifier = (cast_expression "(int *)(uStack_424 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uStack_424 + 0x48)" ( (binary_expression "uStack_424 + 0x48" identifier + number_literal) )))) ;) (expression_statement "piVar48 = aiStack_418;" (assignment_expression "piVar48 = aiStack_418" identifier = identifier) ;) (do_statement "do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));" do (compound_statement "{\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  }" { (expression_statement "piVar17 = piVar48;" (assignment_expression "piVar17 = piVar48" identifier = identifier) ;) (expression_statement "piVar19 = piVar2;" (assignment_expression "piVar19 = piVar2" identifier = identifier) ;) (expression_statement "iVar50 = piVar19[1];" (assignment_expression "iVar50 = piVar19[1]" identifier = (subscript_expression "piVar19[1]" identifier [ number_literal ])) ;) (expression_statement "iVar12 = piVar19[2];" (assignment_expression "iVar12 = piVar19[2]" identifier = (subscript_expression "piVar19[2]" identifier [ number_literal ])) ;) (expression_statement "iVar10 = piVar19[3];" (assignment_expression "iVar10 = piVar19[3]" identifier = (subscript_expression "piVar19[3]" identifier [ number_literal ])) ;) (expression_statement "*piVar17 = *piVar19;" (assignment_expression "*piVar17 = *piVar19" (pointer_expression "*piVar17" * identifier) = (pointer_expression "*piVar19" * identifier)) ;) (expression_statement "piVar17[1] = iVar50;" (assignment_expression "piVar17[1] = iVar50" (subscript_expression "piVar17[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar17[2] = iVar12;" (assignment_expression "piVar17[2] = iVar12" (subscript_expression "piVar17[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar17[3] = iVar10;" (assignment_expression "piVar17[3] = iVar10" (subscript_expression "piVar17[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar2 = piVar19 + 4;" (assignment_expression "piVar2 = piVar19 + 4" identifier = (binary_expression "piVar19 + 4" identifier + number_literal)) ;) (expression_statement "piVar48 = piVar17 + 4;" (assignment_expression "piVar48 = piVar17 + 4" identifier = (binary_expression "piVar17 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar2 != (int *)(uStack_424 + 0x98))" ( (binary_expression "piVar2 != (int *)(uStack_424 + 0x98)" identifier != (cast_expression "(int *)(uStack_424 + 0x98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uStack_424 + 0x98)" ( (binary_expression "uStack_424 + 0x98" identifier + number_literal) )))) )) ;) (expression_statement "iVar10 = piVar19[5];" (assignment_expression "iVar10 = piVar19[5]" identifier = (subscript_expression "piVar19[5]" identifier [ number_literal ])) ;) (expression_statement "piVar17[4] = *piVar2;" (assignment_expression "piVar17[4] = *piVar2" (subscript_expression "piVar17[4]" identifier [ number_literal ]) = (pointer_expression "*piVar2" * identifier)) ;) (expression_statement "piVar17[5] = iVar10;" (assignment_expression "piVar17[5] = iVar10" (subscript_expression "piVar17[5]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }" else (compound_statement "{\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }" { (expression_statement "uStack_444 = uStack_430;" (assignment_expression "uStack_444 = uStack_430" identifier = identifier) ;) (expression_statement "piStack_448 = aiStack_418;" (assignment_expression "piStack_448 = aiStack_418" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));" (call_expression "(**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c))" (parenthesized_expression "(**(code **)(pcStack_440 + -0x747c))" ( (pointer_expression "**(code **)(pcStack_440 + -0x747c)" * (pointer_expression "*(code **)(pcStack_440 + -0x747c)" * (cast_expression "(code **)(pcStack_440 + -0x747c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_440 + -0x747c)" ( (binary_expression "pcStack_440 + -0x747c" identifier + number_literal) ))))) )) (argument_list "(iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c))" ( identifier , number_literal , (binary_expression "(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298)" (parenthesized_expression "(uVar26 - uStack_434)" ( (binary_expression "uVar26 - uStack_434" identifier - identifier) )) + (pointer_expression "*(int *)(iVar10 + 0x298)" * (cast_expression "(int *)(iVar10 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x298)" ( (binary_expression "iVar10 + 0x298" identifier + number_literal) ))))) , (binary_expression "(iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c)" (parenthesized_expression "(iVar49 - uStack_428)" ( (binary_expression "iVar49 - uStack_428" identifier - identifier) )) + (pointer_expression "*(int *)(iVar10 + 0x29c)" * (cast_expression "(int *)(iVar10 + 0x29c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x29c)" ( (binary_expression "iVar10 + 0x29c" identifier + number_literal) ))))) ))) ;) (expression_statement "uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);" (assignment_expression "uStack_41c = *(undefined4 *)(uStack_424 + 0x39c)" identifier = (pointer_expression "*(undefined4 *)(uStack_424 + 0x39c)" * (cast_expression "(undefined4 *)(uStack_424 + 0x39c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uStack_424 + 0x39c)" ( (binary_expression "uStack_424 + 0x39c" identifier + number_literal) ))))) ;) (expression_statement "pdVar5 = (double *)(uStack_424 + 0x398);" (assignment_expression "pdVar5 = (double *)(uStack_424 + 0x398)" identifier = (cast_expression "(double *)(uStack_424 + 0x398)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uStack_424 + 0x398)" ( (binary_expression "uStack_424 + 0x398" identifier + number_literal) )))) ;) (expression_statement "uStack_420 = *(uint *)pdVar5 & 0x7fffffff;" (assignment_expression "uStack_420 = *(uint *)pdVar5 & 0x7fffffff" identifier = (binary_expression "*(uint *)pdVar5 & 0x7fffffff" (pointer_expression "*(uint *)pdVar5" * (cast_expression "(uint *)pdVar5" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal)) ;) (if_statement "if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }" if (parenthesized_expression "(in_f26_27 <= ABS(*pdVar5))" ( (binary_expression "in_f26_27 <= ABS(*pdVar5)" identifier <= (call_expression "ABS(*pdVar5)" identifier (argument_list "(*pdVar5)" ( (pointer_expression "*pdVar5" * identifier) )))) )) (compound_statement "{\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }" { (expression_statement "dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;" (assignment_expression "dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29" identifier = (binary_expression "dStack_3d0 * *pdVar5 * in_f28_29" (binary_expression "dStack_3d0 * *pdVar5" identifier * (pointer_expression "*pdVar5" * identifier)) * identifier)) ;) })) }))) (expression_statement "iVar10 = *(int *)(unaff_s7 + 0x2d0);" (assignment_expression "iVar10 = *(int *)(unaff_s7 + 0x2d0)" identifier = (pointer_expression "*(int *)(unaff_s7 + 0x2d0)" * (cast_expression "(int *)(unaff_s7 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x2d0)" ( (binary_expression "unaff_s7 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "*(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;" (assignment_expression "*(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0" (pointer_expression "*(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4)" * (cast_expression "(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + *(int *)(iVar10 + 8) * 4)" ( (binary_expression "(int)pdVar16 + *(int *)(iVar10 + 8) * 4" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar10 + 8) * 4" (pointer_expression "*(int *)(iVar10 + 8)" * (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)dStack_3f0" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "*(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;" (assignment_expression "*(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8" (pointer_expression "*(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4)" * (cast_expression "(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4)" ( (binary_expression "(int)pdVar16 + *(int *)(iVar10 + 0x14) * 4" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar10 + 0x14) * 4" (pointer_expression "*(int *)(iVar10 + 0x14)" * (cast_expression "(int *)(iVar10 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)dStack_3e8" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "*(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;" (assignment_expression "*(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0" (pointer_expression "*(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4)" * (cast_expression "(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4)" ( (binary_expression "(int)pdVar16 + *(int *)(iVar10 + 0x20) * 4" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar10 + 0x20) * 4" (pointer_expression "*(int *)(iVar10 + 0x20)" * (cast_expression "(int *)(iVar10 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x20)" ( (binary_expression "iVar10 + 0x20" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)dStack_3e0" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (if_statement "if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }" if (parenthesized_expression "(*(int *)(iVar10 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x28) != 0" (pointer_expression "*(int *)(iVar10 + 0x28)" * (cast_expression "(int *)(iVar10 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x28)" ( (binary_expression "iVar10 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }" { (expression_statement "*(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;" (assignment_expression "*(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8" (pointer_expression "*(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4)" * (cast_expression "(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4)" ( (binary_expression "(int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar10 + 0x2c) * 4" (pointer_expression "*(int *)(iVar10 + 0x2c)" * (cast_expression "(int *)(iVar10 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x2c)" ( (binary_expression "iVar10 + 0x2c" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)dStack_3d8" ( (type_descriptor "float" primitive_type) ) identifier)) ;) })) (if_statement "if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }" if (parenthesized_expression "(*(int *)(iVar10 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x34) != 0" (pointer_expression "*(int *)(iVar10 + 0x34)" * (cast_expression "(int *)(iVar10 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x34)" ( (binary_expression "iVar10 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }" { (if_statement "if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }" if (parenthesized_expression "(aiStack_418[2] == 0)" ( (binary_expression "aiStack_418[2] == 0" (subscript_expression "aiStack_418[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                    fVar43 = SUB84(in_f24_25,0);\n                  }" { (expression_statement "fVar43 = SUB84(in_f24_25,0);" (assignment_expression "fVar43 = SUB84(in_f24_25,0)" identifier = (call_expression "SUB84(in_f24_25,0)" identifier (argument_list "(in_f24_25,0)" ( identifier , number_literal )))) ;) }) (else_clause "else {\n                    fVar43 = (float)dStack_3d0;\n                  }" else (compound_statement "{\n                    fVar43 = (float)dStack_3d0;\n                  }" { (expression_statement "fVar43 = (float)dStack_3d0;" (assignment_expression "fVar43 = (float)dStack_3d0" identifier = (cast_expression "(float)dStack_3d0" ( (type_descriptor "float" primitive_type) ) identifier)) ;) }))) (expression_statement "*(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;" (assignment_expression "*(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43" (pointer_expression "*(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4)" * (cast_expression "(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4)" ( (binary_expression "(int)pdVar16 + *(int *)(iVar10 + 0x38) * 4" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar10 + 0x38) * 4" (pointer_expression "*(int *)(iVar10 + 0x38)" * (cast_expression "(int *)(iVar10 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x38)" ( (binary_expression "iVar10 + 0x38" identifier + number_literal) )))) * number_literal)) )))) = identifier) ;) })) })) (expression_statement "pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);" (assignment_expression "pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4)" identifier = (cast_expression "(double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4)" ( (binary_expression "(int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(unaff_s7 + 0x2c0) * 4" (pointer_expression "*(int *)(unaff_s7 + 0x2c0)" * (cast_expression "(int *)(unaff_s7 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s7 + 0x2c0)" ( (binary_expression "unaff_s7 + 0x2c0" identifier + number_literal) )))) * number_literal)) )))) ;) (expression_statement "uVar26 = uVar26 + 1;" (assignment_expression "uVar26 = uVar26 + 1" identifier = (binary_expression "uVar26 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((int)uVar26 <= (int)param_1)" ( (binary_expression "(int)uVar26 <= (int)param_1" (cast_expression "(int)uVar26" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "pdVar5 = pdStack_42c;" (assignment_expression "pdVar5 = pdStack_42c" identifier = identifier) ;) (expression_statement "iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);" (assignment_expression "iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430)" identifier = (call_expression "(**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430)" (parenthesized_expression "(**(code **)(pcStack_440 + -0x73a0))" ( (pointer_expression "**(code **)(pcStack_440 + -0x73a0)" * (pointer_expression "*(code **)(pcStack_440 + -0x73a0)" * (cast_expression "(code **)(pcStack_440 + -0x73a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_440 + -0x73a0)" ( (binary_expression "pcStack_440 + -0x73a0" identifier + number_literal) ))))) )) (argument_list "(pdStack_42c,uStack_430)" ( identifier , identifier )))) ;) (expression_statement "pcVar37 = pcStack_440;" (assignment_expression "pcVar37 = pcStack_440" identifier = identifier) ;) (if_statement "if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n            *(uint *)(pdVar29 + 4) = 0;\n          }" { (expression_statement "*(uint *)(pdVar29 + 4) = 0;" (assignment_expression "*(uint *)(pdVar29 + 4) = 0" (pointer_expression "*(uint *)(pdVar29 + 4)" * (cast_expression "(uint *)(pdVar29 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar29 + 4)" ( (binary_expression "pdVar29 + 4" identifier + number_literal) )))) = number_literal) ;) })) }))) })) (expression_statement "iVar49 = iVar49 + 1;" (assignment_expression "iVar49 = iVar49 + 1" identifier = (binary_expression "iVar49 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar49 < iVar28)" ( (binary_expression "iVar49 < iVar28" identifier < identifier) )) ;) })) (if_statement "if (iStack_3bc == **(int **)(pcVar37 + -0x7668)) {\n    return **(int **)(pcVar37 + -0x7668);\n  }" if (parenthesized_expression "(iStack_3bc == **(int **)(pcVar37 + -0x7668))" ( (binary_expression "iStack_3bc == **(int **)(pcVar37 + -0x7668)" identifier == (pointer_expression "**(int **)(pcVar37 + -0x7668)" * (pointer_expression "*(int **)(pcVar37 + -0x7668)" * (cast_expression "(int **)(pcVar37 + -0x7668)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + -0x7668)" ( (binary_expression "pcVar37 + -0x7668" identifier + number_literal) )))))) )) (compound_statement "{\n    return **(int **)(pcVar37 + -0x7668);\n  }" { (return_statement "return **(int **)(pcVar37 + -0x7668);" return (pointer_expression "**(int **)(pcVar37 + -0x7668)" * (pointer_expression "*(int **)(pcVar37 + -0x7668)" * (cast_expression "(int **)(pcVar37 + -0x7668)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + -0x7668)" ( (binary_expression "pcVar37 + -0x7668" identifier + number_literal) ))))) ;) })) (expression_statement "pcVar37 = *(code **)(pcVar37 + -0x7834);" (assignment_expression "pcVar37 = *(code **)(pcVar37 + -0x7834)" identifier = (pointer_expression "*(code **)(pcVar37 + -0x7834)" * (cast_expression "(code **)(pcVar37 + -0x7834)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + -0x7834)" ( (binary_expression "pcVar37 + -0x7834" identifier + number_literal) ))))) ;) (expression_statement "pcVar38 = FUN_000a549c;" (assignment_expression "pcVar38 = FUN_000a549c" identifier = identifier) ;) (expression_statement "(*pcVar37)();" (call_expression "(*pcVar37)()" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_5a8 = pcVar37 + 0x35c414;" (assignment_expression "pcStack_5a8 = pcVar37 + 0x35c414" identifier = (binary_expression "pcVar37 + 0x35c414" identifier + number_literal)) ;) (expression_statement "iStack_4b4 = **(int **)(pcVar37 + 0x354dac);" (assignment_expression "iStack_4b4 = **(int **)(pcVar37 + 0x354dac)" identifier = (pointer_expression "**(int **)(pcVar37 + 0x354dac)" * (pointer_expression "*(int **)(pcVar37 + 0x354dac)" * (cast_expression "(int **)(pcVar37 + 0x354dac)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x354dac)" ( (binary_expression "pcVar37 + 0x354dac" identifier + number_literal) )))))) ;) (expression_statement "puVar32 = *(uint **)(pdVar5 + 4);" (assignment_expression "puVar32 = *(uint **)(pdVar5 + 4)" identifier = (pointer_expression "*(uint **)(pdVar5 + 4)" * (cast_expression "(uint **)(pdVar5 + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar5 + 4)" ( (binary_expression "pdVar5 + 4" identifier + number_literal) ))))) ;) (expression_statement "pdVar30 = (double *)puVar32[3];" (assignment_expression "pdVar30 = (double *)puVar32[3]" identifier = (cast_expression "(double *)puVar32[3]" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar32[3]" identifier [ number_literal ]))) ;) (expression_statement "pdVar14 = pdVar5;" (assignment_expression "pdVar14 = pdVar5" identifier = identifier) ;) (expression_statement "uStack_4b0 = uVar26;" (assignment_expression "uStack_4b0 = uVar26" identifier = identifier) ;) (expression_statement "iStack_4ac = iVar49;" (assignment_expression "iStack_4ac = iVar49" identifier = identifier) ;) (expression_statement "pdStack_4a8 = pdVar16;" (assignment_expression "pdStack_4a8 = pdVar16" identifier = identifier) ;) (expression_statement "pdStack_4a4 = pdVar29;" (assignment_expression "pdStack_4a4 = pdVar29" identifier = identifier) ;) (expression_statement "iStack_4a0 = iVar28;" (assignment_expression "iStack_4a0 = iVar28" identifier = identifier) ;) (expression_statement "puStack_49c = param_1;" (assignment_expression "puStack_49c = param_1" identifier = identifier) ;) (expression_statement "pdStack_498 = unaff_s6;" (assignment_expression "pdStack_498 = unaff_s6" identifier = identifier) ;) (expression_statement "uStack_494 = unaff_s7;" (assignment_expression "uStack_494 = unaff_s7" identifier = identifier) ;) (expression_statement "iStack_490 = iVar3;" (assignment_expression "iStack_490 = iVar3" identifier = identifier) ;) (expression_statement "pcStack_48c = pcVar38;" (assignment_expression "pcStack_48c = pcVar38" identifier = identifier) ;) (expression_statement "dStack_488 = in_f20_21;" (assignment_expression "dStack_488 = in_f20_21" identifier = identifier) ;) (expression_statement "dStack_480 = in_f22_23;" (assignment_expression "dStack_480 = in_f22_23" identifier = identifier) ;) (expression_statement "dStack_478 = in_f24_25;" (assignment_expression "dStack_478 = in_f24_25" identifier = identifier) ;) (expression_statement "dStack_470 = in_f26_27;" (assignment_expression "dStack_470 = in_f26_27" identifier = identifier) ;) (expression_statement "dStack_468 = in_f28_29;" (assignment_expression "dStack_468 = in_f28_29" identifier = identifier) ;) (expression_statement "dStack_460 = in_f30_31;" (assignment_expression "dStack_460 = in_f30_31" identifier = identifier) ;) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x355488))();" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x355488))()" identifier = (call_expression "(**(code **)(pcVar37 + 0x355488))()" (parenthesized_expression "(**(code **)(pcVar37 + 0x355488))" ( (pointer_expression "**(code **)(pcVar37 + 0x355488)" * (pointer_expression "*(code **)(pcVar37 + 0x355488)" * (cast_expression "(code **)(pcVar37 + 0x355488)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x355488)" ( (binary_expression "pcVar37 + 0x355488" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar10 = (**(code **)(pcStack_5a8 + -0x7390))();" (assignment_expression "iVar10 = (**(code **)(pcStack_5a8 + -0x7390))()" identifier = (call_expression "(**(code **)(pcStack_5a8 + -0x7390))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7390))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7390)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7390)" * (cast_expression "(code **)(pcStack_5a8 + -0x7390)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7390)" ( (binary_expression "pcStack_5a8 + -0x7390" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 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 "iVar49 = (int)(puVar32[1] - (int)pdVar30) / iVar3;" (assignment_expression "iVar49 = (int)(puVar32[1] - (int)pdVar30) / iVar3" identifier = (binary_expression "(int)(puVar32[1] - (int)pdVar30) / iVar3" (cast_expression "(int)(puVar32[1] - (int)pdVar30)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar32[1] - (int)pdVar30)" ( (binary_expression "puVar32[1] - (int)pdVar30" (subscript_expression "puVar32[1]" identifier [ number_literal ]) - (cast_expression "(int)pdVar30" ( (type_descriptor "int" primitive_type) ) identifier)) ))) / identifier)) ;) (expression_statement "piVar48 = (int *)((int)(puVar32[1] - (int)pdVar30) % iVar3);" (assignment_expression "piVar48 = (int *)((int)(puVar32[1] - (int)pdVar30) % iVar3)" identifier = (cast_expression "(int *)((int)(puVar32[1] - (int)pdVar30) % iVar3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(puVar32[1] - (int)pdVar30) % iVar3)" ( (binary_expression "(int)(puVar32[1] - (int)pdVar30) % iVar3" (cast_expression "(int)(puVar32[1] - (int)pdVar30)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar32[1] - (int)pdVar30)" ( (binary_expression "puVar32[1] - (int)pdVar30" (subscript_expression "puVar32[1]" identifier [ number_literal ]) - (cast_expression "(int)pdVar30" ( (type_descriptor "int" primitive_type) ) identifier)) ))) % identifier) )))) ;) (expression_statement "piVar2 = piVar48;" (assignment_expression "piVar2 = piVar48" identifier = identifier) ;) (if_statement "if (iVar10 < (int)piVar48) {\n    iVar49 = iVar49 + 1;\n    piVar2 = (int *)0x0;\n  }" if (parenthesized_expression "(iVar10 < (int)piVar48)" ( (binary_expression "iVar10 < (int)piVar48" identifier < (cast_expression "(int)piVar48" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    iVar49 = iVar49 + 1;\n    piVar2 = (int *)0x0;\n  }" { (expression_statement "iVar49 = iVar49 + 1;" (assignment_expression "iVar49 = iVar49 + 1" identifier = (binary_expression "iVar49 + 1" identifier + number_literal)) ;) (expression_statement "piVar2 = (int *)0x0;" (assignment_expression "piVar2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "piVar2 = (int *)(iVar49 * iVar10 + (int)piVar2);" (assignment_expression "piVar2 = (int *)(iVar49 * iVar10 + (int)piVar2)" identifier = (cast_expression "(int *)(iVar49 * iVar10 + (int)piVar2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 * iVar10 + (int)piVar2)" ( (binary_expression "iVar49 * iVar10 + (int)piVar2" (binary_expression "iVar49 * iVar10" identifier * identifier) + (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "puVar35 = (undefined1 *)((int)pdVar30 + (int)piVar2);" (assignment_expression "puVar35 = (undefined1 *)((int)pdVar30 + (int)piVar2)" identifier = (cast_expression "(undefined1 *)((int)pdVar30 + (int)piVar2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar30 + (int)piVar2)" ( (binary_expression "(int)pdVar30 + (int)piVar2" (cast_expression "(int)pdVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pcVar37 = pcStack_5a8;" (assignment_expression "pcVar37 = pcStack_5a8" identifier = identifier) ;) (if_statement "if ((int)piVar2 < iVar49 + (int)piVar2) {\n    dStack_580 = *pdVar5;\n    pdStack_588 = *(double **)(pdVar5 + 3);\n    puVar32 = *(uint **)((int)pdVar5 + 0x14);\n    pdStack_568 = *(double **)(pdVar5 + 2);\n    uStack_564 = *(uint *)((int)pdVar5 + 0xc);\n    piVar48 = *(int **)(pdVar5 + 1);\n    puStack_56c = (undefined1 *)((int)pdVar30 + iVar49 + (int)piVar2);\n    dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n    if (dStack_580 < 0.0) {\n      dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n    }\n    iStack_570 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_598 = *(double *)(iStack_570 + 0x4a48);\n    iStack_584 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_560 = *(double *)(iStack_584 + 0x43d0);\n    unaff_s6 = *(double **)(pcStack_5a8 + -0x7fd0);\n    dStack_548 = unaff_s6[0x879];\n    do {\n      if (*(uint *)((int)pdVar5 + 0x24) != 0) {\n        uStack_5ac = uStack_564;\n        uStack_5b0 = 1;\n        pdVar14 = pdStack_568;\n        pdVar30 = (double *)(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6]);\n        if (pdVar30 == (double *)0x0) {\n          *(uint *)((int)pdVar5 + 0x24) = 0;\n          pcVar37 = pcStack_5a8;\n        }\n        else {\n          piVar17 = *(int **)((int)pdVar5 + 0x1c);\n          piVar2 = piVar17;\n          piVar19 = aiStack_510;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);\n          iVar10 = *piVar2;\n          iVar3 = piVar7[5];\n          *piVar19 = iVar10;\n          piVar11[5] = iVar3;\n          in_f20_21 = *(double *)(piVar17 + 10);\n          in_f22_23 = *(double *)(piVar17 + 0xc);\n          in_f24_25 = *(double *)(piVar17 + 0xe);\n          dStack_590 = *(double *)(piVar17 + 0x10);\n          dVar39 = *(double *)(piVar17 + 0x12);\n          if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];\n          pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }\n          pdVar14 = pdStack_568;\n          iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar37 = pcStack_5a8;\n          if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }\n        }\n      }\n      puVar35 = puVar35 + 1;\n    } while ((int)puVar35 < (int)puStack_56c);\n  }" if (parenthesized_expression "((int)piVar2 < iVar49 + (int)piVar2)" ( (binary_expression "(int)piVar2 < iVar49 + (int)piVar2" (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier) < (binary_expression "iVar49 + (int)piVar2" identifier + (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier))) )) (compound_statement "{\n    dStack_580 = *pdVar5;\n    pdStack_588 = *(double **)(pdVar5 + 3);\n    puVar32 = *(uint **)((int)pdVar5 + 0x14);\n    pdStack_568 = *(double **)(pdVar5 + 2);\n    uStack_564 = *(uint *)((int)pdVar5 + 0xc);\n    piVar48 = *(int **)(pdVar5 + 1);\n    puStack_56c = (undefined1 *)((int)pdVar30 + iVar49 + (int)piVar2);\n    dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n    if (dStack_580 < 0.0) {\n      dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n    }\n    iStack_570 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_598 = *(double *)(iStack_570 + 0x4a48);\n    iStack_584 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_560 = *(double *)(iStack_584 + 0x43d0);\n    unaff_s6 = *(double **)(pcStack_5a8 + -0x7fd0);\n    dStack_548 = unaff_s6[0x879];\n    do {\n      if (*(uint *)((int)pdVar5 + 0x24) != 0) {\n        uStack_5ac = uStack_564;\n        uStack_5b0 = 1;\n        pdVar14 = pdStack_568;\n        pdVar30 = (double *)(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6]);\n        if (pdVar30 == (double *)0x0) {\n          *(uint *)((int)pdVar5 + 0x24) = 0;\n          pcVar37 = pcStack_5a8;\n        }\n        else {\n          piVar17 = *(int **)((int)pdVar5 + 0x1c);\n          piVar2 = piVar17;\n          piVar19 = aiStack_510;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);\n          iVar10 = *piVar2;\n          iVar3 = piVar7[5];\n          *piVar19 = iVar10;\n          piVar11[5] = iVar3;\n          in_f20_21 = *(double *)(piVar17 + 10);\n          in_f22_23 = *(double *)(piVar17 + 0xc);\n          in_f24_25 = *(double *)(piVar17 + 0xe);\n          dStack_590 = *(double *)(piVar17 + 0x10);\n          dVar39 = *(double *)(piVar17 + 0x12);\n          if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];\n          pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }\n          pdVar14 = pdStack_568;\n          iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar37 = pcStack_5a8;\n          if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }\n        }\n      }\n      puVar35 = puVar35 + 1;\n    } while ((int)puVar35 < (int)puStack_56c);\n  }" { (expression_statement "dStack_580 = *pdVar5;" (assignment_expression "dStack_580 = *pdVar5" identifier = (pointer_expression "*pdVar5" * identifier)) ;) (expression_statement "pdStack_588 = *(double **)(pdVar5 + 3);" (assignment_expression "pdStack_588 = *(double **)(pdVar5 + 3)" identifier = (pointer_expression "*(double **)(pdVar5 + 3)" * (cast_expression "(double **)(pdVar5 + 3)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar5 + 3)" ( (binary_expression "pdVar5 + 3" identifier + number_literal) ))))) ;) (expression_statement "puVar32 = *(uint **)((int)pdVar5 + 0x14);" (assignment_expression "puVar32 = *(uint **)((int)pdVar5 + 0x14)" identifier = (pointer_expression "*(uint **)((int)pdVar5 + 0x14)" * (cast_expression "(uint **)((int)pdVar5 + 0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pdVar5 + 0x14)" ( (binary_expression "(int)pdVar5 + 0x14" (cast_expression "(int)pdVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pdStack_568 = *(double **)(pdVar5 + 2);" (assignment_expression "pdStack_568 = *(double **)(pdVar5 + 2)" identifier = (pointer_expression "*(double **)(pdVar5 + 2)" * (cast_expression "(double **)(pdVar5 + 2)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar5 + 2)" ( (binary_expression "pdVar5 + 2" identifier + number_literal) ))))) ;) (expression_statement "uStack_564 = *(uint *)((int)pdVar5 + 0xc);" (assignment_expression "uStack_564 = *(uint *)((int)pdVar5 + 0xc)" identifier = (pointer_expression "*(uint *)((int)pdVar5 + 0xc)" * (cast_expression "(uint *)((int)pdVar5 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar5 + 0xc)" ( (binary_expression "(int)pdVar5 + 0xc" (cast_expression "(int)pdVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "piVar48 = *(int **)(pdVar5 + 1);" (assignment_expression "piVar48 = *(int **)(pdVar5 + 1)" identifier = (pointer_expression "*(int **)(pdVar5 + 1)" * (cast_expression "(int **)(pdVar5 + 1)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar5 + 1)" ( (binary_expression "pdVar5 + 1" identifier + number_literal) ))))) ;) (expression_statement "puStack_56c = (undefined1 *)((int)pdVar30 + iVar49 + (int)piVar2);" (assignment_expression "puStack_56c = (undefined1 *)((int)pdVar30 + iVar49 + (int)piVar2)" identifier = (cast_expression "(undefined1 *)((int)pdVar30 + iVar49 + (int)piVar2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar30 + iVar49 + (int)piVar2)" ( (binary_expression "(int)pdVar30 + iVar49 + (int)piVar2" (binary_expression "(int)pdVar30 + iVar49" (cast_expression "(int)pdVar30" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);" (assignment_expression "dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (dStack_580 < 0.0) {\n      dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n    }" if (parenthesized_expression "(dStack_580 < 0.0)" ( (binary_expression "dStack_580 < 0.0" identifier < number_literal) )) (compound_statement "{\n      dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n    }" { (expression_statement "dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) })) (expression_statement "iStack_570 = *(int *)(pcStack_5a8 + -0x7fd0);" (assignment_expression "iStack_570 = *(int *)(pcStack_5a8 + -0x7fd0)" identifier = (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) ))))) ;) (expression_statement "dStack_598 = *(double *)(iStack_570 + 0x4a48);" (assignment_expression "dStack_598 = *(double *)(iStack_570 + 0x4a48)" identifier = (pointer_expression "*(double *)(iStack_570 + 0x4a48)" * (cast_expression "(double *)(iStack_570 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_570 + 0x4a48)" ( (binary_expression "iStack_570 + 0x4a48" identifier + number_literal) ))))) ;) (expression_statement "iStack_584 = *(int *)(pcStack_5a8 + -0x7fd0);" (assignment_expression "iStack_584 = *(int *)(pcStack_5a8 + -0x7fd0)" identifier = (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) ))))) ;) (expression_statement "dStack_560 = *(double *)(iStack_584 + 0x43d0);" (assignment_expression "dStack_560 = *(double *)(iStack_584 + 0x43d0)" identifier = (pointer_expression "*(double *)(iStack_584 + 0x43d0)" * (cast_expression "(double *)(iStack_584 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_584 + 0x43d0)" ( (binary_expression "iStack_584 + 0x43d0" identifier + number_literal) ))))) ;) (expression_statement "unaff_s6 = *(double **)(pcStack_5a8 + -0x7fd0);" (assignment_expression "unaff_s6 = *(double **)(pcStack_5a8 + -0x7fd0)" identifier = (pointer_expression "*(double **)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(double **)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) ))))) ;) (expression_statement "dStack_548 = unaff_s6[0x879];" (assignment_expression "dStack_548 = unaff_s6[0x879]" identifier = (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ])) ;) (do_statement "do {\n      if (*(uint *)((int)pdVar5 + 0x24) != 0) {\n        uStack_5ac = uStack_564;\n        uStack_5b0 = 1;\n        pdVar14 = pdStack_568;\n        pdVar30 = (double *)(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6]);\n        if (pdVar30 == (double *)0x0) {\n          *(uint *)((int)pdVar5 + 0x24) = 0;\n          pcVar37 = pcStack_5a8;\n        }\n        else {\n          piVar17 = *(int **)((int)pdVar5 + 0x1c);\n          piVar2 = piVar17;\n          piVar19 = aiStack_510;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);\n          iVar10 = *piVar2;\n          iVar3 = piVar7[5];\n          *piVar19 = iVar10;\n          piVar11[5] = iVar3;\n          in_f20_21 = *(double *)(piVar17 + 10);\n          in_f22_23 = *(double *)(piVar17 + 0xc);\n          in_f24_25 = *(double *)(piVar17 + 0xe);\n          dStack_590 = *(double *)(piVar17 + 0x10);\n          dVar39 = *(double *)(piVar17 + 0x12);\n          if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];\n          pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }\n          pdVar14 = pdStack_568;\n          iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar37 = pcStack_5a8;\n          if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }\n        }\n      }\n      puVar35 = puVar35 + 1;\n    } while ((int)puVar35 < (int)puStack_56c);" do (compound_statement "{\n      if (*(uint *)((int)pdVar5 + 0x24) != 0) {\n        uStack_5ac = uStack_564;\n        uStack_5b0 = 1;\n        pdVar14 = pdStack_568;\n        pdVar30 = (double *)(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6]);\n        if (pdVar30 == (double *)0x0) {\n          *(uint *)((int)pdVar5 + 0x24) = 0;\n          pcVar37 = pcStack_5a8;\n        }\n        else {\n          piVar17 = *(int **)((int)pdVar5 + 0x1c);\n          piVar2 = piVar17;\n          piVar19 = aiStack_510;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);\n          iVar10 = *piVar2;\n          iVar3 = piVar7[5];\n          *piVar19 = iVar10;\n          piVar11[5] = iVar3;\n          in_f20_21 = *(double *)(piVar17 + 10);\n          in_f22_23 = *(double *)(piVar17 + 0xc);\n          in_f24_25 = *(double *)(piVar17 + 0xe);\n          dStack_590 = *(double *)(piVar17 + 0x10);\n          dVar39 = *(double *)(piVar17 + 0x12);\n          if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];\n          pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }\n          pdVar14 = pdStack_568;\n          iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar37 = pcStack_5a8;\n          if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }\n        }\n      }\n      puVar35 = puVar35 + 1;\n    }" { (if_statement "if (*(uint *)((int)pdVar5 + 0x24) != 0) {\n        uStack_5ac = uStack_564;\n        uStack_5b0 = 1;\n        pdVar14 = pdStack_568;\n        pdVar30 = (double *)(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6]);\n        if (pdVar30 == (double *)0x0) {\n          *(uint *)((int)pdVar5 + 0x24) = 0;\n          pcVar37 = pcStack_5a8;\n        }\n        else {\n          piVar17 = *(int **)((int)pdVar5 + 0x1c);\n          piVar2 = piVar17;\n          piVar19 = aiStack_510;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);\n          iVar10 = *piVar2;\n          iVar3 = piVar7[5];\n          *piVar19 = iVar10;\n          piVar11[5] = iVar3;\n          in_f20_21 = *(double *)(piVar17 + 10);\n          in_f22_23 = *(double *)(piVar17 + 0xc);\n          in_f24_25 = *(double *)(piVar17 + 0xe);\n          dStack_590 = *(double *)(piVar17 + 0x10);\n          dVar39 = *(double *)(piVar17 + 0x12);\n          if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];\n          pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }\n          pdVar14 = pdStack_568;\n          iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar37 = pcStack_5a8;\n          if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }\n        }\n      }" if (parenthesized_expression "(*(uint *)((int)pdVar5 + 0x24) != 0)" ( (binary_expression "*(uint *)((int)pdVar5 + 0x24) != 0" (pointer_expression "*(uint *)((int)pdVar5 + 0x24)" * (cast_expression "(uint *)((int)pdVar5 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar5 + 0x24)" ( (binary_expression "(int)pdVar5 + 0x24" (cast_expression "(int)pdVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n        uStack_5ac = uStack_564;\n        uStack_5b0 = 1;\n        pdVar14 = pdStack_568;\n        pdVar30 = (double *)(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6]);\n        if (pdVar30 == (double *)0x0) {\n          *(uint *)((int)pdVar5 + 0x24) = 0;\n          pcVar37 = pcStack_5a8;\n        }\n        else {\n          piVar17 = *(int **)((int)pdVar5 + 0x1c);\n          piVar2 = piVar17;\n          piVar19 = aiStack_510;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);\n          iVar10 = *piVar2;\n          iVar3 = piVar7[5];\n          *piVar19 = iVar10;\n          piVar11[5] = iVar3;\n          in_f20_21 = *(double *)(piVar17 + 10);\n          in_f22_23 = *(double *)(piVar17 + 0xc);\n          in_f24_25 = *(double *)(piVar17 + 0xe);\n          dStack_590 = *(double *)(piVar17 + 0x10);\n          dVar39 = *(double *)(piVar17 + 0x12);\n          if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];\n          pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }\n          pdVar14 = pdStack_568;\n          iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar37 = pcStack_5a8;\n          if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }\n        }\n      }" { (expression_statement "uStack_5ac = uStack_564;" (assignment_expression "uStack_5ac = uStack_564" identifier = identifier) ;) (expression_statement "uStack_5b0 = 1;" (assignment_expression "uStack_5b0 = 1" identifier = number_literal) ;) (expression_statement "pdVar14 = pdStack_568;" (assignment_expression "pdVar14 = pdStack_568" identifier = identifier) ;) (expression_statement "pdVar30 = (double *)(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6]);" (assignment_expression "pdVar30 = (double *)(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6])" identifier = (cast_expression "(double *)(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6])" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6])" (parenthesized_expression "(**(code **)(pcVar37 + -0x724c))" ( (pointer_expression "**(code **)(pcVar37 + -0x724c)" * (pointer_expression "*(code **)(pcVar37 + -0x724c)" * (cast_expression "(code **)(pcVar37 + -0x724c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + -0x724c)" ( (binary_expression "pcVar37 + -0x724c" identifier + number_literal) ))))) )) (argument_list "(pdStack_568,0,puVar35,piVar48[6])" ( identifier , number_literal , identifier , (subscript_expression "piVar48[6]" identifier [ number_literal ]) ))))) ;) (if_statement "if (pdVar30 == (double *)0x0) {\n          *(uint *)((int)pdVar5 + 0x24) = 0;\n          pcVar37 = pcStack_5a8;\n        }\n        else {\n          piVar17 = *(int **)((int)pdVar5 + 0x1c);\n          piVar2 = piVar17;\n          piVar19 = aiStack_510;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);\n          iVar10 = *piVar2;\n          iVar3 = piVar7[5];\n          *piVar19 = iVar10;\n          piVar11[5] = iVar3;\n          in_f20_21 = *(double *)(piVar17 + 10);\n          in_f22_23 = *(double *)(piVar17 + 0xc);\n          in_f24_25 = *(double *)(piVar17 + 0xe);\n          dStack_590 = *(double *)(piVar17 + 0x10);\n          dVar39 = *(double *)(piVar17 + 0x12);\n          if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];\n          pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }\n          pdVar14 = pdStack_568;\n          iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar37 = pcStack_5a8;\n          if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }\n        }" if (parenthesized_expression "(pdVar30 == (double *)0x0)" ( (binary_expression "pdVar30 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *(uint *)((int)pdVar5 + 0x24) = 0;\n          pcVar37 = pcStack_5a8;\n        }" { (expression_statement "*(uint *)((int)pdVar5 + 0x24) = 0;" (assignment_expression "*(uint *)((int)pdVar5 + 0x24) = 0" (pointer_expression "*(uint *)((int)pdVar5 + 0x24)" * (cast_expression "(uint *)((int)pdVar5 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar5 + 0x24)" ( (binary_expression "(int)pdVar5 + 0x24" (cast_expression "(int)pdVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "pcVar37 = pcStack_5a8;" (assignment_expression "pcVar37 = pcStack_5a8" identifier = identifier) ;) }) (else_clause "else {\n          piVar17 = *(int **)((int)pdVar5 + 0x1c);\n          piVar2 = piVar17;\n          piVar19 = aiStack_510;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);\n          iVar10 = *piVar2;\n          iVar3 = piVar7[5];\n          *piVar19 = iVar10;\n          piVar11[5] = iVar3;\n          in_f20_21 = *(double *)(piVar17 + 10);\n          in_f22_23 = *(double *)(piVar17 + 0xc);\n          in_f24_25 = *(double *)(piVar17 + 0xe);\n          dStack_590 = *(double *)(piVar17 + 0x10);\n          dVar39 = *(double *)(piVar17 + 0x12);\n          if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];\n          pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }\n          pdVar14 = pdStack_568;\n          iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar37 = pcStack_5a8;\n          if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }\n        }" else (compound_statement "{\n          piVar17 = *(int **)((int)pdVar5 + 0x1c);\n          piVar2 = piVar17;\n          piVar19 = aiStack_510;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);\n          iVar10 = *piVar2;\n          iVar3 = piVar7[5];\n          *piVar19 = iVar10;\n          piVar11[5] = iVar3;\n          in_f20_21 = *(double *)(piVar17 + 10);\n          in_f22_23 = *(double *)(piVar17 + 0xc);\n          in_f24_25 = *(double *)(piVar17 + 0xe);\n          dStack_590 = *(double *)(piVar17 + 0x10);\n          dVar39 = *(double *)(piVar17 + 0x12);\n          if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];\n          pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }\n          pdVar14 = pdStack_568;\n          iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar37 = pcStack_5a8;\n          if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }\n        }" { (expression_statement "piVar17 = *(int **)((int)pdVar5 + 0x1c);" (assignment_expression "piVar17 = *(int **)((int)pdVar5 + 0x1c)" identifier = (pointer_expression "*(int **)((int)pdVar5 + 0x1c)" * (cast_expression "(int **)((int)pdVar5 + 0x1c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pdVar5 + 0x1c)" ( (binary_expression "(int)pdVar5 + 0x1c" (cast_expression "(int)pdVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "piVar2 = piVar17;" (assignment_expression "piVar2 = piVar17" identifier = identifier) ;) (expression_statement "piVar19 = aiStack_510;" (assignment_expression "piVar19 = aiStack_510" identifier = identifier) ;) (do_statement "do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);" do (compound_statement "{\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          }" { (expression_statement "piVar11 = piVar19;" (assignment_expression "piVar11 = piVar19" identifier = identifier) ;) (expression_statement "piVar7 = piVar2;" (assignment_expression "piVar7 = piVar2" identifier = identifier) ;) (expression_statement "iVar49 = piVar7[1];" (assignment_expression "iVar49 = piVar7[1]" identifier = (subscript_expression "piVar7[1]" identifier [ number_literal ])) ;) (expression_statement "iVar10 = piVar7[2];" (assignment_expression "iVar10 = piVar7[2]" identifier = (subscript_expression "piVar7[2]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = piVar7[3];" (assignment_expression "iVar3 = piVar7[3]" identifier = (subscript_expression "piVar7[3]" identifier [ number_literal ])) ;) (expression_statement "*piVar11 = *piVar7;" (assignment_expression "*piVar11 = *piVar7" (pointer_expression "*piVar11" * identifier) = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "piVar11[1] = iVar49;" (assignment_expression "piVar11[1] = iVar49" (subscript_expression "piVar11[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar11[2] = iVar10;" (assignment_expression "piVar11[2] = iVar10" (subscript_expression "piVar11[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar11[3] = iVar3;" (assignment_expression "piVar11[3] = iVar3" (subscript_expression "piVar11[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar2 = piVar7 + 4;" (assignment_expression "piVar2 = piVar7 + 4" identifier = (binary_expression "piVar7 + 4" identifier + number_literal)) ;) (expression_statement "piVar19 = piVar11 + 4;" (assignment_expression "piVar19 = piVar11 + 4" identifier = (binary_expression "piVar11 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar2 != piVar17 + 0x14)" ( (binary_expression "piVar2 != piVar17 + 0x14" identifier != (binary_expression "piVar17 + 0x14" identifier + number_literal)) )) ;) (expression_statement "iVar10 = *piVar2;" (assignment_expression "iVar10 = *piVar2" identifier = (pointer_expression "*piVar2" * identifier)) ;) (expression_statement "iVar3 = piVar7[5];" (assignment_expression "iVar3 = piVar7[5]" identifier = (subscript_expression "piVar7[5]" identifier [ number_literal ])) ;) (expression_statement "*piVar19 = iVar10;" (assignment_expression "*piVar19 = iVar10" (pointer_expression "*piVar19" * identifier) = identifier) ;) (expression_statement "piVar11[5] = iVar3;" (assignment_expression "piVar11[5] = iVar3" (subscript_expression "piVar11[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "in_f20_21 = *(double *)(piVar17 + 10);" (assignment_expression "in_f20_21 = *(double *)(piVar17 + 10)" identifier = (pointer_expression "*(double *)(piVar17 + 10)" * (cast_expression "(double *)(piVar17 + 10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar17 + 10)" ( (binary_expression "piVar17 + 10" identifier + number_literal) ))))) ;) (expression_statement "in_f22_23 = *(double *)(piVar17 + 0xc);" (assignment_expression "in_f22_23 = *(double *)(piVar17 + 0xc)" identifier = (pointer_expression "*(double *)(piVar17 + 0xc)" * (cast_expression "(double *)(piVar17 + 0xc)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar17 + 0xc)" ( (binary_expression "piVar17 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "in_f24_25 = *(double *)(piVar17 + 0xe);" (assignment_expression "in_f24_25 = *(double *)(piVar17 + 0xe)" identifier = (pointer_expression "*(double *)(piVar17 + 0xe)" * (cast_expression "(double *)(piVar17 + 0xe)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar17 + 0xe)" ( (binary_expression "piVar17 + 0xe" identifier + number_literal) ))))) ;) (expression_statement "dStack_590 = *(double *)(piVar17 + 0x10);" (assignment_expression "dStack_590 = *(double *)(piVar17 + 0x10)" identifier = (pointer_expression "*(double *)(piVar17 + 0x10)" * (cast_expression "(double *)(piVar17 + 0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar17 + 0x10)" ( (binary_expression "piVar17 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "dVar39 = *(double *)(piVar17 + 0x12);" (assignment_expression "dVar39 = *(double *)(piVar17 + 0x12)" identifier = (pointer_expression "*(double *)(piVar17 + 0x12)" * (cast_expression "(double *)(piVar17 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar17 + 0x12)" ( (binary_expression "piVar17 + 0x12" identifier + number_literal) ))))) ;) (if_statement "if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }" if (parenthesized_expression "(*puVar32 < 2)" ( (binary_expression "*puVar32 < 2" (pointer_expression "*puVar32" * identifier) < number_literal) )) (compound_statement "{\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }" { (expression_statement "uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);" (assignment_expression "uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6)" identifier = (binary_expression "*(double *)(puVar32 + 10) - *(double *)(puVar32 + 6)" (pointer_expression "*(double *)(puVar32 + 10)" * (cast_expression "(double *)(puVar32 + 10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 10)" ( (binary_expression "puVar32 + 10" identifier + number_literal) )))) - (pointer_expression "*(double *)(puVar32 + 6)" * (cast_expression "(double *)(puVar32 + 6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 6)" ( (binary_expression "puVar32 + 6" identifier + number_literal) )))))) ;) (expression_statement "dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);" (assignment_expression "dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8)" identifier = (binary_expression "*(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8)" (pointer_expression "*(double *)(puVar32 + 0xc)" * (cast_expression "(double *)(puVar32 + 0xc)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0xc)" ( (binary_expression "puVar32 + 0xc" identifier + number_literal) )))) - (pointer_expression "*(double *)(puVar32 + 8)" * (cast_expression "(double *)(puVar32 + 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 8)" ( (binary_expression "puVar32 + 8" identifier + number_literal) )))))) ;) (expression_statement "dStack_540 = 0.0 - *(double *)(puVar32 + 6);" (assignment_expression "dStack_540 = 0.0 - *(double *)(puVar32 + 6)" identifier = (binary_expression "0.0 - *(double *)(puVar32 + 6)" number_literal - (pointer_expression "*(double *)(puVar32 + 6)" * (cast_expression "(double *)(puVar32 + 6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 6)" ( (binary_expression "puVar32 + 6" identifier + number_literal) )))))) ;) (expression_statement "dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);" (assignment_expression "dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8)" identifier = (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 8)" (cast_expression "(double)(int)puVar35" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar35" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar32 + 8)" * (cast_expression "(double *)(puVar32 + 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 8)" ( (binary_expression "puVar32 + 8" identifier + number_literal) )))))) ;) (expression_statement "dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;" (assignment_expression "dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530" identifier = (binary_expression "dStack_540 * dStack_540 + dStack_530 * dStack_530" (binary_expression "dStack_540 * dStack_540" identifier * identifier) + (binary_expression "dStack_530 * dStack_530" identifier * identifier))) ;) (expression_statement "dStack_558 = SQRT(dVar41);" (assignment_expression "dStack_558 = SQRT(dVar41)" identifier = (call_expression "SQRT(dVar41)" identifier (argument_list "(dVar41)" ( identifier )))) ;) (if_statement "if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }" if (parenthesized_expression "(0.0 <= dVar41)" ( (binary_expression "0.0 <= dVar41" number_literal <= identifier) )) (compound_statement "{\n              dVar41 = dVar40 * dVar40;\n            }" { (expression_statement "dVar41 = dVar40 * dVar40;" (assignment_expression "dVar41 = dVar40 * dVar40" identifier = (binary_expression "dVar40 * dVar40" identifier * identifier)) ;) }) (else_clause "else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }" else (compound_statement "{\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }" { (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "dVar41 = dVar40 * dVar40;" (assignment_expression "dVar41 = dVar40 * dVar40" identifier = (binary_expression "dVar40 * dVar40" identifier * identifier)) ;) }))) (expression_statement "dVar41 = uStack_5a0 * uStack_5a0 + dVar41;" (assignment_expression "dVar41 = uStack_5a0 * uStack_5a0 + dVar41" identifier = (binary_expression "uStack_5a0 * uStack_5a0 + dVar41" (binary_expression "uStack_5a0 * uStack_5a0" identifier * identifier) + identifier)) ;) (expression_statement "in_f26_27 = SQRT(dVar41);" (assignment_expression "in_f26_27 = SQRT(dVar41)" identifier = (call_expression "SQRT(dVar41)" identifier (argument_list "(dVar41)" ( identifier )))) ;) (if_statement "if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }" if (parenthesized_expression "(dVar41 < 0.0)" ( (binary_expression "dVar41 < 0.0" identifier < number_literal) )) (compound_statement "{\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }" { (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "in_f26_27 = dStack_558 * in_f26_27;" (assignment_expression "in_f26_27 = dStack_558 * in_f26_27" identifier = (binary_expression "dStack_558 * in_f26_27" identifier * identifier)) ;) (if_statement "if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }" if (parenthesized_expression "(0.0 <= in_f26_27)" ( (binary_expression "0.0 <= in_f26_27" number_literal <= identifier) )) (compound_statement "{\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }" { (expression_statement "dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);" (assignment_expression "dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }" else (compound_statement "{\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }" { (expression_statement "dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }" if (parenthesized_expression "(unaff_s6[0x879] <= in_f26_27 * dVar41)" ( (binary_expression "unaff_s6[0x879] <= in_f26_27 * dVar41" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "in_f26_27 * dVar41" identifier * identifier)) )) (compound_statement "{\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }" { (expression_statement "dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;" (assignment_expression "dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27" identifier = (binary_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27" (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))) / identifier)) ;) }) (else_clause "else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }" else (compound_statement "{\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }" { (expression_statement "in_f26_27 = unaff_s6[0x879];" (assignment_expression "in_f26_27 = unaff_s6[0x879]" identifier = (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ])) ;) (expression_statement "dVar41 = dVar41 / in_f26_27;" (assignment_expression "dVar41 = dVar41 / in_f26_27" identifier = (binary_expression "dVar41 / in_f26_27" identifier / identifier)) ;) }))) (expression_statement "uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;" (assignment_expression "uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558" identifier = (binary_expression "(uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558" (binary_expression "(uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41" (parenthesized_expression "(uStack_5a0 * dStack_540 + dVar40 * dStack_530)" ( (binary_expression "uStack_5a0 * dStack_540 + dVar40 * dStack_530" (binary_expression "uStack_5a0 * dStack_540" identifier * identifier) + (binary_expression "dVar40 * dStack_530" identifier * identifier)) )) * identifier) * identifier)) ;) (labeled_statement "LAB_000a56c0:\n            uVar26 = *puVar32;" statement_identifier : (expression_statement "uVar26 = *puVar32;" (assignment_expression "uVar26 = *puVar32" identifier = (pointer_expression "*puVar32" * identifier)) ;)) (labeled_statement "LAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }" statement_identifier : (if_statement "if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }" if (parenthesized_expression "(uVar26 != 2)" ( (binary_expression "uVar26 != 2" identifier != number_literal) )) (compound_statement "{\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }" { (if_statement "if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }" if (parenthesized_expression "(unaff_s6[0x879] <= dStack_580 * dStack_578)" ( (binary_expression "unaff_s6[0x879] <= dStack_580 * dStack_578" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dStack_580 * dStack_578" identifier * identifier)) )) (compound_statement "{\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }" { (expression_statement "dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;" (assignment_expression "dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580" identifier = (binary_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580" (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))) / identifier)) ;) }) (else_clause "else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }" else (compound_statement "{\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }" { (expression_statement "dVar41 = dStack_578 / unaff_s6[0x879];" (assignment_expression "dVar41 = dStack_578 / unaff_s6[0x879]" identifier = (binary_expression "dStack_578 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "uStack_5a0 = uStack_5a0 * dVar41;" (assignment_expression "uStack_5a0 = uStack_5a0 * dVar41" identifier = (binary_expression "uStack_5a0 * dVar41" identifier * identifier)) ;) }))) }) (else_clause "else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }" else (compound_statement "{\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }" { (if_statement "if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }" if (parenthesized_expression "(*puVar32 != 2)" ( (binary_expression "*puVar32 != 2" (pointer_expression "*puVar32" * identifier) != number_literal) )) (compound_statement "{\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }" { (expression_statement "uStack_5a0 = 0.0;" (assignment_expression "uStack_5a0 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_000a56c0;" goto statement_identifier ;) })) (if_statement "if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }" if (parenthesized_expression "(puVar32[0x10] != 3)" ( (binary_expression "puVar32[0x10] != 3" (subscript_expression "puVar32[0x10]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }" { (expression_statement "in_f26_27 = 0.0;" (assignment_expression "in_f26_27 = 0.0" identifier = number_literal) ;) (expression_statement "dVar40 = 0.0 - *(double *)(puVar32 + 0x12);" (assignment_expression "dVar40 = 0.0 - *(double *)(puVar32 + 0x12)" identifier = (binary_expression "0.0 - *(double *)(puVar32 + 0x12)" number_literal - (pointer_expression "*(double *)(puVar32 + 0x12)" * (cast_expression "(double *)(puVar32 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x12)" ( (binary_expression "puVar32 + 0x12" identifier + number_literal) )))))) ;) (expression_statement "(**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);" (call_expression "(**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520)" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x78e0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x78e0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x78e0)" * (cast_expression "(code **)(pcStack_5a8 + -0x78e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x78e0)" ( (binary_expression "pcStack_5a8 + -0x78e0" identifier + number_literal) ))))) )) (argument_list "((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520)" ( (binary_expression "(*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" (parenthesized_expression "(*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88))" ( (binary_expression "*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" (pointer_expression "*(double *)(puVar32 + 0x1c)" * (cast_expression "(double *)(puVar32 + 0x1c)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x1c)" ( (binary_expression "puVar32 + 0x1c" identifier + number_literal) )))) * (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) )) / (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) , identifier , identifier , (pointer_expression "&dStack_518" & identifier) , (pointer_expression "&dStack_520" & identifier) ))) ;) (expression_statement "dVar41 = *(double *)(puVar32 + 0x16);" (assignment_expression "dVar41 = *(double *)(puVar32 + 0x16)" identifier = (pointer_expression "*(double *)(puVar32 + 0x16)" * (cast_expression "(double *)(puVar32 + 0x16)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x16)" ( (binary_expression "puVar32 + 0x16" identifier + number_literal) ))))) ;) (if_statement "if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }" if (parenthesized_expression "(in_f26_27 <= dVar41)" ( (binary_expression "in_f26_27 <= dVar41" identifier <= identifier) )) (compound_statement "{\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }" { (expression_statement "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);" (assignment_expression "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }" else (compound_statement "{\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }" { (expression_statement "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar41 * dVar47)" ( (binary_expression "unaff_s6[0x879] <= dVar41 * dVar47" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar41 * dVar47" identifier * identifier)) )) (compound_statement "{\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }" { (expression_statement "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;" (assignment_expression "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41" identifier = (binary_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41" (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))) / identifier)) ;) }) (else_clause "else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }" else (compound_statement "{\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }" { (expression_statement "dVar47 = dVar47 / unaff_s6[0x879];" (assignment_expression "dVar47 = dVar47 / unaff_s6[0x879]" identifier = (binary_expression "dVar47 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;" (assignment_expression "dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47" identifier = (binary_expression "(dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47" (parenthesized_expression "(dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518)" ( (binary_expression "dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518" (binary_expression "dVar40 * dStack_520" identifier * identifier) + (binary_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518" (parenthesized_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" ( (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 0x14)" (cast_expression "(double)(int)puVar35" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar35" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar32 + 0x14)" * (cast_expression "(double *)(puVar32 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x14)" ( (binary_expression "puVar32 + 0x14" identifier + number_literal) ))))) )) * identifier)) )) * identifier)) ;) (expression_statement "dVar41 = *(double *)(puVar32 + 0x18);" (assignment_expression "dVar41 = *(double *)(puVar32 + 0x18)" identifier = (pointer_expression "*(double *)(puVar32 + 0x18)" * (cast_expression "(double *)(puVar32 + 0x18)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x18)" ( (binary_expression "puVar32 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }" if (parenthesized_expression "(0.0 <= dVar41)" ( (binary_expression "0.0 <= dVar41" number_literal <= identifier) )) (compound_statement "{\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }" { (expression_statement "dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);" (assignment_expression "dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }" else (compound_statement "{\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }" { (expression_statement "dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar41 * dVar44)" ( (binary_expression "unaff_s6[0x879] <= dVar41 * dVar44" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar41 * dVar44" identifier * identifier)) )) (compound_statement "{\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }" { (expression_statement "dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;" (assignment_expression "dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41" identifier = (binary_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41" (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))) / identifier)) ;) }) (else_clause "else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }" else (compound_statement "{\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }" { (expression_statement "dVar44 = dVar44 / unaff_s6[0x879];" (assignment_expression "dVar44 = dVar44 / unaff_s6[0x879]" identifier = (binary_expression "dVar44 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;" (assignment_expression "dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44" identifier = (binary_expression "(dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44" (parenthesized_expression "(dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)))" ( (binary_expression "dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (binary_expression "dVar40 * dStack_518" identifier * identifier) - (binary_expression "dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" identifier * (parenthesized_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" ( (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 0x14)" (cast_expression "(double)(int)puVar35" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar35" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar32 + 0x14)" * (cast_expression "(double *)(puVar32 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x14)" ( (binary_expression "puVar32 + 0x14" identifier + number_literal) ))))) )))) )) * identifier)) ;) (expression_statement "dVar41 = dVar47 * dVar47 + dVar44 * dVar44;" (assignment_expression "dVar41 = dVar47 * dVar47 + dVar44 * dVar44" identifier = (binary_expression "dVar47 * dVar47 + dVar44 * dVar44" (binary_expression "dVar47 * dVar47" identifier * identifier) + (binary_expression "dVar44 * dVar44" identifier * identifier))) ;) (expression_statement "uStack_5a0 = SQRT(dVar41);" (assignment_expression "uStack_5a0 = SQRT(dVar41)" identifier = (call_expression "SQRT(dVar41)" identifier (argument_list "(dVar41)" ( identifier )))) ;) (if_statement "if (0.0 <= dVar41) goto LAB_000a5700;" if (parenthesized_expression "(0.0 <= dVar41)" ( (binary_expression "0.0 <= dVar41" number_literal <= identifier) )) (goto_statement "goto LAB_000a5700;" goto statement_identifier ;)) (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar26 = *puVar32;" (assignment_expression "uVar26 = *puVar32" identifier = (pointer_expression "*puVar32" * identifier)) ;) (goto_statement "goto LAB_000a56c4;" goto statement_identifier ;) })) (expression_statement "dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));" (assignment_expression "dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" identifier = (binary_expression "(0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (binary_expression "(0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12))" (parenthesized_expression "(0.0 - *(double *)(puVar32 + 0x12))" ( (binary_expression "0.0 - *(double *)(puVar32 + 0x12)" number_literal - (pointer_expression "*(double *)(puVar32 + 0x12)" * (cast_expression "(double *)(puVar32 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x12)" ( (binary_expression "puVar32 + 0x12" identifier + number_literal) ))))) )) * (parenthesized_expression "(0.0 - *(double *)(puVar32 + 0x12))" ( (binary_expression "0.0 - *(double *)(puVar32 + 0x12)" number_literal - (pointer_expression "*(double *)(puVar32 + 0x12)" * (cast_expression "(double *)(puVar32 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x12)" ( (binary_expression "puVar32 + 0x12" identifier + number_literal) ))))) ))) + (binary_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (parenthesized_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" ( (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 0x14)" (cast_expression "(double)(int)puVar35" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar35" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar32 + 0x14)" * (cast_expression "(double *)(puVar32 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x14)" ( (binary_expression "puVar32 + 0x14" identifier + number_literal) ))))) )) * (parenthesized_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" ( (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 0x14)" (cast_expression "(double)(int)puVar35" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar35" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar32 + 0x14)" * (cast_expression "(double *)(puVar32 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x14)" ( (binary_expression "puVar32 + 0x14" identifier + number_literal) ))))) ))))) ;) (expression_statement "uStack_5a0 = SQRT(dVar41);" (assignment_expression "uStack_5a0 = SQRT(dVar41)" identifier = (call_expression "SQRT(dVar41)" identifier (argument_list "(dVar41)" ( identifier )))) ;) (if_statement "if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }" if (parenthesized_expression "(dVar41 < 0.0)" ( (binary_expression "dVar41 < 0.0" identifier < number_literal) )) (compound_statement "{\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }" { (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar26 = *puVar32;" (assignment_expression "uVar26 = *puVar32" identifier = (pointer_expression "*puVar32" * identifier)) ;) (goto_statement "goto LAB_000a56c4;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];" statement_identifier : (expression_statement "iVar28 = (*(int **)(pdVar5 + 4))[2];" (assignment_expression "iVar28 = (*(int **)(pdVar5 + 4))[2]" identifier = (subscript_expression "(*(int **)(pdVar5 + 4))[2]" (parenthesized_expression "(*(int **)(pdVar5 + 4))" ( (pointer_expression "*(int **)(pdVar5 + 4)" * (cast_expression "(int **)(pdVar5 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar5 + 4)" ( (binary_expression "pdVar5 + 4" identifier + number_literal) )))) )) [ number_literal ])) ;)) (expression_statement "pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);" (assignment_expression "pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0)" identifier = (pointer_expression "*(double **)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(double **)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) ))))) ;) (if_statement "if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }" if (parenthesized_expression "(iVar28 < **(int **)(pdVar5 + 4))" ( (binary_expression "iVar28 < **(int **)(pdVar5 + 4)" identifier < (pointer_expression "**(int **)(pdVar5 + 4)" * (pointer_expression "*(int **)(pdVar5 + 4)" * (cast_expression "(int **)(pdVar5 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar5 + 4)" ( (binary_expression "pdVar5 + 4" identifier + number_literal) )))))) )) (compound_statement "{\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }" { (expression_statement "dStack_540 = pdVar29[0x881];" (assignment_expression "dStack_540 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) (expression_statement "dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);" (assignment_expression "dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_)" identifier = (cast_expression "(double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_)" identifier (argument_list "(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_)" ( (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) , (field_expression "dStack_558._4_4_" identifier . field_identifier) ))))) ;) (expression_statement "dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);" (assignment_expression "dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) (do_statement "do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));" do (compound_statement "{\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            }" { (expression_statement "(**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);" (call_expression "(**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58)" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x78a4))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x78a4)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x78a4)" * (cast_expression "(code **)(pcStack_5a8 + -0x78a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x78a4)" ( (binary_expression "pcStack_5a8 + -0x78a4" identifier + number_literal) ))))) )) (argument_list "(aiStack_510,0,0x58)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "aiStack_510[0] = 1;" (assignment_expression "aiStack_510[0] = 1" (subscript_expression "aiStack_510[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "aiStack_510[1] = 0x17;" (assignment_expression "aiStack_510[1] = 0x17" (subscript_expression "aiStack_510[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iStack_4f8 = 0x10;" (assignment_expression "iStack_4f8 = 0x10" identifier = number_literal) ;) (expression_statement "aiStack_510[2] = 0;" (assignment_expression "aiStack_510[2] = 0" (subscript_expression "aiStack_510[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "dStack_4c8 = dStack_598;" (assignment_expression "dStack_4c8 = dStack_598" identifier = identifier) ;) (if_statement "if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }" if (parenthesized_expression "(piVar48 != (int *)0x0)" ( (binary_expression "piVar48 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }" { (expression_statement "aiStack_510[0] = *piVar48;" (assignment_expression "aiStack_510[0] = *piVar48" (subscript_expression "aiStack_510[0]" identifier [ number_literal ]) = (pointer_expression "*piVar48" * identifier)) ;) (expression_statement "aiStack_510[1] = piVar48[1];" (assignment_expression "aiStack_510[1] = piVar48[1]" (subscript_expression "aiStack_510[1]" identifier [ number_literal ]) = (subscript_expression "piVar48[1]" identifier [ number_literal ])) ;) (expression_statement "uStack_500 = *(undefined8 *)(piVar48 + 0x92);" (assignment_expression "uStack_500 = *(undefined8 *)(piVar48 + 0x92)" identifier = (pointer_expression "*(undefined8 *)(piVar48 + 0x92)" * (cast_expression "(undefined8 *)(piVar48 + 0x92)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar48 + 0x92)" ( (binary_expression "piVar48 + 0x92" identifier + number_literal) ))))) ;) (expression_statement "iStack_4f8 = piVar48[8];" (assignment_expression "iStack_4f8 = piVar48[8]" identifier = (subscript_expression "piVar48[8]" identifier [ number_literal ])) ;) (expression_statement "aiStack_510[2] = piVar48[0xaf];" (assignment_expression "aiStack_510[2] = piVar48[0xaf]" (subscript_expression "aiStack_510[2]" identifier [ number_literal ]) = (subscript_expression "piVar48[0xaf]" identifier [ number_literal ])) ;) (if_statement "if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }" if (parenthesized_expression "(pdVar30 != (double *)0x0)" ( (binary_expression "pdVar30 != (double *)0x0" identifier != (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }" { (expression_statement "iVar3 = piVar48[0xb4];" (assignment_expression "iVar3 = piVar48[0xb4]" identifier = (subscript_expression "piVar48[0xb4]" identifier [ number_literal ])) ;) (expression_statement "dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);" (assignment_expression "dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4)" identifier = (cast_expression "(double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4)" * (cast_expression "(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar30 + *(int *)(iVar3 + 8) * 4)" ( (binary_expression "(int)pdVar30 + *(int *)(iVar3 + 8) * 4" (cast_expression "(int)pdVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar3 + 8) * 4" (pointer_expression "*(int *)(iVar3 + 8)" * (cast_expression "(int *)(iVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);" (assignment_expression "dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4)" identifier = (cast_expression "(double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4)" * (cast_expression "(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4)" ( (binary_expression "(int)pdVar30 + *(int *)(iVar3 + 0x14) * 4" (cast_expression "(int)pdVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar3 + 0x14) * 4" (pointer_expression "*(int *)(iVar3 + 0x14)" * (cast_expression "(int *)(iVar3 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);" (assignment_expression "dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4)" identifier = (cast_expression "(double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4)" * (cast_expression "(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4)" ( (binary_expression "(int)pdVar30 + *(int *)(iVar3 + 0x20) * 4" (cast_expression "(int)pdVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar3 + 0x20) * 4" (pointer_expression "*(int *)(iVar3 + 0x20)" * (cast_expression "(int *)(iVar3 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x20)" ( (binary_expression "iVar3 + 0x20" identifier + number_literal) )))) * number_literal)) )))))) ;) (if_statement "if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }" if (parenthesized_expression "(*(int *)(iVar3 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar3 + 0x28) != 0" (pointer_expression "*(int *)(iVar3 + 0x28)" * (cast_expression "(int *)(iVar3 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x28)" ( (binary_expression "iVar3 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }" { (expression_statement "dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);" (assignment_expression "dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4)" identifier = (cast_expression "(double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4)" * (cast_expression "(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4)" ( (binary_expression "(int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4" (cast_expression "(int)pdVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar3 + 0x2c) * 4" (pointer_expression "*(int *)(iVar3 + 0x2c)" * (cast_expression "(int *)(iVar3 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2c)" ( (binary_expression "iVar3 + 0x2c" identifier + number_literal) )))) * number_literal)) )))))) ;) })) (if_statement "if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }" if (parenthesized_expression "(*(int *)(iVar3 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar3 + 0x34) != 0" (pointer_expression "*(int *)(iVar3 + 0x34)" * (cast_expression "(int *)(iVar3 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x34)" ( (binary_expression "iVar3 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }" { (expression_statement "dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);" (assignment_expression "dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4)" identifier = (cast_expression "(double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4)" * (cast_expression "(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4)" ( (binary_expression "(int)pdVar30 + *(int *)(iVar3 + 0x38) * 4" (cast_expression "(int)pdVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar3 + 0x38) * 4" (pointer_expression "*(int *)(iVar3 + 0x38)" * (cast_expression "(int *)(iVar3 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x38)" ( (binary_expression "iVar3 + 0x38" identifier + number_literal) )))) * number_literal)) )))))) ;) (expression_statement "aiStack_510[2] = 4;" (assignment_expression "aiStack_510[2] = 4" (subscript_expression "aiStack_510[2]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }" if (parenthesized_expression "(*(int *)(iVar3 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar3 + 0x40) != 0" (pointer_expression "*(int *)(iVar3 + 0x40)" * (cast_expression "(int *)(iVar3 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x40)" ( (binary_expression "iVar3 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }" { (expression_statement "dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);" (assignment_expression "dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4)" identifier = (cast_expression "(double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4)" * (cast_expression "(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4)" ( (binary_expression "(int)pdVar30 + *(int *)(iVar3 + 0x44) * 4" (cast_expression "(int)pdVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar3 + 0x44) * 4" (pointer_expression "*(int *)(iVar3 + 0x44)" * (cast_expression "(int *)(iVar3 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x44)" ( (binary_expression "iVar3 + 0x44" identifier + number_literal) )))) * number_literal)) )))))) ;) })) })) })) (expression_statement "unaff_s7 = puVar32[0x10];" (assignment_expression "unaff_s7 = puVar32[0x10]" identifier = (subscript_expression "puVar32[0x10]" identifier [ number_literal ])) ;) (if_statement "if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }" if (parenthesized_expression "(unaff_s7 == 2)" ( (binary_expression "unaff_s7 == 2" identifier == number_literal) )) (compound_statement "{\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }" { (expression_statement "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560)" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560)" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7c78))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7c78)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7c78)" * (cast_expression "(code **)(pcStack_5a8 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7c78)" ( (binary_expression "pcStack_5a8 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(*pdStack_588 - dStack_560)" ( (binary_expression "*pdStack_588 - dStack_560" (pointer_expression "*pdStack_588" * identifier) - identifier) ))))) ;) (if_statement "if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }" if (parenthesized_expression "(((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39))" ( (binary_expression "((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)" (parenthesized_expression "((int)dVar39 == iVar28)" ( (binary_expression "(int)dVar39 == iVar28" (cast_expression "(int)dVar39" ( (type_descriptor "int" primitive_type) ) identifier) == identifier) )) && (parenthesized_expression "(dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)" ( (comma_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7c78))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7c78)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7c78)" * (cast_expression "(code **)(pcStack_5a8 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7c78)" ( (binary_expression "pcStack_5a8 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" ( (binary_expression "pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)" (subscript_expression "pdStack_588[1]" identifier [ number_literal ]) - (pointer_expression "*(double *)(iStack_584 + 0x43d0)" * (cast_expression "(double *)(iStack_584 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_584 + 0x43d0)" ( (binary_expression "iStack_584 + 0x43d0" identifier + number_literal) ))))) ))))) , (binary_expression "puVar35 == (undefined1 *)(int)dVar39" identifier == (cast_expression "(undefined1 *)(int)dVar39" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)dVar39" ( (type_descriptor "int" primitive_type) ) identifier)))) ))) )) (compound_statement "{\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }" { (labeled_statement "LAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }" statement_identifier : (if_statement "if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }" if (parenthesized_expression "(uStack_5a0 < 0.0)" ( (binary_expression "uStack_5a0 < 0.0" identifier < number_literal) )) (compound_statement "{\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }" { (expression_statement "uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;" (assignment_expression "uStack_550 = uStack_5a0._0_4_ ^ 0x80000000" identifier = (binary_expression "uStack_5a0._0_4_ ^ 0x80000000" (field_expression "uStack_5a0._0_4_" identifier . field_identifier) ^ number_literal)) ;) (expression_statement "uStack_54c = uStack_5a0._4_4_;" (assignment_expression "uStack_54c = uStack_5a0._4_4_" identifier = (field_expression "uStack_5a0._4_4_" identifier . field_identifier)) ;) (expression_statement "uStack_5a0 = -uStack_5a0;" (assignment_expression "uStack_5a0 = -uStack_5a0" identifier = (unary_expression "-uStack_5a0" - identifier)) ;) }))) (labeled_statement "LAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);" statement_identifier : (expression_statement "iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);" (assignment_expression "iVar3 = *(int *)(pcStack_5a8 + -0x7fcc)" identifier = (pointer_expression "*(int *)(pcStack_5a8 + -0x7fcc)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fcc)" ( (binary_expression "pcStack_5a8 + -0x7fcc" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }" else (compound_statement "{\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }" { (if_statement "if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }" if (parenthesized_expression "(*puVar32 < 2)" ( (binary_expression "*puVar32 < 2" (pointer_expression "*puVar32" * identifier) < number_literal) )) (compound_statement "{\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }" { (expression_statement "dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);" (assignment_expression "dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6)" identifier = (binary_expression "*(double *)(puVar32 + 10) - *(double *)(puVar32 + 6)" (pointer_expression "*(double *)(puVar32 + 10)" * (cast_expression "(double *)(puVar32 + 10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 10)" ( (binary_expression "puVar32 + 10" identifier + number_literal) )))) - (pointer_expression "*(double *)(puVar32 + 6)" * (cast_expression "(double *)(puVar32 + 6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 6)" ( (binary_expression "puVar32 + 6" identifier + number_literal) )))))) ;) (expression_statement "dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);" (assignment_expression "dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8)" identifier = (binary_expression "*(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8)" (pointer_expression "*(double *)(puVar32 + 0xc)" * (cast_expression "(double *)(puVar32 + 0xc)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0xc)" ( (binary_expression "puVar32 + 0xc" identifier + number_literal) )))) - (pointer_expression "*(double *)(puVar32 + 8)" * (cast_expression "(double *)(puVar32 + 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 8)" ( (binary_expression "puVar32 + 8" identifier + number_literal) )))))) ;) (expression_statement "dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);" (assignment_expression "dVar45 = (double)iVar28 - *(double *)(puVar32 + 6)" identifier = (binary_expression "(double)iVar28 - *(double *)(puVar32 + 6)" (cast_expression "(double)iVar28" ( (type_descriptor "double" primitive_type) ) identifier) - (pointer_expression "*(double *)(puVar32 + 6)" * (cast_expression "(double *)(puVar32 + 6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 6)" ( (binary_expression "puVar32 + 6" identifier + number_literal) )))))) ;) (expression_statement "dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);" (assignment_expression "dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8)" identifier = (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 8)" (cast_expression "(double)(int)puVar35" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar35" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar32 + 8)" * (cast_expression "(double *)(puVar32 + 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 8)" ( (binary_expression "puVar32 + 8" identifier + number_literal) )))))) ;) (expression_statement "dVar39 = dVar45 * dVar45 + dVar47 * dVar47;" (assignment_expression "dVar39 = dVar45 * dVar45 + dVar47 * dVar47" identifier = (binary_expression "dVar45 * dVar45 + dVar47 * dVar47" (binary_expression "dVar45 * dVar45" identifier * identifier) + (binary_expression "dVar47 * dVar47" identifier * identifier))) ;) (expression_statement "uStack_5a0 = SQRT(dVar39);" (assignment_expression "uStack_5a0 = SQRT(dVar39)" identifier = (call_expression "SQRT(dVar39)" identifier (argument_list "(dVar39)" ( identifier )))) ;) (if_statement "if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }" if (parenthesized_expression "(0.0 <= dVar39)" ( (binary_expression "0.0 <= dVar39" number_literal <= identifier) )) (compound_statement "{\n                      dVar39 = dVar40 * dVar40;\n                    }" { (expression_statement "dVar39 = dVar40 * dVar40;" (assignment_expression "dVar39 = dVar40 * dVar40" identifier = (binary_expression "dVar40 * dVar40" identifier * identifier)) ;) }) (else_clause "else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }" else (compound_statement "{\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }" { (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "dVar39 = dVar40 * dVar40;" (assignment_expression "dVar39 = dVar40 * dVar40" identifier = (binary_expression "dVar40 * dVar40" identifier * identifier)) ;) }))) (expression_statement "dVar39 = dVar44 * dVar44 + dVar39;" (assignment_expression "dVar39 = dVar44 * dVar44 + dVar39" identifier = (binary_expression "dVar44 * dVar44 + dVar39" (binary_expression "dVar44 * dVar44" identifier * identifier) + identifier)) ;) (expression_statement "dVar42 = SQRT(dVar39);" (assignment_expression "dVar42 = SQRT(dVar39)" identifier = (call_expression "SQRT(dVar39)" identifier (argument_list "(dVar39)" ( identifier )))) ;) (if_statement "if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }" if (parenthesized_expression "(dVar39 < 0.0)" ( (binary_expression "dVar39 < 0.0" identifier < number_literal) )) (compound_statement "{\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }" { (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "dVar42 = uStack_5a0 * dVar42;" (assignment_expression "dVar42 = uStack_5a0 * dVar42" identifier = (binary_expression "uStack_5a0 * dVar42" identifier * identifier)) ;) (if_statement "if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" if (parenthesized_expression "(0.0 <= dVar42)" ( (binary_expression "0.0 <= dVar42" number_literal <= identifier) )) (compound_statement "{\n                      in_f26_27 = pdVar29[0x881];\n                    }" { (expression_statement "in_f26_27 = pdVar29[0x881];" (assignment_expression "in_f26_27 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" else (compound_statement "{\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" { (expression_statement "in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar42 * in_f26_27)" ( (binary_expression "unaff_s6[0x879] <= dVar42 * in_f26_27" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar42 * in_f26_27" identifier * identifier)) )) (compound_statement "{\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }" { (expression_statement "in_f26_27 = pdVar29[0x881] / dVar42;" (assignment_expression "in_f26_27 = pdVar29[0x881] / dVar42" identifier = (binary_expression "pdVar29[0x881] / dVar42" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }" else (compound_statement "{\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }" { (expression_statement "in_f26_27 = in_f26_27 / unaff_s6[0x879];" (assignment_expression "in_f26_27 = in_f26_27 / unaff_s6[0x879]" identifier = (binary_expression "in_f26_27 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;" (assignment_expression "in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27" identifier = (binary_expression "(dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27" (parenthesized_expression "(dVar44 * dVar45 + dVar40 * dVar47)" ( (binary_expression "dVar44 * dVar45 + dVar40 * dVar47" (binary_expression "dVar44 * dVar45" identifier * identifier) + (binary_expression "dVar40 * dVar47" identifier * identifier)) )) * identifier)) ;) (expression_statement "uStack_5a0 = in_f26_27 * uStack_5a0;" (assignment_expression "uStack_5a0 = in_f26_27 * uStack_5a0" identifier = (binary_expression "in_f26_27 * uStack_5a0" identifier * identifier)) ;) (labeled_statement "LAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }" statement_identifier : (if_statement "if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }" if (parenthesized_expression "(*puVar32 != 2)" ( (binary_expression "*puVar32 != 2" (pointer_expression "*puVar32" * identifier) != number_literal) )) (compound_statement "{\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }" { (labeled_statement "LAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }" statement_identifier : (if_statement "if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }" if (parenthesized_expression "(dStack_548 <= dStack_580 * dStack_578)" ( (binary_expression "dStack_548 <= dStack_580 * dStack_578" identifier <= (binary_expression "dStack_580 * dStack_578" identifier * identifier)) )) (compound_statement "{\n                        dVar39 = dStack_540 / dStack_580;\n                      }" { (expression_statement "dVar39 = dStack_540 / dStack_580;" (assignment_expression "dVar39 = dStack_540 / dStack_580" identifier = (binary_expression "dStack_540 / dStack_580" identifier / identifier)) ;) }) (else_clause "else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }" else (compound_statement "{\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }" { (expression_statement "dVar39 = dStack_578 / unaff_s6[0x879];" (assignment_expression "dVar39 = dStack_578 / unaff_s6[0x879]" identifier = (binary_expression "dStack_578 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) })))) (expression_statement "uStack_5a0 = uStack_5a0 * dVar39;" (assignment_expression "uStack_5a0 = uStack_5a0 * dVar39" identifier = (binary_expression "uStack_5a0 * dVar39" identifier * identifier)) ;) }))) (goto_statement "goto LAB_000a63a4;" goto statement_identifier ;) })) (if_statement "if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }" if (parenthesized_expression "(*puVar32 != 2)" ( (binary_expression "*puVar32 != 2" (pointer_expression "*puVar32" * identifier) != number_literal) )) (compound_statement "{\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }" { (expression_statement "uStack_5a0 = 0.0;" (assignment_expression "uStack_5a0 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_000a6368;" goto statement_identifier ;) })) (expression_statement "dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);" (assignment_expression "dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12)" identifier = (binary_expression "(double)iVar28 - *(double *)(puVar32 + 0x12)" (cast_expression "(double)iVar28" ( (type_descriptor "double" primitive_type) ) identifier) - (pointer_expression "*(double *)(puVar32 + 0x12)" * (cast_expression "(double *)(puVar32 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x12)" ( (binary_expression "puVar32 + 0x12" identifier + number_literal) )))))) ;) (expression_statement "(**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));" (call_expression "(**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x78e0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x78e0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x78e0)" * (cast_expression "(code **)(pcStack_5a8 + -0x78e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x78e0)" ( (binary_expression "pcStack_5a8 + -0x78e0" identifier + number_literal) ))))) )) (argument_list "((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80))" ( (binary_expression "(*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" (parenthesized_expression "(*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88))" ( (binary_expression "*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" (pointer_expression "*(double *)(puVar32 + 0x1c)" * (cast_expression "(double *)(puVar32 + 0x1c)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x1c)" ( (binary_expression "puVar32 + 0x1c" identifier + number_literal) )))) * (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) )) / (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ))) ;) (expression_statement "dVar39 = *(double *)(puVar32 + 0x16);" (assignment_expression "dVar39 = *(double *)(puVar32 + 0x16)" identifier = (pointer_expression "*(double *)(puVar32 + 0x16)" * (cast_expression "(double *)(puVar32 + 0x16)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x16)" ( (binary_expression "puVar32 + 0x16" identifier + number_literal) ))))) ;) (if_statement "if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }" if (parenthesized_expression "(0.0 <= dVar39)" ( (binary_expression "0.0 <= dVar39" number_literal <= identifier) )) (compound_statement "{\n                    dVar47 = pdVar29[0x881];\n                  }" { (expression_statement "dVar47 = pdVar29[0x881];" (assignment_expression "dVar47 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }" else (compound_statement "{\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }" { (expression_statement "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar39 * dVar47)" ( (binary_expression "unaff_s6[0x879] <= dVar39 * dVar47" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar39 * dVar47" identifier * identifier)) )) (compound_statement "{\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }" { (expression_statement "dVar47 = pdVar29[0x881] / dVar39;" (assignment_expression "dVar47 = pdVar29[0x881] / dVar39" identifier = (binary_expression "pdVar29[0x881] / dVar39" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }" else (compound_statement "{\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }" { (expression_statement "dVar47 = dVar47 / unaff_s6[0x879];" (assignment_expression "dVar47 = dVar47 / unaff_s6[0x879]" identifier = (binary_expression "dVar47 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "dVar39 = *(double *)(puVar32 + 0x18);" (assignment_expression "dVar39 = *(double *)(puVar32 + 0x18)" identifier = (pointer_expression "*(double *)(puVar32 + 0x18)" * (cast_expression "(double *)(puVar32 + 0x18)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x18)" ( (binary_expression "puVar32 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;" (assignment_expression "dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47" identifier = (binary_expression "(dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47" (parenthesized_expression "(dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518)" ( (binary_expression "dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518" (binary_expression "dVar40 * dStack_520" identifier * identifier) + (binary_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518" (parenthesized_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" ( (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 0x14)" (cast_expression "(double)(int)puVar35" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar35" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar32 + 0x14)" * (cast_expression "(double *)(puVar32 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x14)" ( (binary_expression "puVar32 + 0x14" identifier + number_literal) ))))) )) * identifier)) )) * identifier)) ;) (if_statement "if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }" if (parenthesized_expression "(0.0 <= dVar39)" ( (binary_expression "0.0 <= dVar39" number_literal <= identifier) )) (compound_statement "{\n                    dVar44 = pdVar29[0x881];\n                  }" { (expression_statement "dVar44 = pdVar29[0x881];" (assignment_expression "dVar44 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }" else (compound_statement "{\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }" { (expression_statement "dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar39 * dVar44)" ( (binary_expression "unaff_s6[0x879] <= dVar39 * dVar44" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar39 * dVar44" identifier * identifier)) )) (compound_statement "{\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }" { (expression_statement "dVar44 = pdVar29[0x881] / dVar39;" (assignment_expression "dVar44 = pdVar29[0x881] / dVar39" identifier = (binary_expression "pdVar29[0x881] / dVar39" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }" else (compound_statement "{\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }" { (expression_statement "dVar44 = dVar44 / unaff_s6[0x879];" (assignment_expression "dVar44 = dVar44 / unaff_s6[0x879]" identifier = (binary_expression "dVar44 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;" (assignment_expression "dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44" identifier = (binary_expression "(dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44" (parenthesized_expression "(dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)))" ( (binary_expression "dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (binary_expression "dVar40 * dStack_518" identifier * identifier) - (binary_expression "dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" identifier * (parenthesized_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" ( (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 0x14)" (cast_expression "(double)(int)puVar35" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar35" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar32 + 0x14)" * (cast_expression "(double *)(puVar32 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x14)" ( (binary_expression "puVar32 + 0x14" identifier + number_literal) ))))) )))) )) * identifier)) ;) (expression_statement "dVar39 = dVar47 * dVar47 + dVar44 * dVar44;" (assignment_expression "dVar39 = dVar47 * dVar47 + dVar44 * dVar44" identifier = (binary_expression "dVar47 * dVar47 + dVar44 * dVar44" (binary_expression "dVar47 * dVar47" identifier * identifier) + (binary_expression "dVar44 * dVar44" identifier * identifier))) ;) (expression_statement "uStack_5a0 = SQRT(dVar39);" (assignment_expression "uStack_5a0 = SQRT(dVar39)" identifier = (call_expression "SQRT(dVar39)" identifier (argument_list "(dVar39)" ( identifier )))) ;) (if_statement "if (0.0 <= dVar39) goto LAB_000a63bc;" if (parenthesized_expression "(0.0 <= dVar39)" ( (binary_expression "0.0 <= dVar39" number_literal <= identifier) )) (goto_statement "goto LAB_000a63bc;" goto statement_identifier ;)) (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (if_statement "if (*puVar32 != 2) goto LAB_000a6378;" if (parenthesized_expression "(*puVar32 != 2)" ( (binary_expression "*puVar32 != 2" (pointer_expression "*puVar32" * identifier) != number_literal) )) (goto_statement "goto LAB_000a6378;" goto statement_identifier ;)) (expression_statement "iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);" (assignment_expression "iVar3 = *(int *)(pcStack_5a8 + -0x7fcc)" identifier = (pointer_expression "*(int *)(pcStack_5a8 + -0x7fcc)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fcc)" ( (binary_expression "pcStack_5a8 + -0x7fcc" identifier + number_literal) ))))) ;) }))) (expression_statement "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298))" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298))" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x6ee0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x6ee0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x6ee0)" * (cast_expression "(code **)(pcStack_5a8 + -0x6ee0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x6ee0)" ( (binary_expression "pcStack_5a8 + -0x6ee0" identifier + number_literal) ))))) )) (argument_list "(uStack_5a0,*(undefined8 *)(iVar3 + 0x298))" ( identifier , (pointer_expression "*(undefined8 *)(iVar3 + 0x298)" * (cast_expression "(undefined8 *)(iVar3 + 0x298)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x298)" ( (binary_expression "iVar3 + 0x298" identifier + number_literal) )))) ))))) ;) (if_statement "if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }" if (parenthesized_expression "((int)dVar39 == 0)" ( (binary_expression "(int)dVar39 == 0" (cast_expression "(int)dVar39" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }" { (expression_statement "uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);" (assignment_expression "uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881])" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881])" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881])" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x6ee0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x6ee0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x6ee0)" * (cast_expression "(code **)(pcStack_5a8 + -0x6ee0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x6ee0)" ( (binary_expression "pcStack_5a8 + -0x6ee0" identifier + number_literal) ))))) )) (argument_list "(uStack_5a0,pdVar29[0x881])" ( identifier , (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) ))))) ;) }) (else_clause "else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }" else (compound_statement "{\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }" { (expression_statement "dVar39 = pdVar29[0x881];" (assignment_expression "dVar39 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) (expression_statement "uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);" (assignment_expression "uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39)" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39)" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x6ee0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x6ee0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x6ee0)" * (cast_expression "(code **)(pcStack_5a8 + -0x6ee0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x6ee0)" ( (binary_expression "pcStack_5a8 + -0x6ee0" identifier + number_literal) ))))) )) (argument_list "(uStack_5a0,dVar39)" ( identifier , identifier ))))) ;) (expression_statement "uStack_5a0 = dVar39 - uStack_5a0;" (assignment_expression "uStack_5a0 = dVar39 - uStack_5a0" identifier = (binary_expression "dVar39 - uStack_5a0" identifier - identifier)) ;) }))) (expression_statement "uVar26 = puVar32[0xf];" (assignment_expression "uVar26 = puVar32[0xf]" identifier = (subscript_expression "puVar32[0xf]" identifier [ number_literal ])) ;) (if_statement "if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }" if (parenthesized_expression "(0 < (int)uVar26)" ( (binary_expression "0 < (int)uVar26" number_literal < (cast_expression "(int)uVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }" { (expression_statement "uVar8 = puVar32[0xe];" (assignment_expression "uVar8 = puVar32[0xe]" identifier = (subscript_expression "puVar32[0xe]" identifier [ number_literal ])) ;) (if_statement "if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }" if (parenthesized_expression "(*(double *)(uVar8 + 0x58) <= uStack_5a0)" ( (binary_expression "*(double *)(uVar8 + 0x58) <= uStack_5a0" (pointer_expression "*(double *)(uVar8 + 0x58)" * (cast_expression "(double *)(uVar8 + 0x58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + 0x58)" ( (binary_expression "uVar8 + 0x58" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }" { (expression_statement "pdVar16 = (double *)(uVar8 + 0xb8);" (assignment_expression "pdVar16 = (double *)(uVar8 + 0xb8)" identifier = (cast_expression "(double *)(uVar8 + 0xb8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + 0xb8)" ( (binary_expression "uVar8 + 0xb8" identifier + number_literal) )))) ;) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);" do (compound_statement "{\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    }" { (expression_statement "uVar22 = uVar18;" (assignment_expression "uVar22 = uVar18" identifier = identifier) ;) (expression_statement "uVar18 = uVar22 + 1;" (assignment_expression "uVar18 = uVar22 + 1" identifier = (binary_expression "uVar22 + 1" identifier + number_literal)) ;) (if_statement "if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }" if (parenthesized_expression "(uVar18 == uVar26)" ( (binary_expression "uVar18 == uVar26" identifier == identifier) )) (compound_statement "{\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }" { (if_statement "if (uVar18 == 0) goto LAB_000a6248;" if (parenthesized_expression "(uVar18 == 0)" ( (binary_expression "uVar18 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000a6248;" goto statement_identifier ;)) (expression_statement "iVar3 = uVar8 + uVar26 * 0x60 + -0x60;" (assignment_expression "iVar3 = uVar8 + uVar26 * 0x60 + -0x60" identifier = (binary_expression "uVar8 + uVar26 * 0x60 + -0x60" (binary_expression "uVar8 + uVar26 * 0x60" identifier + (binary_expression "uVar26 * 0x60" identifier * number_literal)) + number_literal)) ;) (expression_statement "in_f20_21 = *(double *)(iVar3 + 0x28);" (assignment_expression "in_f20_21 = *(double *)(iVar3 + 0x28)" identifier = (pointer_expression "*(double *)(iVar3 + 0x28)" * (cast_expression "(double *)(iVar3 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x28)" ( (binary_expression "iVar3 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "in_f22_23 = *(double *)(iVar3 + 0x30);" (assignment_expression "in_f22_23 = *(double *)(iVar3 + 0x30)" identifier = (pointer_expression "*(double *)(iVar3 + 0x30)" * (cast_expression "(double *)(iVar3 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x30)" ( (binary_expression "iVar3 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "in_f24_25 = *(double *)(iVar3 + 0x38);" (assignment_expression "in_f24_25 = *(double *)(iVar3 + 0x38)" identifier = (pointer_expression "*(double *)(iVar3 + 0x38)" * (cast_expression "(double *)(iVar3 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x38)" ( (binary_expression "iVar3 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "dStack_590 = *(double *)(iVar3 + 0x40);" (assignment_expression "dStack_590 = *(double *)(iVar3 + 0x40)" identifier = (pointer_expression "*(double *)(iVar3 + 0x40)" * (cast_expression "(double *)(iVar3 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x40)" ( (binary_expression "iVar3 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "dVar39 = *(double *)(iVar3 + 0x48);" (assignment_expression "dVar39 = *(double *)(iVar3 + 0x48)" identifier = (pointer_expression "*(double *)(iVar3 + 0x48)" * (cast_expression "(double *)(iVar3 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x48)" ( (binary_expression "iVar3 + 0x48" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000a5af8;" goto statement_identifier ;) })) (expression_statement "dVar39 = *pdVar16;" (assignment_expression "dVar39 = *pdVar16" identifier = (pointer_expression "*pdVar16" * identifier)) ;) (expression_statement "pdVar16 = pdVar16 + 0xc;" (assignment_expression "pdVar16 = pdVar16 + 0xc" identifier = (binary_expression "pdVar16 + 0xc" identifier + number_literal)) ;) }) while (parenthesized_expression "(dVar39 <= uStack_5a0)" ( (binary_expression "dVar39 <= uStack_5a0" identifier <= identifier) )) ;) (if_statement "if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }" if (parenthesized_expression "(uVar18 != 0)" ( (binary_expression "uVar18 != 0" identifier != number_literal) )) (compound_statement "{\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }" { (expression_statement "iVar10 = uVar8 + uVar22 * 0x60;" (assignment_expression "iVar10 = uVar8 + uVar22 * 0x60" identifier = (binary_expression "uVar8 + uVar22 * 0x60" identifier + (binary_expression "uVar22 * 0x60" identifier * number_literal))) ;) (expression_statement "iVar3 = uVar8 + uVar18 * 0x60;" (assignment_expression "iVar3 = uVar8 + uVar18 * 0x60" identifier = (binary_expression "uVar8 + uVar18 * 0x60" identifier + (binary_expression "uVar18 * 0x60" identifier * number_literal))) ;) (expression_statement "dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));" (assignment_expression "dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58))" identifier = (binary_expression "(uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58))" (parenthesized_expression "(uStack_5a0 - *(double *)(iVar10 + 0x58))" ( (binary_expression "uStack_5a0 - *(double *)(iVar10 + 0x58)" identifier - (pointer_expression "*(double *)(iVar10 + 0x58)" * (cast_expression "(double *)(iVar10 + 0x58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x58)" ( (binary_expression "iVar10 + 0x58" identifier + number_literal) ))))) )) / (parenthesized_expression "(*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58))" ( (binary_expression "*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58)" (pointer_expression "*(double *)(iVar3 + 0x58)" * (cast_expression "(double *)(iVar3 + 0x58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x58)" ( (binary_expression "iVar3 + 0x58" identifier + number_literal) )))) - (pointer_expression "*(double *)(iVar10 + 0x58)" * (cast_expression "(double *)(iVar10 + 0x58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x58)" ( (binary_expression "iVar10 + 0x58" identifier + number_literal) ))))) )))) ;) (expression_statement "dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);" (assignment_expression "dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" identifier = (binary_expression "(pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" (binary_expression "(pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48)" (parenthesized_expression "(pdVar29[0x881] - dVar39)" ( (binary_expression "pdVar29[0x881] - dVar39" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) - identifier) )) * (pointer_expression "*(double *)(iVar10 + 0x48)" * (cast_expression "(double *)(iVar10 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x48)" ( (binary_expression "iVar10 + 0x48" identifier + number_literal) ))))) * (pointer_expression "*(double *)(dStack_558._0_4_ + 0x4410)" * (cast_expression "(double *)(dStack_558._0_4_ + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(dStack_558._0_4_ + 0x4410)" ( (binary_expression "dStack_558._0_4_ + 0x4410" (field_expression "dStack_558._0_4_" identifier . field_identifier) + number_literal) )))))) ;) (expression_statement "dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);" (assignment_expression "dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" identifier = (binary_expression "dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" (binary_expression "dVar39 * *(double *)(iVar3 + 0x48)" identifier * (pointer_expression "*(double *)(iVar3 + 0x48)" * (cast_expression "(double *)(iVar3 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x48)" ( (binary_expression "iVar3 + 0x48" identifier + number_literal) ))))) * (pointer_expression "*(double *)(dStack_558._0_4_ + 0x4410)" * (cast_expression "(double *)(dStack_558._0_4_ + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(dStack_558._0_4_ + 0x4410)" ( (binary_expression "dStack_558._0_4_ + 0x4410" (field_expression "dStack_558._0_4_" identifier . field_identifier) + number_literal) )))))) ;) (expression_statement "dVar44 = dVar47 + dVar40;" (assignment_expression "dVar44 = dVar47 + dVar40" identifier = (binary_expression "dVar47 + dVar40" identifier + identifier)) ;) (if_statement "if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }" if (parenthesized_expression "(0.0 <= dVar44)" ( (binary_expression "0.0 <= dVar44" number_literal <= identifier) )) (compound_statement "{\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }" { (if_statement "if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }" if (parenthesized_expression "(pdVar29[0x881] < dVar44)" ( (binary_expression "pdVar29[0x881] < dVar44" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) < identifier) )) (compound_statement "{\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }" { (expression_statement "dVar44 = pdVar29[0x881];" (assignment_expression "dVar44 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_000a6e58;" goto statement_identifier ;) })) (if_statement "if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }" if (parenthesized_expression "(0.0 <= dVar44)" ( (binary_expression "0.0 <= dVar44" number_literal <= identifier) )) (compound_statement "{\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }" { (expression_statement "dVar39 = dVar44;" (assignment_expression "dVar39 = dVar44" identifier = identifier) ;) (if_statement "if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }" if (parenthesized_expression "(pdVar29[0x881] < dVar44)" ( (binary_expression "pdVar29[0x881] < dVar44" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) < identifier) )) (compound_statement "{\n                            dVar39 = pdVar29[0x881];\n                          }" { (expression_statement "dVar39 = pdVar29[0x881];" (assignment_expression "dVar39 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) })) (expression_statement "dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);" (assignment_expression "dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48)" identifier = (binary_expression "dVar39 * *(double *)(iStack_570 + 0x4a48)" identifier * (pointer_expression "*(double *)(iStack_570 + 0x4a48)" * (cast_expression "(double *)(iStack_570 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_570 + 0x4a48)" ( (binary_expression "iStack_570 + 0x4a48" identifier + number_literal) )))))) ;) (if_statement "if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }" if (parenthesized_expression "(dVar44 < 0.0)" ( (binary_expression "dVar44 < 0.0" identifier < number_literal) )) (compound_statement "{\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }" { (expression_statement "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n                            dVar45 = pdVar29[0x881];\n                          }" else (compound_statement "{\n                            dVar45 = pdVar29[0x881];\n                          }" { (expression_statement "dVar45 = pdVar29[0x881];" (assignment_expression "dVar45 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) }))) }) (else_clause "else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }" else (compound_statement "{\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }" { (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" identifier = number_literal) ;) (expression_statement "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) }) (else_clause "else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }" else (compound_statement "{\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }" { (expression_statement "dVar44 = 0.0;" (assignment_expression "dVar44 = 0.0" identifier = number_literal) ;) (labeled_statement "LAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);" statement_identifier : (expression_statement "dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);" (assignment_expression "dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48)" identifier = (binary_expression "dVar44 * *(double *)(iStack_570 + 0x4a48)" identifier * (pointer_expression "*(double *)(iStack_570 + 0x4a48)" * (cast_expression "(double *)(iStack_570 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_570 + 0x4a48)" ( (binary_expression "iStack_570 + 0x4a48" identifier + number_literal) )))))) ;)) (expression_statement "dVar45 = pdVar29[0x881];" (assignment_expression "dVar45 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar45 * dVar44)" ( (binary_expression "unaff_s6[0x879] <= dVar45 * dVar44" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar45 * dVar44" identifier * identifier)) )) (compound_statement "{\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }" { (expression_statement "dVar45 = pdVar29[0x881] / dVar44;" (assignment_expression "dVar45 = pdVar29[0x881] / dVar44" identifier = (binary_expression "pdVar29[0x881] / dVar44" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }" else (compound_statement "{\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }" { (expression_statement "dVar45 = dVar45 / unaff_s6[0x879];" (assignment_expression "dVar45 = dVar45 / unaff_s6[0x879]" identifier = (binary_expression "dVar45 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;" (assignment_expression "in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45" identifier = (binary_expression "(dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45" (parenthesized_expression "(dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28))" ( (binary_expression "dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)" (binary_expression "dVar47 * *(double *)(iVar10 + 0x28)" identifier * (pointer_expression "*(double *)(iVar10 + 0x28)" * (cast_expression "(double *)(iVar10 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x28)" ( (binary_expression "iVar10 + 0x28" identifier + number_literal) ))))) + (binary_expression "dVar40 * *(double *)(iVar3 + 0x28)" identifier * (pointer_expression "*(double *)(iVar3 + 0x28)" * (cast_expression "(double *)(iVar3 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x28)" ( (binary_expression "iVar3 + 0x28" identifier + number_literal) )))))) )) * identifier)) ;) (expression_statement "in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;" (assignment_expression "in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45" identifier = (binary_expression "(dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45" (parenthesized_expression "(dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30))" ( (binary_expression "dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)" (binary_expression "dVar47 * *(double *)(iVar10 + 0x30)" identifier * (pointer_expression "*(double *)(iVar10 + 0x30)" * (cast_expression "(double *)(iVar10 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x30)" ( (binary_expression "iVar10 + 0x30" identifier + number_literal) ))))) + (binary_expression "dVar40 * *(double *)(iVar3 + 0x30)" identifier * (pointer_expression "*(double *)(iVar3 + 0x30)" * (cast_expression "(double *)(iVar3 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x30)" ( (binary_expression "iVar3 + 0x30" identifier + number_literal) )))))) )) * identifier)) ;) (expression_statement "in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;" (assignment_expression "in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45" identifier = (binary_expression "(dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45" (parenthesized_expression "(dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38))" ( (binary_expression "dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)" (binary_expression "dVar47 * *(double *)(iVar10 + 0x38)" identifier * (pointer_expression "*(double *)(iVar10 + 0x38)" * (cast_expression "(double *)(iVar10 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x38)" ( (binary_expression "iVar10 + 0x38" identifier + number_literal) ))))) + (binary_expression "dVar40 * *(double *)(iVar3 + 0x38)" identifier * (pointer_expression "*(double *)(iVar3 + 0x38)" * (cast_expression "(double *)(iVar3 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x38)" ( (binary_expression "iVar3 + 0x38" identifier + number_literal) )))))) )) * identifier)) ;) (if_statement "if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }" if (parenthesized_expression "(*(int *)(iVar3 + 4) == 2)" ( (binary_expression "*(int *)(iVar3 + 4) == 2" (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }" { (expression_statement "dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;" (assignment_expression "dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45" identifier = (binary_expression "(dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45" (parenthesized_expression "(dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40))" ( (binary_expression "dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)" (binary_expression "dVar47 * *(double *)(iVar10 + 0x40)" identifier * (pointer_expression "*(double *)(iVar10 + 0x40)" * (cast_expression "(double *)(iVar10 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x40)" ( (binary_expression "iVar10 + 0x40" identifier + number_literal) ))))) + (binary_expression "dVar40 * *(double *)(iVar3 + 0x40)" identifier * (pointer_expression "*(double *)(iVar3 + 0x40)" * (cast_expression "(double *)(iVar3 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x40)" ( (binary_expression "iVar3 + 0x40" identifier + number_literal) )))))) )) * identifier)) ;) })) (goto_statement "goto LAB_000a5af8;" goto statement_identifier ;) })) })) })) (labeled_statement "LAB_000a6248:\n                uVar26 = puVar32[0xe];" statement_identifier : (expression_statement "uVar26 = puVar32[0xe];" (assignment_expression "uVar26 = puVar32[0xe]" identifier = (subscript_expression "puVar32[0xe]" identifier [ number_literal ])) ;)) (expression_statement "in_f20_21 = *(double *)(uVar26 + 0x28);" (assignment_expression "in_f20_21 = *(double *)(uVar26 + 0x28)" identifier = (pointer_expression "*(double *)(uVar26 + 0x28)" * (cast_expression "(double *)(uVar26 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 + 0x28)" ( (binary_expression "uVar26 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "in_f22_23 = *(double *)(uVar26 + 0x30);" (assignment_expression "in_f22_23 = *(double *)(uVar26 + 0x30)" identifier = (pointer_expression "*(double *)(uVar26 + 0x30)" * (cast_expression "(double *)(uVar26 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 + 0x30)" ( (binary_expression "uVar26 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "in_f24_25 = *(double *)(uVar26 + 0x38);" (assignment_expression "in_f24_25 = *(double *)(uVar26 + 0x38)" identifier = (pointer_expression "*(double *)(uVar26 + 0x38)" * (cast_expression "(double *)(uVar26 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 + 0x38)" ( (binary_expression "uVar26 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "dStack_590 = *(double *)(uVar26 + 0x40);" (assignment_expression "dStack_590 = *(double *)(uVar26 + 0x40)" identifier = (pointer_expression "*(double *)(uVar26 + 0x40)" * (cast_expression "(double *)(uVar26 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 + 0x40)" ( (binary_expression "uVar26 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "dVar39 = *(double *)(uVar26 + 0x48);" (assignment_expression "dVar39 = *(double *)(uVar26 + 0x48)" identifier = (pointer_expression "*(double *)(uVar26 + 0x48)" * (cast_expression "(double *)(uVar26 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 + 0x48)" ( (binary_expression "uVar26 + 0x48" identifier + number_literal) ))))) ;) }) (else_clause "else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }" else (if_statement "if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }" if (parenthesized_expression "(unaff_s7 < 2)" ( (binary_expression "unaff_s7 < 2" identifier < number_literal) )) (compound_statement "{\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }" { (expression_statement "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0))" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0))" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7c78))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7c78)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7c78)" * (cast_expression "(code **)(pcStack_5a8 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7c78)" ( (binary_expression "pcStack_5a8 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(*pdStack_588 - *(double *)(iStack_584 + 0x43d0))" ( (binary_expression "*pdStack_588 - *(double *)(iStack_584 + 0x43d0)" (pointer_expression "*pdStack_588" * identifier) - (pointer_expression "*(double *)(iStack_584 + 0x43d0)" * (cast_expression "(double *)(iStack_584 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_584 + 0x43d0)" ( (binary_expression "iStack_584 + 0x43d0" identifier + number_literal) ))))) ))))) ;) (if_statement "if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;" if (parenthesized_expression "(((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39))" ( (binary_expression "((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)" (parenthesized_expression "((int)dVar39 == iVar28)" ( (binary_expression "(int)dVar39 == iVar28" (cast_expression "(int)dVar39" ( (type_descriptor "int" primitive_type) ) identifier) == identifier) )) && (parenthesized_expression "(dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)" ( (comma_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7c78))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7c78)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7c78)" * (cast_expression "(code **)(pcStack_5a8 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7c78)" ( (binary_expression "pcStack_5a8 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" ( (binary_expression "pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)" (subscript_expression "pdStack_588[1]" identifier [ number_literal ]) - (pointer_expression "*(double *)(iStack_584 + 0x43d0)" * (cast_expression "(double *)(iStack_584 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_584 + 0x43d0)" ( (binary_expression "iStack_584 + 0x43d0" identifier + number_literal) ))))) ))))) , (binary_expression "puVar35 == (undefined1 *)(int)dVar39" identifier == (cast_expression "(undefined1 *)(int)dVar39" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)dVar39" ( (type_descriptor "int" primitive_type) ) identifier)))) ))) )) (goto_statement "goto LAB_000a6944;" goto statement_identifier ;)) (if_statement "if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }" if (parenthesized_expression "(*puVar32 < 2)" ( (binary_expression "*puVar32 < 2" (pointer_expression "*puVar32" * identifier) < number_literal) )) (compound_statement "{\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }" { (expression_statement "dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);" (assignment_expression "dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6)" identifier = (binary_expression "*(double *)(puVar32 + 10) - *(double *)(puVar32 + 6)" (pointer_expression "*(double *)(puVar32 + 10)" * (cast_expression "(double *)(puVar32 + 10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 10)" ( (binary_expression "puVar32 + 10" identifier + number_literal) )))) - (pointer_expression "*(double *)(puVar32 + 6)" * (cast_expression "(double *)(puVar32 + 6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 6)" ( (binary_expression "puVar32 + 6" identifier + number_literal) )))))) ;) (expression_statement "dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);" (assignment_expression "dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8)" identifier = (binary_expression "*(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8)" (pointer_expression "*(double *)(puVar32 + 0xc)" * (cast_expression "(double *)(puVar32 + 0xc)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0xc)" ( (binary_expression "puVar32 + 0xc" identifier + number_literal) )))) - (pointer_expression "*(double *)(puVar32 + 8)" * (cast_expression "(double *)(puVar32 + 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 8)" ( (binary_expression "puVar32 + 8" identifier + number_literal) )))))) ;) (expression_statement "dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);" (assignment_expression "dVar45 = (double)iVar28 - *(double *)(puVar32 + 6)" identifier = (binary_expression "(double)iVar28 - *(double *)(puVar32 + 6)" (cast_expression "(double)iVar28" ( (type_descriptor "double" primitive_type) ) identifier) - (pointer_expression "*(double *)(puVar32 + 6)" * (cast_expression "(double *)(puVar32 + 6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 6)" ( (binary_expression "puVar32 + 6" identifier + number_literal) )))))) ;) (expression_statement "dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);" (assignment_expression "dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8)" identifier = (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 8)" (cast_expression "(double)(int)puVar35" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar35" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar32 + 8)" * (cast_expression "(double *)(puVar32 + 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 8)" ( (binary_expression "puVar32 + 8" identifier + number_literal) )))))) ;) (expression_statement "dVar39 = dVar45 * dVar45 + dVar47 * dVar47;" (assignment_expression "dVar39 = dVar45 * dVar45 + dVar47 * dVar47" identifier = (binary_expression "dVar45 * dVar45 + dVar47 * dVar47" (binary_expression "dVar45 * dVar45" identifier * identifier) + (binary_expression "dVar47 * dVar47" identifier * identifier))) ;) (expression_statement "uStack_5a0 = SQRT(dVar39);" (assignment_expression "uStack_5a0 = SQRT(dVar39)" identifier = (call_expression "SQRT(dVar39)" identifier (argument_list "(dVar39)" ( identifier )))) ;) (if_statement "if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }" if (parenthesized_expression "(0.0 <= dVar39)" ( (binary_expression "0.0 <= dVar39" number_literal <= identifier) )) (compound_statement "{\n                    dVar39 = dVar40 * dVar40;\n                  }" { (expression_statement "dVar39 = dVar40 * dVar40;" (assignment_expression "dVar39 = dVar40 * dVar40" identifier = (binary_expression "dVar40 * dVar40" identifier * identifier)) ;) }) (else_clause "else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }" else (compound_statement "{\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }" { (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "dVar39 = dVar40 * dVar40;" (assignment_expression "dVar39 = dVar40 * dVar40" identifier = (binary_expression "dVar40 * dVar40" identifier * identifier)) ;) }))) (expression_statement "dVar39 = dVar44 * dVar44 + dVar39;" (assignment_expression "dVar39 = dVar44 * dVar44 + dVar39" identifier = (binary_expression "dVar44 * dVar44 + dVar39" (binary_expression "dVar44 * dVar44" identifier * identifier) + identifier)) ;) (expression_statement "dVar42 = SQRT(dVar39);" (assignment_expression "dVar42 = SQRT(dVar39)" identifier = (call_expression "SQRT(dVar39)" identifier (argument_list "(dVar39)" ( identifier )))) ;) (if_statement "if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }" if (parenthesized_expression "(dVar39 < 0.0)" ( (binary_expression "dVar39 < 0.0" identifier < number_literal) )) (compound_statement "{\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }" { (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "dVar42 = uStack_5a0 * dVar42;" (assignment_expression "dVar42 = uStack_5a0 * dVar42" identifier = (binary_expression "uStack_5a0 * dVar42" identifier * identifier)) ;) (if_statement "if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }" if (parenthesized_expression "(0.0 <= dVar42)" ( (binary_expression "0.0 <= dVar42" number_literal <= identifier) )) (compound_statement "{\n                    in_f26_27 = pdVar29[0x881];\n                  }" { (expression_statement "in_f26_27 = pdVar29[0x881];" (assignment_expression "in_f26_27 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }" else (compound_statement "{\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }" { (expression_statement "in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar42 * in_f26_27)" ( (binary_expression "unaff_s6[0x879] <= dVar42 * in_f26_27" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar42 * in_f26_27" identifier * identifier)) )) (compound_statement "{\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }" { (expression_statement "in_f26_27 = pdVar29[0x881] / dVar42;" (assignment_expression "in_f26_27 = pdVar29[0x881] / dVar42" identifier = (binary_expression "pdVar29[0x881] / dVar42" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }" else (compound_statement "{\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }" { (expression_statement "in_f26_27 = in_f26_27 / unaff_s6[0x879];" (assignment_expression "in_f26_27 = in_f26_27 / unaff_s6[0x879]" identifier = (binary_expression "in_f26_27 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;" (assignment_expression "in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27" identifier = (binary_expression "(dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27" (parenthesized_expression "(dVar44 * dVar45 + dVar40 * dVar47)" ( (binary_expression "dVar44 * dVar45 + dVar40 * dVar47" (binary_expression "dVar44 * dVar45" identifier * identifier) + (binary_expression "dVar40 * dVar47" identifier * identifier)) )) * identifier)) ;) (expression_statement "uStack_5a0 = in_f26_27 * uStack_5a0;" (assignment_expression "uStack_5a0 = in_f26_27 * uStack_5a0" identifier = (binary_expression "in_f26_27 * uStack_5a0" identifier * identifier)) ;) (labeled_statement "LAB_000a6908:\n                  uVar26 = *puVar32;" statement_identifier : (expression_statement "uVar26 = *puVar32;" (assignment_expression "uVar26 = *puVar32" identifier = (pointer_expression "*puVar32" * identifier)) ;)) (labeled_statement "LAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }" statement_identifier : (if_statement "if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }" if (parenthesized_expression "(uVar26 != 2)" ( (binary_expression "uVar26 != 2" identifier != number_literal) )) (compound_statement "{\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }" { (if_statement "if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }" if (parenthesized_expression "(unaff_s6[0x879] <= dStack_580 * dStack_578)" ( (binary_expression "unaff_s6[0x879] <= dStack_580 * dStack_578" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dStack_580 * dStack_578" identifier * identifier)) )) (compound_statement "{\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }" { (expression_statement "dVar39 = pdVar29[0x881] / dStack_580;" (assignment_expression "dVar39 = pdVar29[0x881] / dStack_580" identifier = (binary_expression "pdVar29[0x881] / dStack_580" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }" else (compound_statement "{\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }" { (expression_statement "dVar39 = dStack_578 / unaff_s6[0x879];" (assignment_expression "dVar39 = dStack_578 / unaff_s6[0x879]" identifier = (binary_expression "dStack_578 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "uStack_5a0 = uStack_5a0 * dVar39;" (assignment_expression "uStack_5a0 = uStack_5a0 * dVar39" identifier = (binary_expression "uStack_5a0 * dVar39" identifier * identifier)) ;) }))) }) (else_clause "else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }" else (compound_statement "{\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }" { (if_statement "if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }" if (parenthesized_expression "(*puVar32 != 2)" ( (binary_expression "*puVar32 != 2" (pointer_expression "*puVar32" * identifier) != number_literal) )) (compound_statement "{\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }" { (expression_statement "uStack_5a0 = 0.0;" (assignment_expression "uStack_5a0 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_000a6908;" goto statement_identifier ;) })) (if_statement "if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }" if (parenthesized_expression "(unaff_s7 != 3)" ( (binary_expression "unaff_s7 != 3" identifier != number_literal) )) (compound_statement "{\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }" { (expression_statement "dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);" (assignment_expression "dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12)" identifier = (binary_expression "(double)iVar28 - *(double *)(puVar32 + 0x12)" (cast_expression "(double)iVar28" ( (type_descriptor "double" primitive_type) ) identifier) - (pointer_expression "*(double *)(puVar32 + 0x12)" * (cast_expression "(double *)(puVar32 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x12)" ( (binary_expression "puVar32 + 0x12" identifier + number_literal) )))))) ;) (expression_statement "(**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));" (call_expression "(**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x78e0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x78e0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x78e0)" * (cast_expression "(code **)(pcStack_5a8 + -0x78e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x78e0)" ( (binary_expression "pcStack_5a8 + -0x78e0" identifier + number_literal) ))))) )) (argument_list "((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80))" ( (binary_expression "(*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" (parenthesized_expression "(*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88))" ( (binary_expression "*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" (pointer_expression "*(double *)(puVar32 + 0x1c)" * (cast_expression "(double *)(puVar32 + 0x1c)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x1c)" ( (binary_expression "puVar32 + 0x1c" identifier + number_literal) )))) * (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) )) / (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ))) ;) (expression_statement "dVar39 = *(double *)(puVar32 + 0x16);" (assignment_expression "dVar39 = *(double *)(puVar32 + 0x16)" identifier = (pointer_expression "*(double *)(puVar32 + 0x16)" * (cast_expression "(double *)(puVar32 + 0x16)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x16)" ( (binary_expression "puVar32 + 0x16" identifier + number_literal) ))))) ;) (if_statement "if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" if (parenthesized_expression "(0.0 <= dVar39)" ( (binary_expression "0.0 <= dVar39" number_literal <= identifier) )) (compound_statement "{\n                      dVar47 = pdVar29[0x881];\n                    }" { (expression_statement "dVar47 = pdVar29[0x881];" (assignment_expression "dVar47 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" else (compound_statement "{\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" { (expression_statement "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar39 * dVar47)" ( (binary_expression "unaff_s6[0x879] <= dVar39 * dVar47" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar39 * dVar47" identifier * identifier)) )) (compound_statement "{\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }" { (expression_statement "dVar47 = pdVar29[0x881] / dVar39;" (assignment_expression "dVar47 = pdVar29[0x881] / dVar39" identifier = (binary_expression "pdVar29[0x881] / dVar39" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }" else (compound_statement "{\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }" { (expression_statement "dVar47 = dVar47 / unaff_s6[0x879];" (assignment_expression "dVar47 = dVar47 / unaff_s6[0x879]" identifier = (binary_expression "dVar47 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "dVar39 = *(double *)(puVar32 + 0x18);" (assignment_expression "dVar39 = *(double *)(puVar32 + 0x18)" identifier = (pointer_expression "*(double *)(puVar32 + 0x18)" * (cast_expression "(double *)(puVar32 + 0x18)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x18)" ( (binary_expression "puVar32 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;" (assignment_expression "dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47" identifier = (binary_expression "(dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47" (parenthesized_expression "(dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518)" ( (binary_expression "dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518" (binary_expression "dVar40 * dStack_520" identifier * identifier) + (binary_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518" (parenthesized_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" ( (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 0x14)" (cast_expression "(double)(int)puVar35" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar35" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar32 + 0x14)" * (cast_expression "(double *)(puVar32 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x14)" ( (binary_expression "puVar32 + 0x14" identifier + number_literal) ))))) )) * identifier)) )) * identifier)) ;) (if_statement "if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" if (parenthesized_expression "(0.0 <= dVar39)" ( (binary_expression "0.0 <= dVar39" number_literal <= identifier) )) (compound_statement "{\n                      dVar44 = pdVar29[0x881];\n                    }" { (expression_statement "dVar44 = pdVar29[0x881];" (assignment_expression "dVar44 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" else (compound_statement "{\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" { (expression_statement "dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar39 * dVar44)" ( (binary_expression "unaff_s6[0x879] <= dVar39 * dVar44" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar39 * dVar44" identifier * identifier)) )) (compound_statement "{\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }" { (expression_statement "dVar44 = pdVar29[0x881] / dVar39;" (assignment_expression "dVar44 = pdVar29[0x881] / dVar39" identifier = (binary_expression "pdVar29[0x881] / dVar39" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }" else (compound_statement "{\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }" { (expression_statement "dVar44 = dVar44 / unaff_s6[0x879];" (assignment_expression "dVar44 = dVar44 / unaff_s6[0x879]" identifier = (binary_expression "dVar44 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;" (assignment_expression "dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44" identifier = (binary_expression "(dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44" (parenthesized_expression "(dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)))" ( (binary_expression "dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (binary_expression "dVar40 * dStack_518" identifier * identifier) - (binary_expression "dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" identifier * (parenthesized_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" ( (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 0x14)" (cast_expression "(double)(int)puVar35" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar35" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar32 + 0x14)" * (cast_expression "(double *)(puVar32 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x14)" ( (binary_expression "puVar32 + 0x14" identifier + number_literal) ))))) )))) )) * identifier)) ;) (expression_statement "dVar39 = dVar47 * dVar47 + dVar44 * dVar44;" (assignment_expression "dVar39 = dVar47 * dVar47 + dVar44 * dVar44" identifier = (binary_expression "dVar47 * dVar47 + dVar44 * dVar44" (binary_expression "dVar47 * dVar47" identifier * identifier) + (binary_expression "dVar44 * dVar44" identifier * identifier))) ;) (expression_statement "uStack_5a0 = SQRT(dVar39);" (assignment_expression "uStack_5a0 = SQRT(dVar39)" identifier = (call_expression "SQRT(dVar39)" identifier (argument_list "(dVar39)" ( identifier )))) ;) (if_statement "if (0.0 <= dVar39) goto LAB_000a6944;" if (parenthesized_expression "(0.0 <= dVar39)" ( (binary_expression "0.0 <= dVar39" number_literal <= identifier) )) (goto_statement "goto LAB_000a6944;" goto statement_identifier ;)) (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar26 = *puVar32;" (assignment_expression "uVar26 = *puVar32" identifier = (pointer_expression "*puVar32" * identifier)) ;) (goto_statement "goto LAB_000a690c;" goto statement_identifier ;) })) (expression_statement "dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));" (assignment_expression "dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" identifier = (binary_expression "((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (binary_expression "((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12))" (parenthesized_expression "((double)iVar28 - *(double *)(puVar32 + 0x12))" ( (binary_expression "(double)iVar28 - *(double *)(puVar32 + 0x12)" (cast_expression "(double)iVar28" ( (type_descriptor "double" primitive_type) ) identifier) - (pointer_expression "*(double *)(puVar32 + 0x12)" * (cast_expression "(double *)(puVar32 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x12)" ( (binary_expression "puVar32 + 0x12" identifier + number_literal) ))))) )) * (parenthesized_expression "((double)iVar28 - *(double *)(puVar32 + 0x12))" ( (binary_expression "(double)iVar28 - *(double *)(puVar32 + 0x12)" (cast_expression "(double)iVar28" ( (type_descriptor "double" primitive_type) ) identifier) - (pointer_expression "*(double *)(puVar32 + 0x12)" * (cast_expression "(double *)(puVar32 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x12)" ( (binary_expression "puVar32 + 0x12" identifier + number_literal) ))))) ))) + (binary_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (parenthesized_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" ( (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 0x14)" (cast_expression "(double)(int)puVar35" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar35" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar32 + 0x14)" * (cast_expression "(double *)(puVar32 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x14)" ( (binary_expression "puVar32 + 0x14" identifier + number_literal) ))))) )) * (parenthesized_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" ( (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 0x14)" (cast_expression "(double)(int)puVar35" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar35" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar32 + 0x14)" * (cast_expression "(double *)(puVar32 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x14)" ( (binary_expression "puVar32 + 0x14" identifier + number_literal) ))))) ))))) ;) (expression_statement "uStack_5a0 = SQRT(dVar39);" (assignment_expression "uStack_5a0 = SQRT(dVar39)" identifier = (call_expression "SQRT(dVar39)" identifier (argument_list "(dVar39)" ( identifier )))) ;) (if_statement "if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }" if (parenthesized_expression "(dVar39 < 0.0)" ( (binary_expression "dVar39 < 0.0" identifier < number_literal) )) (compound_statement "{\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }" { (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar26 = *puVar32;" (assignment_expression "uVar26 = *puVar32" identifier = (pointer_expression "*puVar32" * identifier)) ;) (goto_statement "goto LAB_000a690c;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_000a6944:\n                uVar26 = puVar32[0xf];" statement_identifier : (expression_statement "uVar26 = puVar32[0xf];" (assignment_expression "uVar26 = puVar32[0xf]" identifier = (subscript_expression "puVar32[0xf]" identifier [ number_literal ])) ;)) (if_statement "if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }" if (parenthesized_expression "(0 < (int)uVar26)" ( (binary_expression "0 < (int)uVar26" number_literal < (cast_expression "(int)uVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }" { (expression_statement "uVar8 = puVar32[0xe];" (assignment_expression "uVar8 = puVar32[0xe]" identifier = (subscript_expression "puVar32[0xe]" identifier [ number_literal ])) ;) (if_statement "if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }" if (parenthesized_expression "(*(double *)(uVar8 + 0x58) <= uStack_5a0)" ( (binary_expression "*(double *)(uVar8 + 0x58) <= uStack_5a0" (pointer_expression "*(double *)(uVar8 + 0x58)" * (cast_expression "(double *)(uVar8 + 0x58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + 0x58)" ( (binary_expression "uVar8 + 0x58" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }" { (expression_statement "pdVar16 = (double *)(uVar8 + 0xb8);" (assignment_expression "pdVar16 = (double *)(uVar8 + 0xb8)" identifier = (cast_expression "(double *)(uVar8 + 0xb8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + 0xb8)" ( (binary_expression "uVar8 + 0xb8" identifier + number_literal) )))) ;) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);" do (compound_statement "{\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    }" { (expression_statement "uVar22 = uVar18;" (assignment_expression "uVar22 = uVar18" identifier = identifier) ;) (expression_statement "uVar18 = uVar22 + 1;" (assignment_expression "uVar18 = uVar22 + 1" identifier = (binary_expression "uVar22 + 1" identifier + number_literal)) ;) (if_statement "if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }" if (parenthesized_expression "(uVar18 == uVar26)" ( (binary_expression "uVar18 == uVar26" identifier == identifier) )) (compound_statement "{\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }" { (if_statement "if (uStack_5a0 < 0.0) goto LAB_000a6694;" if (parenthesized_expression "(uStack_5a0 < 0.0)" ( (binary_expression "uStack_5a0 < 0.0" identifier < number_literal) )) (goto_statement "goto LAB_000a6694;" goto statement_identifier ;)) (expression_statement "dVar39 = pdVar29[0x881];" (assignment_expression "dVar39 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) (expression_statement "uVar18 = uVar26;" (assignment_expression "uVar18 = uVar26" identifier = identifier) ;) (goto_statement "goto LAB_000a6f20;" goto statement_identifier ;) })) (expression_statement "dVar39 = *pdVar16;" (assignment_expression "dVar39 = *pdVar16" identifier = (pointer_expression "*pdVar16" * identifier)) ;) (expression_statement "pdVar16 = pdVar16 + 0xc;" (assignment_expression "pdVar16 = pdVar16 + 0xc" identifier = (binary_expression "pdVar16 + 0xc" identifier + number_literal)) ;) }) while (parenthesized_expression "(dVar39 <= uStack_5a0)" ( (binary_expression "dVar39 <= uStack_5a0" identifier <= identifier) )) ;) (if_statement "if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }" if (parenthesized_expression "((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0))" ( (binary_expression "(0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)" (parenthesized_expression "(0.0 <= uStack_5a0)" ( (binary_expression "0.0 <= uStack_5a0" number_literal <= identifier) )) && (parenthesized_expression "(dVar39 = pdVar29[0x881], uVar18 != 0)" ( (comma_expression "dVar39 = pdVar29[0x881], uVar18 != 0" (assignment_expression "dVar39 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) , (binary_expression "uVar18 != 0" identifier != number_literal)) ))) )) (compound_statement "{\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }" { (labeled_statement "LAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }" statement_identifier : (if_statement "if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }" if (parenthesized_expression "((dVar39 < uStack_5a0) || (uVar26 == uVar18))" ( (binary_expression "(dVar39 < uStack_5a0) || (uVar26 == uVar18)" (parenthesized_expression "(dVar39 < uStack_5a0)" ( (binary_expression "dVar39 < uStack_5a0" identifier < identifier) )) || (parenthesized_expression "(uVar26 == uVar18)" ( (binary_expression "uVar26 == uVar18" identifier == identifier) ))) )) (compound_statement "{\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }" { (expression_statement "iVar3 = uVar8 + uVar26 * 0x60 + -0x60;" (assignment_expression "iVar3 = uVar8 + uVar26 * 0x60 + -0x60" identifier = (binary_expression "uVar8 + uVar26 * 0x60 + -0x60" (binary_expression "uVar8 + uVar26 * 0x60" identifier + (binary_expression "uVar26 * 0x60" identifier * number_literal)) + number_literal)) ;) (expression_statement "in_f20_21 = *(double *)(iVar3 + 0x28);" (assignment_expression "in_f20_21 = *(double *)(iVar3 + 0x28)" identifier = (pointer_expression "*(double *)(iVar3 + 0x28)" * (cast_expression "(double *)(iVar3 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x28)" ( (binary_expression "iVar3 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "in_f22_23 = *(double *)(iVar3 + 0x30);" (assignment_expression "in_f22_23 = *(double *)(iVar3 + 0x30)" identifier = (pointer_expression "*(double *)(iVar3 + 0x30)" * (cast_expression "(double *)(iVar3 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x30)" ( (binary_expression "iVar3 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "in_f24_25 = *(double *)(iVar3 + 0x38);" (assignment_expression "in_f24_25 = *(double *)(iVar3 + 0x38)" identifier = (pointer_expression "*(double *)(iVar3 + 0x38)" * (cast_expression "(double *)(iVar3 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x38)" ( (binary_expression "iVar3 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "dStack_590 = *(double *)(iVar3 + 0x40);" (assignment_expression "dStack_590 = *(double *)(iVar3 + 0x40)" identifier = (pointer_expression "*(double *)(iVar3 + 0x40)" * (cast_expression "(double *)(iVar3 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x40)" ( (binary_expression "iVar3 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "dVar39 = *(double *)(iVar3 + 0x48);" (assignment_expression "dVar39 = *(double *)(iVar3 + 0x48)" identifier = (pointer_expression "*(double *)(iVar3 + 0x48)" * (cast_expression "(double *)(iVar3 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x48)" ( (binary_expression "iVar3 + 0x48" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000a5af8;" goto statement_identifier ;) }))) (expression_statement "iVar3 = uVar8 + uVar22 * 0x60;" (assignment_expression "iVar3 = uVar8 + uVar22 * 0x60" identifier = (binary_expression "uVar8 + uVar22 * 0x60" identifier + (binary_expression "uVar22 * 0x60" identifier * number_literal))) ;) (expression_statement "iVar10 = uVar8 + uVar18 * 0x60;" (assignment_expression "iVar10 = uVar8 + uVar18 * 0x60" identifier = (binary_expression "uVar8 + uVar18 * 0x60" identifier + (binary_expression "uVar18 * 0x60" identifier * number_literal))) ;) (expression_statement "dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));" (assignment_expression "dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58))" identifier = (binary_expression "(uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58))" (parenthesized_expression "(uStack_5a0 - *(double *)(iVar3 + 0x58))" ( (binary_expression "uStack_5a0 - *(double *)(iVar3 + 0x58)" identifier - (pointer_expression "*(double *)(iVar3 + 0x58)" * (cast_expression "(double *)(iVar3 + 0x58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x58)" ( (binary_expression "iVar3 + 0x58" identifier + number_literal) ))))) )) / (parenthesized_expression "(*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58))" ( (binary_expression "*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58)" (pointer_expression "*(double *)(iVar10 + 0x58)" * (cast_expression "(double *)(iVar10 + 0x58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x58)" ( (binary_expression "iVar10 + 0x58" identifier + number_literal) )))) - (pointer_expression "*(double *)(iVar3 + 0x58)" * (cast_expression "(double *)(iVar3 + 0x58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x58)" ( (binary_expression "iVar3 + 0x58" identifier + number_literal) ))))) )))) ;) (expression_statement "dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);" (assignment_expression "dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" identifier = (binary_expression "(pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" (binary_expression "(pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48)" (parenthesized_expression "(pdVar29[0x881] - dVar39)" ( (binary_expression "pdVar29[0x881] - dVar39" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) - identifier) )) * (pointer_expression "*(double *)(iVar3 + 0x48)" * (cast_expression "(double *)(iVar3 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x48)" ( (binary_expression "iVar3 + 0x48" identifier + number_literal) ))))) * (pointer_expression "*(double *)(dStack_558._0_4_ + 0x4410)" * (cast_expression "(double *)(dStack_558._0_4_ + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(dStack_558._0_4_ + 0x4410)" ( (binary_expression "dStack_558._0_4_ + 0x4410" (field_expression "dStack_558._0_4_" identifier . field_identifier) + number_literal) )))))) ;) (expression_statement "dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);" (assignment_expression "dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" identifier = (binary_expression "dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" (binary_expression "dVar39 * *(double *)(iVar10 + 0x48)" identifier * (pointer_expression "*(double *)(iVar10 + 0x48)" * (cast_expression "(double *)(iVar10 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x48)" ( (binary_expression "iVar10 + 0x48" identifier + number_literal) ))))) * (pointer_expression "*(double *)(dStack_558._0_4_ + 0x4410)" * (cast_expression "(double *)(dStack_558._0_4_ + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(dStack_558._0_4_ + 0x4410)" ( (binary_expression "dStack_558._0_4_ + 0x4410" (field_expression "dStack_558._0_4_" identifier . field_identifier) + number_literal) )))))) ;) (expression_statement "dVar44 = dVar47 + dVar40;" (assignment_expression "dVar44 = dVar47 + dVar40" identifier = (binary_expression "dVar47 + dVar40" identifier + identifier)) ;) (if_statement "if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }" if (parenthesized_expression "(0.0 <= dVar44)" ( (binary_expression "0.0 <= dVar44" number_literal <= identifier) )) (compound_statement "{\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }" { (if_statement "if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }" if (parenthesized_expression "(pdVar29[0x881] < dVar44)" ( (binary_expression "pdVar29[0x881] < dVar44" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) < identifier) )) (compound_statement "{\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }" { (expression_statement "dVar44 = pdVar29[0x881];" (assignment_expression "dVar44 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_000a6740;" goto statement_identifier ;) })) (if_statement "if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }" if (parenthesized_expression "(0.0 <= dVar44)" ( (binary_expression "0.0 <= dVar44" number_literal <= identifier) )) (compound_statement "{\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }" { (expression_statement "dVar39 = dVar44;" (assignment_expression "dVar39 = dVar44" identifier = identifier) ;) (if_statement "if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }" if (parenthesized_expression "(pdVar29[0x881] < dVar44)" ( (binary_expression "pdVar29[0x881] < dVar44" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) < identifier) )) (compound_statement "{\n                            dVar39 = pdVar29[0x881];\n                          }" { (expression_statement "dVar39 = pdVar29[0x881];" (assignment_expression "dVar39 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) })) (expression_statement "dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);" (assignment_expression "dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48)" identifier = (binary_expression "dVar39 * *(double *)(iStack_570 + 0x4a48)" identifier * (pointer_expression "*(double *)(iStack_570 + 0x4a48)" * (cast_expression "(double *)(iStack_570 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_570 + 0x4a48)" ( (binary_expression "iStack_570 + 0x4a48" identifier + number_literal) )))))) ;) (if_statement "if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }" if (parenthesized_expression "(dVar44 < 0.0)" ( (binary_expression "dVar44 < 0.0" identifier < number_literal) )) (compound_statement "{\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }" { (expression_statement "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n                            dVar45 = pdVar29[0x881];\n                          }" else (compound_statement "{\n                            dVar45 = pdVar29[0x881];\n                          }" { (expression_statement "dVar45 = pdVar29[0x881];" (assignment_expression "dVar45 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) }))) }) (else_clause "else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }" else (compound_statement "{\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }" { (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" identifier = number_literal) ;) (expression_statement "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) }) (else_clause "else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }" else (compound_statement "{\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }" { (expression_statement "dVar44 = 0.0;" (assignment_expression "dVar44 = 0.0" identifier = number_literal) ;) (labeled_statement "LAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);" statement_identifier : (expression_statement "dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);" (assignment_expression "dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48)" identifier = (binary_expression "dVar44 * *(double *)(iStack_570 + 0x4a48)" identifier * (pointer_expression "*(double *)(iStack_570 + 0x4a48)" * (cast_expression "(double *)(iStack_570 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_570 + 0x4a48)" ( (binary_expression "iStack_570 + 0x4a48" identifier + number_literal) )))))) ;)) (expression_statement "dVar45 = pdVar29[0x881];" (assignment_expression "dVar45 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar45 * dVar44)" ( (binary_expression "unaff_s6[0x879] <= dVar45 * dVar44" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar45 * dVar44" identifier * identifier)) )) (compound_statement "{\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }" { (expression_statement "dVar45 = pdVar29[0x881] / dVar44;" (assignment_expression "dVar45 = pdVar29[0x881] / dVar44" identifier = (binary_expression "pdVar29[0x881] / dVar44" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }" else (compound_statement "{\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }" { (expression_statement "dVar45 = dVar45 / unaff_s6[0x879];" (assignment_expression "dVar45 = dVar45 / unaff_s6[0x879]" identifier = (binary_expression "dVar45 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;" (assignment_expression "in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45" identifier = (binary_expression "(dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45" (parenthesized_expression "(dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28))" ( (binary_expression "dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)" (binary_expression "dVar47 * *(double *)(iVar3 + 0x28)" identifier * (pointer_expression "*(double *)(iVar3 + 0x28)" * (cast_expression "(double *)(iVar3 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x28)" ( (binary_expression "iVar3 + 0x28" identifier + number_literal) ))))) + (binary_expression "dVar40 * *(double *)(iVar10 + 0x28)" identifier * (pointer_expression "*(double *)(iVar10 + 0x28)" * (cast_expression "(double *)(iVar10 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x28)" ( (binary_expression "iVar10 + 0x28" identifier + number_literal) )))))) )) * identifier)) ;) (expression_statement "in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;" (assignment_expression "in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45" identifier = (binary_expression "(dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45" (parenthesized_expression "(dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30))" ( (binary_expression "dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)" (binary_expression "dVar47 * *(double *)(iVar3 + 0x30)" identifier * (pointer_expression "*(double *)(iVar3 + 0x30)" * (cast_expression "(double *)(iVar3 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x30)" ( (binary_expression "iVar3 + 0x30" identifier + number_literal) ))))) + (binary_expression "dVar40 * *(double *)(iVar10 + 0x30)" identifier * (pointer_expression "*(double *)(iVar10 + 0x30)" * (cast_expression "(double *)(iVar10 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x30)" ( (binary_expression "iVar10 + 0x30" identifier + number_literal) )))))) )) * identifier)) ;) (expression_statement "in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;" (assignment_expression "in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45" identifier = (binary_expression "(dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45" (parenthesized_expression "(dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38))" ( (binary_expression "dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)" (binary_expression "dVar47 * *(double *)(iVar3 + 0x38)" identifier * (pointer_expression "*(double *)(iVar3 + 0x38)" * (cast_expression "(double *)(iVar3 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x38)" ( (binary_expression "iVar3 + 0x38" identifier + number_literal) ))))) + (binary_expression "dVar40 * *(double *)(iVar10 + 0x38)" identifier * (pointer_expression "*(double *)(iVar10 + 0x38)" * (cast_expression "(double *)(iVar10 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x38)" ( (binary_expression "iVar10 + 0x38" identifier + number_literal) )))))) )) * identifier)) ;) (if_statement "if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }" if (parenthesized_expression "(*(int *)(iVar10 + 4) == 2)" ( (binary_expression "*(int *)(iVar10 + 4) == 2" (pointer_expression "*(int *)(iVar10 + 4)" * (cast_expression "(int *)(iVar10 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 4)" ( (binary_expression "iVar10 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }" { (expression_statement "dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;" (assignment_expression "dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45" identifier = (binary_expression "(dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45" (parenthesized_expression "(dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40))" ( (binary_expression "dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)" (binary_expression "dVar47 * *(double *)(iVar3 + 0x40)" identifier * (pointer_expression "*(double *)(iVar3 + 0x40)" * (cast_expression "(double *)(iVar3 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x40)" ( (binary_expression "iVar3 + 0x40" identifier + number_literal) ))))) + (binary_expression "dVar40 * *(double *)(iVar10 + 0x40)" identifier * (pointer_expression "*(double *)(iVar10 + 0x40)" * (cast_expression "(double *)(iVar10 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x40)" ( (binary_expression "iVar10 + 0x40" identifier + number_literal) )))))) )) * identifier)) ;) })) (goto_statement "goto LAB_000a5af8;" goto statement_identifier ;) })) })) })) (labeled_statement "LAB_000a6694:\n                uVar26 = puVar32[0xe];" statement_identifier : (expression_statement "uVar26 = puVar32[0xe];" (assignment_expression "uVar26 = puVar32[0xe]" identifier = (subscript_expression "puVar32[0xe]" identifier [ number_literal ])) ;)) (expression_statement "in_f20_21 = *(double *)(uVar26 + 0x28);" (assignment_expression "in_f20_21 = *(double *)(uVar26 + 0x28)" identifier = (pointer_expression "*(double *)(uVar26 + 0x28)" * (cast_expression "(double *)(uVar26 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 + 0x28)" ( (binary_expression "uVar26 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "in_f22_23 = *(double *)(uVar26 + 0x30);" (assignment_expression "in_f22_23 = *(double *)(uVar26 + 0x30)" identifier = (pointer_expression "*(double *)(uVar26 + 0x30)" * (cast_expression "(double *)(uVar26 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 + 0x30)" ( (binary_expression "uVar26 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "in_f24_25 = *(double *)(uVar26 + 0x38);" (assignment_expression "in_f24_25 = *(double *)(uVar26 + 0x38)" identifier = (pointer_expression "*(double *)(uVar26 + 0x38)" * (cast_expression "(double *)(uVar26 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 + 0x38)" ( (binary_expression "uVar26 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "dStack_590 = *(double *)(uVar26 + 0x40);" (assignment_expression "dStack_590 = *(double *)(uVar26 + 0x40)" identifier = (pointer_expression "*(double *)(uVar26 + 0x40)" * (cast_expression "(double *)(uVar26 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 + 0x40)" ( (binary_expression "uVar26 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "dVar39 = *(double *)(uVar26 + 0x48);" (assignment_expression "dVar39 = *(double *)(uVar26 + 0x48)" identifier = (pointer_expression "*(double *)(uVar26 + 0x48)" * (cast_expression "(double *)(uVar26 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 + 0x48)" ( (binary_expression "uVar26 + 0x48" identifier + number_literal) ))))) ;) }) (else_clause "else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }" else (if_statement "if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }" if (parenthesized_expression "(unaff_s7 == 3)" ( (binary_expression "unaff_s7 == 3" identifier == number_literal) )) (compound_statement "{\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }" { (expression_statement "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0))" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0))" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7c78))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7c78)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7c78)" * (cast_expression "(code **)(pcStack_5a8 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7c78)" ( (binary_expression "pcStack_5a8 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(*pdStack_588 - *(double *)(iStack_584 + 0x43d0))" ( (binary_expression "*pdStack_588 - *(double *)(iStack_584 + 0x43d0)" (pointer_expression "*pdStack_588" * identifier) - (pointer_expression "*(double *)(iStack_584 + 0x43d0)" * (cast_expression "(double *)(iStack_584 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_584 + 0x43d0)" ( (binary_expression "iStack_584 + 0x43d0" identifier + number_literal) ))))) ))))) ;) (if_statement "if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }" if (parenthesized_expression "(((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39))" ( (binary_expression "((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)" (parenthesized_expression "((int)dVar39 == iVar28)" ( (binary_expression "(int)dVar39 == iVar28" (cast_expression "(int)dVar39" ( (type_descriptor "int" primitive_type) ) identifier) == identifier) )) && (parenthesized_expression "(dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)" ( (comma_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7c78))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7c78)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7c78)" * (cast_expression "(code **)(pcStack_5a8 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7c78)" ( (binary_expression "pcStack_5a8 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" ( (binary_expression "pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)" (subscript_expression "pdStack_588[1]" identifier [ number_literal ]) - (pointer_expression "*(double *)(iStack_584 + 0x43d0)" * (cast_expression "(double *)(iStack_584 + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_584 + 0x43d0)" ( (binary_expression "iStack_584 + 0x43d0" identifier + number_literal) ))))) ))))) , (binary_expression "puVar35 == (undefined1 *)(int)dVar39" identifier == (cast_expression "(undefined1 *)(int)dVar39" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)dVar39" ( (type_descriptor "int" primitive_type) ) identifier)))) ))) )) (compound_statement "{\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }" { (expression_statement "dVar40 = 0.0;" (assignment_expression "dVar40 = 0.0" identifier = number_literal) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) }) (else_clause "else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }" else (compound_statement "{\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }" { (if_statement "if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }" if (parenthesized_expression "(*puVar32 < 2)" ( (binary_expression "*puVar32 < 2" (pointer_expression "*puVar32" * identifier) < number_literal) )) (compound_statement "{\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }" { (expression_statement "dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);" (assignment_expression "dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6)" identifier = (binary_expression "*(double *)(puVar32 + 10) - *(double *)(puVar32 + 6)" (pointer_expression "*(double *)(puVar32 + 10)" * (cast_expression "(double *)(puVar32 + 10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 10)" ( (binary_expression "puVar32 + 10" identifier + number_literal) )))) - (pointer_expression "*(double *)(puVar32 + 6)" * (cast_expression "(double *)(puVar32 + 6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 6)" ( (binary_expression "puVar32 + 6" identifier + number_literal) )))))) ;) (expression_statement "dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);" (assignment_expression "dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8)" identifier = (binary_expression "*(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8)" (pointer_expression "*(double *)(puVar32 + 0xc)" * (cast_expression "(double *)(puVar32 + 0xc)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0xc)" ( (binary_expression "puVar32 + 0xc" identifier + number_literal) )))) - (pointer_expression "*(double *)(puVar32 + 8)" * (cast_expression "(double *)(puVar32 + 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 8)" ( (binary_expression "puVar32 + 8" identifier + number_literal) )))))) ;) (expression_statement "dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);" (assignment_expression "dVar45 = (double)iVar28 - *(double *)(puVar32 + 6)" identifier = (binary_expression "(double)iVar28 - *(double *)(puVar32 + 6)" (cast_expression "(double)iVar28" ( (type_descriptor "double" primitive_type) ) identifier) - (pointer_expression "*(double *)(puVar32 + 6)" * (cast_expression "(double *)(puVar32 + 6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 6)" ( (binary_expression "puVar32 + 6" identifier + number_literal) )))))) ;) (expression_statement "dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);" (assignment_expression "dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8)" identifier = (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 8)" (cast_expression "(double)(int)puVar35" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar35" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar32 + 8)" * (cast_expression "(double *)(puVar32 + 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 8)" ( (binary_expression "puVar32 + 8" identifier + number_literal) )))))) ;) (expression_statement "dVar39 = dVar45 * dVar45 + dVar47 * dVar47;" (assignment_expression "dVar39 = dVar45 * dVar45 + dVar47 * dVar47" identifier = (binary_expression "dVar45 * dVar45 + dVar47 * dVar47" (binary_expression "dVar45 * dVar45" identifier * identifier) + (binary_expression "dVar47 * dVar47" identifier * identifier))) ;) (expression_statement "uStack_5a0 = SQRT(dVar39);" (assignment_expression "uStack_5a0 = SQRT(dVar39)" identifier = (call_expression "SQRT(dVar39)" identifier (argument_list "(dVar39)" ( identifier )))) ;) (if_statement "if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }" if (parenthesized_expression "(0.0 <= dVar39)" ( (binary_expression "0.0 <= dVar39" number_literal <= identifier) )) (compound_statement "{\n                      dVar39 = dVar40 * dVar40;\n                    }" { (expression_statement "dVar39 = dVar40 * dVar40;" (assignment_expression "dVar39 = dVar40 * dVar40" identifier = (binary_expression "dVar40 * dVar40" identifier * identifier)) ;) }) (else_clause "else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }" else (compound_statement "{\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }" { (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "dVar39 = dVar40 * dVar40;" (assignment_expression "dVar39 = dVar40 * dVar40" identifier = (binary_expression "dVar40 * dVar40" identifier * identifier)) ;) }))) (expression_statement "dVar39 = dVar44 * dVar44 + dVar39;" (assignment_expression "dVar39 = dVar44 * dVar44 + dVar39" identifier = (binary_expression "dVar44 * dVar44 + dVar39" (binary_expression "dVar44 * dVar44" identifier * identifier) + identifier)) ;) (expression_statement "dVar42 = SQRT(dVar39);" (assignment_expression "dVar42 = SQRT(dVar39)" identifier = (call_expression "SQRT(dVar39)" identifier (argument_list "(dVar39)" ( identifier )))) ;) (if_statement "if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }" if (parenthesized_expression "(dVar39 < 0.0)" ( (binary_expression "dVar39 < 0.0" identifier < number_literal) )) (compound_statement "{\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }" { (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "dVar42 = uStack_5a0 * dVar42;" (assignment_expression "dVar42 = uStack_5a0 * dVar42" identifier = (binary_expression "uStack_5a0 * dVar42" identifier * identifier)) ;) (if_statement "if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" if (parenthesized_expression "(0.0 <= dVar42)" ( (binary_expression "0.0 <= dVar42" number_literal <= identifier) )) (compound_statement "{\n                      dVar39 = pdVar29[0x881];\n                    }" { (expression_statement "dVar39 = pdVar29[0x881];" (assignment_expression "dVar39 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" else (compound_statement "{\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" { (expression_statement "dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar42 * dVar39)" ( (binary_expression "unaff_s6[0x879] <= dVar42 * dVar39" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar42 * dVar39" identifier * identifier)) )) (compound_statement "{\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }" { (expression_statement "dVar39 = pdVar29[0x881] / dVar42;" (assignment_expression "dVar39 = pdVar29[0x881] / dVar42" identifier = (binary_expression "pdVar29[0x881] / dVar42" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }" else (compound_statement "{\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }" { (expression_statement "dVar39 = dVar39 / unaff_s6[0x879];" (assignment_expression "dVar39 = dVar39 / unaff_s6[0x879]" identifier = (binary_expression "dVar39 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;" (assignment_expression "in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0" identifier = (binary_expression "(dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0" (binary_expression "(dVar44 * dVar45 + dVar40 * dVar47) * dVar39" (parenthesized_expression "(dVar44 * dVar45 + dVar40 * dVar47)" ( (binary_expression "dVar44 * dVar45 + dVar40 * dVar47" (binary_expression "dVar44 * dVar45" identifier * identifier) + (binary_expression "dVar40 * dVar47" identifier * identifier)) )) * identifier) * identifier)) ;) (labeled_statement "LAB_000a5e90:\n                    uVar26 = *puVar32;" statement_identifier : (expression_statement "uVar26 = *puVar32;" (assignment_expression "uVar26 = *puVar32" identifier = (pointer_expression "*puVar32" * identifier)) ;)) (labeled_statement "LAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }" statement_identifier : (if_statement "if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }" if (parenthesized_expression "(uVar26 == 1)" ( (binary_expression "uVar26 == 1" identifier == number_literal) )) (compound_statement "{\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }" { (expression_statement "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580)" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580)" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x6ee0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x6ee0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x6ee0)" * (cast_expression "(code **)(pcStack_5a8 + -0x6ee0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x6ee0)" ( (binary_expression "pcStack_5a8 + -0x6ee0" identifier + number_literal) ))))) )) (argument_list "(in_f26_27,dStack_580)" ( identifier , identifier ))))) ;) (expression_statement "uStack_5a0 = dVar39;" (assignment_expression "uStack_5a0 = dVar39" identifier = identifier) ;) (if_statement "if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }" if (parenthesized_expression "(0.0 <= dVar39)" ( (binary_expression "0.0 <= dVar39" number_literal <= identifier) )) (compound_statement "{\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }" { (expression_statement "dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);" (assignment_expression "dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580)" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580)" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x6ee0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x6ee0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x6ee0)" * (cast_expression "(code **)(pcStack_5a8 + -0x6ee0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x6ee0)" ( (binary_expression "pcStack_5a8 + -0x6ee0" identifier + number_literal) ))))) )) (argument_list "(in_f26_27,dStack_580)" ( identifier , identifier ))))) ;) }) (else_clause "else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }" else (compound_statement "{\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }" { (expression_statement "uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);" (assignment_expression "uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20)" (field_expression "uStack_5a0._0_4_" identifier . field_identifier) = (call_expression "(uint)((ulonglong)dVar39 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)dVar39 >> 0x20)" ( (binary_expression "(ulonglong)dVar39 >> 0x20" (cast_expression "(ulonglong)dVar39" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;" (assignment_expression "uStack_528 = uStack_5a0._0_4_ ^ 0x80000000" identifier = (binary_expression "uStack_5a0._0_4_ ^ 0x80000000" (field_expression "uStack_5a0._0_4_" identifier . field_identifier) ^ number_literal)) ;) (expression_statement "uStack_5a0._4_4_ = SUB84(dVar39,0);" (assignment_expression "uStack_5a0._4_4_ = SUB84(dVar39,0)" (field_expression "uStack_5a0._4_4_" identifier . field_identifier) = (call_expression "SUB84(dVar39,0)" identifier (argument_list "(dVar39,0)" ( identifier , number_literal )))) ;) (expression_statement "uStack_524 = uStack_5a0._4_4_;" (assignment_expression "uStack_524 = uStack_5a0._4_4_" identifier = (field_expression "uStack_5a0._4_4_" identifier . field_identifier)) ;) (expression_statement "dVar40 = dStack_580;" (assignment_expression "dVar40 = dStack_580" identifier = identifier) ;) (expression_statement "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580)" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580)" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x6ee0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x6ee0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x6ee0)" * (cast_expression "(code **)(pcStack_5a8 + -0x6ee0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x6ee0)" ( (binary_expression "pcStack_5a8 + -0x6ee0" identifier + number_literal) ))))) )) (argument_list "(-dVar39,dStack_580)" ( (unary_expression "-dVar39" - identifier) , identifier ))))) ;) (expression_statement "dVar40 = dVar40 - dVar39;" (assignment_expression "dVar40 = dVar40 - dVar39" identifier = (binary_expression "dVar40 - dVar39" identifier - identifier)) ;) }))) (expression_statement "bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];" (assignment_expression "bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881]" identifier = (binary_expression "dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881]" (binary_expression "dVar40 < dStack_580" identifier < identifier) && (binary_expression "dStack_580 < dVar40 + pdVar29[0x881]" identifier < (binary_expression "dVar40 + pdVar29[0x881]" identifier + (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]))))) ;) (if_statement "if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }" if (parenthesized_expression "(unaff_s6[0x879] <= dStack_580 * dStack_578)" ( (binary_expression "unaff_s6[0x879] <= dStack_580 * dStack_578" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dStack_580 * dStack_578" identifier * identifier)) )) (compound_statement "{\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }" { (expression_statement "uStack_5a0 = pdVar29[0x881] / dStack_580;" (assignment_expression "uStack_5a0 = pdVar29[0x881] / dStack_580" identifier = (binary_expression "pdVar29[0x881] / dStack_580" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }" else (compound_statement "{\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }" { (expression_statement "uStack_5a0 = dStack_578 / unaff_s6[0x879];" (assignment_expression "uStack_5a0 = dStack_578 / unaff_s6[0x879]" identifier = (binary_expression "dStack_578 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "uStack_5a0 = dVar40 * uStack_5a0;" (assignment_expression "uStack_5a0 = dVar40 * uStack_5a0" identifier = (binary_expression "dVar40 * uStack_5a0" identifier * identifier)) ;) (goto_statement "goto LAB_000a5f08;" goto statement_identifier ;) }))) }) (else_clause "else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }" else (compound_statement "{\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }" { (if_statement "if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }" if (parenthesized_expression "(*puVar32 != 2)" ( (binary_expression "*puVar32 != 2" (pointer_expression "*puVar32" * identifier) != number_literal) )) (compound_statement "{\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }" { (expression_statement "in_f26_27 = 0.0;" (assignment_expression "in_f26_27 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_000a5e90;" goto statement_identifier ;) })) (expression_statement "dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));" (assignment_expression "dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" identifier = (binary_expression "((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (binary_expression "((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12))" (parenthesized_expression "((double)iVar28 - *(double *)(puVar32 + 0x12))" ( (binary_expression "(double)iVar28 - *(double *)(puVar32 + 0x12)" (cast_expression "(double)iVar28" ( (type_descriptor "double" primitive_type) ) identifier) - (pointer_expression "*(double *)(puVar32 + 0x12)" * (cast_expression "(double *)(puVar32 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x12)" ( (binary_expression "puVar32 + 0x12" identifier + number_literal) ))))) )) * (parenthesized_expression "((double)iVar28 - *(double *)(puVar32 + 0x12))" ( (binary_expression "(double)iVar28 - *(double *)(puVar32 + 0x12)" (cast_expression "(double)iVar28" ( (type_descriptor "double" primitive_type) ) identifier) - (pointer_expression "*(double *)(puVar32 + 0x12)" * (cast_expression "(double *)(puVar32 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x12)" ( (binary_expression "puVar32 + 0x12" identifier + number_literal) ))))) ))) + (binary_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (parenthesized_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" ( (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 0x14)" (cast_expression "(double)(int)puVar35" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar35" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar32 + 0x14)" * (cast_expression "(double *)(puVar32 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x14)" ( (binary_expression "puVar32 + 0x14" identifier + number_literal) ))))) )) * (parenthesized_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" ( (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 0x14)" (cast_expression "(double)(int)puVar35" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar35" ( (type_descriptor "int" primitive_type) ) identifier)) - (pointer_expression "*(double *)(puVar32 + 0x14)" * (cast_expression "(double *)(puVar32 + 0x14)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x14)" ( (binary_expression "puVar32 + 0x14" identifier + number_literal) ))))) ))))) ;) (expression_statement "in_f26_27 = SQRT(dVar39);" (assignment_expression "in_f26_27 = SQRT(dVar39)" identifier = (call_expression "SQRT(dVar39)" identifier (argument_list "(dVar39)" ( identifier )))) ;) (if_statement "if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }" if (parenthesized_expression "(dVar39 < 0.0)" ( (binary_expression "dVar39 < 0.0" identifier < number_literal) )) (compound_statement "{\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }" { (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" * (cast_expression "(code **)(pcStack_5a8 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x7418)" ( (binary_expression "pcStack_5a8 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar26 = *puVar32;" (assignment_expression "uVar26 = *puVar32" identifier = (pointer_expression "*puVar32" * identifier)) ;) (goto_statement "goto LAB_000a5e94;" goto statement_identifier ;) })) }))) (expression_statement "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a))" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a))" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x6ee0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x6ee0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x6ee0)" * (cast_expression "(code **)(pcStack_5a8 + -0x6ee0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x6ee0)" ( (binary_expression "pcStack_5a8 + -0x6ee0" identifier + number_literal) ))))) )) (argument_list "(in_f26_27,*(undefined8 *)(puVar32 + 0x1a))" ( identifier , (pointer_expression "*(undefined8 *)(puVar32 + 0x1a)" * (cast_expression "(undefined8 *)(puVar32 + 0x1a)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x1a)" ( (binary_expression "puVar32 + 0x1a" identifier + number_literal) )))) ))))) ;) (expression_statement "uStack_5a0 = dVar39;" (assignment_expression "uStack_5a0 = dVar39" identifier = identifier) ;) (if_statement "if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }" if (parenthesized_expression "(0.0 <= dVar39)" ( (binary_expression "0.0 <= dVar39" number_literal <= identifier) )) (compound_statement "{\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }" { (expression_statement "dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));" (assignment_expression "dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a))" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a))" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x6ee0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x6ee0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x6ee0)" * (cast_expression "(code **)(pcStack_5a8 + -0x6ee0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x6ee0)" ( (binary_expression "pcStack_5a8 + -0x6ee0" identifier + number_literal) ))))) )) (argument_list "(in_f26_27,*(undefined8 *)(puVar32 + 0x1a))" ( identifier , (pointer_expression "*(undefined8 *)(puVar32 + 0x1a)" * (cast_expression "(undefined8 *)(puVar32 + 0x1a)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x1a)" ( (binary_expression "puVar32 + 0x1a" identifier + number_literal) )))) ))))) ;) }) (else_clause "else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }" else (compound_statement "{\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }" { (expression_statement "dVar40 = *(double *)(puVar32 + 0x1a);" (assignment_expression "dVar40 = *(double *)(puVar32 + 0x1a)" identifier = (pointer_expression "*(double *)(puVar32 + 0x1a)" * (cast_expression "(double *)(puVar32 + 0x1a)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x1a)" ( (binary_expression "puVar32 + 0x1a" identifier + number_literal) ))))) ;) (expression_statement "uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);" (assignment_expression "uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20)" (field_expression "uStack_5a0._0_4_" identifier . field_identifier) = (call_expression "(uint)((ulonglong)dVar39 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)dVar39 >> 0x20)" ( (binary_expression "(ulonglong)dVar39 >> 0x20" (cast_expression "(ulonglong)dVar39" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;" (assignment_expression "uStack_538 = uStack_5a0._0_4_ ^ 0x80000000" identifier = (binary_expression "uStack_5a0._0_4_ ^ 0x80000000" (field_expression "uStack_5a0._0_4_" identifier . field_identifier) ^ number_literal)) ;) (expression_statement "uStack_5a0._4_4_ = SUB84(dVar39,0);" (assignment_expression "uStack_5a0._4_4_ = SUB84(dVar39,0)" (field_expression "uStack_5a0._4_4_" identifier . field_identifier) = (call_expression "SUB84(dVar39,0)" identifier (argument_list "(dVar39,0)" ( identifier , number_literal )))) ;) (expression_statement "uStack_534 = uStack_5a0._4_4_;" (assignment_expression "uStack_534 = uStack_5a0._4_4_" identifier = (field_expression "uStack_5a0._4_4_" identifier . field_identifier)) ;) (expression_statement "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40)" identifier = (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40)" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x6ee0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x6ee0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x6ee0)" * (cast_expression "(code **)(pcStack_5a8 + -0x6ee0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x6ee0)" ( (binary_expression "pcStack_5a8 + -0x6ee0" identifier + number_literal) ))))) )) (argument_list "(-dVar39,dVar40)" ( (unary_expression "-dVar39" - identifier) , identifier ))))) ;) (expression_statement "dVar40 = dVar40 - dVar39;" (assignment_expression "dVar40 = dVar40 - dVar39" identifier = (binary_expression "dVar40 - dVar39" identifier - identifier)) ;) }))) (expression_statement "bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];" (assignment_expression "bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881]" identifier = (binary_expression "*(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881]" (pointer_expression "*(double *)(puVar32 + 0x1a)" * (cast_expression "(double *)(puVar32 + 0x1a)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x1a)" ( (binary_expression "puVar32 + 0x1a" identifier + number_literal) )))) < (binary_expression "dVar40 + pdVar29[0x881]" identifier + (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])))) ;) (expression_statement "uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);" (assignment_expression "uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a)" identifier = (binary_expression "dVar40 / *(double *)(puVar32 + 0x1a)" identifier / (pointer_expression "*(double *)(puVar32 + 0x1a)" * (cast_expression "(double *)(puVar32 + 0x1a)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x1a)" ( (binary_expression "puVar32 + 0x1a" identifier + number_literal) )))))) ;) }))) (labeled_statement "LAB_000a5f08:\n                uVar26 = puVar32[0xf];" statement_identifier : (expression_statement "uVar26 = puVar32[0xf];" (assignment_expression "uVar26 = puVar32[0xf]" identifier = (subscript_expression "puVar32[0xf]" identifier [ number_literal ])) ;)) (if_statement "if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }" if (parenthesized_expression "(0 < (int)uVar26)" ( (binary_expression "0 < (int)uVar26" number_literal < (cast_expression "(int)uVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }" { (expression_statement "uVar8 = puVar32[0xe];" (assignment_expression "uVar8 = puVar32[0xe]" identifier = (subscript_expression "puVar32[0xe]" identifier [ number_literal ])) ;) (if_statement "if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }" if (parenthesized_expression "(*(double *)(uVar8 + 0x58) <= uStack_5a0)" ( (binary_expression "*(double *)(uVar8 + 0x58) <= uStack_5a0" (pointer_expression "*(double *)(uVar8 + 0x58)" * (cast_expression "(double *)(uVar8 + 0x58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + 0x58)" ( (binary_expression "uVar8 + 0x58" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }" { (expression_statement "pdVar16 = (double *)(uVar8 + 0xb8);" (assignment_expression "pdVar16 = (double *)(uVar8 + 0xb8)" identifier = (cast_expression "(double *)(uVar8 + 0xb8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + 0xb8)" ( (binary_expression "uVar8 + 0xb8" identifier + number_literal) )))) ;) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);" do (compound_statement "{\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    }" { (expression_statement "uVar22 = uVar18;" (assignment_expression "uVar22 = uVar18" identifier = identifier) ;) (expression_statement "uVar18 = uVar22 + 1;" (assignment_expression "uVar18 = uVar22 + 1" identifier = (binary_expression "uVar22 + 1" identifier + number_literal)) ;) (if_statement "if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }" if (parenthesized_expression "(uVar18 == uVar26)" ( (binary_expression "uVar18 == uVar26" identifier == identifier) )) (compound_statement "{\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }" { (if_statement "if (uVar18 == 0) goto LAB_000a5db0;" if (parenthesized_expression "(uVar18 == 0)" ( (binary_expression "uVar18 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000a5db0;" goto statement_identifier ;)) (expression_statement "iVar3 = uVar8 + uVar26 * 0x60 + -0x60;" (assignment_expression "iVar3 = uVar8 + uVar26 * 0x60 + -0x60" identifier = (binary_expression "uVar8 + uVar26 * 0x60 + -0x60" (binary_expression "uVar8 + uVar26 * 0x60" identifier + (binary_expression "uVar26 * 0x60" identifier * number_literal)) + number_literal)) ;) (expression_statement "in_f20_21 = *(double *)(iVar3 + 0x28);" (assignment_expression "in_f20_21 = *(double *)(iVar3 + 0x28)" identifier = (pointer_expression "*(double *)(iVar3 + 0x28)" * (cast_expression "(double *)(iVar3 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x28)" ( (binary_expression "iVar3 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "in_f22_23 = *(double *)(iVar3 + 0x30);" (assignment_expression "in_f22_23 = *(double *)(iVar3 + 0x30)" identifier = (pointer_expression "*(double *)(iVar3 + 0x30)" * (cast_expression "(double *)(iVar3 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x30)" ( (binary_expression "iVar3 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "in_f24_25 = *(double *)(iVar3 + 0x38);" (assignment_expression "in_f24_25 = *(double *)(iVar3 + 0x38)" identifier = (pointer_expression "*(double *)(iVar3 + 0x38)" * (cast_expression "(double *)(iVar3 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x38)" ( (binary_expression "iVar3 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "dStack_590 = *(double *)(iVar3 + 0x40);" (assignment_expression "dStack_590 = *(double *)(iVar3 + 0x40)" identifier = (pointer_expression "*(double *)(iVar3 + 0x40)" * (cast_expression "(double *)(iVar3 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x40)" ( (binary_expression "iVar3 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "dVar39 = *(double *)(iVar3 + 0x48);" (assignment_expression "dVar39 = *(double *)(iVar3 + 0x48)" identifier = (pointer_expression "*(double *)(iVar3 + 0x48)" * (cast_expression "(double *)(iVar3 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x48)" ( (binary_expression "iVar3 + 0x48" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000a5af8;" goto statement_identifier ;) })) (expression_statement "dVar39 = *pdVar16;" (assignment_expression "dVar39 = *pdVar16" identifier = (pointer_expression "*pdVar16" * identifier)) ;) (expression_statement "pdVar16 = pdVar16 + 0xc;" (assignment_expression "pdVar16 = pdVar16 + 0xc" identifier = (binary_expression "pdVar16 + 0xc" identifier + number_literal)) ;) }) while (parenthesized_expression "(dVar39 <= uStack_5a0)" ( (binary_expression "dVar39 <= uStack_5a0" identifier <= identifier) )) ;) (if_statement "if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }" if (parenthesized_expression "(uVar18 != 0)" ( (binary_expression "uVar18 != 0" identifier != number_literal) )) (compound_statement "{\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }" { (expression_statement "dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);" (assignment_expression "dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58)" identifier = (pointer_expression "*(double *)(uVar8 + uVar22 * 0x60 + 0x58)" * (cast_expression "(double *)(uVar8 + uVar22 * 0x60 + 0x58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + uVar22 * 0x60 + 0x58)" ( (binary_expression "uVar8 + uVar22 * 0x60 + 0x58" (binary_expression "uVar8 + uVar22 * 0x60" identifier + (binary_expression "uVar22 * 0x60" identifier * number_literal)) + number_literal) ))))) ;) (if_statement "if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }" { (expression_statement "dVar39 = dStack_580;" (assignment_expression "dVar39 = dStack_580" identifier = identifier) ;) (if_statement "if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }" if (parenthesized_expression "(*puVar32 != 1)" ( (binary_expression "*puVar32 != 1" (pointer_expression "*puVar32" * identifier) != number_literal) )) (compound_statement "{\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }" { (expression_statement "dVar39 = *(double *)(puVar32 + 0x1a);" (assignment_expression "dVar39 = *(double *)(puVar32 + 0x1a)" identifier = (pointer_expression "*(double *)(puVar32 + 0x1a)" * (cast_expression "(double *)(puVar32 + 0x1a)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x1a)" ( (binary_expression "puVar32 + 0x1a" identifier + number_literal) ))))) ;) })) (expression_statement "dVar39 = dVar39 - dVar40;" (assignment_expression "dVar39 = dVar39 - dVar40" identifier = (binary_expression "dVar39 - dVar40" identifier - identifier)) ;) (expression_statement "uVar18 = uVar26 - 1;" (assignment_expression "uVar18 = uVar26 - 1" identifier = (binary_expression "uVar26 - 1" identifier - number_literal)) ;) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }" else (compound_statement "{\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }" { (expression_statement "dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);" (assignment_expression "dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39)" identifier = (binary_expression "(uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39)" (parenthesized_expression "(uStack_5a0 - dVar39)" ( (binary_expression "uStack_5a0 - dVar39" identifier - identifier) )) / (parenthesized_expression "(*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39)" ( (binary_expression "*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39" (pointer_expression "*(double *)(uVar8 + uVar18 * 0x60 + 0x58)" * (cast_expression "(double *)(uVar8 + uVar18 * 0x60 + 0x58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + uVar18 * 0x60 + 0x58)" ( (binary_expression "uVar8 + uVar18 * 0x60 + 0x58" (binary_expression "uVar8 + uVar18 * 0x60" identifier + (binary_expression "uVar18 * 0x60" identifier * number_literal)) + number_literal) )))) - identifier) )))) ;) }))) (expression_statement "iVar10 = uVar8 + uVar22 * 0x60;" (assignment_expression "iVar10 = uVar8 + uVar22 * 0x60" identifier = (binary_expression "uVar8 + uVar22 * 0x60" identifier + (binary_expression "uVar22 * 0x60" identifier * number_literal))) ;) (expression_statement "iVar3 = uVar8 + uVar18 * 0x60;" (assignment_expression "iVar3 = uVar8 + uVar18 * 0x60" identifier = (binary_expression "uVar8 + uVar18 * 0x60" identifier + (binary_expression "uVar18 * 0x60" identifier * number_literal))) ;) (expression_statement "dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);" (assignment_expression "dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" identifier = (binary_expression "(pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" (binary_expression "(pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48)" (parenthesized_expression "(pdVar29[0x881] - dVar39)" ( (binary_expression "pdVar29[0x881] - dVar39" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) - identifier) )) * (pointer_expression "*(double *)(iVar10 + 0x48)" * (cast_expression "(double *)(iVar10 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x48)" ( (binary_expression "iVar10 + 0x48" identifier + number_literal) ))))) * (pointer_expression "*(double *)(dStack_558._0_4_ + 0x4410)" * (cast_expression "(double *)(dStack_558._0_4_ + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(dStack_558._0_4_ + 0x4410)" ( (binary_expression "dStack_558._0_4_ + 0x4410" (field_expression "dStack_558._0_4_" identifier . field_identifier) + number_literal) )))))) ;) (expression_statement "dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);" (assignment_expression "dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" identifier = (binary_expression "dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" (binary_expression "dVar39 * *(double *)(iVar3 + 0x48)" identifier * (pointer_expression "*(double *)(iVar3 + 0x48)" * (cast_expression "(double *)(iVar3 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x48)" ( (binary_expression "iVar3 + 0x48" identifier + number_literal) ))))) * (pointer_expression "*(double *)(dStack_558._0_4_ + 0x4410)" * (cast_expression "(double *)(dStack_558._0_4_ + 0x4410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(dStack_558._0_4_ + 0x4410)" ( (binary_expression "dStack_558._0_4_ + 0x4410" (field_expression "dStack_558._0_4_" identifier . field_identifier) + number_literal) )))))) ;) (expression_statement "dVar44 = dVar47 + dVar40;" (assignment_expression "dVar44 = dVar47 + dVar40" identifier = (binary_expression "dVar47 + dVar40" identifier + identifier)) ;) (if_statement "if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }" if (parenthesized_expression "(0.0 <= dVar44)" ( (binary_expression "0.0 <= dVar44" number_literal <= identifier) )) (compound_statement "{\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }" { (if_statement "if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }" if (parenthesized_expression "(pdVar29[0x881] < dVar44)" ( (binary_expression "pdVar29[0x881] < dVar44" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) < identifier) )) (compound_statement "{\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }" { (expression_statement "dVar44 = pdVar29[0x881];" (assignment_expression "dVar44 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_000a6d30;" goto statement_identifier ;) })) (if_statement "if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }" if (parenthesized_expression "(0.0 <= dVar44)" ( (binary_expression "0.0 <= dVar44" number_literal <= identifier) )) (compound_statement "{\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }" { (expression_statement "dVar39 = dVar44;" (assignment_expression "dVar39 = dVar44" identifier = identifier) ;) (if_statement "if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }" if (parenthesized_expression "(pdVar29[0x881] < dVar44)" ( (binary_expression "pdVar29[0x881] < dVar44" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) < identifier) )) (compound_statement "{\n                            dVar39 = pdVar29[0x881];\n                          }" { (expression_statement "dVar39 = pdVar29[0x881];" (assignment_expression "dVar39 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) })) (expression_statement "dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);" (assignment_expression "dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48)" identifier = (binary_expression "dVar39 * *(double *)(iStack_570 + 0x4a48)" identifier * (pointer_expression "*(double *)(iStack_570 + 0x4a48)" * (cast_expression "(double *)(iStack_570 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_570 + 0x4a48)" ( (binary_expression "iStack_570 + 0x4a48" identifier + number_literal) )))))) ;) (if_statement "if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }" if (parenthesized_expression "(dVar44 < 0.0)" ( (binary_expression "dVar44 < 0.0" identifier < number_literal) )) (compound_statement "{\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }" { (expression_statement "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n                            dVar45 = pdVar29[0x881];\n                          }" else (compound_statement "{\n                            dVar45 = pdVar29[0x881];\n                          }" { (expression_statement "dVar45 = pdVar29[0x881];" (assignment_expression "dVar45 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) }))) }) (else_clause "else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }" else (compound_statement "{\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }" { (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" identifier = number_literal) ;) (expression_statement "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) }) (else_clause "else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }" else (compound_statement "{\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }" { (expression_statement "dVar44 = 0.0;" (assignment_expression "dVar44 = 0.0" identifier = number_literal) ;) (labeled_statement "LAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);" statement_identifier : (expression_statement "dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);" (assignment_expression "dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48)" identifier = (binary_expression "dVar44 * *(double *)(iStack_570 + 0x4a48)" identifier * (pointer_expression "*(double *)(iStack_570 + 0x4a48)" * (cast_expression "(double *)(iStack_570 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_570 + 0x4a48)" ( (binary_expression "iStack_570 + 0x4a48" identifier + number_literal) )))))) ;)) (expression_statement "dVar45 = pdVar29[0x881];" (assignment_expression "dVar45 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar45 * dVar44)" ( (binary_expression "unaff_s6[0x879] <= dVar45 * dVar44" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar45 * dVar44" identifier * identifier)) )) (compound_statement "{\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }" { (expression_statement "dVar45 = pdVar29[0x881] / dVar44;" (assignment_expression "dVar45 = pdVar29[0x881] / dVar44" identifier = (binary_expression "pdVar29[0x881] / dVar44" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }" else (compound_statement "{\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }" { (expression_statement "dVar45 = dVar45 / unaff_s6[0x879];" (assignment_expression "dVar45 = dVar45 / unaff_s6[0x879]" identifier = (binary_expression "dVar45 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;" (assignment_expression "in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45" identifier = (binary_expression "(dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45" (parenthesized_expression "(dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28))" ( (binary_expression "dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)" (binary_expression "dVar47 * *(double *)(iVar10 + 0x28)" identifier * (pointer_expression "*(double *)(iVar10 + 0x28)" * (cast_expression "(double *)(iVar10 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x28)" ( (binary_expression "iVar10 + 0x28" identifier + number_literal) ))))) + (binary_expression "dVar40 * *(double *)(iVar3 + 0x28)" identifier * (pointer_expression "*(double *)(iVar3 + 0x28)" * (cast_expression "(double *)(iVar3 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x28)" ( (binary_expression "iVar3 + 0x28" identifier + number_literal) )))))) )) * identifier)) ;) (expression_statement "in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;" (assignment_expression "in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45" identifier = (binary_expression "(dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45" (parenthesized_expression "(dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30))" ( (binary_expression "dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)" (binary_expression "dVar47 * *(double *)(iVar10 + 0x30)" identifier * (pointer_expression "*(double *)(iVar10 + 0x30)" * (cast_expression "(double *)(iVar10 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x30)" ( (binary_expression "iVar10 + 0x30" identifier + number_literal) ))))) + (binary_expression "dVar40 * *(double *)(iVar3 + 0x30)" identifier * (pointer_expression "*(double *)(iVar3 + 0x30)" * (cast_expression "(double *)(iVar3 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x30)" ( (binary_expression "iVar3 + 0x30" identifier + number_literal) )))))) )) * identifier)) ;) (expression_statement "in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;" (assignment_expression "in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45" identifier = (binary_expression "(dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45" (parenthesized_expression "(dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38))" ( (binary_expression "dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)" (binary_expression "dVar47 * *(double *)(iVar10 + 0x38)" identifier * (pointer_expression "*(double *)(iVar10 + 0x38)" * (cast_expression "(double *)(iVar10 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x38)" ( (binary_expression "iVar10 + 0x38" identifier + number_literal) ))))) + (binary_expression "dVar40 * *(double *)(iVar3 + 0x38)" identifier * (pointer_expression "*(double *)(iVar3 + 0x38)" * (cast_expression "(double *)(iVar3 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x38)" ( (binary_expression "iVar3 + 0x38" identifier + number_literal) )))))) )) * identifier)) ;) (if_statement "if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }" if (parenthesized_expression "(*(int *)(iVar3 + 4) == 2)" ( (binary_expression "*(int *)(iVar3 + 4) == 2" (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }" { (expression_statement "dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;" (assignment_expression "dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45" identifier = (binary_expression "(dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45" (parenthesized_expression "(dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40))" ( (binary_expression "dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)" (binary_expression "dVar47 * *(double *)(iVar10 + 0x40)" identifier * (pointer_expression "*(double *)(iVar10 + 0x40)" * (cast_expression "(double *)(iVar10 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x40)" ( (binary_expression "iVar10 + 0x40" identifier + number_literal) ))))) + (binary_expression "dVar40 * *(double *)(iVar3 + 0x40)" identifier * (pointer_expression "*(double *)(iVar3 + 0x40)" * (cast_expression "(double *)(iVar3 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x40)" ( (binary_expression "iVar3 + 0x40" identifier + number_literal) )))))) )) * identifier)) ;) })) (goto_statement "goto LAB_000a5af8;" goto statement_identifier ;) })) })) })) (labeled_statement "LAB_000a5db0:\n                uVar26 = puVar32[0xe];" statement_identifier : (expression_statement "uVar26 = puVar32[0xe];" (assignment_expression "uVar26 = puVar32[0xe]" identifier = (subscript_expression "puVar32[0xe]" identifier [ number_literal ])) ;)) (expression_statement "in_f20_21 = *(double *)(uVar26 + 0x28);" (assignment_expression "in_f20_21 = *(double *)(uVar26 + 0x28)" identifier = (pointer_expression "*(double *)(uVar26 + 0x28)" * (cast_expression "(double *)(uVar26 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 + 0x28)" ( (binary_expression "uVar26 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "in_f22_23 = *(double *)(uVar26 + 0x30);" (assignment_expression "in_f22_23 = *(double *)(uVar26 + 0x30)" identifier = (pointer_expression "*(double *)(uVar26 + 0x30)" * (cast_expression "(double *)(uVar26 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 + 0x30)" ( (binary_expression "uVar26 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "in_f24_25 = *(double *)(uVar26 + 0x38);" (assignment_expression "in_f24_25 = *(double *)(uVar26 + 0x38)" identifier = (pointer_expression "*(double *)(uVar26 + 0x38)" * (cast_expression "(double *)(uVar26 + 0x38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 + 0x38)" ( (binary_expression "uVar26 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "dStack_590 = *(double *)(uVar26 + 0x40);" (assignment_expression "dStack_590 = *(double *)(uVar26 + 0x40)" identifier = (pointer_expression "*(double *)(uVar26 + 0x40)" * (cast_expression "(double *)(uVar26 + 0x40)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 + 0x40)" ( (binary_expression "uVar26 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "dVar39 = *(double *)(uVar26 + 0x48);" (assignment_expression "dVar39 = *(double *)(uVar26 + 0x48)" identifier = (pointer_expression "*(double *)(uVar26 + 0x48)" * (cast_expression "(double *)(uVar26 + 0x48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar26 + 0x48)" ( (binary_expression "uVar26 + 0x48" identifier + number_literal) ))))) ;) })))))) (labeled_statement "LAB_000a5af8:\n              dVar44 = dVar39 * dVar41;" statement_identifier : (expression_statement "dVar44 = dVar39 * dVar41;" (assignment_expression "dVar44 = dVar39 * dVar41" identifier = (binary_expression "dVar39 * dVar41" identifier * identifier)) ;)) (expression_statement "dVar47 = dStack_4c8 * dVar41;" (assignment_expression "dVar47 = dStack_4c8 * dVar41" identifier = (binary_expression "dStack_4c8 * dVar41" identifier * identifier)) ;) (expression_statement "dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;" (assignment_expression "dVar40 = (dVar44 + dVar47) - dVar44 * dVar47" identifier = (binary_expression "(dVar44 + dVar47) - dVar44 * dVar47" (parenthesized_expression "(dVar44 + dVar47)" ( (binary_expression "dVar44 + dVar47" identifier + identifier) )) - (binary_expression "dVar44 * dVar47" identifier * identifier))) ;) (if_statement "if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }" if (parenthesized_expression "(0.0 <= dVar40)" ( (binary_expression "0.0 <= dVar40" number_literal <= identifier) )) (compound_statement "{\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }" { (expression_statement "dStack_4c8 = pdVar29[0x881];" (assignment_expression "dStack_4c8 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) (if_statement "if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }" if (parenthesized_expression "(dVar40 <= pdVar29[0x881])" ( (binary_expression "dVar40 <= pdVar29[0x881]" identifier <= (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) )) (compound_statement "{\n                  dStack_4c8 = dVar40;\n                }" { (expression_statement "dStack_4c8 = dVar40;" (assignment_expression "dStack_4c8 = dVar40" identifier = identifier) ;) })) (expression_statement "dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);" (assignment_expression "dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48)" identifier = (binary_expression "dStack_4c8 * *(double *)(iStack_570 + 0x4a48)" identifier * (pointer_expression "*(double *)(iStack_570 + 0x4a48)" * (cast_expression "(double *)(iStack_570 + 0x4a48)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_570 + 0x4a48)" ( (binary_expression "iStack_570 + 0x4a48" identifier + number_literal) )))))) ;) (if_statement "if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }" if (parenthesized_expression "(0.0 <= dVar40)" ( (binary_expression "0.0 <= dVar40" number_literal <= identifier) )) (compound_statement "{\n                  dVar45 = pdVar29[0x881];\n                }" { (expression_statement "dVar45 = pdVar29[0x881];" (assignment_expression "dVar45 = pdVar29[0x881]" identifier = (subscript_expression "pdVar29[0x881]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }" else (compound_statement "{\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }" { (expression_statement "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) }) (else_clause "else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }" else (compound_statement "{\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }" { (expression_statement "dStack_4c8 = 0.0;" (assignment_expression "dStack_4c8 = 0.0" identifier = number_literal) ;) (expression_statement "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }" if (parenthesized_expression "(unaff_s6[0x879] <= dVar40 * dVar45)" ( (binary_expression "unaff_s6[0x879] <= dVar40 * dVar45" (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]) <= (binary_expression "dVar40 * dVar45" identifier * identifier)) )) (compound_statement "{\n                dVar45 = pdVar29[0x881] / dVar40;\n              }" { (expression_statement "dVar45 = pdVar29[0x881] / dVar40;" (assignment_expression "dVar45 = pdVar29[0x881] / dVar40" identifier = (binary_expression "pdVar29[0x881] / dVar40" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) / identifier)) ;) }) (else_clause "else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }" else (compound_statement "{\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }" { (expression_statement "dVar45 = dVar45 / unaff_s6[0x879];" (assignment_expression "dVar45 = dVar45 / unaff_s6[0x879]" identifier = (binary_expression "dVar45 / unaff_s6[0x879]" identifier / (subscript_expression "unaff_s6[0x879]" identifier [ number_literal ]))) ;) }))) (expression_statement "dVar40 = pdVar29[0x881] - dVar44;" (assignment_expression "dVar40 = pdVar29[0x881] - dVar44" identifier = (binary_expression "pdVar29[0x881] - dVar44" (subscript_expression "pdVar29[0x881]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;" (assignment_expression "dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45" identifier = (binary_expression "(dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45" (parenthesized_expression "(dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21)" ( (binary_expression "dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21" (binary_expression "dVar47 * dStack_4e8 * dVar40" (binary_expression "dVar47 * dStack_4e8" identifier * identifier) * identifier) + (binary_expression "dVar44 * in_f20_21" identifier * identifier)) )) * identifier)) ;) (expression_statement "dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;" (assignment_expression "dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45" identifier = (binary_expression "(dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45" (parenthesized_expression "(dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44)" ( (binary_expression "dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44" (binary_expression "dVar47 * dStack_4e0 * dVar40" (binary_expression "dVar47 * dStack_4e0" identifier * identifier) * identifier) + (binary_expression "in_f22_23 * dVar44" identifier * identifier)) )) * identifier)) ;) (expression_statement "dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;" (assignment_expression "dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45" identifier = (binary_expression "(dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45" (parenthesized_expression "(dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25)" ( (binary_expression "dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25" (binary_expression "dVar47 * dStack_4d8 * dVar40" (binary_expression "dVar47 * dStack_4d8" identifier * identifier) * identifier) + (binary_expression "dVar44 * in_f24_25" identifier * identifier)) )) * identifier)) ;) (if_statement "if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }" if (parenthesized_expression "(aiStack_510[1] == 2)" ( (binary_expression "aiStack_510[1] == 2" (subscript_expression "aiStack_510[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }" { (expression_statement "dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;" (assignment_expression "dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45" identifier = (binary_expression "(dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45" (parenthesized_expression "(dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44)" ( (binary_expression "dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44" (binary_expression "dVar47 * dStack_4d0 * dVar40" (binary_expression "dVar47 * dStack_4d0" identifier * identifier) * identifier) + (binary_expression "dStack_590 * dVar44" identifier * identifier)) )) * identifier)) ;) })) (expression_statement "iVar3 = piVar48[0xb4];" (assignment_expression "iVar3 = piVar48[0xb4]" identifier = (subscript_expression "piVar48[0xb4]" identifier [ number_literal ])) ;) (expression_statement "*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;" (assignment_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8" (pointer_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4)" * (cast_expression "(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar30 + *(int *)(iVar3 + 8) * 4)" ( (binary_expression "(int)pdVar30 + *(int *)(iVar3 + 8) * 4" (cast_expression "(int)pdVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar3 + 8) * 4" (pointer_expression "*(int *)(iVar3 + 8)" * (cast_expression "(int *)(iVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)dStack_4e8" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;" (assignment_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0" (pointer_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4)" * (cast_expression "(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4)" ( (binary_expression "(int)pdVar30 + *(int *)(iVar3 + 0x14) * 4" (cast_expression "(int)pdVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar3 + 0x14) * 4" (pointer_expression "*(int *)(iVar3 + 0x14)" * (cast_expression "(int *)(iVar3 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)dStack_4e0" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;" (assignment_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8" (pointer_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4)" * (cast_expression "(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4)" ( (binary_expression "(int)pdVar30 + *(int *)(iVar3 + 0x20) * 4" (cast_expression "(int)pdVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar3 + 0x20) * 4" (pointer_expression "*(int *)(iVar3 + 0x20)" * (cast_expression "(int *)(iVar3 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x20)" ( (binary_expression "iVar3 + 0x20" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)dStack_4d8" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (if_statement "if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }" if (parenthesized_expression "(*(int *)(iVar3 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar3 + 0x28) != 0" (pointer_expression "*(int *)(iVar3 + 0x28)" * (cast_expression "(int *)(iVar3 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x28)" ( (binary_expression "iVar3 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }" { (expression_statement "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;" (assignment_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0" (pointer_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4)" * (cast_expression "(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4)" ( (binary_expression "(int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4" (cast_expression "(int)pdVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar3 + 0x2c) * 4" (pointer_expression "*(int *)(iVar3 + 0x2c)" * (cast_expression "(int *)(iVar3 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2c)" ( (binary_expression "iVar3 + 0x2c" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(float)dStack_4d0" ( (type_descriptor "float" primitive_type) ) identifier)) ;) })) (if_statement "if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }" if (parenthesized_expression "(*(int *)(iVar3 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar3 + 0x34) != 0" (pointer_expression "*(int *)(iVar3 + 0x34)" * (cast_expression "(int *)(iVar3 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x34)" ( (binary_expression "iVar3 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }" { (if_statement "if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }" if (parenthesized_expression "(aiStack_510[2] == 0)" ( (binary_expression "aiStack_510[2] == 0" (subscript_expression "aiStack_510[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }" { (expression_statement "fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);" (assignment_expression "fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8)" identifier = (pointer_expression "*(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8)" * (cast_expression "(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8)" ( (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" ( (binary_expression "pcStack_5a8 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n                  fVar43 = (float)dStack_4c8;\n                }" else (compound_statement "{\n                  fVar43 = (float)dStack_4c8;\n                }" { (expression_statement "fVar43 = (float)dStack_4c8;" (assignment_expression "fVar43 = (float)dStack_4c8" identifier = (cast_expression "(float)dStack_4c8" ( (type_descriptor "float" primitive_type) ) identifier)) ;) }))) (expression_statement "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;" (assignment_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43" (pointer_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4)" * (cast_expression "(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4)" ( (binary_expression "(int)pdVar30 + *(int *)(iVar3 + 0x38) * 4" (cast_expression "(int)pdVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "*(int *)(iVar3 + 0x38) * 4" (pointer_expression "*(int *)(iVar3 + 0x38)" * (cast_expression "(int *)(iVar3 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x38)" ( (binary_expression "iVar3 + 0x38" identifier + number_literal) )))) * number_literal)) )))) = identifier) ;) })) (expression_statement "pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);" (assignment_expression "pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4)" identifier = (cast_expression "(double *)((int)pdVar30 + piVar48[0xb0] * 4)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar30 + piVar48[0xb0] * 4)" ( (binary_expression "(int)pdVar30 + piVar48[0xb0] * 4" (cast_expression "(int)pdVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "piVar48[0xb0] * 4" (subscript_expression "piVar48[0xb0]" identifier [ number_literal ]) * number_literal)) )))) ;) (expression_statement "iVar28 = iVar28 + 1;" (assignment_expression "iVar28 = iVar28 + 1" identifier = (binary_expression "iVar28 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar28 < **(int **)(pdVar5 + 4))" ( (binary_expression "iVar28 < **(int **)(pdVar5 + 4)" identifier < (pointer_expression "**(int **)(pdVar5 + 4)" * (pointer_expression "*(int **)(pdVar5 + 4)" * (cast_expression "(int **)(pdVar5 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar5 + 4)" ( (binary_expression "pdVar5 + 4" identifier + number_literal) )))))) )) ;) })) (expression_statement "pdVar14 = pdStack_568;" (assignment_expression "pdVar14 = pdStack_568" identifier = identifier) ;) (expression_statement "iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);" (assignment_expression "iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564)" identifier = (call_expression "(**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564)" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x73a0))" ( (pointer_expression "**(code **)(pcStack_5a8 + -0x73a0)" * (pointer_expression "*(code **)(pcStack_5a8 + -0x73a0)" * (cast_expression "(code **)(pcStack_5a8 + -0x73a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5a8 + -0x73a0)" ( (binary_expression "pcStack_5a8 + -0x73a0" identifier + number_literal) ))))) )) (argument_list "(pdStack_568,uStack_564)" ( identifier , identifier )))) ;) (expression_statement "pcVar37 = pcStack_5a8;" (assignment_expression "pcVar37 = pcStack_5a8" identifier = identifier) ;) (if_statement "if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }" { (expression_statement "*(uint *)((int)pdVar5 + 0x24) = 0;" (assignment_expression "*(uint *)((int)pdVar5 + 0x24) = 0" (pointer_expression "*(uint *)((int)pdVar5 + 0x24)" * (cast_expression "(uint *)((int)pdVar5 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar5 + 0x24)" ( (binary_expression "(int)pdVar5 + 0x24" (cast_expression "(int)pdVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })) }))) })) (expression_statement "puVar35 = puVar35 + 1;" (assignment_expression "puVar35 = puVar35 + 1" identifier = (binary_expression "puVar35 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((int)puVar35 < (int)puStack_56c)" ( (binary_expression "(int)puVar35 < (int)puStack_56c" (cast_expression "(int)puVar35" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puStack_56c" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (if_statement "if (iStack_4b4 == **(int **)(pcVar37 + -0x7668)) {\n    return **(int **)(pcVar37 + -0x7668);\n  }" if (parenthesized_expression "(iStack_4b4 == **(int **)(pcVar37 + -0x7668))" ( (binary_expression "iStack_4b4 == **(int **)(pcVar37 + -0x7668)" identifier == (pointer_expression "**(int **)(pcVar37 + -0x7668)" * (pointer_expression "*(int **)(pcVar37 + -0x7668)" * (cast_expression "(int **)(pcVar37 + -0x7668)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + -0x7668)" ( (binary_expression "pcVar37 + -0x7668" identifier + number_literal) )))))) )) (compound_statement "{\n    return **(int **)(pcVar37 + -0x7668);\n  }" { (return_statement "return **(int **)(pcVar37 + -0x7668);" return (pointer_expression "**(int **)(pcVar37 + -0x7668)" * (pointer_expression "*(int **)(pcVar37 + -0x7668)" * (cast_expression "(int **)(pcVar37 + -0x7668)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + -0x7668)" ( (binary_expression "pcVar37 + -0x7668" identifier + number_literal) ))))) ;) })) (expression_statement "pcVar37 = *(code **)(pcVar37 + -0x7834);" (assignment_expression "pcVar37 = *(code **)(pcVar37 + -0x7834)" identifier = (pointer_expression "*(code **)(pcVar37 + -0x7834)" * (cast_expression "(code **)(pcVar37 + -0x7834)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + -0x7834)" ( (binary_expression "pcVar37 + -0x7834" identifier + number_literal) ))))) ;) (expression_statement "pcVar38 = DestroyDrawInfo;" (assignment_expression "pcVar38 = DestroyDrawInfo" identifier = identifier) ;) (expression_statement "(*pcVar37)();" (call_expression "(*pcVar37)()" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_5d0 = pcVar37 + 0x35a8f0;" (assignment_expression "pcStack_5d0 = pcVar37 + 0x35a8f0" identifier = (binary_expression "pcVar37 + 0x35a8f0" identifier + number_literal)) ;) (expression_statement "pdStack_5c8 = pdVar30;" (assignment_expression "pdStack_5c8 = pdVar30" identifier = identifier) ;) (expression_statement "pcStack_5c4 = pcVar38;" (assignment_expression "pcStack_5c4 = pcVar38" identifier = identifier) ;) (if_statement "if (pdVar14 == (double *)0x0) {\n    (**(code **)(pcVar37 + 0x353660))\n              (*(int *)(pcVar37 + 0x352920) + 0x40e4,*(int *)(pcVar37 + 0x352924) + 0x69c0,0x39a,\n               *(int *)(pcVar37 + 0x352924) + 0x7914);\n    pdVar14 = pdVar30;\nLAB_000a7234:\n    iStack_5d8 = *(int *)(pcVar37 + 0x352924) + 0x10f4;\n    (**(code **)(pcVar37 + 0x353238))\n              (0x8000,*(int *)(pcVar37 + 0x352924) + 0x69c0,*(int *)(pcVar37 + 0x352924) + 0x7904,\n               0x39c);\n    uVar26 = *(uint *)(pdVar14 + 0x72);\n  }\n  else {\n    if (*(uint *)((int)pdVar14 + 0x38c) != 0) goto LAB_000a7234;\n    uVar26 = *(uint *)(pdVar14 + 0x72);\n  }" if (parenthesized_expression "(pdVar14 == (double *)0x0)" ( (binary_expression "pdVar14 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(pcVar37 + 0x353660))\n              (*(int *)(pcVar37 + 0x352920) + 0x40e4,*(int *)(pcVar37 + 0x352924) + 0x69c0,0x39a,\n               *(int *)(pcVar37 + 0x352924) + 0x7914);\n    pdVar14 = pdVar30;\nLAB_000a7234:\n    iStack_5d8 = *(int *)(pcVar37 + 0x352924) + 0x10f4;\n    (**(code **)(pcVar37 + 0x353238))\n              (0x8000,*(int *)(pcVar37 + 0x352924) + 0x69c0,*(int *)(pcVar37 + 0x352924) + 0x7904,\n               0x39c);\n    uVar26 = *(uint *)(pdVar14 + 0x72);\n  }" { (expression_statement "(**(code **)(pcVar37 + 0x353660))\n              (*(int *)(pcVar37 + 0x352920) + 0x40e4,*(int *)(pcVar37 + 0x352924) + 0x69c0,0x39a,\n               *(int *)(pcVar37 + 0x352924) + 0x7914);" (call_expression "(**(code **)(pcVar37 + 0x353660))\n              (*(int *)(pcVar37 + 0x352920) + 0x40e4,*(int *)(pcVar37 + 0x352924) + 0x69c0,0x39a,\n               *(int *)(pcVar37 + 0x352924) + 0x7914)" (parenthesized_expression "(**(code **)(pcVar37 + 0x353660))" ( (pointer_expression "**(code **)(pcVar37 + 0x353660)" * (pointer_expression "*(code **)(pcVar37 + 0x353660)" * (cast_expression "(code **)(pcVar37 + 0x353660)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x353660)" ( (binary_expression "pcVar37 + 0x353660" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar37 + 0x352920) + 0x40e4,*(int *)(pcVar37 + 0x352924) + 0x69c0,0x39a,\n               *(int *)(pcVar37 + 0x352924) + 0x7914)" ( (binary_expression "*(int *)(pcVar37 + 0x352920) + 0x40e4" (pointer_expression "*(int *)(pcVar37 + 0x352920)" * (cast_expression "(int *)(pcVar37 + 0x352920)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x352920)" ( (binary_expression "pcVar37 + 0x352920" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar37 + 0x352924) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + 0x352924)" * (cast_expression "(int *)(pcVar37 + 0x352924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x352924)" ( (binary_expression "pcVar37 + 0x352924" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar37 + 0x352924) + 0x7914" (pointer_expression "*(int *)(pcVar37 + 0x352924)" * (cast_expression "(int *)(pcVar37 + 0x352924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x352924)" ( (binary_expression "pcVar37 + 0x352924" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pdVar14 = pdVar30;" (assignment_expression "pdVar14 = pdVar30" identifier = identifier) ;) (labeled_statement "LAB_000a7234:\n    iStack_5d8 = *(int *)(pcVar37 + 0x352924) + 0x10f4;" statement_identifier : (expression_statement "iStack_5d8 = *(int *)(pcVar37 + 0x352924) + 0x10f4;" (assignment_expression "iStack_5d8 = *(int *)(pcVar37 + 0x352924) + 0x10f4" identifier = (binary_expression "*(int *)(pcVar37 + 0x352924) + 0x10f4" (pointer_expression "*(int *)(pcVar37 + 0x352924)" * (cast_expression "(int *)(pcVar37 + 0x352924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x352924)" ( (binary_expression "pcVar37 + 0x352924" identifier + number_literal) )))) + number_literal)) ;)) (expression_statement "(**(code **)(pcVar37 + 0x353238))\n              (0x8000,*(int *)(pcVar37 + 0x352924) + 0x69c0,*(int *)(pcVar37 + 0x352924) + 0x7904,\n               0x39c);" (call_expression "(**(code **)(pcVar37 + 0x353238))\n              (0x8000,*(int *)(pcVar37 + 0x352924) + 0x69c0,*(int *)(pcVar37 + 0x352924) + 0x7904,\n               0x39c)" (parenthesized_expression "(**(code **)(pcVar37 + 0x353238))" ( (pointer_expression "**(code **)(pcVar37 + 0x353238)" * (pointer_expression "*(code **)(pcVar37 + 0x353238)" * (cast_expression "(code **)(pcVar37 + 0x353238)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x353238)" ( (binary_expression "pcVar37 + 0x353238" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(pcVar37 + 0x352924) + 0x69c0,*(int *)(pcVar37 + 0x352924) + 0x7904,\n               0x39c)" ( number_literal , (binary_expression "*(int *)(pcVar37 + 0x352924) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + 0x352924)" * (cast_expression "(int *)(pcVar37 + 0x352924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x352924)" ( (binary_expression "pcVar37 + 0x352924" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar37 + 0x352924) + 0x7904" (pointer_expression "*(int *)(pcVar37 + 0x352924)" * (cast_expression "(int *)(pcVar37 + 0x352924)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x352924)" ( (binary_expression "pcVar37 + 0x352924" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) (expression_statement "uVar26 = *(uint *)(pdVar14 + 0x72);" (assignment_expression "uVar26 = *(uint *)(pdVar14 + 0x72)" identifier = (pointer_expression "*(uint *)(pdVar14 + 0x72)" * (cast_expression "(uint *)(pdVar14 + 0x72)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x72)" ( (binary_expression "pdVar14 + 0x72" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    if (*(uint *)((int)pdVar14 + 0x38c) != 0) goto LAB_000a7234;\n    uVar26 = *(uint *)(pdVar14 + 0x72);\n  }" else (compound_statement "{\n    if (*(uint *)((int)pdVar14 + 0x38c) != 0) goto LAB_000a7234;\n    uVar26 = *(uint *)(pdVar14 + 0x72);\n  }" { (if_statement "if (*(uint *)((int)pdVar14 + 0x38c) != 0) goto LAB_000a7234;" if (parenthesized_expression "(*(uint *)((int)pdVar14 + 0x38c) != 0)" ( (binary_expression "*(uint *)((int)pdVar14 + 0x38c) != 0" (pointer_expression "*(uint *)((int)pdVar14 + 0x38c)" * (cast_expression "(uint *)((int)pdVar14 + 0x38c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar14 + 0x38c)" ( (binary_expression "(int)pdVar14 + 0x38c" (cast_expression "(int)pdVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_000a7234;" goto statement_identifier ;)) (expression_statement "uVar26 = *(uint *)(pdVar14 + 0x72);" (assignment_expression "uVar26 = *(uint *)(pdVar14 + 0x72)" identifier = (pointer_expression "*(uint *)(pdVar14 + 0x72)" * (cast_expression "(uint *)(pdVar14 + 0x72)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x72)" ( (binary_expression "pdVar14 + 0x72" identifier + number_literal) ))))) ;) }))) (if_statement "if (uVar26 == 0xabacadab) {\n    if (*(uint *)(pdVar14 + 0x77) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x77) = uVar26;\n    }\n    if (*(uint *)pdVar14 != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)pdVar14 = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x4c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4c) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 4) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x35) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)(pdVar14 + 0x35) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x1ac) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x1ac) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x264) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x264) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x4d) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4d) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x26c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x26c) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x50) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x50) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x52) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x52) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x29c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)((int)pdVar14 + 0x29c) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x54) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x54) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x3e) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x3e) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x2a4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x2a4) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x3ac) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3ac) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x3b4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3b4) = uVar26;\n    }\n    *(uint *)(pdVar14 + 0x72) = 0x54535254;\n    iVar3 = (**(code **)(pcStack_5d0 + -0x78d8))(pdVar14);\n    return iVar3;\n  }" if (parenthesized_expression "(uVar26 == 0xabacadab)" ( (binary_expression "uVar26 == 0xabacadab" identifier == number_literal) )) (compound_statement "{\n    if (*(uint *)(pdVar14 + 0x77) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x77) = uVar26;\n    }\n    if (*(uint *)pdVar14 != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)pdVar14 = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x4c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4c) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 4) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x35) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)(pdVar14 + 0x35) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x1ac) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x1ac) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x264) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x264) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x4d) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4d) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x26c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x26c) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x50) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x50) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x52) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x52) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x29c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)((int)pdVar14 + 0x29c) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x54) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x54) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x3e) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x3e) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x2a4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x2a4) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x3ac) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3ac) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x3b4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3b4) = uVar26;\n    }\n    *(uint *)(pdVar14 + 0x72) = 0x54535254;\n    iVar3 = (**(code **)(pcStack_5d0 + -0x78d8))(pdVar14);\n    return iVar3;\n  }" { (if_statement "if (*(uint *)(pdVar14 + 0x77) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x77) = uVar26;\n    }" if (parenthesized_expression "(*(uint *)(pdVar14 + 0x77) != 0)" ( (binary_expression "*(uint *)(pdVar14 + 0x77) != 0" (pointer_expression "*(uint *)(pdVar14 + 0x77)" * (cast_expression "(uint *)(pdVar14 + 0x77)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x77)" ( (binary_expression "pdVar14 + 0x77" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x77) = uVar26;\n    }" { (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" * (cast_expression "(code **)(pcStack_5d0 + -0x7824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x7824)" ( (binary_expression "pcStack_5d0 + -0x7824" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)(pdVar14 + 0x77) = uVar26;" (assignment_expression "*(uint *)(pdVar14 + 0x77) = uVar26" (pointer_expression "*(uint *)(pdVar14 + 0x77)" * (cast_expression "(uint *)(pdVar14 + 0x77)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x77)" ( (binary_expression "pdVar14 + 0x77" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)pdVar14 != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)pdVar14 = uVar26;\n    }" if (parenthesized_expression "(*(uint *)pdVar14 != 0)" ( (binary_expression "*(uint *)pdVar14 != 0" (pointer_expression "*(uint *)pdVar14" * (cast_expression "(uint *)pdVar14" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)pdVar14 = uVar26;\n    }" { (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" * (cast_expression "(code **)(pcStack_5d0 + -0x7824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x7824)" ( (binary_expression "pcStack_5d0 + -0x7824" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)pdVar14 = uVar26;" (assignment_expression "*(uint *)pdVar14 = uVar26" (pointer_expression "*(uint *)pdVar14" * (cast_expression "(uint *)pdVar14" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) })) (if_statement "if (*(uint *)(pdVar14 + 0x4c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4c) = uVar26;\n    }" if (parenthesized_expression "(*(uint *)(pdVar14 + 0x4c) != 0)" ( (binary_expression "*(uint *)(pdVar14 + 0x4c) != 0" (pointer_expression "*(uint *)(pdVar14 + 0x4c)" * (cast_expression "(uint *)(pdVar14 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x4c)" ( (binary_expression "pdVar14 + 0x4c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4c) = uVar26;\n    }" { (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" * (cast_expression "(code **)(pcStack_5d0 + -0x7824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x7824)" ( (binary_expression "pcStack_5d0 + -0x7824" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)(pdVar14 + 0x4c) = uVar26;" (assignment_expression "*(uint *)(pdVar14 + 0x4c) = uVar26" (pointer_expression "*(uint *)(pdVar14 + 0x4c)" * (cast_expression "(uint *)(pdVar14 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x4c)" ( (binary_expression "pdVar14 + 0x4c" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)((int)pdVar14 + 4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 4) = uVar26;\n    }" if (parenthesized_expression "(*(uint *)((int)pdVar14 + 4) != 0)" ( (binary_expression "*(uint *)((int)pdVar14 + 4) != 0" (pointer_expression "*(uint *)((int)pdVar14 + 4)" * (cast_expression "(uint *)((int)pdVar14 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar14 + 4)" ( (binary_expression "(int)pdVar14 + 4" (cast_expression "(int)pdVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 4) = uVar26;\n    }" { (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" * (cast_expression "(code **)(pcStack_5d0 + -0x7824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x7824)" ( (binary_expression "pcStack_5d0 + -0x7824" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)((int)pdVar14 + 4) = uVar26;" (assignment_expression "*(uint *)((int)pdVar14 + 4) = uVar26" (pointer_expression "*(uint *)((int)pdVar14 + 4)" * (cast_expression "(uint *)((int)pdVar14 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar14 + 4)" ( (binary_expression "(int)pdVar14 + 4" (cast_expression "(int)pdVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)(pdVar14 + 0x35) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)(pdVar14 + 0x35) = uVar26;\n    }" if (parenthesized_expression "(*(uint *)(pdVar14 + 0x35) != 0)" ( (binary_expression "*(uint *)(pdVar14 + 0x35) != 0" (pointer_expression "*(uint *)(pdVar14 + 0x35)" * (cast_expression "(uint *)(pdVar14 + 0x35)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x35)" ( (binary_expression "pdVar14 + 0x35" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)(pdVar14 + 0x35) = uVar26;\n    }" { (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x794c))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x794c))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x794c))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x794c)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x794c)" * (cast_expression "(code **)(pcStack_5d0 + -0x794c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x794c)" ( (binary_expression "pcStack_5d0 + -0x794c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)(pdVar14 + 0x35) = uVar26;" (assignment_expression "*(uint *)(pdVar14 + 0x35) = uVar26" (pointer_expression "*(uint *)(pdVar14 + 0x35)" * (cast_expression "(uint *)(pdVar14 + 0x35)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x35)" ( (binary_expression "pdVar14 + 0x35" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)((int)pdVar14 + 0x1ac) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x1ac) = uVar26;\n    }" if (parenthesized_expression "(*(uint *)((int)pdVar14 + 0x1ac) != 0)" ( (binary_expression "*(uint *)((int)pdVar14 + 0x1ac) != 0" (pointer_expression "*(uint *)((int)pdVar14 + 0x1ac)" * (cast_expression "(uint *)((int)pdVar14 + 0x1ac)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar14 + 0x1ac)" ( (binary_expression "(int)pdVar14 + 0x1ac" (cast_expression "(int)pdVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x1ac) = uVar26;\n    }" { (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x794c))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x794c))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x794c))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x794c)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x794c)" * (cast_expression "(code **)(pcStack_5d0 + -0x794c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x794c)" ( (binary_expression "pcStack_5d0 + -0x794c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)((int)pdVar14 + 0x1ac) = uVar26;" (assignment_expression "*(uint *)((int)pdVar14 + 0x1ac) = uVar26" (pointer_expression "*(uint *)((int)pdVar14 + 0x1ac)" * (cast_expression "(uint *)((int)pdVar14 + 0x1ac)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar14 + 0x1ac)" ( (binary_expression "(int)pdVar14 + 0x1ac" (cast_expression "(int)pdVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)((int)pdVar14 + 0x264) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x264) = uVar26;\n    }" if (parenthesized_expression "(*(uint *)((int)pdVar14 + 0x264) != 0)" ( (binary_expression "*(uint *)((int)pdVar14 + 0x264) != 0" (pointer_expression "*(uint *)((int)pdVar14 + 0x264)" * (cast_expression "(uint *)((int)pdVar14 + 0x264)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar14 + 0x264)" ( (binary_expression "(int)pdVar14 + 0x264" (cast_expression "(int)pdVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x264) = uVar26;\n    }" { (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" * (cast_expression "(code **)(pcStack_5d0 + -0x7824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x7824)" ( (binary_expression "pcStack_5d0 + -0x7824" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)((int)pdVar14 + 0x264) = uVar26;" (assignment_expression "*(uint *)((int)pdVar14 + 0x264) = uVar26" (pointer_expression "*(uint *)((int)pdVar14 + 0x264)" * (cast_expression "(uint *)((int)pdVar14 + 0x264)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar14 + 0x264)" ( (binary_expression "(int)pdVar14 + 0x264" (cast_expression "(int)pdVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)(pdVar14 + 0x4d) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4d) = uVar26;\n    }" if (parenthesized_expression "(*(uint *)(pdVar14 + 0x4d) != 0)" ( (binary_expression "*(uint *)(pdVar14 + 0x4d) != 0" (pointer_expression "*(uint *)(pdVar14 + 0x4d)" * (cast_expression "(uint *)(pdVar14 + 0x4d)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x4d)" ( (binary_expression "pdVar14 + 0x4d" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4d) = uVar26;\n    }" { (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" * (cast_expression "(code **)(pcStack_5d0 + -0x7824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x7824)" ( (binary_expression "pcStack_5d0 + -0x7824" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)(pdVar14 + 0x4d) = uVar26;" (assignment_expression "*(uint *)(pdVar14 + 0x4d) = uVar26" (pointer_expression "*(uint *)(pdVar14 + 0x4d)" * (cast_expression "(uint *)(pdVar14 + 0x4d)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x4d)" ( (binary_expression "pdVar14 + 0x4d" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)((int)pdVar14 + 0x26c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x26c) = uVar26;\n    }" if (parenthesized_expression "(*(uint *)((int)pdVar14 + 0x26c) != 0)" ( (binary_expression "*(uint *)((int)pdVar14 + 0x26c) != 0" (pointer_expression "*(uint *)((int)pdVar14 + 0x26c)" * (cast_expression "(uint *)((int)pdVar14 + 0x26c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar14 + 0x26c)" ( (binary_expression "(int)pdVar14 + 0x26c" (cast_expression "(int)pdVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x26c) = uVar26;\n    }" { (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" * (cast_expression "(code **)(pcStack_5d0 + -0x7824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x7824)" ( (binary_expression "pcStack_5d0 + -0x7824" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)((int)pdVar14 + 0x26c) = uVar26;" (assignment_expression "*(uint *)((int)pdVar14 + 0x26c) = uVar26" (pointer_expression "*(uint *)((int)pdVar14 + 0x26c)" * (cast_expression "(uint *)((int)pdVar14 + 0x26c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar14 + 0x26c)" ( (binary_expression "(int)pdVar14 + 0x26c" (cast_expression "(int)pdVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)(pdVar14 + 0x50) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x50) = uVar26;\n    }" if (parenthesized_expression "(*(uint *)(pdVar14 + 0x50) != 0)" ( (binary_expression "*(uint *)(pdVar14 + 0x50) != 0" (pointer_expression "*(uint *)(pdVar14 + 0x50)" * (cast_expression "(uint *)(pdVar14 + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x50)" ( (binary_expression "pdVar14 + 0x50" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x50) = uVar26;\n    }" { (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" * (cast_expression "(code **)(pcStack_5d0 + -0x7824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x7824)" ( (binary_expression "pcStack_5d0 + -0x7824" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)(pdVar14 + 0x50) = uVar26;" (assignment_expression "*(uint *)(pdVar14 + 0x50) = uVar26" (pointer_expression "*(uint *)(pdVar14 + 0x50)" * (cast_expression "(uint *)(pdVar14 + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x50)" ( (binary_expression "pdVar14 + 0x50" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)(pdVar14 + 0x52) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x52) = uVar26;\n    }" if (parenthesized_expression "(*(uint *)(pdVar14 + 0x52) != 0)" ( (binary_expression "*(uint *)(pdVar14 + 0x52) != 0" (pointer_expression "*(uint *)(pdVar14 + 0x52)" * (cast_expression "(uint *)(pdVar14 + 0x52)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x52)" ( (binary_expression "pdVar14 + 0x52" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x52) = uVar26;\n    }" { (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" * (cast_expression "(code **)(pcStack_5d0 + -0x7824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x7824)" ( (binary_expression "pcStack_5d0 + -0x7824" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)(pdVar14 + 0x52) = uVar26;" (assignment_expression "*(uint *)(pdVar14 + 0x52) = uVar26" (pointer_expression "*(uint *)(pdVar14 + 0x52)" * (cast_expression "(uint *)(pdVar14 + 0x52)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x52)" ( (binary_expression "pdVar14 + 0x52" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)((int)pdVar14 + 0x29c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)((int)pdVar14 + 0x29c) = uVar26;\n    }" if (parenthesized_expression "(*(uint *)((int)pdVar14 + 0x29c) != 0)" ( (binary_expression "*(uint *)((int)pdVar14 + 0x29c) != 0" (pointer_expression "*(uint *)((int)pdVar14 + 0x29c)" * (cast_expression "(uint *)((int)pdVar14 + 0x29c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar14 + 0x29c)" ( (binary_expression "(int)pdVar14 + 0x29c" (cast_expression "(int)pdVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)((int)pdVar14 + 0x29c) = uVar26;\n    }" { (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x78d8))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x78d8))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x78d8)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x78d8)" * (cast_expression "(code **)(pcStack_5d0 + -0x78d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x78d8)" ( (binary_expression "pcStack_5d0 + -0x78d8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)((int)pdVar14 + 0x29c) = uVar26;" (assignment_expression "*(uint *)((int)pdVar14 + 0x29c) = uVar26" (pointer_expression "*(uint *)((int)pdVar14 + 0x29c)" * (cast_expression "(uint *)((int)pdVar14 + 0x29c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar14 + 0x29c)" ( (binary_expression "(int)pdVar14 + 0x29c" (cast_expression "(int)pdVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)(pdVar14 + 0x54) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x54) = uVar26;\n    }" if (parenthesized_expression "(*(uint *)(pdVar14 + 0x54) != 0)" ( (binary_expression "*(uint *)(pdVar14 + 0x54) != 0" (pointer_expression "*(uint *)(pdVar14 + 0x54)" * (cast_expression "(uint *)(pdVar14 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x54)" ( (binary_expression "pdVar14 + 0x54" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x54) = uVar26;\n    }" { (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x78d8))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x78d8))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x78d8)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x78d8)" * (cast_expression "(code **)(pcStack_5d0 + -0x78d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x78d8)" ( (binary_expression "pcStack_5d0 + -0x78d8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)(pdVar14 + 0x54) = uVar26;" (assignment_expression "*(uint *)(pdVar14 + 0x54) = uVar26" (pointer_expression "*(uint *)(pdVar14 + 0x54)" * (cast_expression "(uint *)(pdVar14 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x54)" ( (binary_expression "pdVar14 + 0x54" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)(pdVar14 + 0x3e) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x3e) = uVar26;\n    }" if (parenthesized_expression "(*(uint *)(pdVar14 + 0x3e) != 0)" ( (binary_expression "*(uint *)(pdVar14 + 0x3e) != 0" (pointer_expression "*(uint *)(pdVar14 + 0x3e)" * (cast_expression "(uint *)(pdVar14 + 0x3e)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x3e)" ( (binary_expression "pdVar14 + 0x3e" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x3e) = uVar26;\n    }" { (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x78d8))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x78d8))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x78d8)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x78d8)" * (cast_expression "(code **)(pcStack_5d0 + -0x78d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x78d8)" ( (binary_expression "pcStack_5d0 + -0x78d8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)(pdVar14 + 0x3e) = uVar26;" (assignment_expression "*(uint *)(pdVar14 + 0x3e) = uVar26" (pointer_expression "*(uint *)(pdVar14 + 0x3e)" * (cast_expression "(uint *)(pdVar14 + 0x3e)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x3e)" ( (binary_expression "pdVar14 + 0x3e" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)((int)pdVar14 + 0x2a4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x2a4) = uVar26;\n    }" if (parenthesized_expression "(*(uint *)((int)pdVar14 + 0x2a4) != 0)" ( (binary_expression "*(uint *)((int)pdVar14 + 0x2a4) != 0" (pointer_expression "*(uint *)((int)pdVar14 + 0x2a4)" * (cast_expression "(uint *)((int)pdVar14 + 0x2a4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar14 + 0x2a4)" ( (binary_expression "(int)pdVar14 + 0x2a4" (cast_expression "(int)pdVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x2a4) = uVar26;\n    }" { (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" * (cast_expression "(code **)(pcStack_5d0 + -0x7824)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x7824)" ( (binary_expression "pcStack_5d0 + -0x7824" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)((int)pdVar14 + 0x2a4) = uVar26;" (assignment_expression "*(uint *)((int)pdVar14 + 0x2a4) = uVar26" (pointer_expression "*(uint *)((int)pdVar14 + 0x2a4)" * (cast_expression "(uint *)((int)pdVar14 + 0x2a4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar14 + 0x2a4)" ( (binary_expression "(int)pdVar14 + 0x2a4" (cast_expression "(int)pdVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)((int)pdVar14 + 0x3ac) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3ac) = uVar26;\n    }" if (parenthesized_expression "(*(uint *)((int)pdVar14 + 0x3ac) != 0)" ( (binary_expression "*(uint *)((int)pdVar14 + 0x3ac) != 0" (pointer_expression "*(uint *)((int)pdVar14 + 0x3ac)" * (cast_expression "(uint *)((int)pdVar14 + 0x3ac)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar14 + 0x3ac)" ( (binary_expression "(int)pdVar14 + 0x3ac" (cast_expression "(int)pdVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3ac) = uVar26;\n    }" { (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x794c))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x794c))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x794c))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x794c)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x794c)" * (cast_expression "(code **)(pcStack_5d0 + -0x794c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x794c)" ( (binary_expression "pcStack_5d0 + -0x794c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)((int)pdVar14 + 0x3ac) = uVar26;" (assignment_expression "*(uint *)((int)pdVar14 + 0x3ac) = uVar26" (pointer_expression "*(uint *)((int)pdVar14 + 0x3ac)" * (cast_expression "(uint *)((int)pdVar14 + 0x3ac)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar14 + 0x3ac)" ( (binary_expression "(int)pdVar14 + 0x3ac" (cast_expression "(int)pdVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) })) (if_statement "if (*(uint *)((int)pdVar14 + 0x3b4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3b4) = uVar26;\n    }" if (parenthesized_expression "(*(uint *)((int)pdVar14 + 0x3b4) != 0)" ( (binary_expression "*(uint *)((int)pdVar14 + 0x3b4) != 0" (pointer_expression "*(uint *)((int)pdVar14 + 0x3b4)" * (cast_expression "(uint *)((int)pdVar14 + 0x3b4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar14 + 0x3b4)" ( (binary_expression "(int)pdVar14 + 0x3b4" (cast_expression "(int)pdVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3b4) = uVar26;\n    }" { (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x794c))()" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x794c))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x794c))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x794c)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x794c)" * (cast_expression "(code **)(pcStack_5d0 + -0x794c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x794c)" ( (binary_expression "pcStack_5d0 + -0x794c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(uint *)((int)pdVar14 + 0x3b4) = uVar26;" (assignment_expression "*(uint *)((int)pdVar14 + 0x3b4) = uVar26" (pointer_expression "*(uint *)((int)pdVar14 + 0x3b4)" * (cast_expression "(uint *)((int)pdVar14 + 0x3b4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar14 + 0x3b4)" ( (binary_expression "(int)pdVar14 + 0x3b4" (cast_expression "(int)pdVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) })) (expression_statement "*(uint *)(pdVar14 + 0x72) = 0x54535254;" (assignment_expression "*(uint *)(pdVar14 + 0x72) = 0x54535254" (pointer_expression "*(uint *)(pdVar14 + 0x72)" * (cast_expression "(uint *)(pdVar14 + 0x72)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar14 + 0x72)" ( (binary_expression "pdVar14 + 0x72" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar3 = (**(code **)(pcStack_5d0 + -0x78d8))(pdVar14);" (assignment_expression "iVar3 = (**(code **)(pcStack_5d0 + -0x78d8))(pdVar14)" identifier = (call_expression "(**(code **)(pcStack_5d0 + -0x78d8))(pdVar14)" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x78d8))" ( (pointer_expression "**(code **)(pcStack_5d0 + -0x78d8)" * (pointer_expression "*(code **)(pcStack_5d0 + -0x78d8)" * (cast_expression "(code **)(pcStack_5d0 + -0x78d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x78d8)" ( (binary_expression "pcStack_5d0 + -0x78d8" identifier + number_literal) ))))) )) (argument_list "(pdVar14)" ( identifier )))) ;) (return_statement "return iVar3;" return identifier ;) })) (expression_statement "pdVar5 = (double *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x7914);" (assignment_expression "pdVar5 = (double *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x7914)" identifier = (cast_expression "(double *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x7914)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5d0 + -0x7fcc) + 0x7914)" ( (binary_expression "*(int *)(pcStack_5d0 + -0x7fcc) + 0x7914" (pointer_expression "*(int *)(pcStack_5d0 + -0x7fcc)" * (cast_expression "(int *)(pcStack_5d0 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5d0 + -0x7fcc)" ( (binary_expression "pcStack_5d0 + -0x7fcc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pdVar16 = (double *)&DAT_0000039d;" (assignment_expression "pdVar16 = (double *)&DAT_0000039d" identifier = (cast_expression "(double *)&DAT_0000039d" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000039d" & identifier))) ;) (expression_statement "puVar23 = (uint *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x69c0);" (assignment_expression "puVar23 = (uint *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x69c0)" identifier = (cast_expression "(uint *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x69c0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5d0 + -0x7fcc) + 0x69c0)" ( (binary_expression "*(int *)(pcStack_5d0 + -0x7fcc) + 0x69c0" (pointer_expression "*(int *)(pcStack_5d0 + -0x7fcc)" * (cast_expression "(int *)(pcStack_5d0 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5d0 + -0x7fcc)" ( (binary_expression "pcStack_5d0 + -0x7fcc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "piVar2 = (int *)(*(int *)(pcStack_5d0 + -0x7fd0) + 0x4128);" (assignment_expression "piVar2 = (int *)(*(int *)(pcStack_5d0 + -0x7fd0) + 0x4128)" identifier = (cast_expression "(int *)(*(int *)(pcStack_5d0 + -0x7fd0) + 0x4128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_5d0 + -0x7fd0) + 0x4128)" ( (binary_expression "*(int *)(pcStack_5d0 + -0x7fd0) + 0x4128" (pointer_expression "*(int *)(pcStack_5d0 + -0x7fd0)" * (cast_expression "(int *)(pcStack_5d0 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_5d0 + -0x7fd0)" ( (binary_expression "pcStack_5d0 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pcVar37 = *(code **)(pcStack_5d0 + -0x7290);" (assignment_expression "pcVar37 = *(code **)(pcStack_5d0 + -0x7290)" identifier = (pointer_expression "*(code **)(pcStack_5d0 + -0x7290)" * (cast_expression "(code **)(pcStack_5d0 + -0x7290)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_5d0 + -0x7290)" ( (binary_expression "pcStack_5d0 + -0x7290" identifier + number_literal) ))))) ;) (expression_statement "pcVar38 = DrawAffineImage;" (assignment_expression "pcVar38 = DrawAffineImage" identifier = identifier) ;) (expression_statement "(*pcVar37)();" (call_expression "(*pcVar37)()" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_758 = pcVar37 + 0x35a61c;" (assignment_expression "pcStack_758 = pcVar37 + 0x35a61c" identifier = (binary_expression "pcVar37 + 0x35a61c" identifier + number_literal)) ;) (expression_statement "uStack_638._4_4_ = **(int **)(pcVar37 + 0x352fb4);" (assignment_expression "uStack_638._4_4_ = **(int **)(pcVar37 + 0x352fb4)" (field_expression "uStack_638._4_4_" identifier . field_identifier) = (pointer_expression "**(int **)(pcVar37 + 0x352fb4)" * (pointer_expression "*(int **)(pcVar37 + 0x352fb4)" * (cast_expression "(int **)(pcVar37 + 0x352fb4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x352fb4)" ( (binary_expression "pcVar37 + 0x352fb4" identifier + number_literal) )))))) ;) (expression_statement "pdStack_62c = pdVar14;" (assignment_expression "pdStack_62c = pdVar14" identifier = identifier) ;) (expression_statement "piStack_628 = piVar48;" (assignment_expression "piStack_628 = piVar48" identifier = identifier) ;) (expression_statement "puStack_624 = puVar32;" (assignment_expression "puStack_624 = puVar32" identifier = identifier) ;) (expression_statement "pdStack_620 = pdVar29;" (assignment_expression "pdStack_620 = pdVar29" identifier = identifier) ;) (expression_statement "iStack_61c = iVar28;" (assignment_expression "iStack_61c = iVar28" identifier = identifier) ;) (expression_statement "puStack_618 = puVar35;" (assignment_expression "puStack_618 = puVar35" identifier = identifier) ;) (expression_statement "pdStack_614 = unaff_s6;" (assignment_expression "pdStack_614 = unaff_s6" identifier = identifier) ;) (expression_statement "uStack_610 = unaff_s7;" (assignment_expression "uStack_610 = unaff_s7" identifier = identifier) ;) (expression_statement "pcStack_60c = pcVar38;" (assignment_expression "pcStack_60c = pcVar38" identifier = identifier) ;) (expression_statement "dStack_608 = in_f20_21;" (assignment_expression "dStack_608 = in_f20_21" identifier = identifier) ;) (expression_statement "dStack_600 = in_f22_23;" (assignment_expression "dStack_600 = in_f22_23" identifier = identifier) ;) (expression_statement "dStack_5f8 = in_f24_25;" (assignment_expression "dStack_5f8 = in_f24_25" identifier = identifier) ;) (expression_statement "dStack_5f0 = in_f26_27;" (assignment_expression "dStack_5f0 = in_f26_27" identifier = identifier) ;) (if_statement "if (piVar2 == (int *)0x0) {\n    (**(code **)(pcVar37 + 0x35338c))\n              (*(int *)(pcVar37 + 0x35264c) + 0x3da0,*(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c0,\n               *(int *)(pcVar37 + 0x352650) + 0x78f4);\n    pdVar16 = pdVar14;\n    piVar2 = piVar48;\n    puVar23 = puVar32;\n    pdVar5 = pdVar29;\nLAB_000a7434:\n    piVar48 = (int *)(**(code **)(pcVar37 + 0x35338c))\n                               (*(int *)(pcVar37 + 0x352650) + -0x784,\n                                *(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar37 + 0x352650) + 0x78f4);\nLAB_000a745c:\n    iStack_760 = *(int *)(pcVar37 + 0x352654) + -0x2f6c;\n    piStack_75c = piVar48;\n    (**(code **)(pcVar37 + 0x352f64))\n              (0x8000,*(int *)(pcVar37 + 0x352650) + 0x69c0,*(int *)(pcVar37 + 0x352650) + 0x78e4,\n               0x4c3);\n  }\n  else {\n    if (piVar2[0xcdb] != -0x54535255) goto LAB_000a7434;\n    piVar48 = piVar2 + 0xd0;\n    if (piVar2[0xcd4] != 0) goto LAB_000a745c;\n  }" if (parenthesized_expression "(piVar2 == (int *)0x0)" ( (binary_expression "piVar2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(pcVar37 + 0x35338c))\n              (*(int *)(pcVar37 + 0x35264c) + 0x3da0,*(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c0,\n               *(int *)(pcVar37 + 0x352650) + 0x78f4);\n    pdVar16 = pdVar14;\n    piVar2 = piVar48;\n    puVar23 = puVar32;\n    pdVar5 = pdVar29;\nLAB_000a7434:\n    piVar48 = (int *)(**(code **)(pcVar37 + 0x35338c))\n                               (*(int *)(pcVar37 + 0x352650) + -0x784,\n                                *(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar37 + 0x352650) + 0x78f4);\nLAB_000a745c:\n    iStack_760 = *(int *)(pcVar37 + 0x352654) + -0x2f6c;\n    piStack_75c = piVar48;\n    (**(code **)(pcVar37 + 0x352f64))\n              (0x8000,*(int *)(pcVar37 + 0x352650) + 0x69c0,*(int *)(pcVar37 + 0x352650) + 0x78e4,\n               0x4c3);\n  }" { (expression_statement "(**(code **)(pcVar37 + 0x35338c))\n              (*(int *)(pcVar37 + 0x35264c) + 0x3da0,*(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c0,\n               *(int *)(pcVar37 + 0x352650) + 0x78f4);" (call_expression "(**(code **)(pcVar37 + 0x35338c))\n              (*(int *)(pcVar37 + 0x35264c) + 0x3da0,*(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c0,\n               *(int *)(pcVar37 + 0x352650) + 0x78f4)" (parenthesized_expression "(**(code **)(pcVar37 + 0x35338c))" ( (pointer_expression "**(code **)(pcVar37 + 0x35338c)" * (pointer_expression "*(code **)(pcVar37 + 0x35338c)" * (cast_expression "(code **)(pcVar37 + 0x35338c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x35338c)" ( (binary_expression "pcVar37 + 0x35338c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar37 + 0x35264c) + 0x3da0,*(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c0,\n               *(int *)(pcVar37 + 0x352650) + 0x78f4)" ( (binary_expression "*(int *)(pcVar37 + 0x35264c) + 0x3da0" (pointer_expression "*(int *)(pcVar37 + 0x35264c)" * (cast_expression "(int *)(pcVar37 + 0x35264c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35264c)" ( (binary_expression "pcVar37 + 0x35264c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar37 + 0x352650) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + 0x352650)" * (cast_expression "(int *)(pcVar37 + 0x352650)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x352650)" ( (binary_expression "pcVar37 + 0x352650" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar37 + 0x352650) + 0x78f4" (pointer_expression "*(int *)(pcVar37 + 0x352650)" * (cast_expression "(int *)(pcVar37 + 0x352650)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x352650)" ( (binary_expression "pcVar37 + 0x352650" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pdVar16 = pdVar14;" (assignment_expression "pdVar16 = pdVar14" identifier = identifier) ;) (expression_statement "piVar2 = piVar48;" (assignment_expression "piVar2 = piVar48" identifier = identifier) ;) (expression_statement "puVar23 = puVar32;" (assignment_expression "puVar23 = puVar32" identifier = identifier) ;) (expression_statement "pdVar5 = pdVar29;" (assignment_expression "pdVar5 = pdVar29" identifier = identifier) ;) (labeled_statement "LAB_000a7434:\n    piVar48 = (int *)(**(code **)(pcVar37 + 0x35338c))\n                               (*(int *)(pcVar37 + 0x352650) + -0x784,\n                                *(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar37 + 0x352650) + 0x78f4);" statement_identifier : (expression_statement "piVar48 = (int *)(**(code **)(pcVar37 + 0x35338c))\n                               (*(int *)(pcVar37 + 0x352650) + -0x784,\n                                *(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar37 + 0x352650) + 0x78f4);" (assignment_expression "piVar48 = (int *)(**(code **)(pcVar37 + 0x35338c))\n                               (*(int *)(pcVar37 + 0x352650) + -0x784,\n                                *(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar37 + 0x352650) + 0x78f4)" identifier = (cast_expression "(int *)(**(code **)(pcVar37 + 0x35338c))\n                               (*(int *)(pcVar37 + 0x352650) + -0x784,\n                                *(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar37 + 0x352650) + 0x78f4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar37 + 0x35338c))\n                               (*(int *)(pcVar37 + 0x352650) + -0x784,\n                                *(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar37 + 0x352650) + 0x78f4)" (parenthesized_expression "(**(code **)(pcVar37 + 0x35338c))" ( (pointer_expression "**(code **)(pcVar37 + 0x35338c)" * (pointer_expression "*(code **)(pcVar37 + 0x35338c)" * (cast_expression "(code **)(pcVar37 + 0x35338c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x35338c)" ( (binary_expression "pcVar37 + 0x35338c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar37 + 0x352650) + -0x784,\n                                *(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar37 + 0x352650) + 0x78f4)" ( (binary_expression "*(int *)(pcVar37 + 0x352650) + -0x784" (pointer_expression "*(int *)(pcVar37 + 0x352650)" * (cast_expression "(int *)(pcVar37 + 0x352650)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x352650)" ( (binary_expression "pcVar37 + 0x352650" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar37 + 0x352650) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + 0x352650)" * (cast_expression "(int *)(pcVar37 + 0x352650)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x352650)" ( (binary_expression "pcVar37 + 0x352650" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar37 + 0x352650) + 0x78f4" (pointer_expression "*(int *)(pcVar37 + 0x352650)" * (cast_expression "(int *)(pcVar37 + 0x352650)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x352650)" ( (binary_expression "pcVar37 + 0x352650" identifier + number_literal) )))) + number_literal) ))))) ;)) (labeled_statement "LAB_000a745c:\n    iStack_760 = *(int *)(pcVar37 + 0x352654) + -0x2f6c;" statement_identifier : (expression_statement "iStack_760 = *(int *)(pcVar37 + 0x352654) + -0x2f6c;" (assignment_expression "iStack_760 = *(int *)(pcVar37 + 0x352654) + -0x2f6c" identifier = (binary_expression "*(int *)(pcVar37 + 0x352654) + -0x2f6c" (pointer_expression "*(int *)(pcVar37 + 0x352654)" * (cast_expression "(int *)(pcVar37 + 0x352654)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x352654)" ( (binary_expression "pcVar37 + 0x352654" identifier + number_literal) )))) + number_literal)) ;)) (expression_statement "piStack_75c = piVar48;" (assignment_expression "piStack_75c = piVar48" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar37 + 0x352f64))\n              (0x8000,*(int *)(pcVar37 + 0x352650) + 0x69c0,*(int *)(pcVar37 + 0x352650) + 0x78e4,\n               0x4c3);" (call_expression "(**(code **)(pcVar37 + 0x352f64))\n              (0x8000,*(int *)(pcVar37 + 0x352650) + 0x69c0,*(int *)(pcVar37 + 0x352650) + 0x78e4,\n               0x4c3)" (parenthesized_expression "(**(code **)(pcVar37 + 0x352f64))" ( (pointer_expression "**(code **)(pcVar37 + 0x352f64)" * (pointer_expression "*(code **)(pcVar37 + 0x352f64)" * (cast_expression "(code **)(pcVar37 + 0x352f64)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x352f64)" ( (binary_expression "pcVar37 + 0x352f64" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(pcVar37 + 0x352650) + 0x69c0,*(int *)(pcVar37 + 0x352650) + 0x78e4,\n               0x4c3)" ( number_literal , (binary_expression "*(int *)(pcVar37 + 0x352650) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + 0x352650)" * (cast_expression "(int *)(pcVar37 + 0x352650)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x352650)" ( (binary_expression "pcVar37 + 0x352650" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar37 + 0x352650) + 0x78e4" (pointer_expression "*(int *)(pcVar37 + 0x352650)" * (cast_expression "(int *)(pcVar37 + 0x352650)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x352650)" ( (binary_expression "pcVar37 + 0x352650" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) }) (else_clause "else {\n    if (piVar2[0xcdb] != -0x54535255) goto LAB_000a7434;\n    piVar48 = piVar2 + 0xd0;\n    if (piVar2[0xcd4] != 0) goto LAB_000a745c;\n  }" else (compound_statement "{\n    if (piVar2[0xcdb] != -0x54535255) goto LAB_000a7434;\n    piVar48 = piVar2 + 0xd0;\n    if (piVar2[0xcd4] != 0) goto LAB_000a745c;\n  }" { (if_statement "if (piVar2[0xcdb] != -0x54535255) goto LAB_000a7434;" if (parenthesized_expression "(piVar2[0xcdb] != -0x54535255)" ( (binary_expression "piVar2[0xcdb] != -0x54535255" (subscript_expression "piVar2[0xcdb]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_000a7434;" goto statement_identifier ;)) (expression_statement "piVar48 = piVar2 + 0xd0;" (assignment_expression "piVar48 = piVar2 + 0xd0" identifier = (binary_expression "piVar2 + 0xd0" identifier + number_literal)) ;) (if_statement "if (piVar2[0xcd4] != 0) goto LAB_000a745c;" if (parenthesized_expression "(piVar2[0xcd4] != 0)" ( (binary_expression "piVar2[0xcd4] != 0" (subscript_expression "piVar2[0xcd4]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_000a745c;" goto statement_identifier ;)) }))) (expression_statement "pcVar37 = pcStack_758;" (assignment_expression "pcVar37 = pcStack_758" identifier = identifier) ;) (if_statement "if (puVar23 == (uint *)0x0) {\n    (**(code **)(pcStack_758 + -0x7290))\n              (*(int *)(pcStack_758 + -0x7fcc) + 0x6a20,*(int *)(pcStack_758 + -0x7fcc) + 0x69c0,\n               0x4c4,*(int *)(pcStack_758 + -0x7fcc) + 0x78f4);\nLAB_000a74c4:\n    (**(code **)(pcVar37 + -0x7290))\n              (*(int *)(pcVar37 + -0x7fcc) + 0x6a40,*(int *)(pcVar37 + -0x7fcc) + 0x69c0);\nLAB_000a74e8:\n    dStack_668 = (double)(**(code **)(pcVar37 + -0x7290))\n                                   (*(int *)(pcVar37 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar37 + -0x7fcc) + 0x69c0);\nLAB_000a750c:\n    dStack_668 = dStack_668 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);\n  }\n  else {\n    if (puVar23[0xcdb] != 0xabacadab) goto LAB_000a74c4;\n    if (pdVar16 == (double *)0x0) goto LAB_000a74e8;\n    uStack_678._4_4_ = 0;\n    uStack_678._0_4_ = 0;\n    uStack_66c = 0;\n    uStack_670 = 0;\n    dStack_668 = (double)(int)puVar23[6];\n    if ((int)puVar23[6] < 0) goto LAB_000a750c;\n  }" if (parenthesized_expression "(puVar23 == (uint *)0x0)" ( (binary_expression "puVar23 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(pcStack_758 + -0x7290))\n              (*(int *)(pcStack_758 + -0x7fcc) + 0x6a20,*(int *)(pcStack_758 + -0x7fcc) + 0x69c0,\n               0x4c4,*(int *)(pcStack_758 + -0x7fcc) + 0x78f4);\nLAB_000a74c4:\n    (**(code **)(pcVar37 + -0x7290))\n              (*(int *)(pcVar37 + -0x7fcc) + 0x6a40,*(int *)(pcVar37 + -0x7fcc) + 0x69c0);\nLAB_000a74e8:\n    dStack_668 = (double)(**(code **)(pcVar37 + -0x7290))\n                                   (*(int *)(pcVar37 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar37 + -0x7fcc) + 0x69c0);\nLAB_000a750c:\n    dStack_668 = dStack_668 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);\n  }" { (expression_statement "(**(code **)(pcStack_758 + -0x7290))\n              (*(int *)(pcStack_758 + -0x7fcc) + 0x6a20,*(int *)(pcStack_758 + -0x7fcc) + 0x69c0,\n               0x4c4,*(int *)(pcStack_758 + -0x7fcc) + 0x78f4);" (call_expression "(**(code **)(pcStack_758 + -0x7290))\n              (*(int *)(pcStack_758 + -0x7fcc) + 0x6a20,*(int *)(pcStack_758 + -0x7fcc) + 0x69c0,\n               0x4c4,*(int *)(pcStack_758 + -0x7fcc) + 0x78f4)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x7290))" ( (pointer_expression "**(code **)(pcStack_758 + -0x7290)" * (pointer_expression "*(code **)(pcStack_758 + -0x7290)" * (cast_expression "(code **)(pcStack_758 + -0x7290)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x7290)" ( (binary_expression "pcStack_758 + -0x7290" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_758 + -0x7fcc) + 0x6a20,*(int *)(pcStack_758 + -0x7fcc) + 0x69c0,\n               0x4c4,*(int *)(pcStack_758 + -0x7fcc) + 0x78f4)" ( (binary_expression "*(int *)(pcStack_758 + -0x7fcc) + 0x6a20" (pointer_expression "*(int *)(pcStack_758 + -0x7fcc)" * (cast_expression "(int *)(pcStack_758 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fcc)" ( (binary_expression "pcStack_758 + -0x7fcc" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcStack_758 + -0x7fcc) + 0x69c0" (pointer_expression "*(int *)(pcStack_758 + -0x7fcc)" * (cast_expression "(int *)(pcStack_758 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fcc)" ( (binary_expression "pcStack_758 + -0x7fcc" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcStack_758 + -0x7fcc) + 0x78f4" (pointer_expression "*(int *)(pcStack_758 + -0x7fcc)" * (cast_expression "(int *)(pcStack_758 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fcc)" ( (binary_expression "pcStack_758 + -0x7fcc" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_000a74c4:\n    (**(code **)(pcVar37 + -0x7290))\n              (*(int *)(pcVar37 + -0x7fcc) + 0x6a40,*(int *)(pcVar37 + -0x7fcc) + 0x69c0);" statement_identifier : (expression_statement "(**(code **)(pcVar37 + -0x7290))\n              (*(int *)(pcVar37 + -0x7fcc) + 0x6a40,*(int *)(pcVar37 + -0x7fcc) + 0x69c0);" (call_expression "(**(code **)(pcVar37 + -0x7290))\n              (*(int *)(pcVar37 + -0x7fcc) + 0x6a40,*(int *)(pcVar37 + -0x7fcc) + 0x69c0)" (parenthesized_expression "(**(code **)(pcVar37 + -0x7290))" ( (pointer_expression "**(code **)(pcVar37 + -0x7290)" * (pointer_expression "*(code **)(pcVar37 + -0x7290)" * (cast_expression "(code **)(pcVar37 + -0x7290)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + -0x7290)" ( (binary_expression "pcVar37 + -0x7290" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar37 + -0x7fcc) + 0x6a40,*(int *)(pcVar37 + -0x7fcc) + 0x69c0)" ( (binary_expression "*(int *)(pcVar37 + -0x7fcc) + 0x6a40" (pointer_expression "*(int *)(pcVar37 + -0x7fcc)" * (cast_expression "(int *)(pcVar37 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + -0x7fcc)" ( (binary_expression "pcVar37 + -0x7fcc" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar37 + -0x7fcc) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + -0x7fcc)" * (cast_expression "(int *)(pcVar37 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + -0x7fcc)" ( (binary_expression "pcVar37 + -0x7fcc" identifier + number_literal) )))) + number_literal) ))) ;)) (labeled_statement "LAB_000a74e8:\n    dStack_668 = (double)(**(code **)(pcVar37 + -0x7290))\n                                   (*(int *)(pcVar37 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar37 + -0x7fcc) + 0x69c0);" statement_identifier : (expression_statement "dStack_668 = (double)(**(code **)(pcVar37 + -0x7290))\n                                   (*(int *)(pcVar37 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar37 + -0x7fcc) + 0x69c0);" (assignment_expression "dStack_668 = (double)(**(code **)(pcVar37 + -0x7290))\n                                   (*(int *)(pcVar37 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar37 + -0x7fcc) + 0x69c0)" identifier = (cast_expression "(double)(**(code **)(pcVar37 + -0x7290))\n                                   (*(int *)(pcVar37 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar37 + -0x7fcc) + 0x69c0)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcVar37 + -0x7290))\n                                   (*(int *)(pcVar37 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar37 + -0x7fcc) + 0x69c0)" (parenthesized_expression "(**(code **)(pcVar37 + -0x7290))" ( (pointer_expression "**(code **)(pcVar37 + -0x7290)" * (pointer_expression "*(code **)(pcVar37 + -0x7290)" * (cast_expression "(code **)(pcVar37 + -0x7290)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + -0x7290)" ( (binary_expression "pcVar37 + -0x7290" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar37 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar37 + -0x7fcc) + 0x69c0)" ( (binary_expression "*(int *)(pcVar37 + -0x7fcc) + 0x6a6c" (pointer_expression "*(int *)(pcVar37 + -0x7fcc)" * (cast_expression "(int *)(pcVar37 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + -0x7fcc)" ( (binary_expression "pcVar37 + -0x7fcc" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar37 + -0x7fcc) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + -0x7fcc)" * (cast_expression "(int *)(pcVar37 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + -0x7fcc)" ( (binary_expression "pcVar37 + -0x7fcc" identifier + number_literal) )))) + number_literal) ))))) ;)) (labeled_statement "LAB_000a750c:\n    dStack_668 = dStack_668 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);" statement_identifier : (expression_statement "dStack_668 = dStack_668 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);" (assignment_expression "dStack_668 = dStack_668 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8)" identifier = (binary_expression "dStack_668 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8)" identifier + (pointer_expression "*(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8)" * (cast_expression "(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar37 + -0x7fd0) + 0x43e8)" ( (binary_expression "*(int *)(pcVar37 + -0x7fd0) + 0x43e8" (pointer_expression "*(int *)(pcVar37 + -0x7fd0)" * (cast_expression "(int *)(pcVar37 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + -0x7fd0)" ( (binary_expression "pcVar37 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;)) }) (else_clause "else {\n    if (puVar23[0xcdb] != 0xabacadab) goto LAB_000a74c4;\n    if (pdVar16 == (double *)0x0) goto LAB_000a74e8;\n    uStack_678._4_4_ = 0;\n    uStack_678._0_4_ = 0;\n    uStack_66c = 0;\n    uStack_670 = 0;\n    dStack_668 = (double)(int)puVar23[6];\n    if ((int)puVar23[6] < 0) goto LAB_000a750c;\n  }" else (compound_statement "{\n    if (puVar23[0xcdb] != 0xabacadab) goto LAB_000a74c4;\n    if (pdVar16 == (double *)0x0) goto LAB_000a74e8;\n    uStack_678._4_4_ = 0;\n    uStack_678._0_4_ = 0;\n    uStack_66c = 0;\n    uStack_670 = 0;\n    dStack_668 = (double)(int)puVar23[6];\n    if ((int)puVar23[6] < 0) goto LAB_000a750c;\n  }" { (if_statement "if (puVar23[0xcdb] != 0xabacadab) goto LAB_000a74c4;" if (parenthesized_expression "(puVar23[0xcdb] != 0xabacadab)" ( (binary_expression "puVar23[0xcdb] != 0xabacadab" (subscript_expression "puVar23[0xcdb]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_000a74c4;" goto statement_identifier ;)) (if_statement "if (pdVar16 == (double *)0x0) goto LAB_000a74e8;" if (parenthesized_expression "(pdVar16 == (double *)0x0)" ( (binary_expression "pdVar16 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000a74e8;" goto statement_identifier ;)) (expression_statement "uStack_678._4_4_ = 0;" (assignment_expression "uStack_678._4_4_ = 0" (field_expression "uStack_678._4_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "uStack_678._0_4_ = 0;" (assignment_expression "uStack_678._0_4_ = 0" (field_expression "uStack_678._0_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "uStack_66c = 0;" (assignment_expression "uStack_66c = 0" identifier = number_literal) ;) (expression_statement "uStack_670 = 0;" (assignment_expression "uStack_670 = 0" identifier = number_literal) ;) (expression_statement "dStack_668 = (double)(int)puVar23[6];" (assignment_expression "dStack_668 = (double)(int)puVar23[6]" identifier = (cast_expression "(double)(int)puVar23[6]" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar23[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar23[6]" identifier [ number_literal ])))) ;) (if_statement "if ((int)puVar23[6] < 0) goto LAB_000a750c;" if (parenthesized_expression "((int)puVar23[6] < 0)" ( (binary_expression "(int)puVar23[6] < 0" (cast_expression "(int)puVar23[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar23[6]" identifier [ number_literal ])) < number_literal) )) (goto_statement "goto LAB_000a750c;" goto statement_identifier ;)) }))) (expression_statement "dStack_668 = dStack_668 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408);" (assignment_expression "dStack_668 = dStack_668 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408)" identifier = (binary_expression "dStack_668 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408)" identifier - (pointer_expression "*(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar37 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcVar37 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcVar37 + -0x7fd0)" * (cast_expression "(int *)(pcVar37 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + -0x7fd0)" ( (binary_expression "pcVar37 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "uStack_65c = 0;" (assignment_expression "uStack_65c = 0" identifier = number_literal) ;) (expression_statement "uStack_660 = 0;" (assignment_expression "uStack_660 = 0" identifier = number_literal) ;) (expression_statement "dStack_658 = dStack_668;" (assignment_expression "dStack_658 = dStack_668" identifier = identifier) ;) (expression_statement "dStack_650 = (double)(int)puVar23[7];" (assignment_expression "dStack_650 = (double)(int)puVar23[7]" identifier = (cast_expression "(double)(int)puVar23[7]" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)puVar23[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar23[7]" identifier [ number_literal ])))) ;) (if_statement "if ((int)puVar23[7] < 0) {\n    dStack_650 = dStack_650 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);\n  }" if (parenthesized_expression "((int)puVar23[7] < 0)" ( (binary_expression "(int)puVar23[7] < 0" (cast_expression "(int)puVar23[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar23[7]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n    dStack_650 = dStack_650 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);\n  }" { (expression_statement "dStack_650 = dStack_650 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);" (assignment_expression "dStack_650 = dStack_650 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8)" identifier = (binary_expression "dStack_650 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8)" identifier + (pointer_expression "*(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8)" * (cast_expression "(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar37 + -0x7fd0) + 0x43e8)" ( (binary_expression "*(int *)(pcVar37 + -0x7fd0) + 0x43e8" (pointer_expression "*(int *)(pcVar37 + -0x7fd0)" * (cast_expression "(int *)(pcVar37 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + -0x7fd0)" ( (binary_expression "pcVar37 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dStack_650 = dStack_650 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408);" (assignment_expression "dStack_650 = dStack_650 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408)" identifier = (binary_expression "dStack_650 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408)" identifier - (pointer_expression "*(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar37 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcVar37 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcVar37 + -0x7fd0)" * (cast_expression "(int *)(pcVar37 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + -0x7fd0)" ( (binary_expression "pcVar37 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "uStack_644 = 0;" (assignment_expression "uStack_644 = 0" identifier = number_literal) ;) (expression_statement "uStack_648 = 0;" (assignment_expression "uStack_648 = 0" identifier = number_literal) ;) (expression_statement "dStack_640 = dStack_650;" (assignment_expression "dStack_640 = dStack_650" identifier = identifier) ;) (expression_statement "dVar45 = *pdVar16;" (assignment_expression "dVar45 = *pdVar16" identifier = (pointer_expression "*pdVar16" * identifier)) ;) (expression_statement "dVar44 = pdVar16[2];" (assignment_expression "dVar44 = pdVar16[2]" identifier = (subscript_expression "pdVar16[2]" identifier [ number_literal ])) ;) (expression_statement "dVar47 = pdVar16[4];" (assignment_expression "dVar47 = pdVar16[4]" identifier = (subscript_expression "pdVar16[4]" identifier [ number_literal ])) ;) (expression_statement "dVar40 = pdVar16[1];" (assignment_expression "dVar40 = pdVar16[1]" identifier = (subscript_expression "pdVar16[1]" identifier [ number_literal ])) ;) (expression_statement "dVar41 = pdVar16[3];" (assignment_expression "dVar41 = pdVar16[3]" identifier = (subscript_expression "pdVar16[3]" identifier [ number_literal ])) ;) (expression_statement "dVar39 = pdVar16[5];" (assignment_expression "dVar39 = pdVar16[5]" identifier = (subscript_expression "pdVar16[5]" identifier [ number_literal ])) ;) (expression_statement "pdVar14 = (double *)&uStack_678;" (assignment_expression "pdVar14 = (double *)&uStack_678" identifier = (cast_expression "(double *)&uStack_678" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&uStack_678" & identifier))) ;) (expression_statement "pdVar29 = pdVar14;" (assignment_expression "pdVar29 = pdVar14" identifier = identifier) ;) (do_statement "do {\n    dVar42 = *pdVar29;\n    *pdVar29 = dVar45 * dVar42 + dVar44 * pdVar29[1] + dVar47;\n    pdVar29[1] = dVar40 * dVar42 + dVar41 * pdVar29[1] + dVar39;\n    pdVar29 = pdVar29 + 2;\n  } while (pdVar29 != (double *)&uStack_638);" do (compound_statement "{\n    dVar42 = *pdVar29;\n    *pdVar29 = dVar45 * dVar42 + dVar44 * pdVar29[1] + dVar47;\n    pdVar29[1] = dVar40 * dVar42 + dVar41 * pdVar29[1] + dVar39;\n    pdVar29 = pdVar29 + 2;\n  }" { (expression_statement "dVar42 = *pdVar29;" (assignment_expression "dVar42 = *pdVar29" identifier = (pointer_expression "*pdVar29" * identifier)) ;) (expression_statement "*pdVar29 = dVar45 * dVar42 + dVar44 * pdVar29[1] + dVar47;" (assignment_expression "*pdVar29 = dVar45 * dVar42 + dVar44 * pdVar29[1] + dVar47" (pointer_expression "*pdVar29" * identifier) = (binary_expression "dVar45 * dVar42 + dVar44 * pdVar29[1] + dVar47" (binary_expression "dVar45 * dVar42 + dVar44 * pdVar29[1]" (binary_expression "dVar45 * dVar42" identifier * identifier) + (binary_expression "dVar44 * pdVar29[1]" identifier * (subscript_expression "pdVar29[1]" identifier [ number_literal ]))) + identifier)) ;) (expression_statement "pdVar29[1] = dVar40 * dVar42 + dVar41 * pdVar29[1] + dVar39;" (assignment_expression "pdVar29[1] = dVar40 * dVar42 + dVar41 * pdVar29[1] + dVar39" (subscript_expression "pdVar29[1]" identifier [ number_literal ]) = (binary_expression "dVar40 * dVar42 + dVar41 * pdVar29[1] + dVar39" (binary_expression "dVar40 * dVar42 + dVar41 * pdVar29[1]" (binary_expression "dVar40 * dVar42" identifier * identifier) + (binary_expression "dVar41 * pdVar29[1]" identifier * (subscript_expression "pdVar29[1]" identifier [ number_literal ]))) + identifier)) ;) (expression_statement "pdVar29 = pdVar29 + 2;" (assignment_expression "pdVar29 = pdVar29 + 2" identifier = (binary_expression "pdVar29 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(pdVar29 != (double *)&uStack_638)" ( (binary_expression "pdVar29 != (double *)&uStack_638" identifier != (cast_expression "(double *)&uStack_638" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&uStack_638" & identifier))) )) ;) (expression_statement "dVar39 = (double)CONCAT44(uStack_670,uStack_66c);" (assignment_expression "dVar39 = (double)CONCAT44(uStack_670,uStack_66c)" identifier = (cast_expression "(double)CONCAT44(uStack_670,uStack_66c)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_670,uStack_66c)" identifier (argument_list "(uStack_670,uStack_66c)" ( identifier , identifier ))))) ;) (expression_statement "dVar41 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_);" (assignment_expression "dVar41 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_)" identifier = (cast_expression "(double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_678._0_4_,uStack_678._4_4_)" identifier (argument_list "(uStack_678._0_4_,uStack_678._4_4_)" ( (field_expression "uStack_678._0_4_" identifier . field_identifier) , (field_expression "uStack_678._4_4_" identifier . field_identifier) ))))) ;) (expression_statement "dVar40 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_);" (assignment_expression "dVar40 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_)" identifier = (cast_expression "(double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_678._0_4_,uStack_678._4_4_)" identifier (argument_list "(uStack_678._0_4_,uStack_678._4_4_)" ( (field_expression "uStack_678._0_4_" identifier . field_identifier) , (field_expression "uStack_678._4_4_" identifier . field_identifier) ))))) ;) (expression_statement "dVar47 = (double)CONCAT44(uStack_670,uStack_66c);" (assignment_expression "dVar47 = (double)CONCAT44(uStack_670,uStack_66c)" identifier = (cast_expression "(double)CONCAT44(uStack_670,uStack_66c)" ( (type_descriptor "double" primitive_type) ) (call_expression "CONCAT44(uStack_670,uStack_66c)" identifier (argument_list "(uStack_670,uStack_66c)" ( identifier , identifier ))))) ;) (do_statement "do {\n    dVar45 = pdVar14[2];\n    dVar44 = dVar45;\n    if (dVar41 <= dVar45) {\n      dVar44 = dVar41;\n    }\n    dVar42 = pdVar14[3];\n    dVar46 = dVar42;\n    if (dVar47 <= dVar42) {\n      dVar46 = dVar47;\n    }\n    if (dVar45 <= dVar40) {\n      dVar45 = dVar40;\n    }\n    if (dVar42 <= dVar39) {\n      dVar42 = dVar39;\n    }\n    pdVar14 = pdVar14 + 2;\n    dVar39 = dVar42;\n    dVar41 = dVar44;\n    dVar40 = dVar45;\n    dVar47 = dVar46;\n  } while ((double *)&uStack_648 != pdVar14);" do (compound_statement "{\n    dVar45 = pdVar14[2];\n    dVar44 = dVar45;\n    if (dVar41 <= dVar45) {\n      dVar44 = dVar41;\n    }\n    dVar42 = pdVar14[3];\n    dVar46 = dVar42;\n    if (dVar47 <= dVar42) {\n      dVar46 = dVar47;\n    }\n    if (dVar45 <= dVar40) {\n      dVar45 = dVar40;\n    }\n    if (dVar42 <= dVar39) {\n      dVar42 = dVar39;\n    }\n    pdVar14 = pdVar14 + 2;\n    dVar39 = dVar42;\n    dVar41 = dVar44;\n    dVar40 = dVar45;\n    dVar47 = dVar46;\n  }" { (expression_statement "dVar45 = pdVar14[2];" (assignment_expression "dVar45 = pdVar14[2]" identifier = (subscript_expression "pdVar14[2]" identifier [ number_literal ])) ;) (expression_statement "dVar44 = dVar45;" (assignment_expression "dVar44 = dVar45" identifier = identifier) ;) (if_statement "if (dVar41 <= dVar45) {\n      dVar44 = dVar41;\n    }" if (parenthesized_expression "(dVar41 <= dVar45)" ( (binary_expression "dVar41 <= dVar45" identifier <= identifier) )) (compound_statement "{\n      dVar44 = dVar41;\n    }" { (expression_statement "dVar44 = dVar41;" (assignment_expression "dVar44 = dVar41" identifier = identifier) ;) })) (expression_statement "dVar42 = pdVar14[3];" (assignment_expression "dVar42 = pdVar14[3]" identifier = (subscript_expression "pdVar14[3]" identifier [ number_literal ])) ;) (expression_statement "dVar46 = dVar42;" (assignment_expression "dVar46 = dVar42" identifier = identifier) ;) (if_statement "if (dVar47 <= dVar42) {\n      dVar46 = dVar47;\n    }" if (parenthesized_expression "(dVar47 <= dVar42)" ( (binary_expression "dVar47 <= dVar42" identifier <= identifier) )) (compound_statement "{\n      dVar46 = dVar47;\n    }" { (expression_statement "dVar46 = dVar47;" (assignment_expression "dVar46 = dVar47" identifier = identifier) ;) })) (if_statement "if (dVar45 <= dVar40) {\n      dVar45 = dVar40;\n    }" if (parenthesized_expression "(dVar45 <= dVar40)" ( (binary_expression "dVar45 <= dVar40" identifier <= identifier) )) (compound_statement "{\n      dVar45 = dVar40;\n    }" { (expression_statement "dVar45 = dVar40;" (assignment_expression "dVar45 = dVar40" identifier = identifier) ;) })) (if_statement "if (dVar42 <= dVar39) {\n      dVar42 = dVar39;\n    }" if (parenthesized_expression "(dVar42 <= dVar39)" ( (binary_expression "dVar42 <= dVar39" identifier <= identifier) )) (compound_statement "{\n      dVar42 = dVar39;\n    }" { (expression_statement "dVar42 = dVar39;" (assignment_expression "dVar42 = dVar39" identifier = identifier) ;) })) (expression_statement "pdVar14 = pdVar14 + 2;" (assignment_expression "pdVar14 = pdVar14 + 2" identifier = (binary_expression "pdVar14 + 2" identifier + number_literal)) ;) (expression_statement "dVar39 = dVar42;" (assignment_expression "dVar39 = dVar42" identifier = identifier) ;) (expression_statement "dVar41 = dVar44;" (assignment_expression "dVar41 = dVar44" identifier = identifier) ;) (expression_statement "dVar40 = dVar45;" (assignment_expression "dVar40 = dVar45" identifier = identifier) ;) (expression_statement "dVar47 = dVar46;" (assignment_expression "dVar47 = dVar46" identifier = identifier) ;) }) while (parenthesized_expression "((double *)&uStack_648 != pdVar14)" ( (binary_expression "(double *)&uStack_648 != pdVar14" (cast_expression "(double *)&uStack_648" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&uStack_648" & identifier)) != identifier) )) ;) (expression_statement "ppiVar24 = (int **)0x1;" (assignment_expression "ppiVar24 = (int **)0x1" identifier = (cast_expression "(int **)0x1" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pdVar29 = pdVar5;" (assignment_expression "pdVar29 = pdVar5" identifier = identifier) ;) (expression_statement "iVar3 = (**(code **)(pcVar37 + -0x7074))(piVar2);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + -0x7074))(piVar2)" identifier = (call_expression "(**(code **)(pcVar37 + -0x7074))(piVar2)" (parenthesized_expression "(**(code **)(pcVar37 + -0x7074))" ( (pointer_expression "**(code **)(pcVar37 + -0x7074)" * (pointer_expression "*(code **)(pcVar37 + -0x7074)" * (cast_expression "(code **)(pcVar37 + -0x7074)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + -0x7074)" ( (binary_expression "pcVar37 + -0x7074" identifier + number_literal) ))))) )) (argument_list "(piVar2)" ( identifier )))) ;) (if_statement "if (iVar3 != 0) {\n    dStack_750 = dVar44;\n    if (dVar44 <= 0.0) {\n      dStack_750 = 0.0;\n    }\n    dStack_748 = dVar46;\n    if (dVar46 <= 0.0) {\n      dStack_748 = 0.0;\n    }\n    dStack_740 = (double)piVar2[6];\n    if (piVar2[6] < 0) {\n      dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_740 = dStack_740 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar45 < dStack_740) {\n      dStack_740 = dVar45;\n    }\n    dStack_738 = (double)piVar2[7];\n    if (piVar2[7] < 0) {\n      dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_738 = dStack_738 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar42 < dStack_738) {\n      dStack_738 = dVar42;\n    }\n    dStack_6e8 = *pdVar16 * pdVar16[3] - pdVar16[1] * pdVar16[2];\n    if (0.0 <= dStack_6e8) {\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    }\n    else {\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);\n    }\n    if (dStack_6e8 * dVar39 < *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)) {\n      dStack_6e8 = dVar39 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8);\n    }\n    else {\n      dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;\n    }\n    dStack_700 = pdVar16[3] * dStack_6e8;\n    dStack_6f8 = -pdVar16[1] * dStack_6e8;\n    dStack_6f0 = -pdVar16[2] * dStack_6e8;\n    dStack_6e8 = *pdVar16 * dStack_6e8;\n    dStack_6e0 = dStack_700 * -pdVar16[4] - dStack_6f0 * pdVar16[5];\n    dStack_6d8 = dStack_6f8 * -pdVar16[4] - dStack_6e8 * pdVar16[5];\n    (**(code **)(pcStack_758 + -0x75e4))(piVar2,auStack_6d0);\n    dVar42 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0);\n    dVar39 = (double)(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar42);\n    dVar41 = (double)(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar42);\n    uVar4 = (**(code **)(pcStack_758 + -0x7144))(puVar23,pdVar5);\n    puVar35 = (undefined1 *)(**(code **)(pcStack_758 + -0x79c4))(piVar2,pdVar5);\n    iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23);\n    if (((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23), iVar3 == 3)) &&\n       ((iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 4 ||\n        (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3)))) {\n      (**(code **)(pcStack_758 + -0x775c))(7);\n      iVar10 = (int)dVar41 - (int)dVar39;\n      iVar3 = iVar10;\n      if (iVar10 < 0) {\n        iVar3 = iVar10 + 0x3f;\n      }\n      pdVar16 = (double *)(iVar3 >> 6);\n      if (extraout_v1 < (int)pdVar16) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        bVar1 = extraout_v1_01 < 2;\n      }\n      else {\n        bVar1 = iVar10 < 0x80;\n      }\n      pdVar29 = (double *)0x1;\n      if (((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16)\n         ) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_03;\n        pdVar16 = extraout_v1_03;\n      }\n    }\n    else {\n      uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar51 < 2) {\n          pdVar29 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }\n      else {\nLAB_000a77f8:\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n      }\n      uVar51 = (*pcVar37)(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_00;\n      }\n      else {\n        pdVar29 = (double *)0x2;\n      }\n    }\nLAB_000a7818:\n    pdStack_720 = &dStack_700;\n    puStack_714 = auStack_6d0;\n    pdStack_710 = &dStack_750;\n    iStack_704 = 1;\n    ppiVar24 = &piStack_72c;\n    piStack_72c = piVar2;\n    puStack_728 = puVar23;\n    pdStack_724 = pdVar5;\n    puStack_71c = puVar35;\n    uStack_718 = uVar4;\n    iStack_70c = (int)dVar39;\n    iStack_708 = (int)dVar41;\n    (**(code **)(pcStack_758 + -0x7700))\n              (*(int *)(pcStack_758 + -0x7ea0) + 0x34c4,ppiVar24,pdVar29,0);\n    iVar3 = iStack_704;\n    (**(code **)(pcStack_758 + -0x79a4))(uVar4);\n    (**(code **)(pcStack_758 + -0x79a4))(puVar35);\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    dStack_750 = dVar44;\n    if (dVar44 <= 0.0) {\n      dStack_750 = 0.0;\n    }\n    dStack_748 = dVar46;\n    if (dVar46 <= 0.0) {\n      dStack_748 = 0.0;\n    }\n    dStack_740 = (double)piVar2[6];\n    if (piVar2[6] < 0) {\n      dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_740 = dStack_740 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar45 < dStack_740) {\n      dStack_740 = dVar45;\n    }\n    dStack_738 = (double)piVar2[7];\n    if (piVar2[7] < 0) {\n      dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_738 = dStack_738 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar42 < dStack_738) {\n      dStack_738 = dVar42;\n    }\n    dStack_6e8 = *pdVar16 * pdVar16[3] - pdVar16[1] * pdVar16[2];\n    if (0.0 <= dStack_6e8) {\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    }\n    else {\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);\n    }\n    if (dStack_6e8 * dVar39 < *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)) {\n      dStack_6e8 = dVar39 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8);\n    }\n    else {\n      dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;\n    }\n    dStack_700 = pdVar16[3] * dStack_6e8;\n    dStack_6f8 = -pdVar16[1] * dStack_6e8;\n    dStack_6f0 = -pdVar16[2] * dStack_6e8;\n    dStack_6e8 = *pdVar16 * dStack_6e8;\n    dStack_6e0 = dStack_700 * -pdVar16[4] - dStack_6f0 * pdVar16[5];\n    dStack_6d8 = dStack_6f8 * -pdVar16[4] - dStack_6e8 * pdVar16[5];\n    (**(code **)(pcStack_758 + -0x75e4))(piVar2,auStack_6d0);\n    dVar42 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0);\n    dVar39 = (double)(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar42);\n    dVar41 = (double)(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar42);\n    uVar4 = (**(code **)(pcStack_758 + -0x7144))(puVar23,pdVar5);\n    puVar35 = (undefined1 *)(**(code **)(pcStack_758 + -0x79c4))(piVar2,pdVar5);\n    iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23);\n    if (((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23), iVar3 == 3)) &&\n       ((iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 4 ||\n        (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3)))) {\n      (**(code **)(pcStack_758 + -0x775c))(7);\n      iVar10 = (int)dVar41 - (int)dVar39;\n      iVar3 = iVar10;\n      if (iVar10 < 0) {\n        iVar3 = iVar10 + 0x3f;\n      }\n      pdVar16 = (double *)(iVar3 >> 6);\n      if (extraout_v1 < (int)pdVar16) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        bVar1 = extraout_v1_01 < 2;\n      }\n      else {\n        bVar1 = iVar10 < 0x80;\n      }\n      pdVar29 = (double *)0x1;\n      if (((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16)\n         ) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_03;\n        pdVar16 = extraout_v1_03;\n      }\n    }\n    else {\n      uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar51 < 2) {\n          pdVar29 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }\n      else {\nLAB_000a77f8:\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n      }\n      uVar51 = (*pcVar37)(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_00;\n      }\n      else {\n        pdVar29 = (double *)0x2;\n      }\n    }\nLAB_000a7818:\n    pdStack_720 = &dStack_700;\n    puStack_714 = auStack_6d0;\n    pdStack_710 = &dStack_750;\n    iStack_704 = 1;\n    ppiVar24 = &piStack_72c;\n    piStack_72c = piVar2;\n    puStack_728 = puVar23;\n    pdStack_724 = pdVar5;\n    puStack_71c = puVar35;\n    uStack_718 = uVar4;\n    iStack_70c = (int)dVar39;\n    iStack_708 = (int)dVar41;\n    (**(code **)(pcStack_758 + -0x7700))\n              (*(int *)(pcStack_758 + -0x7ea0) + 0x34c4,ppiVar24,pdVar29,0);\n    iVar3 = iStack_704;\n    (**(code **)(pcStack_758 + -0x79a4))(uVar4);\n    (**(code **)(pcStack_758 + -0x79a4))(puVar35);\n  }" { (expression_statement "dStack_750 = dVar44;" (assignment_expression "dStack_750 = dVar44" identifier = identifier) ;) (if_statement "if (dVar44 <= 0.0) {\n      dStack_750 = 0.0;\n    }" if (parenthesized_expression "(dVar44 <= 0.0)" ( (binary_expression "dVar44 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n      dStack_750 = 0.0;\n    }" { (expression_statement "dStack_750 = 0.0;" (assignment_expression "dStack_750 = 0.0" identifier = number_literal) ;) })) (expression_statement "dStack_748 = dVar46;" (assignment_expression "dStack_748 = dVar46" identifier = identifier) ;) (if_statement "if (dVar46 <= 0.0) {\n      dStack_748 = 0.0;\n    }" if (parenthesized_expression "(dVar46 <= 0.0)" ( (binary_expression "dVar46 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n      dStack_748 = 0.0;\n    }" { (expression_statement "dStack_748 = 0.0;" (assignment_expression "dStack_748 = 0.0" identifier = number_literal) ;) })) (expression_statement "dStack_740 = (double)piVar2[6];" (assignment_expression "dStack_740 = (double)piVar2[6]" identifier = (cast_expression "(double)piVar2[6]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar2[6]" identifier [ number_literal ]))) ;) (if_statement "if (piVar2[6] < 0) {\n      dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }" if (parenthesized_expression "(piVar2[6] < 0)" ( (binary_expression "piVar2[6] < 0" (subscript_expression "piVar2[6]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n      dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }" { (expression_statement "dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);" (assignment_expression "dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" identifier = (binary_expression "dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" identifier + (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" * (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" ( (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x43e8" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" * (cast_expression "(int *)(pcStack_758 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fd0)" ( (binary_expression "pcStack_758 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dStack_740 = dStack_740 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);" (assignment_expression "dStack_740 = dStack_740 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" identifier = (binary_expression "dStack_740 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" identifier - (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" * (cast_expression "(int *)(pcStack_758 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fd0)" ( (binary_expression "pcStack_758 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) (if_statement "if (dVar45 < dStack_740) {\n      dStack_740 = dVar45;\n    }" if (parenthesized_expression "(dVar45 < dStack_740)" ( (binary_expression "dVar45 < dStack_740" identifier < identifier) )) (compound_statement "{\n      dStack_740 = dVar45;\n    }" { (expression_statement "dStack_740 = dVar45;" (assignment_expression "dStack_740 = dVar45" identifier = identifier) ;) })) (expression_statement "dStack_738 = (double)piVar2[7];" (assignment_expression "dStack_738 = (double)piVar2[7]" identifier = (cast_expression "(double)piVar2[7]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "piVar2[7]" identifier [ number_literal ]))) ;) (if_statement "if (piVar2[7] < 0) {\n      dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }" if (parenthesized_expression "(piVar2[7] < 0)" ( (binary_expression "piVar2[7] < 0" (subscript_expression "piVar2[7]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n      dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }" { (expression_statement "dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);" (assignment_expression "dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" identifier = (binary_expression "dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" identifier + (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" * (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" ( (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x43e8" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" * (cast_expression "(int *)(pcStack_758 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fd0)" ( (binary_expression "pcStack_758 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dStack_738 = dStack_738 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);" (assignment_expression "dStack_738 = dStack_738 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" identifier = (binary_expression "dStack_738 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" identifier - (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" * (cast_expression "(int *)(pcStack_758 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fd0)" ( (binary_expression "pcStack_758 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) (if_statement "if (dVar42 < dStack_738) {\n      dStack_738 = dVar42;\n    }" if (parenthesized_expression "(dVar42 < dStack_738)" ( (binary_expression "dVar42 < dStack_738" identifier < identifier) )) (compound_statement "{\n      dStack_738 = dVar42;\n    }" { (expression_statement "dStack_738 = dVar42;" (assignment_expression "dStack_738 = dVar42" identifier = identifier) ;) })) (expression_statement "dStack_6e8 = *pdVar16 * pdVar16[3] - pdVar16[1] * pdVar16[2];" (assignment_expression "dStack_6e8 = *pdVar16 * pdVar16[3] - pdVar16[1] * pdVar16[2]" identifier = (binary_expression "*pdVar16 * pdVar16[3] - pdVar16[1] * pdVar16[2]" (binary_expression "*pdVar16 * pdVar16[3]" (pointer_expression "*pdVar16" * identifier) * (subscript_expression "pdVar16[3]" identifier [ number_literal ])) - (binary_expression "pdVar16[1] * pdVar16[2]" (subscript_expression "pdVar16[1]" identifier [ number_literal ]) * (subscript_expression "pdVar16[2]" identifier [ number_literal ])))) ;) (if_statement "if (0.0 <= dStack_6e8) {\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    }\n    else {\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);\n    }" if (parenthesized_expression "(0.0 <= dStack_6e8)" ( (binary_expression "0.0 <= dStack_6e8" number_literal <= identifier) )) (compound_statement "{\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    }" { (expression_statement "dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);" (assignment_expression "dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" * (cast_expression "(int *)(pcStack_758 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fd0)" ( (binary_expression "pcStack_758 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);\n    }" else (compound_statement "{\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);\n    }" { (expression_statement "dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);" (assignment_expression "dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418)" * (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x4418)" ( (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" * (cast_expression "(int *)(pcStack_758 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fd0)" ( (binary_expression "pcStack_758 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (dStack_6e8 * dVar39 < *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)) {\n      dStack_6e8 = dVar39 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8);\n    }\n    else {\n      dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;\n    }" if (parenthesized_expression "(dStack_6e8 * dVar39 < *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8))" ( (binary_expression "dStack_6e8 * dVar39 < *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)" (binary_expression "dStack_6e8 * dVar39" identifier * identifier) < (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)" * (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)" ( (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x43c8" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" * (cast_expression "(int *)(pcStack_758 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fd0)" ( (binary_expression "pcStack_758 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) )) (compound_statement "{\n      dStack_6e8 = dVar39 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8);\n    }" { (expression_statement "dStack_6e8 = dVar39 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8);" (assignment_expression "dStack_6e8 = dVar39 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)" identifier = (binary_expression "dVar39 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)" identifier / (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)" * (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)" ( (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x43c8" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" * (cast_expression "(int *)(pcStack_758 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fd0)" ( (binary_expression "pcStack_758 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))))) ;) }) (else_clause "else {\n      dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;\n    }" else (compound_statement "{\n      dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;\n    }" { (expression_statement "dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;" (assignment_expression "dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8" identifier = (binary_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8" (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" * (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" ( (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" * (cast_expression "(int *)(pcStack_758 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fd0)" ( (binary_expression "pcStack_758 + -0x7fd0" identifier + number_literal) )))) + number_literal) )))) / identifier)) ;) }))) (expression_statement "dStack_700 = pdVar16[3] * dStack_6e8;" (assignment_expression "dStack_700 = pdVar16[3] * dStack_6e8" identifier = (binary_expression "pdVar16[3] * dStack_6e8" (subscript_expression "pdVar16[3]" identifier [ number_literal ]) * identifier)) ;) (expression_statement "dStack_6f8 = -pdVar16[1] * dStack_6e8;" (assignment_expression "dStack_6f8 = -pdVar16[1] * dStack_6e8" identifier = (binary_expression "-pdVar16[1] * dStack_6e8" (unary_expression "-pdVar16[1]" - (subscript_expression "pdVar16[1]" identifier [ number_literal ])) * identifier)) ;) (expression_statement "dStack_6f0 = -pdVar16[2] * dStack_6e8;" (assignment_expression "dStack_6f0 = -pdVar16[2] * dStack_6e8" identifier = (binary_expression "-pdVar16[2] * dStack_6e8" (unary_expression "-pdVar16[2]" - (subscript_expression "pdVar16[2]" identifier [ number_literal ])) * identifier)) ;) (expression_statement "dStack_6e8 = *pdVar16 * dStack_6e8;" (assignment_expression "dStack_6e8 = *pdVar16 * dStack_6e8" identifier = (binary_expression "*pdVar16 * dStack_6e8" (pointer_expression "*pdVar16" * identifier) * identifier)) ;) (expression_statement "dStack_6e0 = dStack_700 * -pdVar16[4] - dStack_6f0 * pdVar16[5];" (assignment_expression "dStack_6e0 = dStack_700 * -pdVar16[4] - dStack_6f0 * pdVar16[5]" identifier = (binary_expression "dStack_700 * -pdVar16[4] - dStack_6f0 * pdVar16[5]" (binary_expression "dStack_700 * -pdVar16[4]" identifier * (unary_expression "-pdVar16[4]" - (subscript_expression "pdVar16[4]" identifier [ number_literal ]))) - (binary_expression "dStack_6f0 * pdVar16[5]" identifier * (subscript_expression "pdVar16[5]" identifier [ number_literal ])))) ;) (expression_statement "dStack_6d8 = dStack_6f8 * -pdVar16[4] - dStack_6e8 * pdVar16[5];" (assignment_expression "dStack_6d8 = dStack_6f8 * -pdVar16[4] - dStack_6e8 * pdVar16[5]" identifier = (binary_expression "dStack_6f8 * -pdVar16[4] - dStack_6e8 * pdVar16[5]" (binary_expression "dStack_6f8 * -pdVar16[4]" identifier * (unary_expression "-pdVar16[4]" - (subscript_expression "pdVar16[4]" identifier [ number_literal ]))) - (binary_expression "dStack_6e8 * pdVar16[5]" identifier * (subscript_expression "pdVar16[5]" identifier [ number_literal ])))) ;) (expression_statement "(**(code **)(pcStack_758 + -0x75e4))(piVar2,auStack_6d0);" (call_expression "(**(code **)(pcStack_758 + -0x75e4))(piVar2,auStack_6d0)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x75e4))" ( (pointer_expression "**(code **)(pcStack_758 + -0x75e4)" * (pointer_expression "*(code **)(pcStack_758 + -0x75e4)" * (cast_expression "(code **)(pcStack_758 + -0x75e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x75e4)" ( (binary_expression "pcStack_758 + -0x75e4" identifier + number_literal) ))))) )) (argument_list "(piVar2,auStack_6d0)" ( identifier , identifier ))) ;) (expression_statement "dVar42 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0);" (assignment_expression "dVar42 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0)" identifier = (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0)" * (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0)" ( (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x43d0" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" * (cast_expression "(int *)(pcStack_758 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7fd0)" ( (binary_expression "pcStack_758 + -0x7fd0" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "dVar39 = (double)(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar42);" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar42)" identifier = (cast_expression "(double)(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar42)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar42)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x7c78))" ( (pointer_expression "**(code **)(pcStack_758 + -0x7c78)" * (pointer_expression "*(code **)(pcStack_758 + -0x7c78)" * (cast_expression "(code **)(pcStack_758 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x7c78)" ( (binary_expression "pcStack_758 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(dStack_748 - dVar42)" ( (binary_expression "dStack_748 - dVar42" identifier - identifier) ))))) ;) (expression_statement "dVar41 = (double)(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar42);" (assignment_expression "dVar41 = (double)(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar42)" identifier = (cast_expression "(double)(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar42)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar42)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x7228))" ( (pointer_expression "**(code **)(pcStack_758 + -0x7228)" * (pointer_expression "*(code **)(pcStack_758 + -0x7228)" * (cast_expression "(code **)(pcStack_758 + -0x7228)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x7228)" ( (binary_expression "pcStack_758 + -0x7228" identifier + number_literal) ))))) )) (argument_list "(dStack_738 + dVar42)" ( (binary_expression "dStack_738 + dVar42" identifier + identifier) ))))) ;) (expression_statement "uVar4 = (**(code **)(pcStack_758 + -0x7144))(puVar23,pdVar5);" (assignment_expression "uVar4 = (**(code **)(pcStack_758 + -0x7144))(puVar23,pdVar5)" identifier = (call_expression "(**(code **)(pcStack_758 + -0x7144))(puVar23,pdVar5)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x7144))" ( (pointer_expression "**(code **)(pcStack_758 + -0x7144)" * (pointer_expression "*(code **)(pcStack_758 + -0x7144)" * (cast_expression "(code **)(pcStack_758 + -0x7144)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x7144)" ( (binary_expression "pcStack_758 + -0x7144" identifier + number_literal) ))))) )) (argument_list "(puVar23,pdVar5)" ( identifier , identifier )))) ;) (expression_statement "puVar35 = (undefined1 *)(**(code **)(pcStack_758 + -0x79c4))(piVar2,pdVar5);" (assignment_expression "puVar35 = (undefined1 *)(**(code **)(pcStack_758 + -0x79c4))(piVar2,pdVar5)" identifier = (cast_expression "(undefined1 *)(**(code **)(pcStack_758 + -0x79c4))(piVar2,pdVar5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_758 + -0x79c4))(piVar2,pdVar5)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x79c4))" ( (pointer_expression "**(code **)(pcStack_758 + -0x79c4)" * (pointer_expression "*(code **)(pcStack_758 + -0x79c4)" * (cast_expression "(code **)(pcStack_758 + -0x79c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x79c4)" ( (binary_expression "pcStack_758 + -0x79c4" identifier + number_literal) ))))) )) (argument_list "(piVar2,pdVar5)" ( identifier , identifier ))))) ;) (expression_statement "iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23);" (assignment_expression "iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23)" identifier = (call_expression "(**(code **)(pcStack_758 + -0x73e4))(puVar23)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x73e4))" ( (pointer_expression "**(code **)(pcStack_758 + -0x73e4)" * (pointer_expression "*(code **)(pcStack_758 + -0x73e4)" * (cast_expression "(code **)(pcStack_758 + -0x73e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x73e4)" ( (binary_expression "pcStack_758 + -0x73e4" identifier + number_literal) ))))) )) (argument_list "(puVar23)" ( identifier )))) ;) (if_statement "if (((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23), iVar3 == 3)) &&\n       ((iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 4 ||\n        (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3)))) {\n      (**(code **)(pcStack_758 + -0x775c))(7);\n      iVar10 = (int)dVar41 - (int)dVar39;\n      iVar3 = iVar10;\n      if (iVar10 < 0) {\n        iVar3 = iVar10 + 0x3f;\n      }\n      pdVar16 = (double *)(iVar3 >> 6);\n      if (extraout_v1 < (int)pdVar16) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        bVar1 = extraout_v1_01 < 2;\n      }\n      else {\n        bVar1 = iVar10 < 0x80;\n      }\n      pdVar29 = (double *)0x1;\n      if (((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16)\n         ) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_03;\n        pdVar16 = extraout_v1_03;\n      }\n    }\n    else {\n      uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar51 < 2) {\n          pdVar29 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }\n      else {\nLAB_000a77f8:\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n      }\n      uVar51 = (*pcVar37)(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_00;\n      }\n      else {\n        pdVar29 = (double *)0x2;\n      }\n    }" if (parenthesized_expression "(((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23), iVar3 == 3)) &&\n       ((iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 4 ||\n        (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3))))" ( (binary_expression "((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23), iVar3 == 3)) &&\n       ((iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 4 ||\n        (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3)))" (parenthesized_expression "((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23), iVar3 == 3))" ( (binary_expression "(iVar3 == 4) || (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23), iVar3 == 3)" (parenthesized_expression "(iVar3 == 4)" ( (binary_expression "iVar3 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23), iVar3 == 3)" ( (comma_expression "iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23), iVar3 == 3" (assignment_expression "iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23)" identifier = (call_expression "(**(code **)(pcStack_758 + -0x73e4))(puVar23)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x73e4))" ( (pointer_expression "**(code **)(pcStack_758 + -0x73e4)" * (pointer_expression "*(code **)(pcStack_758 + -0x73e4)" * (cast_expression "(code **)(pcStack_758 + -0x73e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x73e4)" ( (binary_expression "pcStack_758 + -0x73e4" identifier + number_literal) ))))) )) (argument_list "(puVar23)" ( identifier )))) , (binary_expression "iVar3 == 3" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 4 ||\n        (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3)))" ( (parenthesized_expression "(iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 4 ||\n        (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3))" ( (comma_expression "iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 4 ||\n        (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3)" (assignment_expression "iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2)" identifier = (call_expression "(**(code **)(pcStack_758 + -0x73e4))(piVar2)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x73e4))" ( (pointer_expression "**(code **)(pcStack_758 + -0x73e4)" * (pointer_expression "*(code **)(pcStack_758 + -0x73e4)" * (cast_expression "(code **)(pcStack_758 + -0x73e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x73e4)" ( (binary_expression "pcStack_758 + -0x73e4" identifier + number_literal) ))))) )) (argument_list "(piVar2)" ( identifier )))) , (binary_expression "iVar3 == 4 ||\n        (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3)" (binary_expression "iVar3 == 4" identifier == number_literal) || (parenthesized_expression "(iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3)" ( (comma_expression "iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3" (assignment_expression "iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2)" identifier = (call_expression "(**(code **)(pcStack_758 + -0x73e4))(piVar2)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x73e4))" ( (pointer_expression "**(code **)(pcStack_758 + -0x73e4)" * (pointer_expression "*(code **)(pcStack_758 + -0x73e4)" * (cast_expression "(code **)(pcStack_758 + -0x73e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x73e4)" ( (binary_expression "pcStack_758 + -0x73e4" identifier + number_literal) ))))) )) (argument_list "(piVar2)" ( identifier )))) , (binary_expression "iVar3 == 3" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n      (**(code **)(pcStack_758 + -0x775c))(7);\n      iVar10 = (int)dVar41 - (int)dVar39;\n      iVar3 = iVar10;\n      if (iVar10 < 0) {\n        iVar3 = iVar10 + 0x3f;\n      }\n      pdVar16 = (double *)(iVar3 >> 6);\n      if (extraout_v1 < (int)pdVar16) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        bVar1 = extraout_v1_01 < 2;\n      }\n      else {\n        bVar1 = iVar10 < 0x80;\n      }\n      pdVar29 = (double *)0x1;\n      if (((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16)\n         ) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_03;\n        pdVar16 = extraout_v1_03;\n      }\n    }" { (expression_statement "(**(code **)(pcStack_758 + -0x775c))(7);" (call_expression "(**(code **)(pcStack_758 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_758 + -0x775c)" * (pointer_expression "*(code **)(pcStack_758 + -0x775c)" * (cast_expression "(code **)(pcStack_758 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x775c)" ( (binary_expression "pcStack_758 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "iVar10 = (int)dVar41 - (int)dVar39;" (assignment_expression "iVar10 = (int)dVar41 - (int)dVar39" identifier = (binary_expression "(int)dVar41 - (int)dVar39" (cast_expression "(int)dVar41" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)dVar39" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar3 = iVar10;" (assignment_expression "iVar3 = iVar10" identifier = identifier) ;) (if_statement "if (iVar10 < 0) {\n        iVar3 = iVar10 + 0x3f;\n      }" if (parenthesized_expression "(iVar10 < 0)" ( (binary_expression "iVar10 < 0" identifier < number_literal) )) (compound_statement "{\n        iVar3 = iVar10 + 0x3f;\n      }" { (expression_statement "iVar3 = iVar10 + 0x3f;" (assignment_expression "iVar3 = iVar10 + 0x3f" identifier = (binary_expression "iVar10 + 0x3f" identifier + number_literal)) ;) })) (expression_statement "pdVar16 = (double *)(iVar3 >> 6);" (assignment_expression "pdVar16 = (double *)(iVar3 >> 6)" identifier = (cast_expression "(double *)(iVar3 >> 6)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 >> 6)" ( (binary_expression "iVar3 >> 6" identifier >> number_literal) )))) ;) (if_statement "if (extraout_v1 < (int)pdVar16) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        bVar1 = extraout_v1_01 < 2;\n      }\n      else {\n        bVar1 = iVar10 < 0x80;\n      }" if (parenthesized_expression "(extraout_v1 < (int)pdVar16)" ( (binary_expression "extraout_v1 < (int)pdVar16" identifier < (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        bVar1 = extraout_v1_01 < 2;\n      }" { (expression_statement "(**(code **)(pcStack_758 + -0x775c))(7);" (call_expression "(**(code **)(pcStack_758 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_758 + -0x775c)" * (pointer_expression "*(code **)(pcStack_758 + -0x775c)" * (cast_expression "(code **)(pcStack_758 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x775c)" ( (binary_expression "pcStack_758 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "bVar1 = extraout_v1_01 < 2;" (assignment_expression "bVar1 = extraout_v1_01 < 2" identifier = (binary_expression "extraout_v1_01 < 2" identifier < number_literal)) ;) }) (else_clause "else {\n        bVar1 = iVar10 < 0x80;\n      }" else (compound_statement "{\n        bVar1 = iVar10 < 0x80;\n      }" { (expression_statement "bVar1 = iVar10 < 0x80;" (assignment_expression "bVar1 = iVar10 < 0x80" identifier = (binary_expression "iVar10 < 0x80" identifier < number_literal)) ;) }))) (expression_statement "pdVar29 = (double *)0x1;" (assignment_expression "pdVar29 = (double *)0x1" identifier = (cast_expression "(double *)0x1" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16)\n         ) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_03;\n        pdVar16 = extraout_v1_03;\n      }" if (parenthesized_expression "(((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16)\n         )" ( (binary_expression "((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16)" (parenthesized_expression "((bool)(bVar1 ^ 1))" ( (cast_expression "(bool)(bVar1 ^ 1)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar1 ^ 1)" ( (binary_expression "bVar1 ^ 1" identifier ^ number_literal) ))) )) && (parenthesized_expression "((**(code **)(pcStack_758 + -0x775c))(7), pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16)" ( (comma_expression "(**(code **)(pcStack_758 + -0x775c))(7), pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16" (call_expression "(**(code **)(pcStack_758 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_758 + -0x775c)" * (pointer_expression "*(code **)(pcStack_758 + -0x775c)" * (cast_expression "(code **)(pcStack_758 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x775c)" ( (binary_expression "pcStack_758 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) , (comma_expression "pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16" (assignment_expression "pdVar29 = pdVar16" identifier = identifier) , (binary_expression "extraout_v1_02 < (int)pdVar16" identifier < (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier)))) ))) )) (compound_statement "{\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_03;\n        pdVar16 = extraout_v1_03;\n      }" { (expression_statement "(**(code **)(pcStack_758 + -0x775c))(7);" (call_expression "(**(code **)(pcStack_758 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_758 + -0x775c)" * (pointer_expression "*(code **)(pcStack_758 + -0x775c)" * (cast_expression "(code **)(pcStack_758 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x775c)" ( (binary_expression "pcStack_758 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "pdVar29 = extraout_v1_03;" (assignment_expression "pdVar29 = extraout_v1_03" identifier = identifier) ;) (expression_statement "pdVar16 = extraout_v1_03;" (assignment_expression "pdVar16 = extraout_v1_03" identifier = identifier) ;) })) }) (else_clause "else {\n      uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar51 < 2) {\n          pdVar29 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }\n      else {\nLAB_000a77f8:\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n      }\n      uVar51 = (*pcVar37)(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_00;\n      }\n      else {\n        pdVar29 = (double *)0x2;\n      }\n    }" else (compound_statement "{\n      uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar51 < 2) {\n          pdVar29 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }\n      else {\nLAB_000a77f8:\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n      }\n      uVar51 = (*pcVar37)(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_00;\n      }\n      else {\n        pdVar29 = (double *)0x2;\n      }\n    }" { (expression_statement "uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);" (assignment_expression "uVar51 = (**(code **)(pcStack_758 + -0x775c))(7)" identifier = (call_expression "(**(code **)(pcStack_758 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_758 + -0x775c)" * (pointer_expression "*(code **)(pcStack_758 + -0x775c)" * (cast_expression "(code **)(pcStack_758 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x775c)" ( (binary_expression "pcStack_758 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar51 < 2) {\n          pdVar29 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }\n      else {\nLAB_000a77f8:\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n      }" if (parenthesized_expression "(((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2))" ( (binary_expression "((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)" (parenthesized_expression "((int)((ulonglong)uVar51 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar51 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar51 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar51 >> 0x20)" ( (binary_expression "(ulonglong)uVar51 >> 0x20" (cast_expression "(ulonglong)uVar51" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "((uint)uVar51 < 2)" ( (binary_expression "(uint)uVar51 < 2" (cast_expression "(uint)uVar51" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) ))) )) (compound_statement "{\n        uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar51 < 2) {\n          pdVar29 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }" { (expression_statement "uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);" (assignment_expression "uVar51 = (**(code **)(pcStack_758 + -0x775c))(7)" identifier = (call_expression "(**(code **)(pcStack_758 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_758 + -0x775c)" * (pointer_expression "*(code **)(pcStack_758 + -0x775c)" * (cast_expression "(code **)(pcStack_758 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x775c)" ( (binary_expression "pcStack_758 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a77f8;" if (parenthesized_expression "((int)((ulonglong)uVar51 >> 0x20) != 0)" ( (binary_expression "(int)((ulonglong)uVar51 >> 0x20) != 0" (cast_expression "(int)((ulonglong)uVar51 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar51 >> 0x20)" ( (binary_expression "(ulonglong)uVar51 >> 0x20" (cast_expression "(ulonglong)uVar51" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) != number_literal) )) (goto_statement "goto LAB_000a77f8;" goto statement_identifier ;)) (expression_statement "pcVar37 = *(code **)(pcStack_758 + -0x775c);" (assignment_expression "pcVar37 = *(code **)(pcStack_758 + -0x775c)" identifier = (pointer_expression "*(code **)(pcStack_758 + -0x775c)" * (cast_expression "(code **)(pcStack_758 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x775c)" ( (binary_expression "pcStack_758 + -0x775c" identifier + number_literal) ))))) ;) (if_statement "if ((uint)uVar51 < 2) {\n          pdVar29 = (double *)0x1;\n          goto LAB_000a7818;\n        }" if (parenthesized_expression "((uint)uVar51 < 2)" ( (binary_expression "(uint)uVar51 < 2" (cast_expression "(uint)uVar51" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n          pdVar29 = (double *)0x1;\n          goto LAB_000a7818;\n        }" { (expression_statement "pdVar29 = (double *)0x1;" (assignment_expression "pdVar29 = (double *)0x1" identifier = (cast_expression "(double *)0x1" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000a7818;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_000a77f8:\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n      }" else (compound_statement "{\nLAB_000a77f8:\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n      }" { (labeled_statement "LAB_000a77f8:\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);" statement_identifier : (expression_statement "pcVar37 = *(code **)(pcStack_758 + -0x775c);" (assignment_expression "pcVar37 = *(code **)(pcStack_758 + -0x775c)" identifier = (pointer_expression "*(code **)(pcStack_758 + -0x775c)" * (cast_expression "(code **)(pcStack_758 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x775c)" ( (binary_expression "pcStack_758 + -0x775c" identifier + number_literal) ))))) ;)) }))) (expression_statement "uVar51 = (*pcVar37)(7);" (assignment_expression "uVar51 = (*pcVar37)(7)" identifier = (call_expression "(*pcVar37)(7)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_00;\n      }\n      else {\n        pdVar29 = (double *)0x2;\n      }" if (parenthesized_expression "(((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2))" ( (binary_expression "((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)" (parenthesized_expression "((int)((ulonglong)uVar51 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar51 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar51 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar51 >> 0x20)" ( (binary_expression "(ulonglong)uVar51 >> 0x20" (cast_expression "(ulonglong)uVar51" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "((uint)uVar51 < 2)" ( (binary_expression "(uint)uVar51 < 2" (cast_expression "(uint)uVar51" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) ))) )) (compound_statement "{\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_00;\n      }" { (expression_statement "(**(code **)(pcStack_758 + -0x775c))(7);" (call_expression "(**(code **)(pcStack_758 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_758 + -0x775c)" * (pointer_expression "*(code **)(pcStack_758 + -0x775c)" * (cast_expression "(code **)(pcStack_758 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x775c)" ( (binary_expression "pcStack_758 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "pdVar29 = extraout_v1_00;" (assignment_expression "pdVar29 = extraout_v1_00" identifier = identifier) ;) }) (else_clause "else {\n        pdVar29 = (double *)0x2;\n      }" else (compound_statement "{\n        pdVar29 = (double *)0x2;\n      }" { (expression_statement "pdVar29 = (double *)0x2;" (assignment_expression "pdVar29 = (double *)0x2" identifier = (cast_expression "(double *)0x2" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }))) (labeled_statement "LAB_000a7818:\n    pdStack_720 = &dStack_700;" statement_identifier : (expression_statement "pdStack_720 = &dStack_700;" (assignment_expression "pdStack_720 = &dStack_700" identifier = (pointer_expression "&dStack_700" & identifier)) ;)) (expression_statement "puStack_714 = auStack_6d0;" (assignment_expression "puStack_714 = auStack_6d0" identifier = identifier) ;) (expression_statement "pdStack_710 = &dStack_750;" (assignment_expression "pdStack_710 = &dStack_750" identifier = (pointer_expression "&dStack_750" & identifier)) ;) (expression_statement "iStack_704 = 1;" (assignment_expression "iStack_704 = 1" identifier = number_literal) ;) (expression_statement "ppiVar24 = &piStack_72c;" (assignment_expression "ppiVar24 = &piStack_72c" identifier = (pointer_expression "&piStack_72c" & identifier)) ;) (expression_statement "piStack_72c = piVar2;" (assignment_expression "piStack_72c = piVar2" identifier = identifier) ;) (expression_statement "puStack_728 = puVar23;" (assignment_expression "puStack_728 = puVar23" identifier = identifier) ;) (expression_statement "pdStack_724 = pdVar5;" (assignment_expression "pdStack_724 = pdVar5" identifier = identifier) ;) (expression_statement "puStack_71c = puVar35;" (assignment_expression "puStack_71c = puVar35" identifier = identifier) ;) (expression_statement "uStack_718 = uVar4;" (assignment_expression "uStack_718 = uVar4" identifier = identifier) ;) (expression_statement "iStack_70c = (int)dVar39;" (assignment_expression "iStack_70c = (int)dVar39" identifier = (cast_expression "(int)dVar39" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iStack_708 = (int)dVar41;" (assignment_expression "iStack_708 = (int)dVar41" identifier = (cast_expression "(int)dVar41" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "(**(code **)(pcStack_758 + -0x7700))\n              (*(int *)(pcStack_758 + -0x7ea0) + 0x34c4,ppiVar24,pdVar29,0);" (call_expression "(**(code **)(pcStack_758 + -0x7700))\n              (*(int *)(pcStack_758 + -0x7ea0) + 0x34c4,ppiVar24,pdVar29,0)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x7700))" ( (pointer_expression "**(code **)(pcStack_758 + -0x7700)" * (pointer_expression "*(code **)(pcStack_758 + -0x7700)" * (cast_expression "(code **)(pcStack_758 + -0x7700)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x7700)" ( (binary_expression "pcStack_758 + -0x7700" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_758 + -0x7ea0) + 0x34c4,ppiVar24,pdVar29,0)" ( (binary_expression "*(int *)(pcStack_758 + -0x7ea0) + 0x34c4" (pointer_expression "*(int *)(pcStack_758 + -0x7ea0)" * (cast_expression "(int *)(pcStack_758 + -0x7ea0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_758 + -0x7ea0)" ( (binary_expression "pcStack_758 + -0x7ea0" identifier + number_literal) )))) + number_literal) , identifier , identifier , number_literal ))) ;) (expression_statement "iVar3 = iStack_704;" (assignment_expression "iVar3 = iStack_704" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_758 + -0x79a4))(uVar4);" (call_expression "(**(code **)(pcStack_758 + -0x79a4))(uVar4)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x79a4))" ( (pointer_expression "**(code **)(pcStack_758 + -0x79a4)" * (pointer_expression "*(code **)(pcStack_758 + -0x79a4)" * (cast_expression "(code **)(pcStack_758 + -0x79a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x79a4)" ( (binary_expression "pcStack_758 + -0x79a4" identifier + number_literal) ))))) )) (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "(**(code **)(pcStack_758 + -0x79a4))(puVar35);" (call_expression "(**(code **)(pcStack_758 + -0x79a4))(puVar35)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x79a4))" ( (pointer_expression "**(code **)(pcStack_758 + -0x79a4)" * (pointer_expression "*(code **)(pcStack_758 + -0x79a4)" * (cast_expression "(code **)(pcStack_758 + -0x79a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x79a4)" ( (binary_expression "pcStack_758 + -0x79a4" identifier + number_literal) ))))) )) (argument_list "(puVar35)" ( identifier ))) ;) })) (if_statement "if (uStack_638._4_4_ == **(int **)(pcStack_758 + -0x7668)) {\n    return iVar3;\n  }" if (parenthesized_expression "(uStack_638._4_4_ == **(int **)(pcStack_758 + -0x7668))" ( (binary_expression "uStack_638._4_4_ == **(int **)(pcStack_758 + -0x7668)" (field_expression "uStack_638._4_4_" identifier . field_identifier) == (pointer_expression "**(int **)(pcStack_758 + -0x7668)" * (pointer_expression "*(int **)(pcStack_758 + -0x7668)" * (cast_expression "(int **)(pcStack_758 + -0x7668)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x7668)" ( (binary_expression "pcStack_758 + -0x7668" identifier + number_literal) )))))) )) (compound_statement "{\n    return iVar3;\n  }" { (return_statement "return iVar3;" return identifier ;) })) (expression_statement "pcVar37 = *(code **)(pcStack_758 + -0x7834);" (assignment_expression "pcVar37 = *(code **)(pcStack_758 + -0x7834)" identifier = (pointer_expression "*(code **)(pcStack_758 + -0x7834)" * (cast_expression "(code **)(pcStack_758 + -0x7834)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_758 + -0x7834)" ( (binary_expression "pcStack_758 + -0x7834" identifier + number_literal) ))))) ;) (expression_statement "pcVar38 = DrawGradientImage;" (assignment_expression "pcVar38 = DrawGradientImage" identifier = identifier) ;) (expression_statement "iVar10 = uStack_638._4_4_;" (assignment_expression "iVar10 = uStack_638._4_4_" identifier = (field_expression "uStack_638._4_4_" identifier . field_identifier)) ;) (expression_statement "(*pcVar37)();" (call_expression "(*pcVar37)()" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_830 = pcVar37 + 0x359e18;" (assignment_expression "pcStack_830 = pcVar37 + 0x359e18" identifier = (binary_expression "pcVar37 + 0x359e18" identifier + number_literal)) ;) (expression_statement "puStack_794 = (undefined8 *)**(undefined4 **)(pcVar37 + 0x3527b0);" (assignment_expression "puStack_794 = (undefined8 *)**(undefined4 **)(pcVar37 + 0x3527b0)" identifier = (cast_expression "(undefined8 *)**(undefined4 **)(pcVar37 + 0x3527b0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar37 + 0x3527b0)" * (pointer_expression "*(undefined4 **)(pcVar37 + 0x3527b0)" * (cast_expression "(undefined4 **)(pcVar37 + 0x3527b0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3527b0)" ( (binary_expression "pcVar37 + 0x3527b0" identifier + number_literal) ))))))) ;) (expression_statement "pdStack_790 = pdVar16;" (assignment_expression "pdStack_790 = pdVar16" identifier = identifier) ;) (expression_statement "piStack_78c = piVar2;" (assignment_expression "piStack_78c = piVar2" identifier = identifier) ;) (expression_statement "puStack_788 = puVar23;" (assignment_expression "puStack_788 = puVar23" identifier = identifier) ;) (expression_statement "pdStack_784 = pdVar5;" (assignment_expression "pdStack_784 = pdVar5" identifier = identifier) ;) (expression_statement "iStack_780 = iVar3;" (assignment_expression "iStack_780 = iVar3" identifier = identifier) ;) (expression_statement "pcStack_77c = pcVar38;" (assignment_expression "pcStack_77c = pcVar38" identifier = identifier) ;) (expression_statement "dStack_778 = dVar42;" (assignment_expression "dStack_778 = dVar42" identifier = identifier) ;) (if_statement "if (iVar10 == 0) {\n    iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e48) + 0x3da0,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80a,*(int *)(pcVar37 + 0x351e4c) + 0x7818);\n    return iVar3;\n  }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e48) + 0x3da0,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80a,*(int *)(pcVar37 + 0x351e4c) + 0x7818);\n    return iVar3;\n  }" { (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e48) + 0x3da0,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80a,*(int *)(pcVar37 + 0x351e4c) + 0x7818);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e48) + 0x3da0,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80a,*(int *)(pcVar37 + 0x351e4c) + 0x7818)" identifier = (call_expression "(**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e48) + 0x3da0,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80a,*(int *)(pcVar37 + 0x351e4c) + 0x7818)" (parenthesized_expression "(**(code **)(pcVar37 + 0x352b88))" ( (pointer_expression "**(code **)(pcVar37 + 0x352b88)" * (pointer_expression "*(code **)(pcVar37 + 0x352b88)" * (cast_expression "(code **)(pcVar37 + 0x352b88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x352b88)" ( (binary_expression "pcVar37 + 0x352b88" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar37 + 0x351e48) + 0x3da0,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80a,*(int *)(pcVar37 + 0x351e4c) + 0x7818)" ( (binary_expression "*(int *)(pcVar37 + 0x351e48) + 0x3da0" (pointer_expression "*(int *)(pcVar37 + 0x351e48)" * (cast_expression "(int *)(pcVar37 + 0x351e48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x351e48)" ( (binary_expression "pcVar37 + 0x351e48" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar37 + 0x351e4c) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + 0x351e4c)" * (cast_expression "(int *)(pcVar37 + 0x351e4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x351e4c)" ( (binary_expression "pcVar37 + 0x351e4c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar37 + 0x351e4c) + 0x7818" (pointer_expression "*(int *)(pcVar37 + 0x351e4c)" * (cast_expression "(int *)(pcVar37 + 0x351e4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x351e4c)" ( (binary_expression "pcVar37 + 0x351e4c" identifier + number_literal) )))) + number_literal) )))) ;) (return_statement "return iVar3;" return identifier ;) })) (if_statement "if (*(int *)(iVar10 + 0x336c) != -0x54535255) {\n    iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e4c) + -0x784,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80b,*(int *)(pcVar37 + 0x351e4c) + 0x7818);\n    return iVar3;\n  }" if (parenthesized_expression "(*(int *)(iVar10 + 0x336c) != -0x54535255)" ( (binary_expression "*(int *)(iVar10 + 0x336c) != -0x54535255" (pointer_expression "*(int *)(iVar10 + 0x336c)" * (cast_expression "(int *)(iVar10 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x336c)" ( (binary_expression "iVar10 + 0x336c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e4c) + -0x784,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80b,*(int *)(pcVar37 + 0x351e4c) + 0x7818);\n    return iVar3;\n  }" { (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e4c) + -0x784,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80b,*(int *)(pcVar37 + 0x351e4c) + 0x7818);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e4c) + -0x784,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80b,*(int *)(pcVar37 + 0x351e4c) + 0x7818)" identifier = (call_expression "(**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e4c) + -0x784,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80b,*(int *)(pcVar37 + 0x351e4c) + 0x7818)" (parenthesized_expression "(**(code **)(pcVar37 + 0x352b88))" ( (pointer_expression "**(code **)(pcVar37 + 0x352b88)" * (pointer_expression "*(code **)(pcVar37 + 0x352b88)" * (cast_expression "(code **)(pcVar37 + 0x352b88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x352b88)" ( (binary_expression "pcVar37 + 0x352b88" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar37 + 0x351e4c) + -0x784,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80b,*(int *)(pcVar37 + 0x351e4c) + 0x7818)" ( (binary_expression "*(int *)(pcVar37 + 0x351e4c) + -0x784" (pointer_expression "*(int *)(pcVar37 + 0x351e4c)" * (cast_expression "(int *)(pcVar37 + 0x351e4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x351e4c)" ( (binary_expression "pcVar37 + 0x351e4c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar37 + 0x351e4c) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + 0x351e4c)" * (cast_expression "(int *)(pcVar37 + 0x351e4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x351e4c)" ( (binary_expression "pcVar37 + 0x351e4c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar37 + 0x351e4c) + 0x7818" (pointer_expression "*(int *)(pcVar37 + 0x351e4c)" * (cast_expression "(int *)(pcVar37 + 0x351e4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x351e4c)" ( (binary_expression "pcVar37 + 0x351e4c" identifier + number_literal) )))) + number_literal) )))) ;) (return_statement "return iVar3;" return identifier ;) })) (if_statement "if (*(int *)(iVar10 + 0x3350) != 0) {\n    iStack_838 = *(int *)(pcVar37 + 0x351e50) + -0x2f6c;\n    iStack_834 = iVar10 + 0x340;\n    (**(code **)(pcVar37 + 0x352760))\n              (0x8000,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,*(int *)(pcVar37 + 0x351e4c) + 0x7804,\n               0x80d);\n  }" if (parenthesized_expression "(*(int *)(iVar10 + 0x3350) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x3350) != 0" (pointer_expression "*(int *)(iVar10 + 0x3350)" * (cast_expression "(int *)(iVar10 + 0x3350)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x3350)" ( (binary_expression "iVar10 + 0x3350" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iStack_838 = *(int *)(pcVar37 + 0x351e50) + -0x2f6c;\n    iStack_834 = iVar10 + 0x340;\n    (**(code **)(pcVar37 + 0x352760))\n              (0x8000,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,*(int *)(pcVar37 + 0x351e4c) + 0x7804,\n               0x80d);\n  }" { (expression_statement "iStack_838 = *(int *)(pcVar37 + 0x351e50) + -0x2f6c;" (assignment_expression "iStack_838 = *(int *)(pcVar37 + 0x351e50) + -0x2f6c" identifier = (binary_expression "*(int *)(pcVar37 + 0x351e50) + -0x2f6c" (pointer_expression "*(int *)(pcVar37 + 0x351e50)" * (cast_expression "(int *)(pcVar37 + 0x351e50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x351e50)" ( (binary_expression "pcVar37 + 0x351e50" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iStack_834 = iVar10 + 0x340;" (assignment_expression "iStack_834 = iVar10 + 0x340" identifier = (binary_expression "iVar10 + 0x340" identifier + number_literal)) ;) (expression_statement "(**(code **)(pcVar37 + 0x352760))\n              (0x8000,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,*(int *)(pcVar37 + 0x351e4c) + 0x7804,\n               0x80d);" (call_expression "(**(code **)(pcVar37 + 0x352760))\n              (0x8000,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,*(int *)(pcVar37 + 0x351e4c) + 0x7804,\n               0x80d)" (parenthesized_expression "(**(code **)(pcVar37 + 0x352760))" ( (pointer_expression "**(code **)(pcVar37 + 0x352760)" * (pointer_expression "*(code **)(pcVar37 + 0x352760)" * (cast_expression "(code **)(pcVar37 + 0x352760)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x352760)" ( (binary_expression "pcVar37 + 0x352760" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,*(int *)(pcVar37 + 0x351e4c) + 0x7804,\n               0x80d)" ( number_literal , (binary_expression "*(int *)(pcVar37 + 0x351e4c) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + 0x351e4c)" * (cast_expression "(int *)(pcVar37 + 0x351e4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x351e4c)" ( (binary_expression "pcVar37 + 0x351e4c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar37 + 0x351e4c) + 0x7804" (pointer_expression "*(int *)(pcVar37 + 0x351e4c)" * (cast_expression "(int *)(pcVar37 + 0x351e4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x351e4c)" ( (binary_expression "pcVar37 + 0x351e4c" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) })) (if_statement "if (ppiVar24 == (int **)0x0) {\n    iVar3 = (**(code **)(pcStack_830 + -0x7290))\n                      (*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x69c0,0x80e,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x7818);\n    return iVar3;\n  }" if (parenthesized_expression "(ppiVar24 == (int **)0x0)" ( (binary_expression "ppiVar24 == (int **)0x0" identifier == (cast_expression "(int **)0x0" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n    iVar3 = (**(code **)(pcStack_830 + -0x7290))\n                      (*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x69c0,0x80e,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x7818);\n    return iVar3;\n  }" { (expression_statement "iVar3 = (**(code **)(pcStack_830 + -0x7290))\n                      (*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x69c0,0x80e,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x7818);" (assignment_expression "iVar3 = (**(code **)(pcStack_830 + -0x7290))\n                      (*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x69c0,0x80e,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x7818)" identifier = (call_expression "(**(code **)(pcStack_830 + -0x7290))\n                      (*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x69c0,0x80e,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x7818)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x7290))" ( (pointer_expression "**(code **)(pcStack_830 + -0x7290)" * (pointer_expression "*(code **)(pcStack_830 + -0x7290)" * (cast_expression "(code **)(pcStack_830 + -0x7290)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x7290)" ( (binary_expression "pcStack_830 + -0x7290" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x69c0,0x80e,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x7818)" ( (binary_expression "*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c" (pointer_expression "*(int *)(pcStack_830 + -0x7fcc)" * (cast_expression "(int *)(pcStack_830 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_830 + -0x7fcc)" ( (binary_expression "pcStack_830 + -0x7fcc" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcStack_830 + -0x7fcc) + 0x69c0" (pointer_expression "*(int *)(pcStack_830 + -0x7fcc)" * (cast_expression "(int *)(pcStack_830 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_830 + -0x7fcc)" ( (binary_expression "pcStack_830 + -0x7fcc" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcStack_830 + -0x7fcc) + 0x7818" (pointer_expression "*(int *)(pcStack_830 + -0x7fcc)" * (cast_expression "(int *)(pcStack_830 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_830 + -0x7fcc)" ( (binary_expression "pcStack_830 + -0x7fcc" identifier + number_literal) )))) + number_literal) )))) ;) (return_statement "return iVar3;" return identifier ;) })) (expression_statement "ppiVar33 = ppiVar24 + 0x6e;" (assignment_expression "ppiVar33 = ppiVar24 + 0x6e" identifier = (binary_expression "ppiVar24 + 0x6e" identifier + number_literal)) ;) (expression_statement "(**(code **)(pcStack_830 + -0x6fc4))\n            (ppiVar24[0x7c],ppiVar24[0x7d],0x60,*(int *)(pcStack_830 + -0x7ea0) + 0x224c);" (call_expression "(**(code **)(pcStack_830 + -0x6fc4))\n            (ppiVar24[0x7c],ppiVar24[0x7d],0x60,*(int *)(pcStack_830 + -0x7ea0) + 0x224c)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x6fc4))" ( (pointer_expression "**(code **)(pcStack_830 + -0x6fc4)" * (pointer_expression "*(code **)(pcStack_830 + -0x6fc4)" * (cast_expression "(code **)(pcStack_830 + -0x6fc4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x6fc4)" ( (binary_expression "pcStack_830 + -0x6fc4" identifier + number_literal) ))))) )) (argument_list "(ppiVar24[0x7c],ppiVar24[0x7d],0x60,*(int *)(pcStack_830 + -0x7ea0) + 0x224c)" ( (subscript_expression "ppiVar24[0x7c]" identifier [ number_literal ]) , (subscript_expression "ppiVar24[0x7d]" identifier [ number_literal ]) , number_literal , (binary_expression "*(int *)(pcStack_830 + -0x7ea0) + 0x224c" (pointer_expression "*(int *)(pcStack_830 + -0x7ea0)" * (cast_expression "(int *)(pcStack_830 + -0x7ea0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_830 + -0x7ea0)" ( (binary_expression "pcStack_830 + -0x7ea0" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "ppiVar34 = ppiVar24 + 0x74;" (assignment_expression "ppiVar34 = ppiVar24 + 0x74" identifier = (binary_expression "ppiVar24 + 0x74" identifier + number_literal)) ;) (expression_statement "dVar39 = (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) *\n           (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) +\n           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76)) *\n           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76));" (assignment_expression "dVar39 = (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) *\n           (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) +\n           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76)) *\n           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76))" identifier = (binary_expression "(*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) *\n           (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) +\n           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76)) *\n           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76))" (binary_expression "(*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) *\n           (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74))" (parenthesized_expression "(*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74))" ( (binary_expression "*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)" (pointer_expression "*(double *)(ppiVar24 + 0x78)" * (cast_expression "(double *)(ppiVar24 + 0x78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar24 + 0x78)" ( (binary_expression "ppiVar24 + 0x78" identifier + number_literal) )))) - (pointer_expression "*(double *)(ppiVar24 + 0x74)" * (cast_expression "(double *)(ppiVar24 + 0x74)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar24 + 0x74)" ( (binary_expression "ppiVar24 + 0x74" identifier + number_literal) ))))) )) * (parenthesized_expression "(*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74))" ( (binary_expression "*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)" (pointer_expression "*(double *)(ppiVar24 + 0x78)" * (cast_expression "(double *)(ppiVar24 + 0x78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar24 + 0x78)" ( (binary_expression "ppiVar24 + 0x78" identifier + number_literal) )))) - (pointer_expression "*(double *)(ppiVar24 + 0x74)" * (cast_expression "(double *)(ppiVar24 + 0x74)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar24 + 0x74)" ( (binary_expression "ppiVar24 + 0x74" identifier + number_literal) ))))) ))) + (binary_expression "(*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76)) *\n           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76))" (parenthesized_expression "(*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76))" ( (binary_expression "*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76)" (pointer_expression "*(double *)(ppiVar24 + 0x7a)" * (cast_expression "(double *)(ppiVar24 + 0x7a)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar24 + 0x7a)" ( (binary_expression "ppiVar24 + 0x7a" identifier + number_literal) )))) - (pointer_expression "*(double *)(ppiVar24 + 0x76)" * (cast_expression "(double *)(ppiVar24 + 0x76)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar24 + 0x76)" ( (binary_expression "ppiVar24 + 0x76" identifier + number_literal) ))))) )) * (parenthesized_expression "(*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76))" ( (binary_expression "*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76)" (pointer_expression "*(double *)(ppiVar24 + 0x7a)" * (cast_expression "(double *)(ppiVar24 + 0x7a)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar24 + 0x7a)" ( (binary_expression "ppiVar24 + 0x7a" identifier + number_literal) )))) - (pointer_expression "*(double *)(ppiVar24 + 0x76)" * (cast_expression "(double *)(ppiVar24 + 0x76)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar24 + 0x76)" ( (binary_expression "ppiVar24 + 0x76" identifier + number_literal) ))))) ))))) ;) (expression_statement "dVar41 = SQRT(dVar39);" (assignment_expression "dVar41 = SQRT(dVar39)" identifier = (call_expression "SQRT(dVar39)" identifier (argument_list "(dVar39)" ( identifier )))) ;) (if_statement "if (0.0 <= dVar39) {\n    piStack_828 = ppiVar24[0x6f];\n  }\n  else {\n    (**(code **)(pcStack_830 + -0x7418))();\n    piStack_828 = ppiVar24[0x6f];\n  }" if (parenthesized_expression "(0.0 <= dVar39)" ( (binary_expression "0.0 <= dVar39" number_literal <= identifier) )) (compound_statement "{\n    piStack_828 = ppiVar24[0x6f];\n  }" { (expression_statement "piStack_828 = ppiVar24[0x6f];" (assignment_expression "piStack_828 = ppiVar24[0x6f]" identifier = (subscript_expression "ppiVar24[0x6f]" identifier [ number_literal ])) ;) }) (else_clause "else {\n    (**(code **)(pcStack_830 + -0x7418))();\n    piStack_828 = ppiVar24[0x6f];\n  }" else (compound_statement "{\n    (**(code **)(pcStack_830 + -0x7418))();\n    piStack_828 = ppiVar24[0x6f];\n  }" { (expression_statement "(**(code **)(pcStack_830 + -0x7418))();" (call_expression "(**(code **)(pcStack_830 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_830 + -0x7418))" ( (pointer_expression "**(code **)(pcStack_830 + -0x7418)" * (pointer_expression "*(code **)(pcStack_830 + -0x7418)" * (cast_expression "(code **)(pcStack_830 + -0x7418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x7418)" ( (binary_expression "pcStack_830 + -0x7418" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "piStack_828 = ppiVar24[0x6f];" (assignment_expression "piStack_828 = ppiVar24[0x6f]" identifier = (subscript_expression "ppiVar24[0x6f]" identifier [ number_literal ])) ;) }))) (expression_statement "piStack_824 = ppiVar24[0x70];" (assignment_expression "piStack_824 = ppiVar24[0x70]" identifier = (subscript_expression "ppiVar24[0x70]" identifier [ number_literal ])) ;) (expression_statement "piStack_820 = ppiVar24[0x71];" (assignment_expression "piStack_820 = ppiVar24[0x71]" identifier = (subscript_expression "ppiVar24[0x71]" identifier [ number_literal ])) ;) (expression_statement "piStack_81c = ppiVar24[0x72];" (assignment_expression "piStack_81c = ppiVar24[0x72]" identifier = (subscript_expression "ppiVar24[0x72]" identifier [ number_literal ])) ;) (expression_statement "(**(code **)(pcStack_830 + -0x75e4))(iVar10,auStack_7f0);" (call_expression "(**(code **)(pcStack_830 + -0x75e4))(iVar10,auStack_7f0)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x75e4))" ( (pointer_expression "**(code **)(pcStack_830 + -0x75e4)" * (pointer_expression "*(code **)(pcStack_830 + -0x75e4)" * (cast_expression "(code **)(pcStack_830 + -0x75e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x75e4)" ( (binary_expression "pcStack_830 + -0x75e4" identifier + number_literal) ))))) )) (argument_list "(iVar10,auStack_7f0)" ( identifier , identifier ))) ;) (expression_statement "uVar4 = (**(code **)(pcStack_830 + -0x79c4))(iVar10,pdVar29);" (assignment_expression "uVar4 = (**(code **)(pcStack_830 + -0x79c4))(iVar10,pdVar29)" identifier = (call_expression "(**(code **)(pcStack_830 + -0x79c4))(iVar10,pdVar29)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x79c4))" ( (pointer_expression "**(code **)(pcStack_830 + -0x79c4)" * (pointer_expression "*(code **)(pcStack_830 + -0x79c4)" * (cast_expression "(code **)(pcStack_830 + -0x79c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x79c4)" ( (binary_expression "pcStack_830 + -0x79c4" identifier + number_literal) ))))) )) (argument_list "(iVar10,pdVar29)" ( identifier , identifier )))) ;) (expression_statement "iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10);" (assignment_expression "iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10)" identifier = (call_expression "(**(code **)(pcStack_830 + -0x73e4))(iVar10)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x73e4))" ( (pointer_expression "**(code **)(pcStack_830 + -0x73e4)" * (pointer_expression "*(code **)(pcStack_830 + -0x73e4)" * (cast_expression "(code **)(pcStack_830 + -0x73e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x73e4)" ( (binary_expression "pcStack_830 + -0x73e4" identifier + number_literal) ))))) )) (argument_list "(iVar10)" ( identifier )))) ;) (if_statement "if ((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 == 3)) {\n    iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10);\n    if ((iVar3 != 4) && (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 != 3))\n    goto LAB_000a7bf4;\n    (**(code **)(pcStack_830 + -0x775c))(7);\n    iVar49 = (int)piStack_824 - (int)piStack_81c;\n    iVar3 = iVar49;\n    if (iVar49 < 0) {\n      iVar3 = iVar49 + 0x3f;\n    }\n    if (extraout_v1_04 < iVar3 >> 6) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = iVar49 < 0x80;\n    }\n    iVar3 = 1;\n    dStack_818 = dVar41;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = (int)piStack_824 - (int)piStack_81c;\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      iVar3 = iVar3 >> 6;\n      dStack_818 = dVar41;\n      if (extraout_v1_07 < iVar3) {\n        (**(code **)(pcStack_830 + -0x775c))(7);\n        iVar3 = extraout_v1_08;\n        dStack_818 = dVar41;\n      }\n    }\n  }\n  else {\nLAB_000a7bf4:\n    uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n      if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a7c10;\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n      if ((uint)uVar51 < 2) {\n        iVar3 = 1;\n        dStack_818 = dVar41;\n        goto LAB_000a7c30;\n      }\n    }\n    else {\nLAB_000a7c10:\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n    }\n    uVar51 = (*pcVar37)(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = extraout_v1_05;\n      dStack_818 = dVar41;\n    }\n    else {\n      iVar3 = 2;\n      dStack_818 = dVar41;\n    }\n  }" if (parenthesized_expression "((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 == 3))" ( (binary_expression "(iVar3 == 4) || (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 == 3)" (parenthesized_expression "(iVar3 == 4)" ( (binary_expression "iVar3 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 == 3)" ( (comma_expression "iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 == 3" (assignment_expression "iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10)" identifier = (call_expression "(**(code **)(pcStack_830 + -0x73e4))(iVar10)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x73e4))" ( (pointer_expression "**(code **)(pcStack_830 + -0x73e4)" * (pointer_expression "*(code **)(pcStack_830 + -0x73e4)" * (cast_expression "(code **)(pcStack_830 + -0x73e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x73e4)" ( (binary_expression "pcStack_830 + -0x73e4" identifier + number_literal) ))))) )) (argument_list "(iVar10)" ( identifier )))) , (binary_expression "iVar3 == 3" identifier == number_literal)) ))) )) (compound_statement "{\n    iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10);\n    if ((iVar3 != 4) && (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 != 3))\n    goto LAB_000a7bf4;\n    (**(code **)(pcStack_830 + -0x775c))(7);\n    iVar49 = (int)piStack_824 - (int)piStack_81c;\n    iVar3 = iVar49;\n    if (iVar49 < 0) {\n      iVar3 = iVar49 + 0x3f;\n    }\n    if (extraout_v1_04 < iVar3 >> 6) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = iVar49 < 0x80;\n    }\n    iVar3 = 1;\n    dStack_818 = dVar41;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = (int)piStack_824 - (int)piStack_81c;\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      iVar3 = iVar3 >> 6;\n      dStack_818 = dVar41;\n      if (extraout_v1_07 < iVar3) {\n        (**(code **)(pcStack_830 + -0x775c))(7);\n        iVar3 = extraout_v1_08;\n        dStack_818 = dVar41;\n      }\n    }\n  }" { (expression_statement "iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10);" (assignment_expression "iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10)" identifier = (call_expression "(**(code **)(pcStack_830 + -0x73e4))(iVar10)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x73e4))" ( (pointer_expression "**(code **)(pcStack_830 + -0x73e4)" * (pointer_expression "*(code **)(pcStack_830 + -0x73e4)" * (cast_expression "(code **)(pcStack_830 + -0x73e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x73e4)" ( (binary_expression "pcStack_830 + -0x73e4" identifier + number_literal) ))))) )) (argument_list "(iVar10)" ( identifier )))) ;) (if_statement "if ((iVar3 != 4) && (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 != 3))\n    goto LAB_000a7bf4;" if (parenthesized_expression "((iVar3 != 4) && (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 != 3))" ( (binary_expression "(iVar3 != 4) && (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 != 3)" (parenthesized_expression "(iVar3 != 4)" ( (binary_expression "iVar3 != 4" identifier != number_literal) )) && (parenthesized_expression "(iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 != 3)" ( (comma_expression "iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 != 3" (assignment_expression "iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10)" identifier = (call_expression "(**(code **)(pcStack_830 + -0x73e4))(iVar10)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x73e4))" ( (pointer_expression "**(code **)(pcStack_830 + -0x73e4)" * (pointer_expression "*(code **)(pcStack_830 + -0x73e4)" * (cast_expression "(code **)(pcStack_830 + -0x73e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x73e4)" ( (binary_expression "pcStack_830 + -0x73e4" identifier + number_literal) ))))) )) (argument_list "(iVar10)" ( identifier )))) , (binary_expression "iVar3 != 3" identifier != number_literal)) ))) )) (goto_statement "goto LAB_000a7bf4;" goto statement_identifier ;)) (expression_statement "(**(code **)(pcStack_830 + -0x775c))(7);" (call_expression "(**(code **)(pcStack_830 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_830 + -0x775c)" * (pointer_expression "*(code **)(pcStack_830 + -0x775c)" * (cast_expression "(code **)(pcStack_830 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x775c)" ( (binary_expression "pcStack_830 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "iVar49 = (int)piStack_824 - (int)piStack_81c;" (assignment_expression "iVar49 = (int)piStack_824 - (int)piStack_81c" identifier = (binary_expression "(int)piStack_824 - (int)piStack_81c" (cast_expression "(int)piStack_824" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piStack_81c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar3 = iVar49;" (assignment_expression "iVar3 = iVar49" identifier = identifier) ;) (if_statement "if (iVar49 < 0) {\n      iVar3 = iVar49 + 0x3f;\n    }" if (parenthesized_expression "(iVar49 < 0)" ( (binary_expression "iVar49 < 0" identifier < number_literal) )) (compound_statement "{\n      iVar3 = iVar49 + 0x3f;\n    }" { (expression_statement "iVar3 = iVar49 + 0x3f;" (assignment_expression "iVar3 = iVar49 + 0x3f" identifier = (binary_expression "iVar49 + 0x3f" identifier + number_literal)) ;) })) (if_statement "if (extraout_v1_04 < iVar3 >> 6) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = iVar49 < 0x80;\n    }" if (parenthesized_expression "(extraout_v1_04 < iVar3 >> 6)" ( (binary_expression "extraout_v1_04 < iVar3 >> 6" identifier < (binary_expression "iVar3 >> 6" identifier >> number_literal)) )) (compound_statement "{\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }" { (expression_statement "(**(code **)(pcStack_830 + -0x775c))(7);" (call_expression "(**(code **)(pcStack_830 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_830 + -0x775c)" * (pointer_expression "*(code **)(pcStack_830 + -0x775c)" * (cast_expression "(code **)(pcStack_830 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x775c)" ( (binary_expression "pcStack_830 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "bVar1 = extraout_v1_06 < 2;" (assignment_expression "bVar1 = extraout_v1_06 < 2" identifier = (binary_expression "extraout_v1_06 < 2" identifier < number_literal)) ;) }) (else_clause "else {\n      bVar1 = iVar49 < 0x80;\n    }" else (compound_statement "{\n      bVar1 = iVar49 < 0x80;\n    }" { (expression_statement "bVar1 = iVar49 < 0x80;" (assignment_expression "bVar1 = iVar49 < 0x80" identifier = (binary_expression "iVar49 < 0x80" identifier < number_literal)) ;) }))) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (expression_statement "dStack_818 = dVar41;" (assignment_expression "dStack_818 = dVar41" identifier = identifier) ;) (if_statement "if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = (int)piStack_824 - (int)piStack_81c;\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      iVar3 = iVar3 >> 6;\n      dStack_818 = dVar41;\n      if (extraout_v1_07 < iVar3) {\n        (**(code **)(pcStack_830 + -0x775c))(7);\n        iVar3 = extraout_v1_08;\n        dStack_818 = dVar41;\n      }\n    }" if (parenthesized_expression "((bool)(bVar1 ^ 1))" ( (cast_expression "(bool)(bVar1 ^ 1)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar1 ^ 1)" ( (binary_expression "bVar1 ^ 1" identifier ^ number_literal) ))) )) (compound_statement "{\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = (int)piStack_824 - (int)piStack_81c;\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      iVar3 = iVar3 >> 6;\n      dStack_818 = dVar41;\n      if (extraout_v1_07 < iVar3) {\n        (**(code **)(pcStack_830 + -0x775c))(7);\n        iVar3 = extraout_v1_08;\n        dStack_818 = dVar41;\n      }\n    }" { (expression_statement "(**(code **)(pcStack_830 + -0x775c))(7);" (call_expression "(**(code **)(pcStack_830 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_830 + -0x775c)" * (pointer_expression "*(code **)(pcStack_830 + -0x775c)" * (cast_expression "(code **)(pcStack_830 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x775c)" ( (binary_expression "pcStack_830 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "iVar3 = (int)piStack_824 - (int)piStack_81c;" (assignment_expression "iVar3 = (int)piStack_824 - (int)piStack_81c" identifier = (binary_expression "(int)piStack_824 - (int)piStack_81c" (cast_expression "(int)piStack_824" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piStack_81c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n        iVar3 = iVar3 + 0x3f;\n      }" { (expression_statement "iVar3 = iVar3 + 0x3f;" (assignment_expression "iVar3 = iVar3 + 0x3f" identifier = (binary_expression "iVar3 + 0x3f" identifier + number_literal)) ;) })) (expression_statement "iVar3 = iVar3 >> 6;" (assignment_expression "iVar3 = iVar3 >> 6" identifier = (binary_expression "iVar3 >> 6" identifier >> number_literal)) ;) (expression_statement "dStack_818 = dVar41;" (assignment_expression "dStack_818 = dVar41" identifier = identifier) ;) (if_statement "if (extraout_v1_07 < iVar3) {\n        (**(code **)(pcStack_830 + -0x775c))(7);\n        iVar3 = extraout_v1_08;\n        dStack_818 = dVar41;\n      }" if (parenthesized_expression "(extraout_v1_07 < iVar3)" ( (binary_expression "extraout_v1_07 < iVar3" identifier < identifier) )) (compound_statement "{\n        (**(code **)(pcStack_830 + -0x775c))(7);\n        iVar3 = extraout_v1_08;\n        dStack_818 = dVar41;\n      }" { (expression_statement "(**(code **)(pcStack_830 + -0x775c))(7);" (call_expression "(**(code **)(pcStack_830 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_830 + -0x775c)" * (pointer_expression "*(code **)(pcStack_830 + -0x775c)" * (cast_expression "(code **)(pcStack_830 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x775c)" ( (binary_expression "pcStack_830 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "iVar3 = extraout_v1_08;" (assignment_expression "iVar3 = extraout_v1_08" identifier = identifier) ;) (expression_statement "dStack_818 = dVar41;" (assignment_expression "dStack_818 = dVar41" identifier = identifier) ;) })) })) }) (else_clause "else {\nLAB_000a7bf4:\n    uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n      if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a7c10;\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n      if ((uint)uVar51 < 2) {\n        iVar3 = 1;\n        dStack_818 = dVar41;\n        goto LAB_000a7c30;\n      }\n    }\n    else {\nLAB_000a7c10:\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n    }\n    uVar51 = (*pcVar37)(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = extraout_v1_05;\n      dStack_818 = dVar41;\n    }\n    else {\n      iVar3 = 2;\n      dStack_818 = dVar41;\n    }\n  }" else (compound_statement "{\nLAB_000a7bf4:\n    uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n      if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a7c10;\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n      if ((uint)uVar51 < 2) {\n        iVar3 = 1;\n        dStack_818 = dVar41;\n        goto LAB_000a7c30;\n      }\n    }\n    else {\nLAB_000a7c10:\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n    }\n    uVar51 = (*pcVar37)(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = extraout_v1_05;\n      dStack_818 = dVar41;\n    }\n    else {\n      iVar3 = 2;\n      dStack_818 = dVar41;\n    }\n  }" { (labeled_statement "LAB_000a7bf4:\n    uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);" statement_identifier : (expression_statement "uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);" (assignment_expression "uVar51 = (**(code **)(pcStack_830 + -0x775c))(7)" identifier = (call_expression "(**(code **)(pcStack_830 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_830 + -0x775c)" * (pointer_expression "*(code **)(pcStack_830 + -0x775c)" * (cast_expression "(code **)(pcStack_830 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x775c)" ( (binary_expression "pcStack_830 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal )))) ;)) (if_statement "if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n      if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a7c10;\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n      if ((uint)uVar51 < 2) {\n        iVar3 = 1;\n        dStack_818 = dVar41;\n        goto LAB_000a7c30;\n      }\n    }\n    else {\nLAB_000a7c10:\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n    }" if (parenthesized_expression "(((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2))" ( (binary_expression "((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)" (parenthesized_expression "((int)((ulonglong)uVar51 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar51 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar51 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar51 >> 0x20)" ( (binary_expression "(ulonglong)uVar51 >> 0x20" (cast_expression "(ulonglong)uVar51" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "((uint)uVar51 < 2)" ( (binary_expression "(uint)uVar51 < 2" (cast_expression "(uint)uVar51" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) ))) )) (compound_statement "{\n      uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n      if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a7c10;\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n      if ((uint)uVar51 < 2) {\n        iVar3 = 1;\n        dStack_818 = dVar41;\n        goto LAB_000a7c30;\n      }\n    }" { (expression_statement "uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);" (assignment_expression "uVar51 = (**(code **)(pcStack_830 + -0x775c))(7)" identifier = (call_expression "(**(code **)(pcStack_830 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_830 + -0x775c)" * (pointer_expression "*(code **)(pcStack_830 + -0x775c)" * (cast_expression "(code **)(pcStack_830 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x775c)" ( (binary_expression "pcStack_830 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a7c10;" if (parenthesized_expression "((int)((ulonglong)uVar51 >> 0x20) != 0)" ( (binary_expression "(int)((ulonglong)uVar51 >> 0x20) != 0" (cast_expression "(int)((ulonglong)uVar51 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar51 >> 0x20)" ( (binary_expression "(ulonglong)uVar51 >> 0x20" (cast_expression "(ulonglong)uVar51" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) != number_literal) )) (goto_statement "goto LAB_000a7c10;" goto statement_identifier ;)) (expression_statement "pcVar37 = *(code **)(pcStack_830 + -0x775c);" (assignment_expression "pcVar37 = *(code **)(pcStack_830 + -0x775c)" identifier = (pointer_expression "*(code **)(pcStack_830 + -0x775c)" * (cast_expression "(code **)(pcStack_830 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x775c)" ( (binary_expression "pcStack_830 + -0x775c" identifier + number_literal) ))))) ;) (if_statement "if ((uint)uVar51 < 2) {\n        iVar3 = 1;\n        dStack_818 = dVar41;\n        goto LAB_000a7c30;\n      }" if (parenthesized_expression "((uint)uVar51 < 2)" ( (binary_expression "(uint)uVar51 < 2" (cast_expression "(uint)uVar51" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n        iVar3 = 1;\n        dStack_818 = dVar41;\n        goto LAB_000a7c30;\n      }" { (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (expression_statement "dStack_818 = dVar41;" (assignment_expression "dStack_818 = dVar41" identifier = identifier) ;) (goto_statement "goto LAB_000a7c30;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_000a7c10:\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n    }" else (compound_statement "{\nLAB_000a7c10:\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n    }" { (labeled_statement "LAB_000a7c10:\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);" statement_identifier : (expression_statement "pcVar37 = *(code **)(pcStack_830 + -0x775c);" (assignment_expression "pcVar37 = *(code **)(pcStack_830 + -0x775c)" identifier = (pointer_expression "*(code **)(pcStack_830 + -0x775c)" * (cast_expression "(code **)(pcStack_830 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x775c)" ( (binary_expression "pcStack_830 + -0x775c" identifier + number_literal) ))))) ;)) }))) (expression_statement "uVar51 = (*pcVar37)(7);" (assignment_expression "uVar51 = (*pcVar37)(7)" identifier = (call_expression "(*pcVar37)(7)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = extraout_v1_05;\n      dStack_818 = dVar41;\n    }\n    else {\n      iVar3 = 2;\n      dStack_818 = dVar41;\n    }" if (parenthesized_expression "(((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2))" ( (binary_expression "((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)" (parenthesized_expression "((int)((ulonglong)uVar51 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar51 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar51 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar51 >> 0x20)" ( (binary_expression "(ulonglong)uVar51 >> 0x20" (cast_expression "(ulonglong)uVar51" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "((uint)uVar51 < 2)" ( (binary_expression "(uint)uVar51 < 2" (cast_expression "(uint)uVar51" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) ))) )) (compound_statement "{\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = extraout_v1_05;\n      dStack_818 = dVar41;\n    }" { (expression_statement "(**(code **)(pcStack_830 + -0x775c))(7);" (call_expression "(**(code **)(pcStack_830 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x775c))" ( (pointer_expression "**(code **)(pcStack_830 + -0x775c)" * (pointer_expression "*(code **)(pcStack_830 + -0x775c)" * (cast_expression "(code **)(pcStack_830 + -0x775c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x775c)" ( (binary_expression "pcStack_830 + -0x775c" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "iVar3 = extraout_v1_05;" (assignment_expression "iVar3 = extraout_v1_05" identifier = identifier) ;) (expression_statement "dStack_818 = dVar41;" (assignment_expression "dStack_818 = dVar41" identifier = identifier) ;) }) (else_clause "else {\n      iVar3 = 2;\n      dStack_818 = dVar41;\n    }" else (compound_statement "{\n      iVar3 = 2;\n      dStack_818 = dVar41;\n    }" { (expression_statement "iVar3 = 2;" (assignment_expression "iVar3 = 2" identifier = number_literal) ;) (expression_statement "dStack_818 = dVar41;" (assignment_expression "dStack_818 = dVar41" identifier = identifier) ;) }))) }))) (labeled_statement "LAB_000a7c30:\n  puStack_7fc = auStack_7f0;" statement_identifier : (expression_statement "puStack_7fc = auStack_7f0;" (assignment_expression "puStack_7fc = auStack_7f0" identifier = identifier) ;)) (expression_statement "ppiStack_7f8 = &piStack_828;" (assignment_expression "ppiStack_7f8 = &piStack_828" identifier = (pointer_expression "&piStack_828" & identifier)) ;) (expression_statement "iStack_7f4 = 1;" (assignment_expression "iStack_7f4 = 1" identifier = number_literal) ;) (expression_statement "iStack_810 = iVar10;" (assignment_expression "iStack_810 = iVar10" identifier = identifier) ;) (expression_statement "pdStack_80c = pdVar29;" (assignment_expression "pdStack_80c = pdVar29" identifier = identifier) ;) (expression_statement "uStack_808 = uVar4;" (assignment_expression "uStack_808 = uVar4" identifier = identifier) ;) (expression_statement "ppiStack_804 = ppiVar33;" (assignment_expression "ppiStack_804 = ppiVar33" identifier = identifier) ;) (expression_statement "ppiStack_800 = ppiVar34;" (assignment_expression "ppiStack_800 = ppiVar34" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_830 + -0x7700))(*(int *)(pcStack_830 + -0x7ea0) + 0x549c,&dStack_818,iVar3,0)\n  ;" (call_expression "(**(code **)(pcStack_830 + -0x7700))(*(int *)(pcStack_830 + -0x7ea0) + 0x549c,&dStack_818,iVar3,0)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x7700))" ( (pointer_expression "**(code **)(pcStack_830 + -0x7700)" * (pointer_expression "*(code **)(pcStack_830 + -0x7700)" * (cast_expression "(code **)(pcStack_830 + -0x7700)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x7700)" ( (binary_expression "pcStack_830 + -0x7700" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_830 + -0x7ea0) + 0x549c,&dStack_818,iVar3,0)" ( (binary_expression "*(int *)(pcStack_830 + -0x7ea0) + 0x549c" (pointer_expression "*(int *)(pcStack_830 + -0x7ea0)" * (cast_expression "(int *)(pcStack_830 + -0x7ea0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_830 + -0x7ea0)" ( (binary_expression "pcStack_830 + -0x7ea0" identifier + number_literal) )))) + number_literal) , (pointer_expression "&dStack_818" & identifier) , identifier , number_literal ))) ;) (expression_statement "iVar3 = iStack_7f4;" (assignment_expression "iVar3 = iStack_7f4" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_830 + -0x79a4))(uVar4);" (call_expression "(**(code **)(pcStack_830 + -0x79a4))(uVar4)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x79a4))" ( (pointer_expression "**(code **)(pcStack_830 + -0x79a4)" * (pointer_expression "*(code **)(pcStack_830 + -0x79a4)" * (cast_expression "(code **)(pcStack_830 + -0x79a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x79a4)" ( (binary_expression "pcStack_830 + -0x79a4" identifier + number_literal) ))))) )) (argument_list "(uVar4)" ( identifier ))) ;) (if_statement "if (puStack_794 == (undefined8 *)**(int **)(pcStack_830 + -0x7668)) {\n    return iVar3;\n  }" if (parenthesized_expression "(puStack_794 == (undefined8 *)**(int **)(pcStack_830 + -0x7668))" ( (binary_expression "puStack_794 == (undefined8 *)**(int **)(pcStack_830 + -0x7668)" identifier == (cast_expression "(undefined8 *)**(int **)(pcStack_830 + -0x7668)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pcStack_830 + -0x7668)" * (pointer_expression "*(int **)(pcStack_830 + -0x7668)" * (cast_expression "(int **)(pcStack_830 + -0x7668)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x7668)" ( (binary_expression "pcStack_830 + -0x7668" identifier + number_literal) ))))))) )) (compound_statement "{\n    return iVar3;\n  }" { (return_statement "return iVar3;" return identifier ;) })) (expression_statement "pcVar37 = *(code **)(pcStack_830 + -0x7834);" (assignment_expression "pcVar37 = *(code **)(pcStack_830 + -0x7834)" identifier = (pointer_expression "*(code **)(pcStack_830 + -0x7834)" * (cast_expression "(code **)(pcStack_830 + -0x7834)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_830 + -0x7834)" ( (binary_expression "pcStack_830 + -0x7834" identifier + number_literal) ))))) ;) (expression_statement "pcVar38 = GetAffineMatrix;" (assignment_expression "pcVar38 = GetAffineMatrix" identifier = identifier) ;) (expression_statement "puVar20 = puStack_794;" (assignment_expression "puVar20 = puStack_794" identifier = identifier) ;) (expression_statement "(*pcVar37)();" (call_expression "(*pcVar37)()" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_858 = pcVar37 + 0x359994;" (assignment_expression "pcStack_858 = pcVar37 + 0x359994" identifier = (binary_expression "pcVar37 + 0x359994" identifier + number_literal)) ;) (expression_statement "iStack_860 = *(int *)(pcVar37 + 0x3519c8) + 0x10f4;" (assignment_expression "iStack_860 = *(int *)(pcVar37 + 0x3519c8) + 0x10f4" identifier = (binary_expression "*(int *)(pcVar37 + 0x3519c8) + 0x10f4" (pointer_expression "*(int *)(pcVar37 + 0x3519c8)" * (cast_expression "(int *)(pcVar37 + 0x3519c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x3519c8)" ( (binary_expression "pcVar37 + 0x3519c8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "uStack_850 = uVar4;" (assignment_expression "uStack_850 = uVar4" identifier = identifier) ;) (expression_statement "pcStack_84c = pcVar38;" (assignment_expression "pcStack_84c = pcVar38" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar37 + 0x3522dc))\n            (0x8000,*(int *)(pcVar37 + 0x3519c8) + 0x69c0,*(int *)(pcVar37 + 0x3519c8) + 0x76b0,\n             0x16d2);" (call_expression "(**(code **)(pcVar37 + 0x3522dc))\n            (0x8000,*(int *)(pcVar37 + 0x3519c8) + 0x69c0,*(int *)(pcVar37 + 0x3519c8) + 0x76b0,\n             0x16d2)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3522dc))" ( (pointer_expression "**(code **)(pcVar37 + 0x3522dc)" * (pointer_expression "*(code **)(pcVar37 + 0x3522dc)" * (cast_expression "(code **)(pcVar37 + 0x3522dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3522dc)" ( (binary_expression "pcVar37 + 0x3522dc" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(pcVar37 + 0x3519c8) + 0x69c0,*(int *)(pcVar37 + 0x3519c8) + 0x76b0,\n             0x16d2)" ( number_literal , (binary_expression "*(int *)(pcVar37 + 0x3519c8) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + 0x3519c8)" * (cast_expression "(int *)(pcVar37 + 0x3519c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x3519c8)" ( (binary_expression "pcVar37 + 0x3519c8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar37 + 0x3519c8) + 0x76b0" (pointer_expression "*(int *)(pcVar37 + 0x3519c8)" * (cast_expression "(int *)(pcVar37 + 0x3519c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x3519c8)" ( (binary_expression "pcVar37 + 0x3519c8" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) (if_statement "if (puVar20 != (undefined8 *)0x0) {\n    (**(code **)(pcStack_858 + -0x71c4))(puVar20 + 1,0,0x28);\n    iVar3 = *(int *)(pcStack_858 + -0x7fd0);\n    uVar51 = *(undefined8 *)(iVar3 + 0x4408);\n    *puVar20 = uVar51;\n    puVar20[3] = uVar51;\n    return iVar3;\n  }" if (parenthesized_expression "(puVar20 != (undefined8 *)0x0)" ( (binary_expression "puVar20 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(pcStack_858 + -0x71c4))(puVar20 + 1,0,0x28);\n    iVar3 = *(int *)(pcStack_858 + -0x7fd0);\n    uVar51 = *(undefined8 *)(iVar3 + 0x4408);\n    *puVar20 = uVar51;\n    puVar20[3] = uVar51;\n    return iVar3;\n  }" { (expression_statement "(**(code **)(pcStack_858 + -0x71c4))(puVar20 + 1,0,0x28);" (call_expression "(**(code **)(pcStack_858 + -0x71c4))(puVar20 + 1,0,0x28)" (parenthesized_expression "(**(code **)(pcStack_858 + -0x71c4))" ( (pointer_expression "**(code **)(pcStack_858 + -0x71c4)" * (pointer_expression "*(code **)(pcStack_858 + -0x71c4)" * (cast_expression "(code **)(pcStack_858 + -0x71c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_858 + -0x71c4)" ( (binary_expression "pcStack_858 + -0x71c4" identifier + number_literal) ))))) )) (argument_list "(puVar20 + 1,0,0x28)" ( (binary_expression "puVar20 + 1" identifier + number_literal) , number_literal , number_literal ))) ;) (expression_statement "iVar3 = *(int *)(pcStack_858 + -0x7fd0);" (assignment_expression "iVar3 = *(int *)(pcStack_858 + -0x7fd0)" identifier = (pointer_expression "*(int *)(pcStack_858 + -0x7fd0)" * (cast_expression "(int *)(pcStack_858 + -0x7fd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_858 + -0x7fd0)" ( (binary_expression "pcStack_858 + -0x7fd0" identifier + number_literal) ))))) ;) (expression_statement "uVar51 = *(undefined8 *)(iVar3 + 0x4408);" (assignment_expression "uVar51 = *(undefined8 *)(iVar3 + 0x4408)" identifier = (pointer_expression "*(undefined8 *)(iVar3 + 0x4408)" * (cast_expression "(undefined8 *)(iVar3 + 0x4408)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x4408)" ( (binary_expression "iVar3 + 0x4408" identifier + number_literal) ))))) ;) (expression_statement "*puVar20 = uVar51;" (assignment_expression "*puVar20 = uVar51" (pointer_expression "*puVar20" * identifier) = identifier) ;) (expression_statement "puVar20[3] = uVar51;" (assignment_expression "puVar20[3] = uVar51" (subscript_expression "puVar20[3]" identifier [ number_literal ]) = identifier) ;) (return_statement "return iVar3;" return identifier ;) })) (expression_statement "iVar49 = *(int *)(pcStack_858 + -0x7fcc) + 0x69c0;" (assignment_expression "iVar49 = *(int *)(pcStack_858 + -0x7fcc) + 0x69c0" identifier = (binary_expression "*(int *)(pcStack_858 + -0x7fcc) + 0x69c0" (pointer_expression "*(int *)(pcStack_858 + -0x7fcc)" * (cast_expression "(int *)(pcStack_858 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_858 + -0x7fcc)" ( (binary_expression "pcStack_858 + -0x7fcc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar10 = *(int *)(pcStack_858 + -0x7fcc) + 0x6368;" (assignment_expression "iVar10 = *(int *)(pcStack_858 + -0x7fcc) + 0x6368" identifier = (binary_expression "*(int *)(pcStack_858 + -0x7fcc) + 0x6368" (pointer_expression "*(int *)(pcStack_858 + -0x7fcc)" * (cast_expression "(int *)(pcStack_858 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_858 + -0x7fcc)" ( (binary_expression "pcStack_858 + -0x7fcc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pcVar37 = *(code **)(pcStack_858 + -0x7290);" (assignment_expression "pcVar37 = *(code **)(pcStack_858 + -0x7290)" identifier = (pointer_expression "*(code **)(pcStack_858 + -0x7290)" * (cast_expression "(code **)(pcStack_858 + -0x7290)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_858 + -0x7290)" ( (binary_expression "pcStack_858 + -0x7290" identifier + number_literal) ))))) ;) (expression_statement "pcVar38 = GetDrawInfo;" (assignment_expression "pcVar38 = GetDrawInfo" identifier = identifier) ;) (expression_statement "(*pcVar37)(iVar10,iVar49,0x16d3,*(int *)(pcStack_858 + -0x7fcc) + 0x76a0);" (call_expression "(*pcVar37)(iVar10,iVar49,0x16d3,*(int *)(pcStack_858 + -0x7fcc) + 0x76a0)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(iVar10,iVar49,0x16d3,*(int *)(pcStack_858 + -0x7fcc) + 0x76a0)" ( identifier , identifier , number_literal , (binary_expression "*(int *)(pcStack_858 + -0x7fcc) + 0x76a0" (pointer_expression "*(int *)(pcStack_858 + -0x7fcc)" * (cast_expression "(int *)(pcStack_858 + -0x7fcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_858 + -0x7fcc)" ( (binary_expression "pcStack_858 + -0x7fcc" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iStack_888 = iVar3;" (assignment_expression "iStack_888 = iVar3" identifier = identifier) ;) (expression_statement "iStack_894 = **(int **)(pcVar37 + 0x352270);" (assignment_expression "iStack_894 = **(int **)(pcVar37 + 0x352270)" identifier = (pointer_expression "**(int **)(pcVar37 + 0x352270)" * (pointer_expression "*(int **)(pcVar37 + 0x352270)" * (cast_expression "(int **)(pcVar37 + 0x352270)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x352270)" ( (binary_expression "pcVar37 + 0x352270" identifier + number_literal) )))))) ;) (expression_statement "puStack_88c = puVar20;" (assignment_expression "puStack_88c = puVar20" identifier = identifier) ;) (expression_statement "pdStack_884 = pdVar29;" (assignment_expression "pdStack_884 = pdVar29" identifier = identifier) ;) (expression_statement "ppiStack_880 = ppiVar33;" (assignment_expression "ppiStack_880 = ppiVar33" identifier = identifier) ;) (expression_statement "ppiStack_87c = ppiVar34;" (assignment_expression "ppiStack_87c = ppiVar34" identifier = identifier) ;) (expression_statement "puStack_878 = puVar35;" (assignment_expression "puStack_878 = puVar35" identifier = identifier) ;) (expression_statement "pcStack_874 = pcVar38;" (assignment_expression "pcStack_874 = pcVar38" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar37 + 0x352220))\n            (0x8000,*(int *)(pcVar37 + 0x35190c) + 0x69c0,*(int *)(pcVar37 + 0x35190c) + 0x7694,\n             0x1702,*(int *)(pcVar37 + 0x35190c) + 0x10f4);" (call_expression "(**(code **)(pcVar37 + 0x352220))\n            (0x8000,*(int *)(pcVar37 + 0x35190c) + 0x69c0,*(int *)(pcVar37 + 0x35190c) + 0x7694,\n             0x1702,*(int *)(pcVar37 + 0x35190c) + 0x10f4)" (parenthesized_expression "(**(code **)(pcVar37 + 0x352220))" ( (pointer_expression "**(code **)(pcVar37 + 0x352220)" * (pointer_expression "*(code **)(pcVar37 + 0x352220)" * (cast_expression "(code **)(pcVar37 + 0x352220)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x352220)" ( (binary_expression "pcVar37 + 0x352220" identifier + number_literal) ))))) )) (argument_list "(0x8000,*(int *)(pcVar37 + 0x35190c) + 0x69c0,*(int *)(pcVar37 + 0x35190c) + 0x7694,\n             0x1702,*(int *)(pcVar37 + 0x35190c) + 0x10f4)" ( number_literal , (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x7694" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x10f4" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (iVar49 == 0) {\n    (**(code **)(pcVar37 + 0x352648))\n              (*(int *)(pcVar37 + 0x351908) + 0x40e4,*(int *)(pcVar37 + 0x35190c) + 0x69c0,0x1703,\n               *(int *)(pcVar37 + 0x35190c) + 0x7688);\n  }\n  else {\n    (**(code **)(pcVar37 + 0x352714))(iVar49,0,0x3c0);\n    iVar10 = (**(code **)(pcVar37 + 0x3521dc))(iVar10);\n    (**(code **)(pcVar37 + 0x351e5c))(iVar49 + 0x18);\n    pdVar29 = (double *)(**(code **)(pcVar37 + 0x351f2c))();\n    ppiVar34 = (int **)(iVar49 + 0x48);\n    (**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar34,pdVar29);\n    ppiVar33 = (int **)(iVar49 + 0xa0);\n    (**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar33,pdVar29);\n    *(undefined4 *)(iVar49 + 0x238) = *(undefined4 *)(iVar10 + 0x14);\n    *(undefined8 *)(iVar49 + 0x1b0) = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4408);\n    *(undefined4 *)(iVar49 + 0x240) = 1;\n    *(undefined4 *)(iVar49 + 0x2cc) = *(undefined4 *)(*(int *)(pcVar37 + 0x351908) + 0x4aa8);\n    uVar51 = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4a48);\n    *(undefined8 *)(iVar49 + 0x398) = uVar51;\n    *(undefined8 *)(iVar49 + 0x3a0) = uVar51;\n    *(undefined4 *)(iVar49 + 0x244) = 1;\n    *(undefined4 *)(iVar49 + 0x248) = 1;\n    *(undefined4 *)(iVar49 + 0x24c) = 10;\n    *(undefined4 *)(iVar49 + 600) = 1;\n    *(undefined8 *)(iVar49 + 0x288) = *(undefined8 *)(*(int *)(pcVar37 + 0x35190c) + 0x7970);\n    *(undefined4 *)(iVar49 + 0x144) = 0;\n    *(undefined4 *)(iVar49 + 0x140) = 0;\n    *(undefined4 *)(iVar49 + 0x25c) = 0x36;\n    *(undefined4 *)(iVar49 + 0x2d0) = 1;\n    *(undefined4 *)(iVar49 + 0x3a8) = 0;\n    uVar4 = (**(code **)(pcVar37 + 0x3527e8))();\n    *(undefined4 *)(iVar49 + 0x38c) = uVar4;\n    if (*(int *)(iVar10 + 0x4c) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x264) = uVar4;\n    }\n    if (*(int *)(iVar10 + 0x54) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x290) = uVar4;\n    }\n    *(undefined4 *)(iVar49 + 0x23c) = *(undefined4 *)(iVar10 + 0x14);\n    uVar4 = *(undefined4 *)(iVar10 + 0x58);\n    if (*(double *)(*(int *)(pcVar37 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar10 + 0x58))) {\n      *(undefined4 *)(iVar49 + 0x28c) = *(undefined4 *)(iVar10 + 0x5c);\n      *(undefined4 *)(iVar49 + 0x288) = uVar4;\n    }\n    puVar13 = (undefined4 *)(iVar10 + 0x118);\n    puVar21 = (undefined4 *)(iVar49 + 0x150);\n    do {\n      puVar15 = puVar21;\n      puVar9 = puVar13;\n      uVar27 = puVar9[1];\n      uVar25 = puVar9[2];\n      uVar4 = puVar9[3];\n      *puVar15 = *puVar9;\n      puVar15[1] = uVar27;\n      puVar15[2] = uVar25;\n      puVar15[3] = uVar4;\n      puVar13 = puVar9 + 4;\n      puVar21 = puVar15 + 4;\n    } while (puVar13 != (undefined4 *)(iVar10 + 0x168));\n    uVar4 = puVar9[5];\n    puVar15[4] = *puVar13;\n    puVar15[5] = uVar4;\n    if (*(int *)(iVar10 + 0x48) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x29c) = uVar4;\n    }\n    iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ac4);\n    if (iVar3 != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x14,0,iVar3);\n      *(undefined4 *)(iVar49 + 0x388) = uVar4;\n      goto LAB_000a8298;\n    }\n  }" if (parenthesized_expression "(iVar49 == 0)" ( (binary_expression "iVar49 == 0" identifier == number_literal) )) (compound_statement "{\n    (**(code **)(pcVar37 + 0x352648))\n              (*(int *)(pcVar37 + 0x351908) + 0x40e4,*(int *)(pcVar37 + 0x35190c) + 0x69c0,0x1703,\n               *(int *)(pcVar37 + 0x35190c) + 0x7688);\n  }" { (expression_statement "(**(code **)(pcVar37 + 0x352648))\n              (*(int *)(pcVar37 + 0x351908) + 0x40e4,*(int *)(pcVar37 + 0x35190c) + 0x69c0,0x1703,\n               *(int *)(pcVar37 + 0x35190c) + 0x7688);" (call_expression "(**(code **)(pcVar37 + 0x352648))\n              (*(int *)(pcVar37 + 0x351908) + 0x40e4,*(int *)(pcVar37 + 0x35190c) + 0x69c0,0x1703,\n               *(int *)(pcVar37 + 0x35190c) + 0x7688)" (parenthesized_expression "(**(code **)(pcVar37 + 0x352648))" ( (pointer_expression "**(code **)(pcVar37 + 0x352648)" * (pointer_expression "*(code **)(pcVar37 + 0x352648)" * (cast_expression "(code **)(pcVar37 + 0x352648)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x352648)" ( (binary_expression "pcVar37 + 0x352648" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar37 + 0x351908) + 0x40e4,*(int *)(pcVar37 + 0x35190c) + 0x69c0,0x1703,\n               *(int *)(pcVar37 + 0x35190c) + 0x7688)" ( (binary_expression "*(int *)(pcVar37 + 0x351908) + 0x40e4" (pointer_expression "*(int *)(pcVar37 + 0x351908)" * (cast_expression "(int *)(pcVar37 + 0x351908)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x351908)" ( (binary_expression "pcVar37 + 0x351908" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x7688" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) ))) ;) }) (else_clause "else {\n    (**(code **)(pcVar37 + 0x352714))(iVar49,0,0x3c0);\n    iVar10 = (**(code **)(pcVar37 + 0x3521dc))(iVar10);\n    (**(code **)(pcVar37 + 0x351e5c))(iVar49 + 0x18);\n    pdVar29 = (double *)(**(code **)(pcVar37 + 0x351f2c))();\n    ppiVar34 = (int **)(iVar49 + 0x48);\n    (**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar34,pdVar29);\n    ppiVar33 = (int **)(iVar49 + 0xa0);\n    (**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar33,pdVar29);\n    *(undefined4 *)(iVar49 + 0x238) = *(undefined4 *)(iVar10 + 0x14);\n    *(undefined8 *)(iVar49 + 0x1b0) = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4408);\n    *(undefined4 *)(iVar49 + 0x240) = 1;\n    *(undefined4 *)(iVar49 + 0x2cc) = *(undefined4 *)(*(int *)(pcVar37 + 0x351908) + 0x4aa8);\n    uVar51 = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4a48);\n    *(undefined8 *)(iVar49 + 0x398) = uVar51;\n    *(undefined8 *)(iVar49 + 0x3a0) = uVar51;\n    *(undefined4 *)(iVar49 + 0x244) = 1;\n    *(undefined4 *)(iVar49 + 0x248) = 1;\n    *(undefined4 *)(iVar49 + 0x24c) = 10;\n    *(undefined4 *)(iVar49 + 600) = 1;\n    *(undefined8 *)(iVar49 + 0x288) = *(undefined8 *)(*(int *)(pcVar37 + 0x35190c) + 0x7970);\n    *(undefined4 *)(iVar49 + 0x144) = 0;\n    *(undefined4 *)(iVar49 + 0x140) = 0;\n    *(undefined4 *)(iVar49 + 0x25c) = 0x36;\n    *(undefined4 *)(iVar49 + 0x2d0) = 1;\n    *(undefined4 *)(iVar49 + 0x3a8) = 0;\n    uVar4 = (**(code **)(pcVar37 + 0x3527e8))();\n    *(undefined4 *)(iVar49 + 0x38c) = uVar4;\n    if (*(int *)(iVar10 + 0x4c) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x264) = uVar4;\n    }\n    if (*(int *)(iVar10 + 0x54) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x290) = uVar4;\n    }\n    *(undefined4 *)(iVar49 + 0x23c) = *(undefined4 *)(iVar10 + 0x14);\n    uVar4 = *(undefined4 *)(iVar10 + 0x58);\n    if (*(double *)(*(int *)(pcVar37 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar10 + 0x58))) {\n      *(undefined4 *)(iVar49 + 0x28c) = *(undefined4 *)(iVar10 + 0x5c);\n      *(undefined4 *)(iVar49 + 0x288) = uVar4;\n    }\n    puVar13 = (undefined4 *)(iVar10 + 0x118);\n    puVar21 = (undefined4 *)(iVar49 + 0x150);\n    do {\n      puVar15 = puVar21;\n      puVar9 = puVar13;\n      uVar27 = puVar9[1];\n      uVar25 = puVar9[2];\n      uVar4 = puVar9[3];\n      *puVar15 = *puVar9;\n      puVar15[1] = uVar27;\n      puVar15[2] = uVar25;\n      puVar15[3] = uVar4;\n      puVar13 = puVar9 + 4;\n      puVar21 = puVar15 + 4;\n    } while (puVar13 != (undefined4 *)(iVar10 + 0x168));\n    uVar4 = puVar9[5];\n    puVar15[4] = *puVar13;\n    puVar15[5] = uVar4;\n    if (*(int *)(iVar10 + 0x48) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x29c) = uVar4;\n    }\n    iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ac4);\n    if (iVar3 != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x14,0,iVar3);\n      *(undefined4 *)(iVar49 + 0x388) = uVar4;\n      goto LAB_000a8298;\n    }\n  }" else (compound_statement "{\n    (**(code **)(pcVar37 + 0x352714))(iVar49,0,0x3c0);\n    iVar10 = (**(code **)(pcVar37 + 0x3521dc))(iVar10);\n    (**(code **)(pcVar37 + 0x351e5c))(iVar49 + 0x18);\n    pdVar29 = (double *)(**(code **)(pcVar37 + 0x351f2c))();\n    ppiVar34 = (int **)(iVar49 + 0x48);\n    (**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar34,pdVar29);\n    ppiVar33 = (int **)(iVar49 + 0xa0);\n    (**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar33,pdVar29);\n    *(undefined4 *)(iVar49 + 0x238) = *(undefined4 *)(iVar10 + 0x14);\n    *(undefined8 *)(iVar49 + 0x1b0) = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4408);\n    *(undefined4 *)(iVar49 + 0x240) = 1;\n    *(undefined4 *)(iVar49 + 0x2cc) = *(undefined4 *)(*(int *)(pcVar37 + 0x351908) + 0x4aa8);\n    uVar51 = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4a48);\n    *(undefined8 *)(iVar49 + 0x398) = uVar51;\n    *(undefined8 *)(iVar49 + 0x3a0) = uVar51;\n    *(undefined4 *)(iVar49 + 0x244) = 1;\n    *(undefined4 *)(iVar49 + 0x248) = 1;\n    *(undefined4 *)(iVar49 + 0x24c) = 10;\n    *(undefined4 *)(iVar49 + 600) = 1;\n    *(undefined8 *)(iVar49 + 0x288) = *(undefined8 *)(*(int *)(pcVar37 + 0x35190c) + 0x7970);\n    *(undefined4 *)(iVar49 + 0x144) = 0;\n    *(undefined4 *)(iVar49 + 0x140) = 0;\n    *(undefined4 *)(iVar49 + 0x25c) = 0x36;\n    *(undefined4 *)(iVar49 + 0x2d0) = 1;\n    *(undefined4 *)(iVar49 + 0x3a8) = 0;\n    uVar4 = (**(code **)(pcVar37 + 0x3527e8))();\n    *(undefined4 *)(iVar49 + 0x38c) = uVar4;\n    if (*(int *)(iVar10 + 0x4c) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x264) = uVar4;\n    }\n    if (*(int *)(iVar10 + 0x54) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x290) = uVar4;\n    }\n    *(undefined4 *)(iVar49 + 0x23c) = *(undefined4 *)(iVar10 + 0x14);\n    uVar4 = *(undefined4 *)(iVar10 + 0x58);\n    if (*(double *)(*(int *)(pcVar37 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar10 + 0x58))) {\n      *(undefined4 *)(iVar49 + 0x28c) = *(undefined4 *)(iVar10 + 0x5c);\n      *(undefined4 *)(iVar49 + 0x288) = uVar4;\n    }\n    puVar13 = (undefined4 *)(iVar10 + 0x118);\n    puVar21 = (undefined4 *)(iVar49 + 0x150);\n    do {\n      puVar15 = puVar21;\n      puVar9 = puVar13;\n      uVar27 = puVar9[1];\n      uVar25 = puVar9[2];\n      uVar4 = puVar9[3];\n      *puVar15 = *puVar9;\n      puVar15[1] = uVar27;\n      puVar15[2] = uVar25;\n      puVar15[3] = uVar4;\n      puVar13 = puVar9 + 4;\n      puVar21 = puVar15 + 4;\n    } while (puVar13 != (undefined4 *)(iVar10 + 0x168));\n    uVar4 = puVar9[5];\n    puVar15[4] = *puVar13;\n    puVar15[5] = uVar4;\n    if (*(int *)(iVar10 + 0x48) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x29c) = uVar4;\n    }\n    iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ac4);\n    if (iVar3 != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x14,0,iVar3);\n      *(undefined4 *)(iVar49 + 0x388) = uVar4;\n      goto LAB_000a8298;\n    }\n  }" { (expression_statement "(**(code **)(pcVar37 + 0x352714))(iVar49,0,0x3c0);" (call_expression "(**(code **)(pcVar37 + 0x352714))(iVar49,0,0x3c0)" (parenthesized_expression "(**(code **)(pcVar37 + 0x352714))" ( (pointer_expression "**(code **)(pcVar37 + 0x352714)" * (pointer_expression "*(code **)(pcVar37 + 0x352714)" * (cast_expression "(code **)(pcVar37 + 0x352714)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x352714)" ( (binary_expression "pcVar37 + 0x352714" identifier + number_literal) ))))) )) (argument_list "(iVar49,0,0x3c0)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "iVar10 = (**(code **)(pcVar37 + 0x3521dc))(iVar10);" (assignment_expression "iVar10 = (**(code **)(pcVar37 + 0x3521dc))(iVar10)" identifier = (call_expression "(**(code **)(pcVar37 + 0x3521dc))(iVar10)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521dc))" ( (pointer_expression "**(code **)(pcVar37 + 0x3521dc)" * (pointer_expression "*(code **)(pcVar37 + 0x3521dc)" * (cast_expression "(code **)(pcVar37 + 0x3521dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3521dc)" ( (binary_expression "pcVar37 + 0x3521dc" identifier + number_literal) ))))) )) (argument_list "(iVar10)" ( identifier )))) ;) (expression_statement "(**(code **)(pcVar37 + 0x351e5c))(iVar49 + 0x18);" (call_expression "(**(code **)(pcVar37 + 0x351e5c))(iVar49 + 0x18)" (parenthesized_expression "(**(code **)(pcVar37 + 0x351e5c))" ( (pointer_expression "**(code **)(pcVar37 + 0x351e5c)" * (pointer_expression "*(code **)(pcVar37 + 0x351e5c)" * (cast_expression "(code **)(pcVar37 + 0x351e5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x351e5c)" ( (binary_expression "pcVar37 + 0x351e5c" identifier + number_literal) ))))) )) (argument_list "(iVar49 + 0x18)" ( (binary_expression "iVar49 + 0x18" identifier + number_literal) ))) ;) (expression_statement "pdVar29 = (double *)(**(code **)(pcVar37 + 0x351f2c))();" (assignment_expression "pdVar29 = (double *)(**(code **)(pcVar37 + 0x351f2c))()" identifier = (cast_expression "(double *)(**(code **)(pcVar37 + 0x351f2c))()" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar37 + 0x351f2c))()" (parenthesized_expression "(**(code **)(pcVar37 + 0x351f2c))" ( (pointer_expression "**(code **)(pcVar37 + 0x351f2c)" * (pointer_expression "*(code **)(pcVar37 + 0x351f2c)" * (cast_expression "(code **)(pcVar37 + 0x351f2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x351f2c)" ( (binary_expression "pcVar37 + 0x351f2c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "ppiVar34 = (int **)(iVar49 + 0x48);" (assignment_expression "ppiVar34 = (int **)(iVar49 + 0x48)" identifier = (cast_expression "(int **)(iVar49 + 0x48)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar49 + 0x48)" ( (binary_expression "iVar49 + 0x48" identifier + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar34,pdVar29);" (call_expression "(**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar34,pdVar29)" (parenthesized_expression "(**(code **)(pcVar37 + 0x351e54))" ( (pointer_expression "**(code **)(pcVar37 + 0x351e54)" * (pointer_expression "*(code **)(pcVar37 + 0x351e54)" * (cast_expression "(code **)(pcVar37 + 0x351e54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x351e54)" ( (binary_expression "pcVar37 + 0x351e54" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar37 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar34,pdVar29)" ( (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6ab4" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) , number_literal , identifier , identifier ))) ;) (expression_statement "ppiVar33 = (int **)(iVar49 + 0xa0);" (assignment_expression "ppiVar33 = (int **)(iVar49 + 0xa0)" identifier = (cast_expression "(int **)(iVar49 + 0xa0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar49 + 0xa0)" ( (binary_expression "iVar49 + 0xa0" identifier + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar33,pdVar29);" (call_expression "(**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar33,pdVar29)" (parenthesized_expression "(**(code **)(pcVar37 + 0x351e54))" ( (pointer_expression "**(code **)(pcVar37 + 0x351e54)" * (pointer_expression "*(code **)(pcVar37 + 0x351e54)" * (cast_expression "(code **)(pcVar37 + 0x351e54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x351e54)" ( (binary_expression "pcVar37 + 0x351e54" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar37 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar33,pdVar29)" ( (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6abc" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) , number_literal , identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x238) = *(undefined4 *)(iVar10 + 0x14);" (assignment_expression "*(undefined4 *)(iVar49 + 0x238) = *(undefined4 *)(iVar10 + 0x14)" (pointer_expression "*(undefined4 *)(iVar49 + 0x238)" * (cast_expression "(undefined4 *)(iVar49 + 0x238)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x238)" ( (binary_expression "iVar49 + 0x238" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar10 + 0x14)" * (cast_expression "(undefined4 *)(iVar10 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(iVar49 + 0x1b0) = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4408);" (assignment_expression "*(undefined8 *)(iVar49 + 0x1b0) = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4408)" (pointer_expression "*(undefined8 *)(iVar49 + 0x1b0)" * (cast_expression "(undefined8 *)(iVar49 + 0x1b0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x1b0)" ( (binary_expression "iVar49 + 0x1b0" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4408)" * (cast_expression "(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4408)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar37 + 0x351908) + 0x4408)" ( (binary_expression "*(int *)(pcVar37 + 0x351908) + 0x4408" (pointer_expression "*(int *)(pcVar37 + 0x351908)" * (cast_expression "(int *)(pcVar37 + 0x351908)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x351908)" ( (binary_expression "pcVar37 + 0x351908" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x240) = 1;" (assignment_expression "*(undefined4 *)(iVar49 + 0x240) = 1" (pointer_expression "*(undefined4 *)(iVar49 + 0x240)" * (cast_expression "(undefined4 *)(iVar49 + 0x240)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x240)" ( (binary_expression "iVar49 + 0x240" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x2cc) = *(undefined4 *)(*(int *)(pcVar37 + 0x351908) + 0x4aa8);" (assignment_expression "*(undefined4 *)(iVar49 + 0x2cc) = *(undefined4 *)(*(int *)(pcVar37 + 0x351908) + 0x4aa8)" (pointer_expression "*(undefined4 *)(iVar49 + 0x2cc)" * (cast_expression "(undefined4 *)(iVar49 + 0x2cc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x2cc)" ( (binary_expression "iVar49 + 0x2cc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(*(int *)(pcVar37 + 0x351908) + 0x4aa8)" * (cast_expression "(undefined4 *)(*(int *)(pcVar37 + 0x351908) + 0x4aa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar37 + 0x351908) + 0x4aa8)" ( (binary_expression "*(int *)(pcVar37 + 0x351908) + 0x4aa8" (pointer_expression "*(int *)(pcVar37 + 0x351908)" * (cast_expression "(int *)(pcVar37 + 0x351908)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x351908)" ( (binary_expression "pcVar37 + 0x351908" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar51 = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4a48);" (assignment_expression "uVar51 = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4a48)" identifier = (pointer_expression "*(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4a48)" * (cast_expression "(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4a48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar37 + 0x351908) + 0x4a48)" ( (binary_expression "*(int *)(pcVar37 + 0x351908) + 0x4a48" (pointer_expression "*(int *)(pcVar37 + 0x351908)" * (cast_expression "(int *)(pcVar37 + 0x351908)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x351908)" ( (binary_expression "pcVar37 + 0x351908" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(iVar49 + 0x398) = uVar51;" (assignment_expression "*(undefined8 *)(iVar49 + 0x398) = uVar51" (pointer_expression "*(undefined8 *)(iVar49 + 0x398)" * (cast_expression "(undefined8 *)(iVar49 + 0x398)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x398)" ( (binary_expression "iVar49 + 0x398" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined8 *)(iVar49 + 0x3a0) = uVar51;" (assignment_expression "*(undefined8 *)(iVar49 + 0x3a0) = uVar51" (pointer_expression "*(undefined8 *)(iVar49 + 0x3a0)" * (cast_expression "(undefined8 *)(iVar49 + 0x3a0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x3a0)" ( (binary_expression "iVar49 + 0x3a0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x244) = 1;" (assignment_expression "*(undefined4 *)(iVar49 + 0x244) = 1" (pointer_expression "*(undefined4 *)(iVar49 + 0x244)" * (cast_expression "(undefined4 *)(iVar49 + 0x244)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x244)" ( (binary_expression "iVar49 + 0x244" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x248) = 1;" (assignment_expression "*(undefined4 *)(iVar49 + 0x248) = 1" (pointer_expression "*(undefined4 *)(iVar49 + 0x248)" * (cast_expression "(undefined4 *)(iVar49 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x248)" ( (binary_expression "iVar49 + 0x248" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x24c) = 10;" (assignment_expression "*(undefined4 *)(iVar49 + 0x24c) = 10" (pointer_expression "*(undefined4 *)(iVar49 + 0x24c)" * (cast_expression "(undefined4 *)(iVar49 + 0x24c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x24c)" ( (binary_expression "iVar49 + 0x24c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar49 + 600) = 1;" (assignment_expression "*(undefined4 *)(iVar49 + 600) = 1" (pointer_expression "*(undefined4 *)(iVar49 + 600)" * (cast_expression "(undefined4 *)(iVar49 + 600)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 600)" ( (binary_expression "iVar49 + 600" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 *)(iVar49 + 0x288) = *(undefined8 *)(*(int *)(pcVar37 + 0x35190c) + 0x7970);" (assignment_expression "*(undefined8 *)(iVar49 + 0x288) = *(undefined8 *)(*(int *)(pcVar37 + 0x35190c) + 0x7970)" (pointer_expression "*(undefined8 *)(iVar49 + 0x288)" * (cast_expression "(undefined8 *)(iVar49 + 0x288)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x288)" ( (binary_expression "iVar49 + 0x288" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(*(int *)(pcVar37 + 0x35190c) + 0x7970)" * (cast_expression "(undefined8 *)(*(int *)(pcVar37 + 0x35190c) + 0x7970)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar37 + 0x35190c) + 0x7970)" ( (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x7970" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x144) = 0;" (assignment_expression "*(undefined4 *)(iVar49 + 0x144) = 0" (pointer_expression "*(undefined4 *)(iVar49 + 0x144)" * (cast_expression "(undefined4 *)(iVar49 + 0x144)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x144)" ( (binary_expression "iVar49 + 0x144" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x140) = 0;" (assignment_expression "*(undefined4 *)(iVar49 + 0x140) = 0" (pointer_expression "*(undefined4 *)(iVar49 + 0x140)" * (cast_expression "(undefined4 *)(iVar49 + 0x140)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x140)" ( (binary_expression "iVar49 + 0x140" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x25c) = 0x36;" (assignment_expression "*(undefined4 *)(iVar49 + 0x25c) = 0x36" (pointer_expression "*(undefined4 *)(iVar49 + 0x25c)" * (cast_expression "(undefined4 *)(iVar49 + 0x25c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x25c)" ( (binary_expression "iVar49 + 0x25c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x2d0) = 1;" (assignment_expression "*(undefined4 *)(iVar49 + 0x2d0) = 1" (pointer_expression "*(undefined4 *)(iVar49 + 0x2d0)" * (cast_expression "(undefined4 *)(iVar49 + 0x2d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x2d0)" ( (binary_expression "iVar49 + 0x2d0" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x3a8) = 0;" (assignment_expression "*(undefined4 *)(iVar49 + 0x3a8) = 0" (pointer_expression "*(undefined4 *)(iVar49 + 0x3a8)" * (cast_expression "(undefined4 *)(iVar49 + 0x3a8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x3a8)" ( (binary_expression "iVar49 + 0x3a8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar4 = (**(code **)(pcVar37 + 0x3527e8))();" (assignment_expression "uVar4 = (**(code **)(pcVar37 + 0x3527e8))()" identifier = (call_expression "(**(code **)(pcVar37 + 0x3527e8))()" (parenthesized_expression "(**(code **)(pcVar37 + 0x3527e8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3527e8)" * (pointer_expression "*(code **)(pcVar37 + 0x3527e8)" * (cast_expression "(code **)(pcVar37 + 0x3527e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3527e8)" ( (binary_expression "pcVar37 + 0x3527e8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x38c) = uVar4;" (assignment_expression "*(undefined4 *)(iVar49 + 0x38c) = uVar4" (pointer_expression "*(undefined4 *)(iVar49 + 0x38c)" * (cast_expression "(undefined4 *)(iVar49 + 0x38c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x38c)" ( (binary_expression "iVar49 + 0x38c" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*(int *)(iVar10 + 0x4c) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x264) = uVar4;\n    }" if (parenthesized_expression "(*(int *)(iVar10 + 0x4c) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x4c) != 0" (pointer_expression "*(int *)(iVar10 + 0x4c)" * (cast_expression "(int *)(iVar10 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x4c)" ( (binary_expression "iVar10 + 0x4c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x264) = uVar4;\n    }" { (expression_statement "uVar4 = (**(code **)(pcVar37 + 0x352854))();" (assignment_expression "uVar4 = (**(code **)(pcVar37 + 0x352854))()" identifier = (call_expression "(**(code **)(pcVar37 + 0x352854))()" (parenthesized_expression "(**(code **)(pcVar37 + 0x352854))" ( (pointer_expression "**(code **)(pcVar37 + 0x352854)" * (pointer_expression "*(code **)(pcVar37 + 0x352854)" * (cast_expression "(code **)(pcVar37 + 0x352854)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x352854)" ( (binary_expression "pcVar37 + 0x352854" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x264) = uVar4;" (assignment_expression "*(undefined4 *)(iVar49 + 0x264) = uVar4" (pointer_expression "*(undefined4 *)(iVar49 + 0x264)" * (cast_expression "(undefined4 *)(iVar49 + 0x264)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x264)" ( (binary_expression "iVar49 + 0x264" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(int *)(iVar10 + 0x54) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x290) = uVar4;\n    }" if (parenthesized_expression "(*(int *)(iVar10 + 0x54) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x54) != 0" (pointer_expression "*(int *)(iVar10 + 0x54)" * (cast_expression "(int *)(iVar10 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x54)" ( (binary_expression "iVar10 + 0x54" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x290) = uVar4;\n    }" { (expression_statement "uVar4 = (**(code **)(pcVar37 + 0x352854))();" (assignment_expression "uVar4 = (**(code **)(pcVar37 + 0x352854))()" identifier = (call_expression "(**(code **)(pcVar37 + 0x352854))()" (parenthesized_expression "(**(code **)(pcVar37 + 0x352854))" ( (pointer_expression "**(code **)(pcVar37 + 0x352854)" * (pointer_expression "*(code **)(pcVar37 + 0x352854)" * (cast_expression "(code **)(pcVar37 + 0x352854)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x352854)" ( (binary_expression "pcVar37 + 0x352854" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x290) = uVar4;" (assignment_expression "*(undefined4 *)(iVar49 + 0x290) = uVar4" (pointer_expression "*(undefined4 *)(iVar49 + 0x290)" * (cast_expression "(undefined4 *)(iVar49 + 0x290)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x290)" ( (binary_expression "iVar49 + 0x290" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "*(undefined4 *)(iVar49 + 0x23c) = *(undefined4 *)(iVar10 + 0x14);" (assignment_expression "*(undefined4 *)(iVar49 + 0x23c) = *(undefined4 *)(iVar10 + 0x14)" (pointer_expression "*(undefined4 *)(iVar49 + 0x23c)" * (cast_expression "(undefined4 *)(iVar49 + 0x23c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x23c)" ( (binary_expression "iVar49 + 0x23c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar10 + 0x14)" * (cast_expression "(undefined4 *)(iVar10 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined4 *)(iVar10 + 0x58);" (assignment_expression "uVar4 = *(undefined4 *)(iVar10 + 0x58)" identifier = (pointer_expression "*(undefined4 *)(iVar10 + 0x58)" * (cast_expression "(undefined4 *)(iVar10 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x58)" ( (binary_expression "iVar10 + 0x58" identifier + number_literal) ))))) ;) (if_statement "if (*(double *)(*(int *)(pcVar37 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar10 + 0x58))) {\n      *(undefined4 *)(iVar49 + 0x28c) = *(undefined4 *)(iVar10 + 0x5c);\n      *(undefined4 *)(iVar49 + 0x288) = uVar4;\n    }" if (parenthesized_expression "(*(double *)(*(int *)(pcVar37 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar10 + 0x58)))" ( (binary_expression "*(double *)(*(int *)(pcVar37 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar10 + 0x58))" (pointer_expression "*(double *)(*(int *)(pcVar37 + 0x351908) + 0x43c8)" * (cast_expression "(double *)(*(int *)(pcVar37 + 0x351908) + 0x43c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar37 + 0x351908) + 0x43c8)" ( (binary_expression "*(int *)(pcVar37 + 0x351908) + 0x43c8" (pointer_expression "*(int *)(pcVar37 + 0x351908)" * (cast_expression "(int *)(pcVar37 + 0x351908)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x351908)" ( (binary_expression "pcVar37 + 0x351908" identifier + number_literal) )))) + number_literal) )))) <= (call_expression "ABS(*(double *)(iVar10 + 0x58))" identifier (argument_list "(*(double *)(iVar10 + 0x58))" ( (pointer_expression "*(double *)(iVar10 + 0x58)" * (cast_expression "(double *)(iVar10 + 0x58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x58)" ( (binary_expression "iVar10 + 0x58" identifier + number_literal) )))) )))) )) (compound_statement "{\n      *(undefined4 *)(iVar49 + 0x28c) = *(undefined4 *)(iVar10 + 0x5c);\n      *(undefined4 *)(iVar49 + 0x288) = uVar4;\n    }" { (expression_statement "*(undefined4 *)(iVar49 + 0x28c) = *(undefined4 *)(iVar10 + 0x5c);" (assignment_expression "*(undefined4 *)(iVar49 + 0x28c) = *(undefined4 *)(iVar10 + 0x5c)" (pointer_expression "*(undefined4 *)(iVar49 + 0x28c)" * (cast_expression "(undefined4 *)(iVar49 + 0x28c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x28c)" ( (binary_expression "iVar49 + 0x28c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar10 + 0x5c)" * (cast_expression "(undefined4 *)(iVar10 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x5c)" ( (binary_expression "iVar10 + 0x5c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x288) = uVar4;" (assignment_expression "*(undefined4 *)(iVar49 + 0x288) = uVar4" (pointer_expression "*(undefined4 *)(iVar49 + 0x288)" * (cast_expression "(undefined4 *)(iVar49 + 0x288)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x288)" ( (binary_expression "iVar49 + 0x288" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "puVar13 = (undefined4 *)(iVar10 + 0x118);" (assignment_expression "puVar13 = (undefined4 *)(iVar10 + 0x118)" identifier = (cast_expression "(undefined4 *)(iVar10 + 0x118)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x118)" ( (binary_expression "iVar10 + 0x118" identifier + number_literal) )))) ;) (expression_statement "puVar21 = (undefined4 *)(iVar49 + 0x150);" (assignment_expression "puVar21 = (undefined4 *)(iVar49 + 0x150)" identifier = (cast_expression "(undefined4 *)(iVar49 + 0x150)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x150)" ( (binary_expression "iVar49 + 0x150" identifier + number_literal) )))) ;) (do_statement "do {\n      puVar15 = puVar21;\n      puVar9 = puVar13;\n      uVar27 = puVar9[1];\n      uVar25 = puVar9[2];\n      uVar4 = puVar9[3];\n      *puVar15 = *puVar9;\n      puVar15[1] = uVar27;\n      puVar15[2] = uVar25;\n      puVar15[3] = uVar4;\n      puVar13 = puVar9 + 4;\n      puVar21 = puVar15 + 4;\n    } while (puVar13 != (undefined4 *)(iVar10 + 0x168));" do (compound_statement "{\n      puVar15 = puVar21;\n      puVar9 = puVar13;\n      uVar27 = puVar9[1];\n      uVar25 = puVar9[2];\n      uVar4 = puVar9[3];\n      *puVar15 = *puVar9;\n      puVar15[1] = uVar27;\n      puVar15[2] = uVar25;\n      puVar15[3] = uVar4;\n      puVar13 = puVar9 + 4;\n      puVar21 = puVar15 + 4;\n    }" { (expression_statement "puVar15 = puVar21;" (assignment_expression "puVar15 = puVar21" identifier = identifier) ;) (expression_statement "puVar9 = puVar13;" (assignment_expression "puVar9 = puVar13" identifier = identifier) ;) (expression_statement "uVar27 = puVar9[1];" (assignment_expression "uVar27 = puVar9[1]" identifier = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "uVar25 = puVar9[2];" (assignment_expression "uVar25 = puVar9[2]" identifier = (subscript_expression "puVar9[2]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = puVar9[3];" (assignment_expression "uVar4 = puVar9[3]" identifier = (subscript_expression "puVar9[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar15 = *puVar9;" (assignment_expression "*puVar15 = *puVar9" (pointer_expression "*puVar15" * identifier) = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar15[1] = uVar27;" (assignment_expression "puVar15[1] = uVar27" (subscript_expression "puVar15[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[2] = uVar25;" (assignment_expression "puVar15[2] = uVar25" (subscript_expression "puVar15[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[3] = uVar4;" (assignment_expression "puVar15[3] = uVar4" (subscript_expression "puVar15[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13 = puVar9 + 4;" (assignment_expression "puVar13 = puVar9 + 4" identifier = (binary_expression "puVar9 + 4" identifier + number_literal)) ;) (expression_statement "puVar21 = puVar15 + 4;" (assignment_expression "puVar21 = puVar15 + 4" identifier = (binary_expression "puVar15 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar13 != (undefined4 *)(iVar10 + 0x168))" ( (binary_expression "puVar13 != (undefined4 *)(iVar10 + 0x168)" identifier != (cast_expression "(undefined4 *)(iVar10 + 0x168)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x168)" ( (binary_expression "iVar10 + 0x168" identifier + number_literal) )))) )) ;) (expression_statement "uVar4 = puVar9[5];" (assignment_expression "uVar4 = puVar9[5]" identifier = (subscript_expression "puVar9[5]" identifier [ number_literal ])) ;) (expression_statement "puVar15[4] = *puVar13;" (assignment_expression "puVar15[4] = *puVar13" (subscript_expression "puVar15[4]" identifier [ number_literal ]) = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "puVar15[5] = uVar4;" (assignment_expression "puVar15[5] = uVar4" (subscript_expression "puVar15[5]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (*(int *)(iVar10 + 0x48) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x29c) = uVar4;\n    }" if (parenthesized_expression "(*(int *)(iVar10 + 0x48) != 0)" ( (binary_expression "*(int *)(iVar10 + 0x48) != 0" (pointer_expression "*(int *)(iVar10 + 0x48)" * (cast_expression "(int *)(iVar10 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x48)" ( (binary_expression "iVar10 + 0x48" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x29c) = uVar4;\n    }" { (expression_statement "uVar4 = (**(code **)(pcVar37 + 0x352854))();" (assignment_expression "uVar4 = (**(code **)(pcVar37 + 0x352854))()" identifier = (call_expression "(**(code **)(pcVar37 + 0x352854))()" (parenthesized_expression "(**(code **)(pcVar37 + 0x352854))" ( (pointer_expression "**(code **)(pcVar37 + 0x352854)" * (pointer_expression "*(code **)(pcVar37 + 0x352854)" * (cast_expression "(code **)(pcVar37 + 0x352854)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x352854)" ( (binary_expression "pcVar37 + 0x352854" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x29c) = uVar4;" (assignment_expression "*(undefined4 *)(iVar49 + 0x29c) = uVar4" (pointer_expression "*(undefined4 *)(iVar49 + 0x29c)" * (cast_expression "(undefined4 *)(iVar49 + 0x29c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x29c)" ( (binary_expression "iVar49 + 0x29c" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ac4);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ac4)" identifier = (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ac4)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" * (cast_expression "(code **)(pcVar37 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3521a8)" ( (binary_expression "pcVar37 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ac4)" ( identifier , (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6ac4" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar3 != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x14,0,iVar3);\n      *(undefined4 *)(iVar49 + 0x388) = uVar4;\n      goto LAB_000a8298;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x14,0,iVar3);\n      *(undefined4 *)(iVar49 + 0x388) = uVar4;\n      goto LAB_000a8298;\n    }" { (expression_statement "uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x14,0,iVar3);" (assignment_expression "uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x14,0,iVar3)" identifier = (call_expression "(**(code **)(pcVar37 + 0x3526d4))(0x14,0,iVar3)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3526d4))" ( (pointer_expression "**(code **)(pcVar37 + 0x3526d4)" * (pointer_expression "*(code **)(pcVar37 + 0x3526d4)" * (cast_expression "(code **)(pcVar37 + 0x3526d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3526d4)" ( (binary_expression "pcVar37 + 0x3526d4" identifier + number_literal) ))))) )) (argument_list "(0x14,0,iVar3)" ( number_literal , number_literal , identifier )))) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x388) = uVar4;" (assignment_expression "*(undefined4 *)(iVar49 + 0x388) = uVar4" (pointer_expression "*(undefined4 *)(iVar49 + 0x388)" * (cast_expression "(undefined4 *)(iVar49 + 0x388)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x388)" ( (binary_expression "iVar49 + 0x388" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_000a8298;" goto statement_identifier ;) })) }))) (expression_statement "*(undefined4 *)(iVar49 + 0x388) = 0;" (assignment_expression "*(undefined4 *)(iVar49 + 0x388) = 0" (pointer_expression "*(undefined4 *)(iVar49 + 0x388)" * (cast_expression "(undefined4 *)(iVar49 + 0x388)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x388)" ( (binary_expression "iVar49 + 0x388" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_000a8298:\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ad0);" statement_identifier : (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ad0);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ad0)" identifier = (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ad0)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" * (cast_expression "(code **)(pcVar37 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3521a8)" ( (binary_expression "pcVar37 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ad0)" ( identifier , (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6ad0" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) ;)) (if_statement "if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x280,iVar3);\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    (**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x280,iVar3);\n  }" { (expression_statement "(**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x280,iVar3);" (call_expression "(**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x280,iVar3)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3524c8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3524c8)" * (pointer_expression "*(code **)(pcVar37 + 0x3524c8)" * (cast_expression "(code **)(pcVar37 + 0x3524c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3524c8)" ( (binary_expression "pcVar37 + 0x3524c8" identifier + number_literal) ))))) )) (argument_list "(iVar49 + 0x280,iVar3)" ( (binary_expression "iVar49 + 0x280" identifier + number_literal) , identifier ))) ;) })) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6adc);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6adc)" identifier = (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6adc)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" * (cast_expression "(code **)(pcVar37 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3521a8)" ( (binary_expression "pcVar37 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6adc)" ( identifier , (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6adc" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x26c,iVar3);\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    (**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x26c,iVar3);\n  }" { (expression_statement "(**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x26c,iVar3);" (call_expression "(**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x26c,iVar3)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3524c8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3524c8)" * (pointer_expression "*(code **)(pcVar37 + 0x3524c8)" * (cast_expression "(code **)(pcVar37 + 0x3524c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3524c8)" ( (binary_expression "pcVar37 + 0x3524c8" identifier + number_literal) ))))) )) (argument_list "(iVar49 + 0x26c,iVar3)" ( (binary_expression "iVar49 + 0x26c" identifier + number_literal) , identifier ))) ;) })) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ae4);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ae4)" identifier = (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ae4)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" * (cast_expression "(code **)(pcVar37 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3521a8)" ( (binary_expression "pcVar37 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ae4)" ( identifier , (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6ae4" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar34,pdVar29);\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar34,pdVar29);\n  }" { (expression_statement "(**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar34,pdVar29);" (call_expression "(**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar34,pdVar29)" (parenthesized_expression "(**(code **)(pcVar37 + 0x351e54))" ( (pointer_expression "**(code **)(pcVar37 + 0x351e54)" * (pointer_expression "*(code **)(pcVar37 + 0x351e54)" * (cast_expression "(code **)(pcVar37 + 0x351e54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x351e54)" ( (binary_expression "pcVar37 + 0x351e54" identifier + number_literal) ))))) )) (argument_list "(iVar3,0x7fffffff,ppiVar34,pdVar29)" ( identifier , number_literal , identifier , identifier ))) ;) })) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6aec);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6aec)" identifier = (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6aec)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" * (cast_expression "(code **)(pcVar37 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3521a8)" ( (binary_expression "pcVar37 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6aec)" ( identifier , (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6aec" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar3 != 0) {\n    uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x21,0,iVar3);\n    *(undefined4 *)(iVar49 + 0x298) = uVar4;\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x21,0,iVar3);\n    *(undefined4 *)(iVar49 + 0x298) = uVar4;\n  }" { (expression_statement "uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x21,0,iVar3);" (assignment_expression "uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x21,0,iVar3)" identifier = (call_expression "(**(code **)(pcVar37 + 0x3526d4))(0x21,0,iVar3)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3526d4))" ( (pointer_expression "**(code **)(pcVar37 + 0x3526d4)" * (pointer_expression "*(code **)(pcVar37 + 0x3526d4)" * (cast_expression "(code **)(pcVar37 + 0x3526d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3526d4)" ( (binary_expression "pcVar37 + 0x3526d4" identifier + number_literal) ))))) )) (argument_list "(0x21,0,iVar3)" ( number_literal , number_literal , identifier )))) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x298) = uVar4;" (assignment_expression "*(undefined4 *)(iVar49 + 0x298) = uVar4" (pointer_expression "*(undefined4 *)(iVar49 + 0x298)" * (cast_expression "(undefined4 *)(iVar49 + 0x298)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x298)" ( (binary_expression "iVar49 + 0x298" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6af4);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6af4)" identifier = (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6af4)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" * (cast_expression "(code **)(pcVar37 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3521a8)" ( (binary_expression "pcVar37 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6af4)" ( identifier , (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6af4" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x380) = dVar39;\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x380) = dVar39;\n  }" { (expression_statement "dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);" (assignment_expression "dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898)" identifier = (cast_expression "(double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3527a8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3527a8)" * (pointer_expression "*(code **)(pcVar37 + 0x3527a8)" * (cast_expression "(code **)(pcVar37 + 0x3527a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3527a8)" ( (binary_expression "pcVar37 + 0x3527a8" identifier + number_literal) ))))) )) (argument_list "(iVar3,auStack_898)" ( identifier , identifier ))))) ;) (if_statement "if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }" if (parenthesized_expression "(NAN(dVar39))" ( (call_expression "NAN(dVar39)" identifier (argument_list "(dVar39)" ( identifier ))) )) (compound_statement "{\n      dVar39 = 0.0;\n    }" { (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" identifier = number_literal) ;) }) (else_clause "else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }" else (if_statement "if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }" if (parenthesized_expression "(*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39)" ( (binary_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39" (pointer_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960)" * (cast_expression "(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar37 + 0x35190c) + 0x7960)" ( (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x7960" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) <= identifier) )) (compound_statement "{\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }" { (if_statement "if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }" if (parenthesized_expression "(*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39)" ( (binary_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39" (pointer_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968)" * (cast_expression "(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar37 + 0x35190c) + 0x7968)" ( (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x7968" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) < identifier) )) (compound_statement "{\n        dVar39 = 0.0;\n      }" { (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" identifier = number_literal) ;) })) }) (else_clause "else {\n      dVar39 = 0.0;\n    }" else (compound_statement "{\n      dVar39 = 0.0;\n    }" { (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" identifier = number_literal) ;) }))))) (expression_statement "*(double *)(iVar49 + 0x380) = dVar39;" (assignment_expression "*(double *)(iVar49 + 0x380) = dVar39" (pointer_expression "*(double *)(iVar49 + 0x380)" * (cast_expression "(double *)(iVar49 + 0x380)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x380)" ( (binary_expression "iVar49 + 0x380" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b08);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b08)" identifier = (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b08)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" * (cast_expression "(code **)(pcVar37 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3521a8)" ( (binary_expression "pcVar37 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b08)" ( identifier , (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6b08" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x378) = dVar39;\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x378) = dVar39;\n  }" { (expression_statement "dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);" (assignment_expression "dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898)" identifier = (cast_expression "(double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3527a8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3527a8)" * (pointer_expression "*(code **)(pcVar37 + 0x3527a8)" * (cast_expression "(code **)(pcVar37 + 0x3527a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3527a8)" ( (binary_expression "pcVar37 + 0x3527a8" identifier + number_literal) ))))) )) (argument_list "(iVar3,auStack_898)" ( identifier , identifier ))))) ;) (if_statement "if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }" if (parenthesized_expression "(NAN(dVar39))" ( (call_expression "NAN(dVar39)" identifier (argument_list "(dVar39)" ( identifier ))) )) (compound_statement "{\n      dVar39 = 0.0;\n    }" { (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" identifier = number_literal) ;) }) (else_clause "else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }" else (if_statement "if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }" if (parenthesized_expression "(*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39)" ( (binary_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39" (pointer_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960)" * (cast_expression "(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar37 + 0x35190c) + 0x7960)" ( (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x7960" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) <= identifier) )) (compound_statement "{\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }" { (if_statement "if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }" if (parenthesized_expression "(*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39)" ( (binary_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39" (pointer_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968)" * (cast_expression "(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar37 + 0x35190c) + 0x7968)" ( (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x7968" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) < identifier) )) (compound_statement "{\n        dVar39 = 0.0;\n      }" { (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" identifier = number_literal) ;) })) }) (else_clause "else {\n      dVar39 = 0.0;\n    }" else (compound_statement "{\n      dVar39 = 0.0;\n    }" { (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" identifier = number_literal) ;) }))))) (expression_statement "*(double *)(iVar49 + 0x378) = dVar39;" (assignment_expression "*(double *)(iVar49 + 0x378) = dVar39" (pointer_expression "*(double *)(iVar49 + 0x378)" * (cast_expression "(double *)(iVar49 + 0x378)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x378)" ( (binary_expression "iVar49 + 0x378" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b1c);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b1c)" identifier = (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b1c)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" * (cast_expression "(code **)(pcVar37 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3521a8)" ( (binary_expression "pcVar37 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b1c)" ( identifier , (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6b1c" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x370) = dVar39;\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x370) = dVar39;\n  }" { (expression_statement "dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);" (assignment_expression "dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898)" identifier = (cast_expression "(double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3527a8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3527a8)" * (pointer_expression "*(code **)(pcVar37 + 0x3527a8)" * (cast_expression "(code **)(pcVar37 + 0x3527a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3527a8)" ( (binary_expression "pcVar37 + 0x3527a8" identifier + number_literal) ))))) )) (argument_list "(iVar3,auStack_898)" ( identifier , identifier ))))) ;) (if_statement "if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }" if (parenthesized_expression "(NAN(dVar39))" ( (call_expression "NAN(dVar39)" identifier (argument_list "(dVar39)" ( identifier ))) )) (compound_statement "{\n      dVar39 = 0.0;\n    }" { (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" identifier = number_literal) ;) }) (else_clause "else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }" else (if_statement "if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }" if (parenthesized_expression "(*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39)" ( (binary_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39" (pointer_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960)" * (cast_expression "(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar37 + 0x35190c) + 0x7960)" ( (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x7960" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) <= identifier) )) (compound_statement "{\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }" { (if_statement "if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }" if (parenthesized_expression "(*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39)" ( (binary_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39" (pointer_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968)" * (cast_expression "(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar37 + 0x35190c) + 0x7968)" ( (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x7968" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) < identifier) )) (compound_statement "{\n        dVar39 = 0.0;\n      }" { (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" identifier = number_literal) ;) })) }) (else_clause "else {\n      dVar39 = 0.0;\n    }" else (compound_statement "{\n      dVar39 = 0.0;\n    }" { (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" identifier = number_literal) ;) }))))) (expression_statement "*(double *)(iVar49 + 0x370) = dVar39;" (assignment_expression "*(double *)(iVar49 + 0x370) = dVar39" (pointer_expression "*(double *)(iVar49 + 0x370)" * (cast_expression "(double *)(iVar49 + 0x370)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x370)" ( (binary_expression "iVar49 + 0x370" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b24);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b24)" identifier = (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b24)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" * (cast_expression "(code **)(pcVar37 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3521a8)" ( (binary_expression "pcVar37 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b24)" ( identifier , (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6b24" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar33,pdVar29);\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar33,pdVar29);\n  }" { (expression_statement "(**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar33,pdVar29);" (call_expression "(**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar33,pdVar29)" (parenthesized_expression "(**(code **)(pcVar37 + 0x351e54))" ( (pointer_expression "**(code **)(pcVar37 + 0x351e54)" * (pointer_expression "*(code **)(pcVar37 + 0x351e54)" * (cast_expression "(code **)(pcVar37 + 0x351e54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x351e54)" ( (binary_expression "pcVar37 + 0x351e54" identifier + number_literal) ))))) )) (argument_list "(iVar3,0x7fffffff,ppiVar33,pdVar29)" ( identifier , number_literal , identifier , identifier ))) ;) })) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b2c);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b2c)" identifier = (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b2c)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" * (cast_expression "(code **)(pcVar37 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3521a8)" ( (binary_expression "pcVar37 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b2c)" ( identifier , (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6b2c" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x1b0) = dVar39;\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x1b0) = dVar39;\n  }" { (expression_statement "dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);" (assignment_expression "dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898)" identifier = (cast_expression "(double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3527a8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3527a8)" * (pointer_expression "*(code **)(pcVar37 + 0x3527a8)" * (cast_expression "(code **)(pcVar37 + 0x3527a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3527a8)" ( (binary_expression "pcVar37 + 0x3527a8" identifier + number_literal) ))))) )) (argument_list "(iVar3,auStack_898)" ( identifier , identifier ))))) ;) (if_statement "if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }" if (parenthesized_expression "(NAN(dVar39))" ( (call_expression "NAN(dVar39)" identifier (argument_list "(dVar39)" ( identifier ))) )) (compound_statement "{\n      dVar39 = 0.0;\n    }" { (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" identifier = number_literal) ;) }) (else_clause "else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }" else (if_statement "if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }" if (parenthesized_expression "(*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39)" ( (binary_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39" (pointer_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960)" * (cast_expression "(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar37 + 0x35190c) + 0x7960)" ( (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x7960" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) <= identifier) )) (compound_statement "{\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }" { (if_statement "if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }" if (parenthesized_expression "(*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39)" ( (binary_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39" (pointer_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968)" * (cast_expression "(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar37 + 0x35190c) + 0x7968)" ( (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x7968" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) < identifier) )) (compound_statement "{\n        dVar39 = 0.0;\n      }" { (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" identifier = number_literal) ;) })) }) (else_clause "else {\n      dVar39 = 0.0;\n    }" else (compound_statement "{\n      dVar39 = 0.0;\n    }" { (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" identifier = number_literal) ;) }))))) (expression_statement "*(double *)(iVar49 + 0x1b0) = dVar39;" (assignment_expression "*(double *)(iVar49 + 0x1b0) = dVar39" (pointer_expression "*(double *)(iVar49 + 0x1b0)" * (cast_expression "(double *)(iVar49 + 0x1b0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x1b0)" ( (binary_expression "iVar49 + 0x1b0" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b38);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b38)" identifier = (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b38)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" * (cast_expression "(code **)(pcVar37 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3521a8)" ( (binary_expression "pcVar37 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b38)" ( identifier , (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6b38" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar3 != 0) {\n    uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x47,0,iVar3);\n    *(undefined4 *)(iVar49 + 0x274) = uVar4;\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x47,0,iVar3);\n    *(undefined4 *)(iVar49 + 0x274) = uVar4;\n  }" { (expression_statement "uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x47,0,iVar3);" (assignment_expression "uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x47,0,iVar3)" identifier = (call_expression "(**(code **)(pcVar37 + 0x3526d4))(0x47,0,iVar3)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3526d4))" ( (pointer_expression "**(code **)(pcVar37 + 0x3526d4)" * (pointer_expression "*(code **)(pcVar37 + 0x3526d4)" * (cast_expression "(code **)(pcVar37 + 0x3526d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3526d4)" ( (binary_expression "pcVar37 + 0x3526d4" identifier + number_literal) ))))) )) (argument_list "(0x47,0,iVar3)" ( number_literal , number_literal , identifier )))) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x274) = uVar4;" (assignment_expression "*(undefined4 *)(iVar49 + 0x274) = uVar4" (pointer_expression "*(undefined4 *)(iVar49 + 0x274)" * (cast_expression "(undefined4 *)(iVar49 + 0x274)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x274)" ( (binary_expression "iVar49 + 0x274" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b40);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b40)" identifier = (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b40)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" * (cast_expression "(code **)(pcVar37 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3521a8)" ( (binary_expression "pcVar37 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b40)" ( identifier , (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6b40" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" * (cast_expression "(int *)(pcVar37 + 0x35190c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x35190c)" ( (binary_expression "pcVar37 + 0x35190c" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,iVar49 + 0xf8,pdVar29);\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,iVar49 + 0xf8,pdVar29);\n  }" { (expression_statement "(**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,iVar49 + 0xf8,pdVar29);" (call_expression "(**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,iVar49 + 0xf8,pdVar29)" (parenthesized_expression "(**(code **)(pcVar37 + 0x351e54))" ( (pointer_expression "**(code **)(pcVar37 + 0x351e54)" * (pointer_expression "*(code **)(pcVar37 + 0x351e54)" * (cast_expression "(code **)(pcVar37 + 0x351e54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x351e54)" ( (binary_expression "pcVar37 + 0x351e54" identifier + number_literal) ))))) )) (argument_list "(iVar3,0x7fffffff,iVar49 + 0xf8,pdVar29)" ( identifier , number_literal , (binary_expression "iVar49 + 0xf8" identifier + number_literal) , identifier ))) ;) })) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x351920) + -0x3000);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x351920) + -0x3000)" identifier = (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x351920) + -0x3000)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" ( (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" * (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" * (cast_expression "(code **)(pcVar37 + 0x3521a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3521a8)" ( (binary_expression "pcVar37 + 0x3521a8" identifier + number_literal) ))))) )) (argument_list "(iVar10,*(int *)(pcVar37 + 0x351920) + -0x3000)" ( identifier , (binary_expression "*(int *)(pcVar37 + 0x351920) + -0x3000" (pointer_expression "*(int *)(pcVar37 + 0x351920)" * (cast_expression "(int *)(pcVar37 + 0x351920)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar37 + 0x351920)" ( (binary_expression "pcVar37 + 0x351920" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar3 != 0) {\n    iVar28 = (**(code **)(pcVar37 + 0x3526d4))(0x4c,0,iVar3);\n    if (iVar28 == -1) {\n      uVar4 = (**(code **)(pcVar37 + 0x352380))(iVar3,0,10);\n      *(undefined4 *)(iVar49 + 0x27c) = uVar4;\n    }\n    else {\n      *(int *)(iVar49 + 0x27c) = iVar28;\n    }\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar28 = (**(code **)(pcVar37 + 0x3526d4))(0x4c,0,iVar3);\n    if (iVar28 == -1) {\n      uVar4 = (**(code **)(pcVar37 + 0x352380))(iVar3,0,10);\n      *(undefined4 *)(iVar49 + 0x27c) = uVar4;\n    }\n    else {\n      *(int *)(iVar49 + 0x27c) = iVar28;\n    }\n  }" { (expression_statement "iVar28 = (**(code **)(pcVar37 + 0x3526d4))(0x4c,0,iVar3);" (assignment_expression "iVar28 = (**(code **)(pcVar37 + 0x3526d4))(0x4c,0,iVar3)" identifier = (call_expression "(**(code **)(pcVar37 + 0x3526d4))(0x4c,0,iVar3)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3526d4))" ( (pointer_expression "**(code **)(pcVar37 + 0x3526d4)" * (pointer_expression "*(code **)(pcVar37 + 0x3526d4)" * (cast_expression "(code **)(pcVar37 + 0x3526d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3526d4)" ( (binary_expression "pcVar37 + 0x3526d4" identifier + number_literal) ))))) )) (argument_list "(0x4c,0,iVar3)" ( number_literal , number_literal , identifier )))) ;) (if_statement "if (iVar28 == -1) {\n      uVar4 = (**(code **)(pcVar37 + 0x352380))(iVar3,0,10);\n      *(undefined4 *)(iVar49 + 0x27c) = uVar4;\n    }\n    else {\n      *(int *)(iVar49 + 0x27c) = iVar28;\n    }" if (parenthesized_expression "(iVar28 == -1)" ( (binary_expression "iVar28 == -1" identifier == number_literal) )) (compound_statement "{\n      uVar4 = (**(code **)(pcVar37 + 0x352380))(iVar3,0,10);\n      *(undefined4 *)(iVar49 + 0x27c) = uVar4;\n    }" { (expression_statement "uVar4 = (**(code **)(pcVar37 + 0x352380))(iVar3,0,10);" (assignment_expression "uVar4 = (**(code **)(pcVar37 + 0x352380))(iVar3,0,10)" identifier = (call_expression "(**(code **)(pcVar37 + 0x352380))(iVar3,0,10)" (parenthesized_expression "(**(code **)(pcVar37 + 0x352380))" ( (pointer_expression "**(code **)(pcVar37 + 0x352380)" * (pointer_expression "*(code **)(pcVar37 + 0x352380)" * (cast_expression "(code **)(pcVar37 + 0x352380)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x352380)" ( (binary_expression "pcVar37 + 0x352380" identifier + number_literal) ))))) )) (argument_list "(iVar3,0,10)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x27c) = uVar4;" (assignment_expression "*(undefined4 *)(iVar49 + 0x27c) = uVar4" (pointer_expression "*(undefined4 *)(iVar49 + 0x27c)" * (cast_expression "(undefined4 *)(iVar49 + 0x27c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x27c)" ( (binary_expression "iVar49 + 0x27c" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n      *(int *)(iVar49 + 0x27c) = iVar28;\n    }" else (compound_statement "{\n      *(int *)(iVar49 + 0x27c) = iVar28;\n    }" { (expression_statement "*(int *)(iVar49 + 0x27c) = iVar28;" (assignment_expression "*(int *)(iVar49 + 0x27c) = iVar28" (pointer_expression "*(int *)(iVar49 + 0x27c)" * (cast_expression "(int *)(iVar49 + 0x27c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x27c)" ( (binary_expression "iVar49 + 0x27c" identifier + number_literal) )))) = identifier) ;) }))) })) (expression_statement "(**(code **)(pcVar37 + 0x351d90))(pdVar29);" (call_expression "(**(code **)(pcVar37 + 0x351d90))(pdVar29)" (parenthesized_expression "(**(code **)(pcVar37 + 0x351d90))" ( (pointer_expression "**(code **)(pcVar37 + 0x351d90)" * (pointer_expression "*(code **)(pcVar37 + 0x351d90)" * (cast_expression "(code **)(pcVar37 + 0x351d90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x351d90)" ( (binary_expression "pcVar37 + 0x351d90" identifier + number_literal) ))))) )) (argument_list "(pdVar29)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(iVar49 + 0x390) = 0xabacadab;" (assignment_expression "*(undefined4 *)(iVar49 + 0x390) = 0xabacadab" (pointer_expression "*(undefined4 *)(iVar49 + 0x390)" * (cast_expression "(undefined4 *)(iVar49 + 0x390)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar49 + 0x390)" ( (binary_expression "iVar49 + 0x390" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(**(code **)(pcVar37 + 0x352628))(iVar10);" (call_expression "(**(code **)(pcVar37 + 0x352628))(iVar10)" (parenthesized_expression "(**(code **)(pcVar37 + 0x352628))" ( (pointer_expression "**(code **)(pcVar37 + 0x352628)" * (pointer_expression "*(code **)(pcVar37 + 0x352628)" * (cast_expression "(code **)(pcVar37 + 0x352628)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x352628)" ( (binary_expression "pcVar37 + 0x352628" identifier + number_literal) ))))) )) (argument_list "(iVar10)" ( identifier ))) ;) (if_statement "if (iStack_894 == **(int **)(pcVar37 + 0x352270)) {\n    return **(int **)(pcVar37 + 0x352270);\n  }" if (parenthesized_expression "(iStack_894 == **(int **)(pcVar37 + 0x352270))" ( (binary_expression "iStack_894 == **(int **)(pcVar37 + 0x352270)" identifier == (pointer_expression "**(int **)(pcVar37 + 0x352270)" * (pointer_expression "*(int **)(pcVar37 + 0x352270)" * (cast_expression "(int **)(pcVar37 + 0x352270)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x352270)" ( (binary_expression "pcVar37 + 0x352270" identifier + number_literal) )))))) )) (compound_statement "{\n    return **(int **)(pcVar37 + 0x352270);\n  }" { (return_statement "return **(int **)(pcVar37 + 0x352270);" return (pointer_expression "**(int **)(pcVar37 + 0x352270)" * (pointer_expression "*(int **)(pcVar37 + 0x352270)" * (cast_expression "(int **)(pcVar37 + 0x352270)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x352270)" ( (binary_expression "pcVar37 + 0x352270" identifier + number_literal) ))))) ;) })) (expression_statement "pcVar37 = *(code **)(pcVar37 + 0x3520a4);" (assignment_expression "pcVar37 = *(code **)(pcVar37 + 0x3520a4)" identifier = (pointer_expression "*(code **)(pcVar37 + 0x3520a4)" * (cast_expression "(code **)(pcVar37 + 0x3520a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3520a4)" ( (binary_expression "pcVar37 + 0x3520a4" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar37)();" (call_expression "(*pcVar37)()" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x351be4))(0x3c0);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x351be4))(0x3c0)" identifier = (call_expression "(**(code **)(pcVar37 + 0x351be4))(0x3c0)" (parenthesized_expression "(**(code **)(pcVar37 + 0x351be4))" ( (pointer_expression "**(code **)(pcVar37 + 0x351be4)" * (pointer_expression "*(code **)(pcVar37 + 0x351be4)" * (cast_expression "(code **)(pcVar37 + 0x351be4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x351be4)" ( (binary_expression "pcVar37 + 0x351be4" identifier + number_literal) ))))) )) (argument_list "(0x3c0)" ( number_literal )))) ;) (expression_statement "(**(code **)(pcVar37 + 0x3518b4))(0,iVar3);" (call_expression "(**(code **)(pcVar37 + 0x3518b4))(0,iVar3)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3518b4))" ( (pointer_expression "**(code **)(pcVar37 + 0x3518b4)" * (pointer_expression "*(code **)(pcVar37 + 0x3518b4)" * (cast_expression "(code **)(pcVar37 + 0x3518b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar37 + 0x3518b4)" ( (binary_expression "pcVar37 + 0x3518b4" identifier + number_literal) ))))) )) (argument_list "(0,iVar3)" ( number_literal , identifier ))) ;) (return_statement "return iVar3;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * 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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (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 (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (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 IDENT ;) (declaration TYPE (pointer_declarator * 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * 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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT % (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 = (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)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * (subscript_expression IDENT [ LIT ])) + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression - IDENT) / IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (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 (parenthesized_expression ( (binary_expression IDENT - IDENT) )) / IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * (subscript_expression IDENT [ LIT ])) + (subscript_expression IDENT [ LIT ]))) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression - IDENT) / IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (unary_expression - IDENT) / IDENT) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) / IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (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 (parenthesized_expression ( (binary_expression IDENT - IDENT) )) / IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) ^ LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression - IDENT) / IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (binary_expression (unary_expression - IDENT) / IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) | LIT)) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) }))))) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (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 (parenthesized_expression ( (binary_expression IDENT - IDENT) )) / IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (unary_expression - IDENT) / IDENT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression - IDENT) / IDENT)) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) | LIT)) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (goto_statement goto statement_identifier ;)) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) | LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( LIT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (for_statement for ( ; (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (subscript_expression IDENT [ LIT ])) + (binary_expression IDENT * (subscript_expression IDENT [ LIT ]))) + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (pointer_expression * IDENT)) + (binary_expression IDENT * (subscript_expression IDENT [ LIT ]))) + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , LIT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))))) ;) (expression_statement (assignment_expression (subscript_expression 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 = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) - (binary_expression IDENT * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (expression_statement (assignment_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 = (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= 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) ))))) ;) }) (else_clause else (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) ))))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= (binary_expression IDENT * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) / IDENT)) ;) }) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * IDENT) * IDENT) + (binary_expression IDENT * IDENT)) )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * IDENT) * IDENT) + (binary_expression IDENT * IDENT)) )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * IDENT) * IDENT) + (binary_expression IDENT * IDENT)) )) * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * IDENT) * IDENT) + (binary_expression IDENT * IDENT)) )) * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) 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 { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT)) )))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = (binary_expression IDENT + LIT)) ;) (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 *)) ) (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (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 ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (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 == 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)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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 *)) ) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (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 (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 = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (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 ( (binary_expression (pointer_expression * IDENT) - IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) 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 ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (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 ( IDENT , IDENT , IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression LIT - 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) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (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 IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT) )) - IDENT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) - IDENT) )) - IDENT) < IDENT) )) && (parenthesized_expression ( (binary_expression IDENT <= (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - 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) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (binary_expression (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) ))))) + IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (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 IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + (binary_expression IDENT * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + (binary_expression IDENT * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + (binary_expression IDENT * IDENT))) ;) }) (else_clause else (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) )))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) / IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT * IDENT) - (binary_expression IDENT * IDENT)) )) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) * IDENT)) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + (binary_expression IDENT * IDENT))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + 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) )))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (binary_expression IDENT * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT * IDENT) < IDENT) )) (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 = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (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 (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= (call_expression IDENT (argument_list ( IDENT )))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT < LIT)) ))) )) (compound_statement { (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 ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT <= IDENT) ))) )) && (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (field_expression IDENT . field_identifier) & LIT)) ;) (expression_statement (assignment_expression IDENT = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT ))) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (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 (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT ))) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression LIT <= IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (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 ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) * (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) <= IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT) )) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) < IDENT) )) ;) })) })) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) - (cast_expression ( (type_descriptor TYPE) ) 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 ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (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 ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ))) , (binary_expression (pointer_expression * IDENT) + (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )) * LIT)) , (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) * LIT) ))) ;) (expression_statement (assignment_expression 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 IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) - IDENT) )) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) < IDENT))) ))) )) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= (subscript_expression IDENT [ LIT ])) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) , (binary_expression (pointer_expression * IDENT) < IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_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 IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (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) ))))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (break_statement break ;)) (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 = (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) )))) + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - (pointer_expression * IDENT)) )) * (parenthesized_expression ( (binary_expression IDENT - (subscript_expression IDENT [ LIT ])) ))) <= (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ])) )) * (parenthesized_expression ( (binary_expression IDENT - (pointer_expression * IDENT)) )))) )) (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 = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) }) (else_clause else (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 = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression 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) )))) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression (pointer_expression * IDENT) < IDENT))) ))) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + 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 ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = 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 ( IDENT , LIT , (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) & LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * (pointer_expression * IDENT)) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) * LIT)) ))))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) - (binary_expression IDENT * IDENT))) ;) (expression_statement (assignment_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) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) + LIT) )))) != 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 *)) ) (parenthesized_expression ( (binary_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) )))) + LIT) + (binary_expression IDENT * LIT)) ))))) )))) )) (argument_list ( )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) 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 = (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = 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 ( IDENT , LIT , (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) & LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * (pointer_expression * IDENT)) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) * LIT)) ))))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + 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 LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) + LIT) )))) != 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 *)) ) (parenthesized_expression ( (binary_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) )))) + LIT) + (binary_expression IDENT * LIT)) ))))) )))) )) (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )))) ;) (return_statement return 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) 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 + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) 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 { (return_statement return (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 = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (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 ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (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) )) - IDENT)) ;) (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)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = 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) ))))) ;) (expression_statement (assignment_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 * (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 * (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 *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (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 (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (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 ( (binary_expression (pointer_expression * IDENT) - IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) 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 ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 , IDENT , IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression 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 IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (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 ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( 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 = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ))))) ;) (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 ( (binary_expression (pointer_expression * IDENT) - IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == IDENT) )) && (parenthesized_expression ( (comma_expression (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 ( (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT) ))))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE) ) IDENT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = 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 ( IDENT , LIT , (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (parenthesized_expression ( (binary_expression IDENT - 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * (pointer_expression * IDENT)) * IDENT)) ;) })) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) 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 { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) = IDENT) ;) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) 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 , IDENT )))) ;) (expression_statement (assignment_expression 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 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 { (return_statement return (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 = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (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 (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - (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) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) % IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT * IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (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 * (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 * (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 , (subscript_expression IDENT [ LIT ]) ))))) ;) (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 = IDENT) ;) }) (else_clause else (compound_statement { (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (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) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + (binary_expression IDENT * IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) }) (else_clause else (compound_statement { (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 IDENT * IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (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 IDENT * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) <= (binary_expression IDENT * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) / IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT * IDENT) + (binary_expression IDENT * IDENT)) )) * IDENT) * IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) <= (binary_expression IDENT * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) / IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (subscript_expression IDENT [ LIT ]))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (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 ( (binary_expression (parenthesized_expression ( (binary_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 (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) , IDENT , IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + 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 (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) <= (binary_expression IDENT * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) / IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (subscript_expression IDENT [ LIT ]))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT * IDENT) + (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) * 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) <= (binary_expression IDENT * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) / IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (subscript_expression IDENT [ LIT ]))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT * IDENT) - (binary_expression IDENT * (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + (binary_expression IDENT * IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (goto_statement goto statement_identifier ;)) (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 * IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression LIT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) * (parenthesized_expression ( (binary_expression LIT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) + (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) 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) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (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 * IDENT)) ;) (goto_statement goto statement_identifier ;) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (field_expression IDENT . field_identifier) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (do_statement do (compound_statement { (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 ( IDENT , LIT , LIT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))))) ;) (expression_statement (assignment_expression (subscript_expression 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 = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (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 ( (binary_expression (pointer_expression * IDENT) - IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == IDENT) )) && (parenthesized_expression ( (comma_expression (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 ( (binary_expression (subscript_expression IDENT [ LIT ]) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (field_expression IDENT . field_identifier) ^ LIT)) ;) (expression_statement (assignment_expression IDENT = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression IDENT = (unary_expression - IDENT)) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + (binary_expression IDENT * IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) }) (else_clause else (compound_statement { (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 IDENT * IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (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 IDENT * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) <= (binary_expression IDENT * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) / IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (subscript_expression IDENT [ LIT ]))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT * IDENT) + (binary_expression IDENT * IDENT)) )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (binary_expression IDENT * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (subscript_expression IDENT [ LIT ]))) ;) })))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + 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 ( (binary_expression (parenthesized_expression ( (binary_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 (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) <= (binary_expression IDENT * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) / IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (subscript_expression IDENT [ LIT ]))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT * IDENT) + (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) * IDENT)) )) * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) <= (binary_expression IDENT * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) / IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (subscript_expression IDENT [ LIT ]))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT * IDENT) - (binary_expression IDENT * (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + (binary_expression IDENT * IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (goto_statement goto statement_identifier ;)) (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 ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (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 , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == LIT) )) (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 , (subscript_expression IDENT [ LIT ]) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 = (binary_expression IDENT - IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) / (parenthesized_expression ( (binary_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 IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - 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 (field_expression IDENT . field_identifier) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_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) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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 = (subscript_expression IDENT [ LIT ])) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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 = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) <= (binary_expression IDENT * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) / IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (subscript_expression IDENT [ LIT ]))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) * 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 = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) * IDENT)) ;) })) (goto_statement goto statement_identifier ;) })) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (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 ( (binary_expression (pointer_expression * IDENT) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == IDENT) )) && (parenthesized_expression ( (comma_expression (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 ( (binary_expression (subscript_expression IDENT [ LIT ]) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + (binary_expression IDENT * IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) }) (else_clause else (compound_statement { (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 IDENT * IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (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 IDENT * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) <= (binary_expression IDENT * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) / IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (subscript_expression IDENT [ LIT ]))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT * IDENT) + (binary_expression IDENT * IDENT)) )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) <= (binary_expression IDENT * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) / IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (subscript_expression IDENT [ LIT ]))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + 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 ( (binary_expression (parenthesized_expression ( (binary_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 (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) <= (binary_expression IDENT * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) / IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (subscript_expression IDENT [ LIT ]))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT * IDENT) + (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) * IDENT)) )) * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) <= (binary_expression IDENT * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) / IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (subscript_expression IDENT [ LIT ]))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT * IDENT) - (binary_expression IDENT * (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + (binary_expression IDENT * IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (goto_statement goto statement_identifier ;)) (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 * IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) * (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) + (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) 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) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (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 * IDENT)) ;) (goto_statement goto statement_identifier ;) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT <= IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) || (parenthesized_expression ( (binary_expression IDENT == IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) / (parenthesized_expression ( (binary_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 IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - 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 (field_expression IDENT . field_identifier) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_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) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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 = (subscript_expression IDENT [ LIT ])) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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 = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) <= (binary_expression IDENT * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) / IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (subscript_expression IDENT [ LIT ]))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) * 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 = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) * IDENT)) ;) })) (goto_statement goto statement_identifier ;) })) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (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 ( (binary_expression (pointer_expression * IDENT) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == IDENT) )) && (parenthesized_expression ( (comma_expression (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 ( (binary_expression (subscript_expression IDENT [ LIT ]) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + (binary_expression IDENT * IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) }) (else_clause else (compound_statement { (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 IDENT * IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (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 IDENT * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) <= (binary_expression IDENT * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) / IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (subscript_expression IDENT [ LIT ]))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT * IDENT) + (binary_expression IDENT * IDENT)) )) * IDENT) * IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (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 ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (field_expression IDENT . field_identifier) ^ LIT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression 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 ( (unary_expression - IDENT) , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT < IDENT) && (binary_expression IDENT < (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) <= (binary_expression IDENT * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) / IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (subscript_expression IDENT [ LIT ]))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (goto_statement goto statement_identifier ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) * (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) + (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) 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) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (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 * IDENT)) ;) (goto_statement goto statement_identifier ;) })) }))) (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 , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (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 , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (field_expression IDENT . field_identifier) ^ LIT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (field_expression IDENT . field_identifier)) ;) (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 ( (unary_expression - IDENT) , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (binary_expression IDENT + (subscript_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) )))))) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) / (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))) - IDENT) )))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - 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 (field_expression IDENT . field_identifier) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_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) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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 = (subscript_expression IDENT [ LIT ])) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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 = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) <= (binary_expression IDENT * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) / IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (subscript_expression IDENT [ LIT ]))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) * 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 = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) * IDENT)) ;) })) (goto_statement goto statement_identifier ;) })) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })))))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) - (binary_expression IDENT * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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 = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) <= (binary_expression IDENT * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) / IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (subscript_expression IDENT [ LIT ]))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * IDENT) * IDENT) + (binary_expression IDENT * IDENT)) )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * IDENT) * IDENT) + (binary_expression IDENT * IDENT)) )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * IDENT) * IDENT) + (binary_expression IDENT * IDENT)) )) * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * IDENT) * IDENT) + (binary_expression IDENT * IDENT)) )) * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) 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 { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (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) )))))) )) ;) })) (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 )))) ;) (expression_statement (assignment_expression 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 = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (compound_statement { (return_statement return (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 = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (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 ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (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) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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 ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (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 ( )))) ;) (expression_statement (assignment_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 *)) ) IDENT)) != 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 ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 (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 (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 ( )))) ;) (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) )))) = 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 * (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 (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 (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 ( )))) ;) (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) )))) = IDENT) ;) })) (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 ( )))) ;) (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) )))) = 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 * (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 (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 (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 ( )))) ;) (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) )))) = 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 * (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 (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 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 (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 (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 ( )))) ;) (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) )))) = 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 * (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 (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 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 (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 (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 ( )))) ;) (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) )))) = IDENT) ;) })) (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 ( )))) ;) (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) )))) = IDENT) ;) })) (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 ( )))) ;) (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) )))) = 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 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 )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (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 ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (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 ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;)) (expression_statement (assignment_expression IDENT = 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 ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (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 ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (labeled_statement statement_identifier : (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 ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;)) (labeled_statement statement_identifier : (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 ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (binary_expression (binary_expression IDENT * IDENT) + (binary_expression IDENT * (subscript_expression IDENT [ LIT ]))) + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (binary_expression IDENT * IDENT) + (binary_expression IDENT * (subscript_expression IDENT [ LIT ]))) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (field_expression IDENT . field_identifier) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (field_expression IDENT . field_identifier) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT)) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) 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 )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * IDENT) * (subscript_expression IDENT [ LIT ])) - (binary_expression (subscript_expression IDENT [ LIT ]) * (subscript_expression IDENT [ LIT ])))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT * IDENT) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) }) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) / IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression - (subscript_expression IDENT [ LIT ])) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression - (subscript_expression IDENT [ LIT ])) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * (unary_expression - (subscript_expression IDENT [ LIT ]))) - (binary_expression IDENT * (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * (unary_expression - (subscript_expression IDENT [ LIT ]))) - (binary_expression IDENT * (subscript_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 ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 ( (binary_expression 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 ( (binary_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 )))) ;) (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 , 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 )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (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)) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (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 (binary_expression IDENT == LIT) || (parenthesized_expression ( (comma_expression (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)) )))) )) ))) )) (compound_statement { (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 ( LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (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 ( LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT ^ LIT) ))) )) && (parenthesized_expression ( (comma_expression (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 ( LIT ))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ))) )) (compound_statement { (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 ( LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (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 ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) == LIT) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < 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 ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) == LIT) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) ))) )) (compound_statement { (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 ( LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) 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 ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = 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 ( 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 ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) == (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (compound_statement { (return_statement return 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (field_expression IDENT . field_identifier)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == 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 ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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 * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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 = (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)) ;) (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 ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) 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 ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (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 ( (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) , LIT , (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)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_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) ))))) )) * (parenthesized_expression ( (binary_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) ))))) ))) + (binary_expression (parenthesized_expression ( (binary_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) ))))) )) * (parenthesized_expression ( (binary_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 IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (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 = (subscript_expression IDENT [ LIT ])) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (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 = (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 = (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 )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (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)) ))) )) (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 )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (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)) ))) )) (goto_statement goto statement_identifier ;)) (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 ( LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression IDENT >> LIT)) )) (compound_statement { (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 ( LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT ^ LIT) ))) )) (compound_statement { (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 ( LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (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 ( LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (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 ( LIT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) == LIT) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < 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 ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) == LIT) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) ))) )) (compound_statement { (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 ( LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (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 ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (pointer_expression & IDENT) , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = 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 ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) )) (compound_statement { (return_statement return 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = 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 ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (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 ( (binary_expression IDENT + LIT) , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (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 ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (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 ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (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 , 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 )))) ;) (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 ( (binary_expression IDENT + LIT) ))) ;) (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 ( ))))) ;) (expression_statement (assignment_expression IDENT = (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 ( (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 * (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 ( (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 (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) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression (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) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression (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) )))) = 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) ;) (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) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression (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 (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 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 (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 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 (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 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 (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) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) <= (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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) )))) = (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 IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression 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 ( )))) ;) (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 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 ( LIT , LIT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (labeled_statement statement_identifier : (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (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 ( (binary_expression IDENT + LIT) , 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (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 ( (binary_expression IDENT + LIT) , 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (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 , 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 ( LIT , LIT , IDENT )))) ;) (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 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 ))))) ;) (if_statement if (parenthesized_expression ( (call_expression IDENT (argument_list ( IDENT ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) <= IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_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 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 ))))) ;) (if_statement if (parenthesized_expression ( (call_expression IDENT (argument_list ( IDENT ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) <= IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_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 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 ))))) ;) (if_statement if (parenthesized_expression ( (call_expression IDENT (argument_list ( IDENT ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) <= IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_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 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (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 , 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 ))))) ;) (if_statement if (parenthesized_expression ( (call_expression IDENT (argument_list ( IDENT ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) <= IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_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 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 ( LIT , LIT , IDENT )))) ;) (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 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (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 , (binary_expression IDENT + LIT) , 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 ( LIT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == 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 , LIT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 ( IDENT ))) ;) (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 * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( 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 { (return_statement return (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 (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (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 ( 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 ( LIT , IDENT ))) ;) (return_statement return IDENT ;) })))
(function_definition "int FUN_000a34c4(undefined4 *param_1)\n\n{\n  bool bVar1;\n  int *piVar2;\n  int iVar3;\n  undefined4 uVar4;\n  double *pdVar5;\n  undefined *puVar6;\n  int *piVar7;\n  uint uVar8;\n  undefined4 *puVar9;\n  int iVar10;\n  int *piVar11;\n  int iVar12;\n  undefined4 *puVar13;\n  double *pdVar14;\n  int extraout_v1;\n  double *extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  double *extraout_v1_03;\n  int extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int extraout_v1_07;\n  int extraout_v1_08;\n  undefined4 *puVar15;\n  double *pdVar16;\n  int *piVar17;\n  uint uVar18;\n  int *piVar19;\n  undefined8 *puVar20;\n  undefined4 *puVar21;\n  uint uVar22;\n  uint *puVar23;\n  int **ppiVar24;\n  undefined4 uVar25;\n  uint uVar26;\n  undefined4 uVar27;\n  int iVar28;\n  double *pdVar29;\n  double *pdVar30;\n  int unaff_s2;\n  int iVar31;\n  uint *puVar32;\n  double *unaff_s3;\n  int **ppiVar33;\n  int *unaff_s4;\n  int **ppiVar34;\n  undefined1 *puVar35;\n  double *unaff_s6;\n  uint unaff_s7;\n  undefined *puVar36;\n  code *pcVar37;\n  code *pcVar38;\n  double dVar39;\n  double dVar40;\n  double dVar41;\n  float fVar43;\n  double dVar42;\n  double dVar44;\n  double dVar45;\n  double dVar46;\n  double in_f20_21;\n  double dVar47;\n  double in_f22_23;\n  double in_f24_25;\n  double in_f26_27;\n  double in_f28_29;\n  double in_f30_31;\n  int *piVar48;\n  int iVar49;\n  int iVar50;\n  undefined8 uVar51;\n  undefined1 auStack_898 [4];\n  int iStack_894;\n  undefined8 *puStack_88c;\n  int iStack_888;\n  double *pdStack_884;\n  int **ppiStack_880;\n  int **ppiStack_87c;\n  undefined1 *puStack_878;\n  code *pcStack_874;\n  int iStack_860;\n  code *pcStack_858;\n  undefined4 uStack_850;\n  code *pcStack_84c;\n  int iStack_838;\n  int iStack_834;\n  code *pcStack_830;\n  int *piStack_828;\n  int *piStack_824;\n  int *piStack_820;\n  int *piStack_81c;\n  double dStack_818;\n  int iStack_810;\n  double *pdStack_80c;\n  undefined4 uStack_808;\n  int **ppiStack_804;\n  int **ppiStack_800;\n  undefined1 *puStack_7fc;\n  int **ppiStack_7f8;\n  int iStack_7f4;\n  undefined1 auStack_7f0 [92];\n  undefined8 *puStack_794;\n  double *pdStack_790;\n  int *piStack_78c;\n  uint *puStack_788;\n  double *pdStack_784;\n  int iStack_780;\n  code *pcStack_77c;\n  double dStack_778;\n  int iStack_760;\n  int *piStack_75c;\n  code *pcStack_758;\n  double dStack_750;\n  double dStack_748;\n  double dStack_740;\n  double dStack_738;\n  int *piStack_72c;\n  uint *puStack_728;\n  double *pdStack_724;\n  double *pdStack_720;\n  undefined1 *puStack_71c;\n  undefined4 uStack_718;\n  undefined1 *puStack_714;\n  double *pdStack_710;\n  int iStack_70c;\n  int iStack_708;\n  int iStack_704;\n  double dStack_700;\n  double dStack_6f8;\n  double dStack_6f0;\n  double dStack_6e8;\n  double dStack_6e0;\n  double dStack_6d8;\n  undefined1 auStack_6d0 [88];\n  undefined8 uStack_678;\n  undefined4 uStack_670;\n  undefined4 uStack_66c;\n  double dStack_668;\n  undefined4 uStack_660;\n  undefined4 uStack_65c;\n  double dStack_658;\n  double dStack_650;\n  undefined4 uStack_648;\n  undefined4 uStack_644;\n  double dStack_640;\n  undefined8 uStack_638;\n  double *pdStack_62c;\n  int *piStack_628;\n  uint *puStack_624;\n  double *pdStack_620;\n  int iStack_61c;\n  undefined1 *puStack_618;\n  double *pdStack_614;\n  uint uStack_610;\n  code *pcStack_60c;\n  double dStack_608;\n  double dStack_600;\n  double dStack_5f8;\n  double dStack_5f0;\n  int iStack_5d8;\n  code *pcStack_5d0;\n  double *pdStack_5c8;\n  code *pcStack_5c4;\n  undefined4 uStack_5b0;\n  uint uStack_5ac;\n  code *pcStack_5a8;\n  undefined8 uStack_5a0;\n  double dStack_598;\n  double dStack_590;\n  double *pdStack_588;\n  int iStack_584;\n  double dStack_580;\n  double dStack_578;\n  int iStack_570;\n  undefined1 *puStack_56c;\n  double *pdStack_568;\n  uint uStack_564;\n  double dStack_560;\n  double dStack_558;\n  uint uStack_550;\n  undefined4 uStack_54c;\n  double dStack_548;\n  double dStack_540;\n  uint uStack_538;\n  undefined4 uStack_534;\n  double dStack_530;\n  uint uStack_528;\n  undefined4 uStack_524;\n  double dStack_520;\n  double dStack_518;\n  int aiStack_510 [4];\n  undefined8 uStack_500;\n  int iStack_4f8;\n  double dStack_4e8;\n  double dStack_4e0;\n  double dStack_4d8;\n  double dStack_4d0;\n  double dStack_4c8;\n  double dStack_4c0;\n  int iStack_4b4;\n  uint uStack_4b0;\n  int iStack_4ac;\n  double *pdStack_4a8;\n  double *pdStack_4a4;\n  int iStack_4a0;\n  undefined4 *puStack_49c;\n  double *pdStack_498;\n  uint uStack_494;\n  int iStack_490;\n  code *pcStack_48c;\n  double dStack_488;\n  double dStack_480;\n  double dStack_478;\n  double dStack_470;\n  double dStack_468;\n  double dStack_460;\n  int *piStack_448;\n  uint uStack_444;\n  code *pcStack_440;\n  uint uStack_434;\n  uint uStack_430;\n  double *pdStack_42c;\n  uint uStack_428;\n  uint uStack_424;\n  uint uStack_420;\n  undefined4 uStack_41c;\n  int aiStack_418 [10];\n  double dStack_3f0;\n  double dStack_3e8;\n  double dStack_3e0;\n  double dStack_3d8;\n  double dStack_3d0;\n  int iStack_3bc;\n  int iStack_3b8;\n  uint uStack_3b4;\n  double *pdStack_3b0;\n  double *pdStack_3ac;\n  int *piStack_3a8;\n  undefined4 *puStack_3a4;\n  double *pdStack_3a0;\n  uint uStack_39c;\n  int iStack_398;\n  code *pcStack_394;\n  double dStack_390;\n  double dStack_388;\n  double dStack_380;\n  double dStack_378;\n  double dStack_370;\n  undefined4 *puStack_358;\n  undefined4 uStack_354;\n  undefined *puStack_350;\n  undefined8 uStack_348;\n  double dStack_340;\n  double dStack_338;\n  double dStack_330;\n  uint uStack_328;\n  int iStack_324;\n  double dStack_320;\n  double dStack_318;\n  uint uStack_310;\n  undefined4 uStack_30c;\n  int iStack_308;\n  int *piStack_304;\n  double dStack_300;\n  uint uStack_2f8;\n  int iStack_2f4;\n  int iStack_2f0;\n  double *pdStack_2ec;\n  uint uStack_2e8;\n  undefined4 uStack_2e4;\n  uint uStack_2e0;\n  undefined4 uStack_2dc;\n  double *pdStack_2d8;\n  uint uStack_2d4;\n  undefined4 uStack_2d0;\n  double *pdStack_2cc;\n  uint uStack_2c8;\n  undefined4 uStack_2c4;\n  int iStack_2c0;\n  undefined4 *puStack_2bc;\n  double dStack_2b8;\n  uint uStack_2b0;\n  undefined4 uStack_2ac;\n  double *pdStack_2a8;\n  undefined1 *puStack_2a4;\n  double *pdStack_2a0;\n  int iStack_29c;\n  undefined4 auStack_298 [18];\n  double dStack_250;\n  undefined4 auStack_240 [18];\n  double dStack_1f8;\n  int iStack_1e4;\n  double *pdStack_1e0;\n  int *piStack_1dc;\n  int iStack_1d8;\n  double *pdStack_1d4;\n  int *piStack_1d0;\n  undefined4 *puStack_1cc;\n  double *pdStack_1c8;\n  uint uStack_1c4;\n  int iStack_1c0;\n  code *pcStack_1bc;\n  double dStack_1b8;\n  double dStack_1b0;\n  double dStack_1a8;\n  double dStack_1a0;\n  double dStack_198;\n  double dStack_190;\n  undefined8 local_178;\n  double local_170;\n  int *local_168;\n  int *local_164;\n  int local_110 [4];\n  undefined8 local_100;\n  int local_f8;\n  double local_e8;\n  double local_e0;\n  double local_d8;\n  double local_d0;\n  double local_c8;\n  double local_c0;\n  int local_b8 [10];\n  double local_90;\n  double local_88;\n  double local_80;\n  double local_78;\n  double local_70;\n  int local_5c;\n  \n  local_5c = *(int *)PTR___stack_chk_guard_003fa248;\n  pdVar29 = (double *)param_1[8];\n  piVar2 = (int *)(*(code *)PTR_omp_get_num_threads_003fa924)();\n  iVar3 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n  puVar36 = PTR_LAB_003f98e0;\n  iVar10 = (param_1[9] + 1) - (int)pdVar29;\n  if (piVar2 == (int *)0x0) {\n    trap(7);\n  }\n  iVar49 = iVar10 / (int)piVar2;\n  iVar10 = iVar10 % (int)piVar2;\n  if (iVar3 < iVar10) {\n    iVar49 = iVar49 + 1;\n    iVar10 = 0;\n  }\n  iVar10 = iVar49 * iVar3 + iVar10;\n  pdVar16 = (double *)(iVar49 + iVar10);\n  iVar3 = (int)pdVar29 + iVar10;\n  if (iVar10 < (int)pdVar16) {\n    uVar4 = param_1[5];\n    pdVar5 = (double *)param_1[4];\n    unaff_s4 = (int *)param_1[2];\n    unaff_s7 = param_1[1];\n    piVar2 = (int *)*param_1;\n    puVar6 = (undefined *)((int)pdVar29 + (int)pdVar16);\n    dVar39 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    in_f26_27 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    in_f30_31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n    do {\n      in_f24_25 = (double)iVar3;\n      pdVar29 = (double *)param_1[3];\n      in_f20_21 = *(double *)param_1[7];\n      in_f28_29 = ((double *)param_1[7])[2];\n      dVar40 = in_f24_25 * pdVar29[2] + pdVar29[4];\n      dVar47 = *pdVar29;\n      dVar41 = in_f28_29;\n      if (dVar39 <= dVar47) {\n        in_f22_23 = -dVar40 / dVar47;\n        if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }\n        dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n        if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }\n        dVar47 = (dVar44 - dVar40) / dVar47;\n        if (dVar47 < in_f28_29) {\n          dVar41 = dVar47;\n        }\nLAB_000a3890:\n        dVar40 = in_f24_25 * pdVar29[3] + pdVar29[5];\n        dVar47 = pdVar29[1];\n        if (*(double *)(puVar36 + 0x43c8) <= dVar47) {\n          dVar44 = -dVar40 / dVar47;\n          if (-dVar40 / dVar47 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = *(double **)(unaff_s7 + 0x1c);\n          dVar44 = (double)(int)pdVar16;\n          if ((int)pdVar16 < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar44 - dVar40) / dVar47;\n          if (dVar41 <= in_f20_21) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }\n        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;\n      }\n      else {\n        if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar44 - dVar40) / dVar47;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar40) {\n          dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n          if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar41;\n          if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar36 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar41 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar41;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar40 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar41 = (dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar41 < in_f20_21) {\n          uVar26 = (uint)dVar41;\n        }\n        else {\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar16 = pdVar5;\n        pdVar29 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26);\n        if (pdVar29 != (double *)0x0) {\n          piVar17 = (int *)param_1[6];\n          piVar48 = piVar17;\n          piVar19 = local_b8;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          piVar48 = piVar17;\n          piVar19 = local_110;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }\n          pdVar16 = pdVar5;\n          iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);\n          if (iVar10 == 0) {\n            param_1[10] = 0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n      unaff_s6 = (double *)puVar36;\n    } while (iVar3 < (int)puVar6);\n  }\n  if (local_5c == *(int *)PTR___stack_chk_guard_003fa248) {\n    return *(int *)PTR___stack_chk_guard_003fa248;\n  }\n  pcVar37 = FUN_000a3ef0;\n  puVar36 = PTR___stack_chk_fail_003fa07c;\n  (*(code *)PTR___stack_chk_fail_003fa07c)();\n  puStack_350 = puVar36 + 0x35d9c0;\n  iStack_1e4 = **(int **)(puVar36 + 0x356358);\n  iVar28 = *(int *)((int)pdVar16 + 0x24);\n  pdStack_2a8 = pdVar16;\n  pdStack_1e0 = pdVar29;\n  piStack_1dc = piVar2;\n  iStack_1d8 = unaff_s2;\n  pdStack_1d4 = unaff_s3;\n  piStack_1d0 = unaff_s4;\n  puStack_1cc = param_1;\n  pdStack_1c8 = unaff_s6;\n  uStack_1c4 = unaff_s7;\n  iStack_1c0 = iVar3;\n  pcStack_1bc = pcVar37;\n  dStack_1b8 = in_f20_21;\n  dStack_1b0 = in_f22_23;\n  dStack_1a8 = in_f24_25;\n  dStack_1a0 = in_f26_27;\n  dStack_198 = in_f28_29;\n  dStack_190 = in_f30_31;\n  iVar10 = (**(code **)(puVar36 + 0x356a34))();\n  iVar49 = (**(code **)(puStack_350 + -0x7390))();\n  iVar12 = (*(int *)(pdVar16 + 5) + 1) - iVar28;\n  if (iVar10 == 0) {\n    trap(7);\n  }\n  iVar50 = iVar12 / iVar10;\n  iVar12 = iVar12 % iVar10;\n  uVar26 = (uint)(iVar49 < iVar12);\n  if (uVar26 != 0) {\n    iVar50 = iVar50 + 1;\n    iVar12 = 0;\n  }\n  uVar8 = iVar50 * iVar49 + iVar12;\n  pdVar29 = (double *)(iVar50 + uVar8);\n  if ((int)uVar8 < (int)pdVar29) {\n    iStack_29c = *(int *)((int)pdStack_2a8 + 0x1c);\n    in_f28_29 = *pdStack_2a8;\n    iStack_2f4 = *(int *)(pdStack_2a8 + 3);\n    pdStack_2a0 = *(double **)((int)pdStack_2a8 + 0x14);\n    uStack_2d0 = *(undefined4 *)(pdStack_2a8 + 2);\n    iStack_324 = *(int *)((int)pdStack_2a8 + 0xc);\n    unaff_s6 = *(double **)(pdStack_2a8 + 1);\n    iStack_2f0 = iVar28 + uVar8;\n    puStack_2a4 = (undefined1 *)(iVar28 + (int)pdVar29);\n    unaff_s7 = *(uint *)(puStack_350 + -0x7fd0);\n    dStack_320 = *(double *)(unaff_s7 + 0x4408);\n    iVar3 = *(int *)(puStack_350 + -0x7fd0);\n    dStack_2b8 = *(double *)(iVar3 + 0x43c8);\n    uStack_2f8 = uVar8;\n    do {\n      iVar28 = (**(code **)(puStack_350 + -0x7390))();\n      if (*(int *)((int)pdStack_2a8 + 0x2c) != 0) {\n        pdVar29 = *(double **)(pdStack_2a8 + 4);\n        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21);\n        uStack_2d4 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21);\n        uVar26 = uStack_2d4;\n        pdVar16 = (double *)(int)dVar39;\n        uStack_354 = uStack_2d0;\n        puStack_358 = (undefined4 *)0x1;\n        pdVar29 = pdStack_2a0;\n        pdStack_2cc = pdVar16;\n        iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)));\n        if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar28 = iVar28 * 4;\n          puVar36 = puStack_350;\n          if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar29 = pdStack_2a0;\n          iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }\n      }\n      iStack_2f0 = iStack_2f0 + 1;\n      uStack_2f8 = uStack_2f8 + 1;\n    } while (iStack_2f0 < (int)puStack_2a4);\n  }\n  if (iStack_1e4 == **(int **)(puStack_350 + -0x7668)) {\n    return **(int **)(puStack_350 + -0x7668);\n  }\n  pcVar37 = *(code **)(puStack_350 + -0x7834);\n  pcVar38 = FUN_000a5040;\n  (*pcVar37)();\n  pcStack_440 = pcVar37 + 0x35c870;\n  iStack_3bc = **(int **)(pcVar37 + 0x355208);\n  uVar8 = *(uint *)(pdVar29 + 3);\n  pdVar5 = pdVar29;\n  uStack_428 = uVar8;\n  iStack_3b8 = iVar28;\n  uStack_3b4 = uVar26;\n  pdStack_3b0 = pdVar16;\n  pdStack_3ac = unaff_s3;\n  piStack_3a8 = unaff_s4;\n  puStack_3a4 = param_1;\n  pdStack_3a0 = unaff_s6;\n  uStack_39c = unaff_s7;\n  iStack_398 = iVar3;\n  pcStack_394 = pcVar38;\n  dStack_390 = in_f20_21;\n  dStack_388 = in_f22_23;\n  dStack_380 = in_f24_25;\n  dStack_378 = in_f26_27;\n  dStack_370 = in_f28_29;\n  iVar3 = (**(code **)(pcVar37 + 0x3558e4))();\n  iVar10 = (**(code **)(pcStack_440 + -0x7390))();\n  iVar49 = (*(uint *)((int)pdVar29 + 0x1c) + 1) - uVar8;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar28 = iVar49 / iVar3;\n  iVar49 = iVar49 % iVar3;\n  uVar26 = (uint)(iVar10 < iVar49);\n  if (uVar26 != 0) {\n    iVar28 = iVar28 + 1;\n    iVar49 = 0;\n  }\n  iVar49 = iVar28 * iVar10 + iVar49;\n  iVar28 = iVar28 + iVar49;\n  iVar3 = *(int *)(pcStack_440 + -0x7fd0);\n  pcVar37 = pcStack_440;\n  if (iVar49 < iVar28) {\n    pdStack_42c = *(double **)(pdVar29 + 2);\n    uStack_430 = *(uint *)((int)pdVar29 + 0xc);\n    unaff_s6 = *(double **)(pdVar29 + 1);\n    uStack_424 = *(uint *)((int)pdVar29 + 4);\n    unaff_s7 = *(uint *)pdVar29;\n    iVar49 = uStack_428 + iVar49;\n    iVar28 = uStack_428 + iVar28;\n    in_f22_23 = *(double *)(iVar3 + 0x43d0);\n    in_f26_27 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8);\n    in_f28_29 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410);\n    do {\n      in_f20_21 = *(double *)(iVar3 + 0x43d0);\n      if (*(uint *)(pdVar29 + 4) != 0) {\n        pdVar16 = *(double **)((int)pdVar29 + 0x14);\n        dVar39 = (double)(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21);\n        uStack_434 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21);\n        uVar26 = uStack_434;\n        param_1 = (undefined4 *)(int)dVar39;\n        uStack_444 = uStack_430;\n        piStack_448 = (int *)0x1;\n        pdVar5 = pdStack_42c;\n        pdVar16 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434));\n        if (pdVar16 == (double *)0x0) {\n          *(uint *)(pdVar29 + 4) = 0;\n          pcVar37 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar26 <= (int)param_1;\n          uVar26 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }\n          pdVar5 = pdStack_42c;\n          iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar37 = pcStack_440;\n          if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }\n        }\n      }\n      iVar49 = iVar49 + 1;\n    } while (iVar49 < iVar28);\n  }\n  if (iStack_3bc == **(int **)(pcVar37 + -0x7668)) {\n    return **(int **)(pcVar37 + -0x7668);\n  }\n  pcVar37 = *(code **)(pcVar37 + -0x7834);\n  pcVar38 = FUN_000a549c;\n  (*pcVar37)();\n  pcStack_5a8 = pcVar37 + 0x35c414;\n  iStack_4b4 = **(int **)(pcVar37 + 0x354dac);\n  puVar32 = *(uint **)(pdVar5 + 4);\n  pdVar30 = (double *)puVar32[3];\n  pdVar14 = pdVar5;\n  uStack_4b0 = uVar26;\n  iStack_4ac = iVar49;\n  pdStack_4a8 = pdVar16;\n  pdStack_4a4 = pdVar29;\n  iStack_4a0 = iVar28;\n  puStack_49c = param_1;\n  pdStack_498 = unaff_s6;\n  uStack_494 = unaff_s7;\n  iStack_490 = iVar3;\n  pcStack_48c = pcVar38;\n  dStack_488 = in_f20_21;\n  dStack_480 = in_f22_23;\n  dStack_478 = in_f24_25;\n  dStack_470 = in_f26_27;\n  dStack_468 = in_f28_29;\n  dStack_460 = in_f30_31;\n  iVar3 = (**(code **)(pcVar37 + 0x355488))();\n  iVar10 = (**(code **)(pcStack_5a8 + -0x7390))();\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar49 = (int)(puVar32[1] - (int)pdVar30) / iVar3;\n  piVar48 = (int *)((int)(puVar32[1] - (int)pdVar30) % iVar3);\n  piVar2 = piVar48;\n  if (iVar10 < (int)piVar48) {\n    iVar49 = iVar49 + 1;\n    piVar2 = (int *)0x0;\n  }\n  piVar2 = (int *)(iVar49 * iVar10 + (int)piVar2);\n  puVar35 = (undefined1 *)((int)pdVar30 + (int)piVar2);\n  pcVar37 = pcStack_5a8;\n  if ((int)piVar2 < iVar49 + (int)piVar2) {\n    dStack_580 = *pdVar5;\n    pdStack_588 = *(double **)(pdVar5 + 3);\n    puVar32 = *(uint **)((int)pdVar5 + 0x14);\n    pdStack_568 = *(double **)(pdVar5 + 2);\n    uStack_564 = *(uint *)((int)pdVar5 + 0xc);\n    piVar48 = *(int **)(pdVar5 + 1);\n    puStack_56c = (undefined1 *)((int)pdVar30 + iVar49 + (int)piVar2);\n    dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n    if (dStack_580 < 0.0) {\n      dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n    }\n    iStack_570 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_598 = *(double *)(iStack_570 + 0x4a48);\n    iStack_584 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_560 = *(double *)(iStack_584 + 0x43d0);\n    unaff_s6 = *(double **)(pcStack_5a8 + -0x7fd0);\n    dStack_548 = unaff_s6[0x879];\n    do {\n      if (*(uint *)((int)pdVar5 + 0x24) != 0) {\n        uStack_5ac = uStack_564;\n        uStack_5b0 = 1;\n        pdVar14 = pdStack_568;\n        pdVar30 = (double *)(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6]);\n        if (pdVar30 == (double *)0x0) {\n          *(uint *)((int)pdVar5 + 0x24) = 0;\n          pcVar37 = pcStack_5a8;\n        }\n        else {\n          piVar17 = *(int **)((int)pdVar5 + 0x1c);\n          piVar2 = piVar17;\n          piVar19 = aiStack_510;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);\n          iVar10 = *piVar2;\n          iVar3 = piVar7[5];\n          *piVar19 = iVar10;\n          piVar11[5] = iVar3;\n          in_f20_21 = *(double *)(piVar17 + 10);\n          in_f22_23 = *(double *)(piVar17 + 0xc);\n          in_f24_25 = *(double *)(piVar17 + 0xe);\n          dStack_590 = *(double *)(piVar17 + 0x10);\n          dVar39 = *(double *)(piVar17 + 0x12);\n          if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];\n          pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }\n          pdVar14 = pdStack_568;\n          iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar37 = pcStack_5a8;\n          if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }\n        }\n      }\n      puVar35 = puVar35 + 1;\n    } while ((int)puVar35 < (int)puStack_56c);\n  }\n  if (iStack_4b4 == **(int **)(pcVar37 + -0x7668)) {\n    return **(int **)(pcVar37 + -0x7668);\n  }\n  pcVar37 = *(code **)(pcVar37 + -0x7834);\n  pcVar38 = DestroyDrawInfo;\n  (*pcVar37)();\n  pcStack_5d0 = pcVar37 + 0x35a8f0;\n  pdStack_5c8 = pdVar30;\n  pcStack_5c4 = pcVar38;\n  if (pdVar14 == (double *)0x0) {\n    (**(code **)(pcVar37 + 0x353660))\n              (*(int *)(pcVar37 + 0x352920) + 0x40e4,*(int *)(pcVar37 + 0x352924) + 0x69c0,0x39a,\n               *(int *)(pcVar37 + 0x352924) + 0x7914);\n    pdVar14 = pdVar30;\nLAB_000a7234:\n    iStack_5d8 = *(int *)(pcVar37 + 0x352924) + 0x10f4;\n    (**(code **)(pcVar37 + 0x353238))\n              (0x8000,*(int *)(pcVar37 + 0x352924) + 0x69c0,*(int *)(pcVar37 + 0x352924) + 0x7904,\n               0x39c);\n    uVar26 = *(uint *)(pdVar14 + 0x72);\n  }\n  else {\n    if (*(uint *)((int)pdVar14 + 0x38c) != 0) goto LAB_000a7234;\n    uVar26 = *(uint *)(pdVar14 + 0x72);\n  }\n  if (uVar26 == 0xabacadab) {\n    if (*(uint *)(pdVar14 + 0x77) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x77) = uVar26;\n    }\n    if (*(uint *)pdVar14 != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)pdVar14 = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x4c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4c) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 4) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x35) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)(pdVar14 + 0x35) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x1ac) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x1ac) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x264) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x264) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x4d) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4d) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x26c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x26c) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x50) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x50) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x52) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x52) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x29c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)((int)pdVar14 + 0x29c) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x54) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x54) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x3e) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x3e) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x2a4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x2a4) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x3ac) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3ac) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x3b4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3b4) = uVar26;\n    }\n    *(uint *)(pdVar14 + 0x72) = 0x54535254;\n    iVar3 = (**(code **)(pcStack_5d0 + -0x78d8))(pdVar14);\n    return iVar3;\n  }\n  pdVar5 = (double *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x7914);\n  pdVar16 = (double *)&DAT_0000039d;\n  puVar23 = (uint *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x69c0);\n  piVar2 = (int *)(*(int *)(pcStack_5d0 + -0x7fd0) + 0x4128);\n  pcVar37 = *(code **)(pcStack_5d0 + -0x7290);\n  pcVar38 = DrawAffineImage;\n  (*pcVar37)();\n  pcStack_758 = pcVar37 + 0x35a61c;\n  uStack_638._4_4_ = **(int **)(pcVar37 + 0x352fb4);\n  pdStack_62c = pdVar14;\n  piStack_628 = piVar48;\n  puStack_624 = puVar32;\n  pdStack_620 = pdVar29;\n  iStack_61c = iVar28;\n  puStack_618 = puVar35;\n  pdStack_614 = unaff_s6;\n  uStack_610 = unaff_s7;\n  pcStack_60c = pcVar38;\n  dStack_608 = in_f20_21;\n  dStack_600 = in_f22_23;\n  dStack_5f8 = in_f24_25;\n  dStack_5f0 = in_f26_27;\n  if (piVar2 == (int *)0x0) {\n    (**(code **)(pcVar37 + 0x35338c))\n              (*(int *)(pcVar37 + 0x35264c) + 0x3da0,*(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c0,\n               *(int *)(pcVar37 + 0x352650) + 0x78f4);\n    pdVar16 = pdVar14;\n    piVar2 = piVar48;\n    puVar23 = puVar32;\n    pdVar5 = pdVar29;\nLAB_000a7434:\n    piVar48 = (int *)(**(code **)(pcVar37 + 0x35338c))\n                               (*(int *)(pcVar37 + 0x352650) + -0x784,\n                                *(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar37 + 0x352650) + 0x78f4);\nLAB_000a745c:\n    iStack_760 = *(int *)(pcVar37 + 0x352654) + -0x2f6c;\n    piStack_75c = piVar48;\n    (**(code **)(pcVar37 + 0x352f64))\n              (0x8000,*(int *)(pcVar37 + 0x352650) + 0x69c0,*(int *)(pcVar37 + 0x352650) + 0x78e4,\n               0x4c3);\n  }\n  else {\n    if (piVar2[0xcdb] != -0x54535255) goto LAB_000a7434;\n    piVar48 = piVar2 + 0xd0;\n    if (piVar2[0xcd4] != 0) goto LAB_000a745c;\n  }\n  pcVar37 = pcStack_758;\n  if (puVar23 == (uint *)0x0) {\n    (**(code **)(pcStack_758 + -0x7290))\n              (*(int *)(pcStack_758 + -0x7fcc) + 0x6a20,*(int *)(pcStack_758 + -0x7fcc) + 0x69c0,\n               0x4c4,*(int *)(pcStack_758 + -0x7fcc) + 0x78f4);\nLAB_000a74c4:\n    (**(code **)(pcVar37 + -0x7290))\n              (*(int *)(pcVar37 + -0x7fcc) + 0x6a40,*(int *)(pcVar37 + -0x7fcc) + 0x69c0);\nLAB_000a74e8:\n    dStack_668 = (double)(**(code **)(pcVar37 + -0x7290))\n                                   (*(int *)(pcVar37 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar37 + -0x7fcc) + 0x69c0);\nLAB_000a750c:\n    dStack_668 = dStack_668 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);\n  }\n  else {\n    if (puVar23[0xcdb] != 0xabacadab) goto LAB_000a74c4;\n    if (pdVar16 == (double *)0x0) goto LAB_000a74e8;\n    uStack_678._4_4_ = 0;\n    uStack_678._0_4_ = 0;\n    uStack_66c = 0;\n    uStack_670 = 0;\n    dStack_668 = (double)(int)puVar23[6];\n    if ((int)puVar23[6] < 0) goto LAB_000a750c;\n  }\n  dStack_668 = dStack_668 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408);\n  uStack_65c = 0;\n  uStack_660 = 0;\n  dStack_658 = dStack_668;\n  dStack_650 = (double)(int)puVar23[7];\n  if ((int)puVar23[7] < 0) {\n    dStack_650 = dStack_650 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);\n  }\n  dStack_650 = dStack_650 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408);\n  uStack_644 = 0;\n  uStack_648 = 0;\n  dStack_640 = dStack_650;\n  dVar45 = *pdVar16;\n  dVar44 = pdVar16[2];\n  dVar47 = pdVar16[4];\n  dVar40 = pdVar16[1];\n  dVar41 = pdVar16[3];\n  dVar39 = pdVar16[5];\n  pdVar14 = (double *)&uStack_678;\n  pdVar29 = pdVar14;\n  do {\n    dVar42 = *pdVar29;\n    *pdVar29 = dVar45 * dVar42 + dVar44 * pdVar29[1] + dVar47;\n    pdVar29[1] = dVar40 * dVar42 + dVar41 * pdVar29[1] + dVar39;\n    pdVar29 = pdVar29 + 2;\n  } while (pdVar29 != (double *)&uStack_638);\n  dVar39 = (double)CONCAT44(uStack_670,uStack_66c);\n  dVar41 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_);\n  dVar40 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_);\n  dVar47 = (double)CONCAT44(uStack_670,uStack_66c);\n  do {\n    dVar45 = pdVar14[2];\n    dVar44 = dVar45;\n    if (dVar41 <= dVar45) {\n      dVar44 = dVar41;\n    }\n    dVar42 = pdVar14[3];\n    dVar46 = dVar42;\n    if (dVar47 <= dVar42) {\n      dVar46 = dVar47;\n    }\n    if (dVar45 <= dVar40) {\n      dVar45 = dVar40;\n    }\n    if (dVar42 <= dVar39) {\n      dVar42 = dVar39;\n    }\n    pdVar14 = pdVar14 + 2;\n    dVar39 = dVar42;\n    dVar41 = dVar44;\n    dVar40 = dVar45;\n    dVar47 = dVar46;\n  } while ((double *)&uStack_648 != pdVar14);\n  ppiVar24 = (int **)0x1;\n  pdVar29 = pdVar5;\n  iVar3 = (**(code **)(pcVar37 + -0x7074))(piVar2);\n  if (iVar3 != 0) {\n    dStack_750 = dVar44;\n    if (dVar44 <= 0.0) {\n      dStack_750 = 0.0;\n    }\n    dStack_748 = dVar46;\n    if (dVar46 <= 0.0) {\n      dStack_748 = 0.0;\n    }\n    dStack_740 = (double)piVar2[6];\n    if (piVar2[6] < 0) {\n      dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_740 = dStack_740 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar45 < dStack_740) {\n      dStack_740 = dVar45;\n    }\n    dStack_738 = (double)piVar2[7];\n    if (piVar2[7] < 0) {\n      dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_738 = dStack_738 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar42 < dStack_738) {\n      dStack_738 = dVar42;\n    }\n    dStack_6e8 = *pdVar16 * pdVar16[3] - pdVar16[1] * pdVar16[2];\n    if (0.0 <= dStack_6e8) {\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    }\n    else {\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);\n    }\n    if (dStack_6e8 * dVar39 < *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)) {\n      dStack_6e8 = dVar39 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8);\n    }\n    else {\n      dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;\n    }\n    dStack_700 = pdVar16[3] * dStack_6e8;\n    dStack_6f8 = -pdVar16[1] * dStack_6e8;\n    dStack_6f0 = -pdVar16[2] * dStack_6e8;\n    dStack_6e8 = *pdVar16 * dStack_6e8;\n    dStack_6e0 = dStack_700 * -pdVar16[4] - dStack_6f0 * pdVar16[5];\n    dStack_6d8 = dStack_6f8 * -pdVar16[4] - dStack_6e8 * pdVar16[5];\n    (**(code **)(pcStack_758 + -0x75e4))(piVar2,auStack_6d0);\n    dVar42 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0);\n    dVar39 = (double)(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar42);\n    dVar41 = (double)(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar42);\n    uVar4 = (**(code **)(pcStack_758 + -0x7144))(puVar23,pdVar5);\n    puVar35 = (undefined1 *)(**(code **)(pcStack_758 + -0x79c4))(piVar2,pdVar5);\n    iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23);\n    if (((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23), iVar3 == 3)) &&\n       ((iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 4 ||\n        (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3)))) {\n      (**(code **)(pcStack_758 + -0x775c))(7);\n      iVar10 = (int)dVar41 - (int)dVar39;\n      iVar3 = iVar10;\n      if (iVar10 < 0) {\n        iVar3 = iVar10 + 0x3f;\n      }\n      pdVar16 = (double *)(iVar3 >> 6);\n      if (extraout_v1 < (int)pdVar16) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        bVar1 = extraout_v1_01 < 2;\n      }\n      else {\n        bVar1 = iVar10 < 0x80;\n      }\n      pdVar29 = (double *)0x1;\n      if (((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16)\n         ) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_03;\n        pdVar16 = extraout_v1_03;\n      }\n    }\n    else {\n      uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar51 < 2) {\n          pdVar29 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }\n      else {\nLAB_000a77f8:\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n      }\n      uVar51 = (*pcVar37)(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_00;\n      }\n      else {\n        pdVar29 = (double *)0x2;\n      }\n    }\nLAB_000a7818:\n    pdStack_720 = &dStack_700;\n    puStack_714 = auStack_6d0;\n    pdStack_710 = &dStack_750;\n    iStack_704 = 1;\n    ppiVar24 = &piStack_72c;\n    piStack_72c = piVar2;\n    puStack_728 = puVar23;\n    pdStack_724 = pdVar5;\n    puStack_71c = puVar35;\n    uStack_718 = uVar4;\n    iStack_70c = (int)dVar39;\n    iStack_708 = (int)dVar41;\n    (**(code **)(pcStack_758 + -0x7700))\n              (*(int *)(pcStack_758 + -0x7ea0) + 0x34c4,ppiVar24,pdVar29,0);\n    iVar3 = iStack_704;\n    (**(code **)(pcStack_758 + -0x79a4))(uVar4);\n    (**(code **)(pcStack_758 + -0x79a4))(puVar35);\n  }\n  if (uStack_638._4_4_ == **(int **)(pcStack_758 + -0x7668)) {\n    return iVar3;\n  }\n  pcVar37 = *(code **)(pcStack_758 + -0x7834);\n  pcVar38 = DrawGradientImage;\n  iVar10 = uStack_638._4_4_;\n  (*pcVar37)();\n  pcStack_830 = pcVar37 + 0x359e18;\n  puStack_794 = (undefined8 *)**(undefined4 **)(pcVar37 + 0x3527b0);\n  pdStack_790 = pdVar16;\n  piStack_78c = piVar2;\n  puStack_788 = puVar23;\n  pdStack_784 = pdVar5;\n  iStack_780 = iVar3;\n  pcStack_77c = pcVar38;\n  dStack_778 = dVar42;\n  if (iVar10 == 0) {\n    iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e48) + 0x3da0,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80a,*(int *)(pcVar37 + 0x351e4c) + 0x7818);\n    return iVar3;\n  }\n  if (*(int *)(iVar10 + 0x336c) != -0x54535255) {\n    iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e4c) + -0x784,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80b,*(int *)(pcVar37 + 0x351e4c) + 0x7818);\n    return iVar3;\n  }\n  if (*(int *)(iVar10 + 0x3350) != 0) {\n    iStack_838 = *(int *)(pcVar37 + 0x351e50) + -0x2f6c;\n    iStack_834 = iVar10 + 0x340;\n    (**(code **)(pcVar37 + 0x352760))\n              (0x8000,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,*(int *)(pcVar37 + 0x351e4c) + 0x7804,\n               0x80d);\n  }\n  if (ppiVar24 == (int **)0x0) {\n    iVar3 = (**(code **)(pcStack_830 + -0x7290))\n                      (*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x69c0,0x80e,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x7818);\n    return iVar3;\n  }\n  ppiVar33 = ppiVar24 + 0x6e;\n  (**(code **)(pcStack_830 + -0x6fc4))\n            (ppiVar24[0x7c],ppiVar24[0x7d],0x60,*(int *)(pcStack_830 + -0x7ea0) + 0x224c);\n  ppiVar34 = ppiVar24 + 0x74;\n  dVar39 = (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) *\n           (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) +\n           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76)) *\n           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76));\n  dVar41 = SQRT(dVar39);\n  if (0.0 <= dVar39) {\n    piStack_828 = ppiVar24[0x6f];\n  }\n  else {\n    (**(code **)(pcStack_830 + -0x7418))();\n    piStack_828 = ppiVar24[0x6f];\n  }\n  piStack_824 = ppiVar24[0x70];\n  piStack_820 = ppiVar24[0x71];\n  piStack_81c = ppiVar24[0x72];\n  (**(code **)(pcStack_830 + -0x75e4))(iVar10,auStack_7f0);\n  uVar4 = (**(code **)(pcStack_830 + -0x79c4))(iVar10,pdVar29);\n  iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10);\n  if ((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 == 3)) {\n    iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10);\n    if ((iVar3 != 4) && (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 != 3))\n    goto LAB_000a7bf4;\n    (**(code **)(pcStack_830 + -0x775c))(7);\n    iVar49 = (int)piStack_824 - (int)piStack_81c;\n    iVar3 = iVar49;\n    if (iVar49 < 0) {\n      iVar3 = iVar49 + 0x3f;\n    }\n    if (extraout_v1_04 < iVar3 >> 6) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = iVar49 < 0x80;\n    }\n    iVar3 = 1;\n    dStack_818 = dVar41;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = (int)piStack_824 - (int)piStack_81c;\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      iVar3 = iVar3 >> 6;\n      dStack_818 = dVar41;\n      if (extraout_v1_07 < iVar3) {\n        (**(code **)(pcStack_830 + -0x775c))(7);\n        iVar3 = extraout_v1_08;\n        dStack_818 = dVar41;\n      }\n    }\n  }\n  else {\nLAB_000a7bf4:\n    uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n      if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a7c10;\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n      if ((uint)uVar51 < 2) {\n        iVar3 = 1;\n        dStack_818 = dVar41;\n        goto LAB_000a7c30;\n      }\n    }\n    else {\nLAB_000a7c10:\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n    }\n    uVar51 = (*pcVar37)(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = extraout_v1_05;\n      dStack_818 = dVar41;\n    }\n    else {\n      iVar3 = 2;\n      dStack_818 = dVar41;\n    }\n  }\nLAB_000a7c30:\n  puStack_7fc = auStack_7f0;\n  ppiStack_7f8 = &piStack_828;\n  iStack_7f4 = 1;\n  iStack_810 = iVar10;\n  pdStack_80c = pdVar29;\n  uStack_808 = uVar4;\n  ppiStack_804 = ppiVar33;\n  ppiStack_800 = ppiVar34;\n  (**(code **)(pcStack_830 + -0x7700))(*(int *)(pcStack_830 + -0x7ea0) + 0x549c,&dStack_818,iVar3,0)\n  ;\n  iVar3 = iStack_7f4;\n  (**(code **)(pcStack_830 + -0x79a4))(uVar4);\n  if (puStack_794 == (undefined8 *)**(int **)(pcStack_830 + -0x7668)) {\n    return iVar3;\n  }\n  pcVar37 = *(code **)(pcStack_830 + -0x7834);\n  pcVar38 = GetAffineMatrix;\n  puVar20 = puStack_794;\n  (*pcVar37)();\n  pcStack_858 = pcVar37 + 0x359994;\n  iStack_860 = *(int *)(pcVar37 + 0x3519c8) + 0x10f4;\n  uStack_850 = uVar4;\n  pcStack_84c = pcVar38;\n  (**(code **)(pcVar37 + 0x3522dc))\n            (0x8000,*(int *)(pcVar37 + 0x3519c8) + 0x69c0,*(int *)(pcVar37 + 0x3519c8) + 0x76b0,\n             0x16d2);\n  if (puVar20 != (undefined8 *)0x0) {\n    (**(code **)(pcStack_858 + -0x71c4))(puVar20 + 1,0,0x28);\n    iVar3 = *(int *)(pcStack_858 + -0x7fd0);\n    uVar51 = *(undefined8 *)(iVar3 + 0x4408);\n    *puVar20 = uVar51;\n    puVar20[3] = uVar51;\n    return iVar3;\n  }\n  iVar49 = *(int *)(pcStack_858 + -0x7fcc) + 0x69c0;\n  iVar10 = *(int *)(pcStack_858 + -0x7fcc) + 0x6368;\n  pcVar37 = *(code **)(pcStack_858 + -0x7290);\n  pcVar38 = GetDrawInfo;\n  (*pcVar37)(iVar10,iVar49,0x16d3,*(int *)(pcStack_858 + -0x7fcc) + 0x76a0);\n  iStack_888 = iVar3;\n  iStack_894 = **(int **)(pcVar37 + 0x352270);\n  puStack_88c = puVar20;\n  pdStack_884 = pdVar29;\n  ppiStack_880 = ppiVar33;\n  ppiStack_87c = ppiVar34;\n  puStack_878 = puVar35;\n  pcStack_874 = pcVar38;\n  (**(code **)(pcVar37 + 0x352220))\n            (0x8000,*(int *)(pcVar37 + 0x35190c) + 0x69c0,*(int *)(pcVar37 + 0x35190c) + 0x7694,\n             0x1702,*(int *)(pcVar37 + 0x35190c) + 0x10f4);\n  if (iVar49 == 0) {\n    (**(code **)(pcVar37 + 0x352648))\n              (*(int *)(pcVar37 + 0x351908) + 0x40e4,*(int *)(pcVar37 + 0x35190c) + 0x69c0,0x1703,\n               *(int *)(pcVar37 + 0x35190c) + 0x7688);\n  }\n  else {\n    (**(code **)(pcVar37 + 0x352714))(iVar49,0,0x3c0);\n    iVar10 = (**(code **)(pcVar37 + 0x3521dc))(iVar10);\n    (**(code **)(pcVar37 + 0x351e5c))(iVar49 + 0x18);\n    pdVar29 = (double *)(**(code **)(pcVar37 + 0x351f2c))();\n    ppiVar34 = (int **)(iVar49 + 0x48);\n    (**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar34,pdVar29);\n    ppiVar33 = (int **)(iVar49 + 0xa0);\n    (**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar33,pdVar29);\n    *(undefined4 *)(iVar49 + 0x238) = *(undefined4 *)(iVar10 + 0x14);\n    *(undefined8 *)(iVar49 + 0x1b0) = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4408);\n    *(undefined4 *)(iVar49 + 0x240) = 1;\n    *(undefined4 *)(iVar49 + 0x2cc) = *(undefined4 *)(*(int *)(pcVar37 + 0x351908) + 0x4aa8);\n    uVar51 = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4a48);\n    *(undefined8 *)(iVar49 + 0x398) = uVar51;\n    *(undefined8 *)(iVar49 + 0x3a0) = uVar51;\n    *(undefined4 *)(iVar49 + 0x244) = 1;\n    *(undefined4 *)(iVar49 + 0x248) = 1;\n    *(undefined4 *)(iVar49 + 0x24c) = 10;\n    *(undefined4 *)(iVar49 + 600) = 1;\n    *(undefined8 *)(iVar49 + 0x288) = *(undefined8 *)(*(int *)(pcVar37 + 0x35190c) + 0x7970);\n    *(undefined4 *)(iVar49 + 0x144) = 0;\n    *(undefined4 *)(iVar49 + 0x140) = 0;\n    *(undefined4 *)(iVar49 + 0x25c) = 0x36;\n    *(undefined4 *)(iVar49 + 0x2d0) = 1;\n    *(undefined4 *)(iVar49 + 0x3a8) = 0;\n    uVar4 = (**(code **)(pcVar37 + 0x3527e8))();\n    *(undefined4 *)(iVar49 + 0x38c) = uVar4;\n    if (*(int *)(iVar10 + 0x4c) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x264) = uVar4;\n    }\n    if (*(int *)(iVar10 + 0x54) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x290) = uVar4;\n    }\n    *(undefined4 *)(iVar49 + 0x23c) = *(undefined4 *)(iVar10 + 0x14);\n    uVar4 = *(undefined4 *)(iVar10 + 0x58);\n    if (*(double *)(*(int *)(pcVar37 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar10 + 0x58))) {\n      *(undefined4 *)(iVar49 + 0x28c) = *(undefined4 *)(iVar10 + 0x5c);\n      *(undefined4 *)(iVar49 + 0x288) = uVar4;\n    }\n    puVar13 = (undefined4 *)(iVar10 + 0x118);\n    puVar21 = (undefined4 *)(iVar49 + 0x150);\n    do {\n      puVar15 = puVar21;\n      puVar9 = puVar13;\n      uVar27 = puVar9[1];\n      uVar25 = puVar9[2];\n      uVar4 = puVar9[3];\n      *puVar15 = *puVar9;\n      puVar15[1] = uVar27;\n      puVar15[2] = uVar25;\n      puVar15[3] = uVar4;\n      puVar13 = puVar9 + 4;\n      puVar21 = puVar15 + 4;\n    } while (puVar13 != (undefined4 *)(iVar10 + 0x168));\n    uVar4 = puVar9[5];\n    puVar15[4] = *puVar13;\n    puVar15[5] = uVar4;\n    if (*(int *)(iVar10 + 0x48) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x29c) = uVar4;\n    }\n    iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ac4);\n    if (iVar3 != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x14,0,iVar3);\n      *(undefined4 *)(iVar49 + 0x388) = uVar4;\n      goto LAB_000a8298;\n    }\n  }\n  *(undefined4 *)(iVar49 + 0x388) = 0;\nLAB_000a8298:\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ad0);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x280,iVar3);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6adc);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x26c,iVar3);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ae4);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar34,pdVar29);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6aec);\n  if (iVar3 != 0) {\n    uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x21,0,iVar3);\n    *(undefined4 *)(iVar49 + 0x298) = uVar4;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6af4);\n  if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x380) = dVar39;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b08);\n  if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x378) = dVar39;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b1c);\n  if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x370) = dVar39;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b24);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar33,pdVar29);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b2c);\n  if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x1b0) = dVar39;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b38);\n  if (iVar3 != 0) {\n    uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x47,0,iVar3);\n    *(undefined4 *)(iVar49 + 0x274) = uVar4;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b40);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,iVar49 + 0xf8,pdVar29);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x351920) + -0x3000);\n  if (iVar3 != 0) {\n    iVar28 = (**(code **)(pcVar37 + 0x3526d4))(0x4c,0,iVar3);\n    if (iVar28 == -1) {\n      uVar4 = (**(code **)(pcVar37 + 0x352380))(iVar3,0,10);\n      *(undefined4 *)(iVar49 + 0x27c) = uVar4;\n    }\n    else {\n      *(int *)(iVar49 + 0x27c) = iVar28;\n    }\n  }\n  (**(code **)(pcVar37 + 0x351d90))(pdVar29);\n  *(undefined4 *)(iVar49 + 0x390) = 0xabacadab;\n  (**(code **)(pcVar37 + 0x352628))(iVar10);\n  if (iStack_894 == **(int **)(pcVar37 + 0x352270)) {\n    return **(int **)(pcVar37 + 0x352270);\n  }\n  pcVar37 = *(code **)(pcVar37 + 0x3520a4);\n  (*pcVar37)();\n  iVar3 = (**(code **)(pcVar37 + 0x351be4))(0x3c0);\n  (**(code **)(pcVar37 + 0x3518b4))(0,iVar3);\n  return iVar3;\n}" (primitive_type "int") (function_declarator "FUN_000a34c4(undefined4 *param_1)" (identifier "FUN_000a34c4") (parameter_list "(undefined4 *param_1)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  bool bVar1;\n  int *piVar2;\n  int iVar3;\n  undefined4 uVar4;\n  double *pdVar5;\n  undefined *puVar6;\n  int *piVar7;\n  uint uVar8;\n  undefined4 *puVar9;\n  int iVar10;\n  int *piVar11;\n  int iVar12;\n  undefined4 *puVar13;\n  double *pdVar14;\n  int extraout_v1;\n  double *extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  double *extraout_v1_03;\n  int extraout_v1_04;\n  int extraout_v1_05;\n  int extraout_v1_06;\n  int extraout_v1_07;\n  int extraout_v1_08;\n  undefined4 *puVar15;\n  double *pdVar16;\n  int *piVar17;\n  uint uVar18;\n  int *piVar19;\n  undefined8 *puVar20;\n  undefined4 *puVar21;\n  uint uVar22;\n  uint *puVar23;\n  int **ppiVar24;\n  undefined4 uVar25;\n  uint uVar26;\n  undefined4 uVar27;\n  int iVar28;\n  double *pdVar29;\n  double *pdVar30;\n  int unaff_s2;\n  int iVar31;\n  uint *puVar32;\n  double *unaff_s3;\n  int **ppiVar33;\n  int *unaff_s4;\n  int **ppiVar34;\n  undefined1 *puVar35;\n  double *unaff_s6;\n  uint unaff_s7;\n  undefined *puVar36;\n  code *pcVar37;\n  code *pcVar38;\n  double dVar39;\n  double dVar40;\n  double dVar41;\n  float fVar43;\n  double dVar42;\n  double dVar44;\n  double dVar45;\n  double dVar46;\n  double in_f20_21;\n  double dVar47;\n  double in_f22_23;\n  double in_f24_25;\n  double in_f26_27;\n  double in_f28_29;\n  double in_f30_31;\n  int *piVar48;\n  int iVar49;\n  int iVar50;\n  undefined8 uVar51;\n  undefined1 auStack_898 [4];\n  int iStack_894;\n  undefined8 *puStack_88c;\n  int iStack_888;\n  double *pdStack_884;\n  int **ppiStack_880;\n  int **ppiStack_87c;\n  undefined1 *puStack_878;\n  code *pcStack_874;\n  int iStack_860;\n  code *pcStack_858;\n  undefined4 uStack_850;\n  code *pcStack_84c;\n  int iStack_838;\n  int iStack_834;\n  code *pcStack_830;\n  int *piStack_828;\n  int *piStack_824;\n  int *piStack_820;\n  int *piStack_81c;\n  double dStack_818;\n  int iStack_810;\n  double *pdStack_80c;\n  undefined4 uStack_808;\n  int **ppiStack_804;\n  int **ppiStack_800;\n  undefined1 *puStack_7fc;\n  int **ppiStack_7f8;\n  int iStack_7f4;\n  undefined1 auStack_7f0 [92];\n  undefined8 *puStack_794;\n  double *pdStack_790;\n  int *piStack_78c;\n  uint *puStack_788;\n  double *pdStack_784;\n  int iStack_780;\n  code *pcStack_77c;\n  double dStack_778;\n  int iStack_760;\n  int *piStack_75c;\n  code *pcStack_758;\n  double dStack_750;\n  double dStack_748;\n  double dStack_740;\n  double dStack_738;\n  int *piStack_72c;\n  uint *puStack_728;\n  double *pdStack_724;\n  double *pdStack_720;\n  undefined1 *puStack_71c;\n  undefined4 uStack_718;\n  undefined1 *puStack_714;\n  double *pdStack_710;\n  int iStack_70c;\n  int iStack_708;\n  int iStack_704;\n  double dStack_700;\n  double dStack_6f8;\n  double dStack_6f0;\n  double dStack_6e8;\n  double dStack_6e0;\n  double dStack_6d8;\n  undefined1 auStack_6d0 [88];\n  undefined8 uStack_678;\n  undefined4 uStack_670;\n  undefined4 uStack_66c;\n  double dStack_668;\n  undefined4 uStack_660;\n  undefined4 uStack_65c;\n  double dStack_658;\n  double dStack_650;\n  undefined4 uStack_648;\n  undefined4 uStack_644;\n  double dStack_640;\n  undefined8 uStack_638;\n  double *pdStack_62c;\n  int *piStack_628;\n  uint *puStack_624;\n  double *pdStack_620;\n  int iStack_61c;\n  undefined1 *puStack_618;\n  double *pdStack_614;\n  uint uStack_610;\n  code *pcStack_60c;\n  double dStack_608;\n  double dStack_600;\n  double dStack_5f8;\n  double dStack_5f0;\n  int iStack_5d8;\n  code *pcStack_5d0;\n  double *pdStack_5c8;\n  code *pcStack_5c4;\n  undefined4 uStack_5b0;\n  uint uStack_5ac;\n  code *pcStack_5a8;\n  undefined8 uStack_5a0;\n  double dStack_598;\n  double dStack_590;\n  double *pdStack_588;\n  int iStack_584;\n  double dStack_580;\n  double dStack_578;\n  int iStack_570;\n  undefined1 *puStack_56c;\n  double *pdStack_568;\n  uint uStack_564;\n  double dStack_560;\n  double dStack_558;\n  uint uStack_550;\n  undefined4 uStack_54c;\n  double dStack_548;\n  double dStack_540;\n  uint uStack_538;\n  undefined4 uStack_534;\n  double dStack_530;\n  uint uStack_528;\n  undefined4 uStack_524;\n  double dStack_520;\n  double dStack_518;\n  int aiStack_510 [4];\n  undefined8 uStack_500;\n  int iStack_4f8;\n  double dStack_4e8;\n  double dStack_4e0;\n  double dStack_4d8;\n  double dStack_4d0;\n  double dStack_4c8;\n  double dStack_4c0;\n  int iStack_4b4;\n  uint uStack_4b0;\n  int iStack_4ac;\n  double *pdStack_4a8;\n  double *pdStack_4a4;\n  int iStack_4a0;\n  undefined4 *puStack_49c;\n  double *pdStack_498;\n  uint uStack_494;\n  int iStack_490;\n  code *pcStack_48c;\n  double dStack_488;\n  double dStack_480;\n  double dStack_478;\n  double dStack_470;\n  double dStack_468;\n  double dStack_460;\n  int *piStack_448;\n  uint uStack_444;\n  code *pcStack_440;\n  uint uStack_434;\n  uint uStack_430;\n  double *pdStack_42c;\n  uint uStack_428;\n  uint uStack_424;\n  uint uStack_420;\n  undefined4 uStack_41c;\n  int aiStack_418 [10];\n  double dStack_3f0;\n  double dStack_3e8;\n  double dStack_3e0;\n  double dStack_3d8;\n  double dStack_3d0;\n  int iStack_3bc;\n  int iStack_3b8;\n  uint uStack_3b4;\n  double *pdStack_3b0;\n  double *pdStack_3ac;\n  int *piStack_3a8;\n  undefined4 *puStack_3a4;\n  double *pdStack_3a0;\n  uint uStack_39c;\n  int iStack_398;\n  code *pcStack_394;\n  double dStack_390;\n  double dStack_388;\n  double dStack_380;\n  double dStack_378;\n  double dStack_370;\n  undefined4 *puStack_358;\n  undefined4 uStack_354;\n  undefined *puStack_350;\n  undefined8 uStack_348;\n  double dStack_340;\n  double dStack_338;\n  double dStack_330;\n  uint uStack_328;\n  int iStack_324;\n  double dStack_320;\n  double dStack_318;\n  uint uStack_310;\n  undefined4 uStack_30c;\n  int iStack_308;\n  int *piStack_304;\n  double dStack_300;\n  uint uStack_2f8;\n  int iStack_2f4;\n  int iStack_2f0;\n  double *pdStack_2ec;\n  uint uStack_2e8;\n  undefined4 uStack_2e4;\n  uint uStack_2e0;\n  undefined4 uStack_2dc;\n  double *pdStack_2d8;\n  uint uStack_2d4;\n  undefined4 uStack_2d0;\n  double *pdStack_2cc;\n  uint uStack_2c8;\n  undefined4 uStack_2c4;\n  int iStack_2c0;\n  undefined4 *puStack_2bc;\n  double dStack_2b8;\n  uint uStack_2b0;\n  undefined4 uStack_2ac;\n  double *pdStack_2a8;\n  undefined1 *puStack_2a4;\n  double *pdStack_2a0;\n  int iStack_29c;\n  undefined4 auStack_298 [18];\n  double dStack_250;\n  undefined4 auStack_240 [18];\n  double dStack_1f8;\n  int iStack_1e4;\n  double *pdStack_1e0;\n  int *piStack_1dc;\n  int iStack_1d8;\n  double *pdStack_1d4;\n  int *piStack_1d0;\n  undefined4 *puStack_1cc;\n  double *pdStack_1c8;\n  uint uStack_1c4;\n  int iStack_1c0;\n  code *pcStack_1bc;\n  double dStack_1b8;\n  double dStack_1b0;\n  double dStack_1a8;\n  double dStack_1a0;\n  double dStack_198;\n  double dStack_190;\n  undefined8 local_178;\n  double local_170;\n  int *local_168;\n  int *local_164;\n  int local_110 [4];\n  undefined8 local_100;\n  int local_f8;\n  double local_e8;\n  double local_e0;\n  double local_d8;\n  double local_d0;\n  double local_c8;\n  double local_c0;\n  int local_b8 [10];\n  double local_90;\n  double local_88;\n  double local_80;\n  double local_78;\n  double local_70;\n  int local_5c;\n  \n  local_5c = *(int *)PTR___stack_chk_guard_003fa248;\n  pdVar29 = (double *)param_1[8];\n  piVar2 = (int *)(*(code *)PTR_omp_get_num_threads_003fa924)();\n  iVar3 = (*(code *)PTR_omp_get_thread_num_003fa520)();\n  puVar36 = PTR_LAB_003f98e0;\n  iVar10 = (param_1[9] + 1) - (int)pdVar29;\n  if (piVar2 == (int *)0x0) {\n    trap(7);\n  }\n  iVar49 = iVar10 / (int)piVar2;\n  iVar10 = iVar10 % (int)piVar2;\n  if (iVar3 < iVar10) {\n    iVar49 = iVar49 + 1;\n    iVar10 = 0;\n  }\n  iVar10 = iVar49 * iVar3 + iVar10;\n  pdVar16 = (double *)(iVar49 + iVar10);\n  iVar3 = (int)pdVar29 + iVar10;\n  if (iVar10 < (int)pdVar16) {\n    uVar4 = param_1[5];\n    pdVar5 = (double *)param_1[4];\n    unaff_s4 = (int *)param_1[2];\n    unaff_s7 = param_1[1];\n    piVar2 = (int *)*param_1;\n    puVar6 = (undefined *)((int)pdVar29 + (int)pdVar16);\n    dVar39 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    in_f26_27 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    in_f30_31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n    do {\n      in_f24_25 = (double)iVar3;\n      pdVar29 = (double *)param_1[3];\n      in_f20_21 = *(double *)param_1[7];\n      in_f28_29 = ((double *)param_1[7])[2];\n      dVar40 = in_f24_25 * pdVar29[2] + pdVar29[4];\n      dVar47 = *pdVar29;\n      dVar41 = in_f28_29;\n      if (dVar39 <= dVar47) {\n        in_f22_23 = -dVar40 / dVar47;\n        if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }\n        dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n        if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }\n        dVar47 = (dVar44 - dVar40) / dVar47;\n        if (dVar47 < in_f28_29) {\n          dVar41 = dVar47;\n        }\nLAB_000a3890:\n        dVar40 = in_f24_25 * pdVar29[3] + pdVar29[5];\n        dVar47 = pdVar29[1];\n        if (*(double *)(puVar36 + 0x43c8) <= dVar47) {\n          dVar44 = -dVar40 / dVar47;\n          if (-dVar40 / dVar47 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = *(double **)(unaff_s7 + 0x1c);\n          dVar44 = (double)(int)pdVar16;\n          if ((int)pdVar16 < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar44 - dVar40) / dVar47;\n          if (dVar41 <= in_f20_21) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }\n        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;\n      }\n      else {\n        if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar44 - dVar40) / dVar47;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar40) {\n          dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n          if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar41;\n          if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar36 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar41 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar41;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar40 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar41 = (dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar41 < in_f20_21) {\n          uVar26 = (uint)dVar41;\n        }\n        else {\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar16 = pdVar5;\n        pdVar29 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26);\n        if (pdVar29 != (double *)0x0) {\n          piVar17 = (int *)param_1[6];\n          piVar48 = piVar17;\n          piVar19 = local_b8;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          piVar48 = piVar17;\n          piVar19 = local_110;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }\n          pdVar16 = pdVar5;\n          iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);\n          if (iVar10 == 0) {\n            param_1[10] = 0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n      unaff_s6 = (double *)puVar36;\n    } while (iVar3 < (int)puVar6);\n  }\n  if (local_5c == *(int *)PTR___stack_chk_guard_003fa248) {\n    return *(int *)PTR___stack_chk_guard_003fa248;\n  }\n  pcVar37 = FUN_000a3ef0;\n  puVar36 = PTR___stack_chk_fail_003fa07c;\n  (*(code *)PTR___stack_chk_fail_003fa07c)();\n  puStack_350 = puVar36 + 0x35d9c0;\n  iStack_1e4 = **(int **)(puVar36 + 0x356358);\n  iVar28 = *(int *)((int)pdVar16 + 0x24);\n  pdStack_2a8 = pdVar16;\n  pdStack_1e0 = pdVar29;\n  piStack_1dc = piVar2;\n  iStack_1d8 = unaff_s2;\n  pdStack_1d4 = unaff_s3;\n  piStack_1d0 = unaff_s4;\n  puStack_1cc = param_1;\n  pdStack_1c8 = unaff_s6;\n  uStack_1c4 = unaff_s7;\n  iStack_1c0 = iVar3;\n  pcStack_1bc = pcVar37;\n  dStack_1b8 = in_f20_21;\n  dStack_1b0 = in_f22_23;\n  dStack_1a8 = in_f24_25;\n  dStack_1a0 = in_f26_27;\n  dStack_198 = in_f28_29;\n  dStack_190 = in_f30_31;\n  iVar10 = (**(code **)(puVar36 + 0x356a34))();\n  iVar49 = (**(code **)(puStack_350 + -0x7390))();\n  iVar12 = (*(int *)(pdVar16 + 5) + 1) - iVar28;\n  if (iVar10 == 0) {\n    trap(7);\n  }\n  iVar50 = iVar12 / iVar10;\n  iVar12 = iVar12 % iVar10;\n  uVar26 = (uint)(iVar49 < iVar12);\n  if (uVar26 != 0) {\n    iVar50 = iVar50 + 1;\n    iVar12 = 0;\n  }\n  uVar8 = iVar50 * iVar49 + iVar12;\n  pdVar29 = (double *)(iVar50 + uVar8);\n  if ((int)uVar8 < (int)pdVar29) {\n    iStack_29c = *(int *)((int)pdStack_2a8 + 0x1c);\n    in_f28_29 = *pdStack_2a8;\n    iStack_2f4 = *(int *)(pdStack_2a8 + 3);\n    pdStack_2a0 = *(double **)((int)pdStack_2a8 + 0x14);\n    uStack_2d0 = *(undefined4 *)(pdStack_2a8 + 2);\n    iStack_324 = *(int *)((int)pdStack_2a8 + 0xc);\n    unaff_s6 = *(double **)(pdStack_2a8 + 1);\n    iStack_2f0 = iVar28 + uVar8;\n    puStack_2a4 = (undefined1 *)(iVar28 + (int)pdVar29);\n    unaff_s7 = *(uint *)(puStack_350 + -0x7fd0);\n    dStack_320 = *(double *)(unaff_s7 + 0x4408);\n    iVar3 = *(int *)(puStack_350 + -0x7fd0);\n    dStack_2b8 = *(double *)(iVar3 + 0x43c8);\n    uStack_2f8 = uVar8;\n    do {\n      iVar28 = (**(code **)(puStack_350 + -0x7390))();\n      if (*(int *)((int)pdStack_2a8 + 0x2c) != 0) {\n        pdVar29 = *(double **)(pdStack_2a8 + 4);\n        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21);\n        uStack_2d4 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21);\n        uVar26 = uStack_2d4;\n        pdVar16 = (double *)(int)dVar39;\n        uStack_354 = uStack_2d0;\n        puStack_358 = (undefined4 *)0x1;\n        pdVar29 = pdStack_2a0;\n        pdStack_2cc = pdVar16;\n        iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)));\n        if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar28 = iVar28 * 4;\n          puVar36 = puStack_350;\n          if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar29 = pdStack_2a0;\n          iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }\n      }\n      iStack_2f0 = iStack_2f0 + 1;\n      uStack_2f8 = uStack_2f8 + 1;\n    } while (iStack_2f0 < (int)puStack_2a4);\n  }\n  if (iStack_1e4 == **(int **)(puStack_350 + -0x7668)) {\n    return **(int **)(puStack_350 + -0x7668);\n  }\n  pcVar37 = *(code **)(puStack_350 + -0x7834);\n  pcVar38 = FUN_000a5040;\n  (*pcVar37)();\n  pcStack_440 = pcVar37 + 0x35c870;\n  iStack_3bc = **(int **)(pcVar37 + 0x355208);\n  uVar8 = *(uint *)(pdVar29 + 3);\n  pdVar5 = pdVar29;\n  uStack_428 = uVar8;\n  iStack_3b8 = iVar28;\n  uStack_3b4 = uVar26;\n  pdStack_3b0 = pdVar16;\n  pdStack_3ac = unaff_s3;\n  piStack_3a8 = unaff_s4;\n  puStack_3a4 = param_1;\n  pdStack_3a0 = unaff_s6;\n  uStack_39c = unaff_s7;\n  iStack_398 = iVar3;\n  pcStack_394 = pcVar38;\n  dStack_390 = in_f20_21;\n  dStack_388 = in_f22_23;\n  dStack_380 = in_f24_25;\n  dStack_378 = in_f26_27;\n  dStack_370 = in_f28_29;\n  iVar3 = (**(code **)(pcVar37 + 0x3558e4))();\n  iVar10 = (**(code **)(pcStack_440 + -0x7390))();\n  iVar49 = (*(uint *)((int)pdVar29 + 0x1c) + 1) - uVar8;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar28 = iVar49 / iVar3;\n  iVar49 = iVar49 % iVar3;\n  uVar26 = (uint)(iVar10 < iVar49);\n  if (uVar26 != 0) {\n    iVar28 = iVar28 + 1;\n    iVar49 = 0;\n  }\n  iVar49 = iVar28 * iVar10 + iVar49;\n  iVar28 = iVar28 + iVar49;\n  iVar3 = *(int *)(pcStack_440 + -0x7fd0);\n  pcVar37 = pcStack_440;\n  if (iVar49 < iVar28) {\n    pdStack_42c = *(double **)(pdVar29 + 2);\n    uStack_430 = *(uint *)((int)pdVar29 + 0xc);\n    unaff_s6 = *(double **)(pdVar29 + 1);\n    uStack_424 = *(uint *)((int)pdVar29 + 4);\n    unaff_s7 = *(uint *)pdVar29;\n    iVar49 = uStack_428 + iVar49;\n    iVar28 = uStack_428 + iVar28;\n    in_f22_23 = *(double *)(iVar3 + 0x43d0);\n    in_f26_27 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8);\n    in_f28_29 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410);\n    do {\n      in_f20_21 = *(double *)(iVar3 + 0x43d0);\n      if (*(uint *)(pdVar29 + 4) != 0) {\n        pdVar16 = *(double **)((int)pdVar29 + 0x14);\n        dVar39 = (double)(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21);\n        uStack_434 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21);\n        uVar26 = uStack_434;\n        param_1 = (undefined4 *)(int)dVar39;\n        uStack_444 = uStack_430;\n        piStack_448 = (int *)0x1;\n        pdVar5 = pdStack_42c;\n        pdVar16 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434));\n        if (pdVar16 == (double *)0x0) {\n          *(uint *)(pdVar29 + 4) = 0;\n          pcVar37 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar26 <= (int)param_1;\n          uVar26 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }\n          pdVar5 = pdStack_42c;\n          iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar37 = pcStack_440;\n          if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }\n        }\n      }\n      iVar49 = iVar49 + 1;\n    } while (iVar49 < iVar28);\n  }\n  if (iStack_3bc == **(int **)(pcVar37 + -0x7668)) {\n    return **(int **)(pcVar37 + -0x7668);\n  }\n  pcVar37 = *(code **)(pcVar37 + -0x7834);\n  pcVar38 = FUN_000a549c;\n  (*pcVar37)();\n  pcStack_5a8 = pcVar37 + 0x35c414;\n  iStack_4b4 = **(int **)(pcVar37 + 0x354dac);\n  puVar32 = *(uint **)(pdVar5 + 4);\n  pdVar30 = (double *)puVar32[3];\n  pdVar14 = pdVar5;\n  uStack_4b0 = uVar26;\n  iStack_4ac = iVar49;\n  pdStack_4a8 = pdVar16;\n  pdStack_4a4 = pdVar29;\n  iStack_4a0 = iVar28;\n  puStack_49c = param_1;\n  pdStack_498 = unaff_s6;\n  uStack_494 = unaff_s7;\n  iStack_490 = iVar3;\n  pcStack_48c = pcVar38;\n  dStack_488 = in_f20_21;\n  dStack_480 = in_f22_23;\n  dStack_478 = in_f24_25;\n  dStack_470 = in_f26_27;\n  dStack_468 = in_f28_29;\n  dStack_460 = in_f30_31;\n  iVar3 = (**(code **)(pcVar37 + 0x355488))();\n  iVar10 = (**(code **)(pcStack_5a8 + -0x7390))();\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar49 = (int)(puVar32[1] - (int)pdVar30) / iVar3;\n  piVar48 = (int *)((int)(puVar32[1] - (int)pdVar30) % iVar3);\n  piVar2 = piVar48;\n  if (iVar10 < (int)piVar48) {\n    iVar49 = iVar49 + 1;\n    piVar2 = (int *)0x0;\n  }\n  piVar2 = (int *)(iVar49 * iVar10 + (int)piVar2);\n  puVar35 = (undefined1 *)((int)pdVar30 + (int)piVar2);\n  pcVar37 = pcStack_5a8;\n  if ((int)piVar2 < iVar49 + (int)piVar2) {\n    dStack_580 = *pdVar5;\n    pdStack_588 = *(double **)(pdVar5 + 3);\n    puVar32 = *(uint **)((int)pdVar5 + 0x14);\n    pdStack_568 = *(double **)(pdVar5 + 2);\n    uStack_564 = *(uint *)((int)pdVar5 + 0xc);\n    piVar48 = *(int **)(pdVar5 + 1);\n    puStack_56c = (undefined1 *)((int)pdVar30 + iVar49 + (int)piVar2);\n    dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n    if (dStack_580 < 0.0) {\n      dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n    }\n    iStack_570 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_598 = *(double *)(iStack_570 + 0x4a48);\n    iStack_584 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_560 = *(double *)(iStack_584 + 0x43d0);\n    unaff_s6 = *(double **)(pcStack_5a8 + -0x7fd0);\n    dStack_548 = unaff_s6[0x879];\n    do {\n      if (*(uint *)((int)pdVar5 + 0x24) != 0) {\n        uStack_5ac = uStack_564;\n        uStack_5b0 = 1;\n        pdVar14 = pdStack_568;\n        pdVar30 = (double *)(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6]);\n        if (pdVar30 == (double *)0x0) {\n          *(uint *)((int)pdVar5 + 0x24) = 0;\n          pcVar37 = pcStack_5a8;\n        }\n        else {\n          piVar17 = *(int **)((int)pdVar5 + 0x1c);\n          piVar2 = piVar17;\n          piVar19 = aiStack_510;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);\n          iVar10 = *piVar2;\n          iVar3 = piVar7[5];\n          *piVar19 = iVar10;\n          piVar11[5] = iVar3;\n          in_f20_21 = *(double *)(piVar17 + 10);\n          in_f22_23 = *(double *)(piVar17 + 0xc);\n          in_f24_25 = *(double *)(piVar17 + 0xe);\n          dStack_590 = *(double *)(piVar17 + 0x10);\n          dVar39 = *(double *)(piVar17 + 0x12);\n          if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];\n          pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }\n          pdVar14 = pdStack_568;\n          iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar37 = pcStack_5a8;\n          if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }\n        }\n      }\n      puVar35 = puVar35 + 1;\n    } while ((int)puVar35 < (int)puStack_56c);\n  }\n  if (iStack_4b4 == **(int **)(pcVar37 + -0x7668)) {\n    return **(int **)(pcVar37 + -0x7668);\n  }\n  pcVar37 = *(code **)(pcVar37 + -0x7834);\n  pcVar38 = DestroyDrawInfo;\n  (*pcVar37)();\n  pcStack_5d0 = pcVar37 + 0x35a8f0;\n  pdStack_5c8 = pdVar30;\n  pcStack_5c4 = pcVar38;\n  if (pdVar14 == (double *)0x0) {\n    (**(code **)(pcVar37 + 0x353660))\n              (*(int *)(pcVar37 + 0x352920) + 0x40e4,*(int *)(pcVar37 + 0x352924) + 0x69c0,0x39a,\n               *(int *)(pcVar37 + 0x352924) + 0x7914);\n    pdVar14 = pdVar30;\nLAB_000a7234:\n    iStack_5d8 = *(int *)(pcVar37 + 0x352924) + 0x10f4;\n    (**(code **)(pcVar37 + 0x353238))\n              (0x8000,*(int *)(pcVar37 + 0x352924) + 0x69c0,*(int *)(pcVar37 + 0x352924) + 0x7904,\n               0x39c);\n    uVar26 = *(uint *)(pdVar14 + 0x72);\n  }\n  else {\n    if (*(uint *)((int)pdVar14 + 0x38c) != 0) goto LAB_000a7234;\n    uVar26 = *(uint *)(pdVar14 + 0x72);\n  }\n  if (uVar26 == 0xabacadab) {\n    if (*(uint *)(pdVar14 + 0x77) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x77) = uVar26;\n    }\n    if (*(uint *)pdVar14 != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)pdVar14 = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x4c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4c) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 4) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x35) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)(pdVar14 + 0x35) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x1ac) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x1ac) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x264) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x264) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x4d) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4d) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x26c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x26c) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x50) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x50) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x52) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x52) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x29c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)((int)pdVar14 + 0x29c) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x54) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x54) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x3e) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x3e) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x2a4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x2a4) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x3ac) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3ac) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x3b4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3b4) = uVar26;\n    }\n    *(uint *)(pdVar14 + 0x72) = 0x54535254;\n    iVar3 = (**(code **)(pcStack_5d0 + -0x78d8))(pdVar14);\n    return iVar3;\n  }\n  pdVar5 = (double *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x7914);\n  pdVar16 = (double *)&DAT_0000039d;\n  puVar23 = (uint *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x69c0);\n  piVar2 = (int *)(*(int *)(pcStack_5d0 + -0x7fd0) + 0x4128);\n  pcVar37 = *(code **)(pcStack_5d0 + -0x7290);\n  pcVar38 = DrawAffineImage;\n  (*pcVar37)();\n  pcStack_758 = pcVar37 + 0x35a61c;\n  uStack_638._4_4_ = **(int **)(pcVar37 + 0x352fb4);\n  pdStack_62c = pdVar14;\n  piStack_628 = piVar48;\n  puStack_624 = puVar32;\n  pdStack_620 = pdVar29;\n  iStack_61c = iVar28;\n  puStack_618 = puVar35;\n  pdStack_614 = unaff_s6;\n  uStack_610 = unaff_s7;\n  pcStack_60c = pcVar38;\n  dStack_608 = in_f20_21;\n  dStack_600 = in_f22_23;\n  dStack_5f8 = in_f24_25;\n  dStack_5f0 = in_f26_27;\n  if (piVar2 == (int *)0x0) {\n    (**(code **)(pcVar37 + 0x35338c))\n              (*(int *)(pcVar37 + 0x35264c) + 0x3da0,*(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c0,\n               *(int *)(pcVar37 + 0x352650) + 0x78f4);\n    pdVar16 = pdVar14;\n    piVar2 = piVar48;\n    puVar23 = puVar32;\n    pdVar5 = pdVar29;\nLAB_000a7434:\n    piVar48 = (int *)(**(code **)(pcVar37 + 0x35338c))\n                               (*(int *)(pcVar37 + 0x352650) + -0x784,\n                                *(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar37 + 0x352650) + 0x78f4);\nLAB_000a745c:\n    iStack_760 = *(int *)(pcVar37 + 0x352654) + -0x2f6c;\n    piStack_75c = piVar48;\n    (**(code **)(pcVar37 + 0x352f64))\n              (0x8000,*(int *)(pcVar37 + 0x352650) + 0x69c0,*(int *)(pcVar37 + 0x352650) + 0x78e4,\n               0x4c3);\n  }\n  else {\n    if (piVar2[0xcdb] != -0x54535255) goto LAB_000a7434;\n    piVar48 = piVar2 + 0xd0;\n    if (piVar2[0xcd4] != 0) goto LAB_000a745c;\n  }\n  pcVar37 = pcStack_758;\n  if (puVar23 == (uint *)0x0) {\n    (**(code **)(pcStack_758 + -0x7290))\n              (*(int *)(pcStack_758 + -0x7fcc) + 0x6a20,*(int *)(pcStack_758 + -0x7fcc) + 0x69c0,\n               0x4c4,*(int *)(pcStack_758 + -0x7fcc) + 0x78f4);\nLAB_000a74c4:\n    (**(code **)(pcVar37 + -0x7290))\n              (*(int *)(pcVar37 + -0x7fcc) + 0x6a40,*(int *)(pcVar37 + -0x7fcc) + 0x69c0);\nLAB_000a74e8:\n    dStack_668 = (double)(**(code **)(pcVar37 + -0x7290))\n                                   (*(int *)(pcVar37 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar37 + -0x7fcc) + 0x69c0);\nLAB_000a750c:\n    dStack_668 = dStack_668 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);\n  }\n  else {\n    if (puVar23[0xcdb] != 0xabacadab) goto LAB_000a74c4;\n    if (pdVar16 == (double *)0x0) goto LAB_000a74e8;\n    uStack_678._4_4_ = 0;\n    uStack_678._0_4_ = 0;\n    uStack_66c = 0;\n    uStack_670 = 0;\n    dStack_668 = (double)(int)puVar23[6];\n    if ((int)puVar23[6] < 0) goto LAB_000a750c;\n  }\n  dStack_668 = dStack_668 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408);\n  uStack_65c = 0;\n  uStack_660 = 0;\n  dStack_658 = dStack_668;\n  dStack_650 = (double)(int)puVar23[7];\n  if ((int)puVar23[7] < 0) {\n    dStack_650 = dStack_650 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);\n  }\n  dStack_650 = dStack_650 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408);\n  uStack_644 = 0;\n  uStack_648 = 0;\n  dStack_640 = dStack_650;\n  dVar45 = *pdVar16;\n  dVar44 = pdVar16[2];\n  dVar47 = pdVar16[4];\n  dVar40 = pdVar16[1];\n  dVar41 = pdVar16[3];\n  dVar39 = pdVar16[5];\n  pdVar14 = (double *)&uStack_678;\n  pdVar29 = pdVar14;\n  do {\n    dVar42 = *pdVar29;\n    *pdVar29 = dVar45 * dVar42 + dVar44 * pdVar29[1] + dVar47;\n    pdVar29[1] = dVar40 * dVar42 + dVar41 * pdVar29[1] + dVar39;\n    pdVar29 = pdVar29 + 2;\n  } while (pdVar29 != (double *)&uStack_638);\n  dVar39 = (double)CONCAT44(uStack_670,uStack_66c);\n  dVar41 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_);\n  dVar40 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_);\n  dVar47 = (double)CONCAT44(uStack_670,uStack_66c);\n  do {\n    dVar45 = pdVar14[2];\n    dVar44 = dVar45;\n    if (dVar41 <= dVar45) {\n      dVar44 = dVar41;\n    }\n    dVar42 = pdVar14[3];\n    dVar46 = dVar42;\n    if (dVar47 <= dVar42) {\n      dVar46 = dVar47;\n    }\n    if (dVar45 <= dVar40) {\n      dVar45 = dVar40;\n    }\n    if (dVar42 <= dVar39) {\n      dVar42 = dVar39;\n    }\n    pdVar14 = pdVar14 + 2;\n    dVar39 = dVar42;\n    dVar41 = dVar44;\n    dVar40 = dVar45;\n    dVar47 = dVar46;\n  } while ((double *)&uStack_648 != pdVar14);\n  ppiVar24 = (int **)0x1;\n  pdVar29 = pdVar5;\n  iVar3 = (**(code **)(pcVar37 + -0x7074))(piVar2);\n  if (iVar3 != 0) {\n    dStack_750 = dVar44;\n    if (dVar44 <= 0.0) {\n      dStack_750 = 0.0;\n    }\n    dStack_748 = dVar46;\n    if (dVar46 <= 0.0) {\n      dStack_748 = 0.0;\n    }\n    dStack_740 = (double)piVar2[6];\n    if (piVar2[6] < 0) {\n      dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_740 = dStack_740 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar45 < dStack_740) {\n      dStack_740 = dVar45;\n    }\n    dStack_738 = (double)piVar2[7];\n    if (piVar2[7] < 0) {\n      dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_738 = dStack_738 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar42 < dStack_738) {\n      dStack_738 = dVar42;\n    }\n    dStack_6e8 = *pdVar16 * pdVar16[3] - pdVar16[1] * pdVar16[2];\n    if (0.0 <= dStack_6e8) {\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    }\n    else {\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);\n    }\n    if (dStack_6e8 * dVar39 < *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)) {\n      dStack_6e8 = dVar39 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8);\n    }\n    else {\n      dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;\n    }\n    dStack_700 = pdVar16[3] * dStack_6e8;\n    dStack_6f8 = -pdVar16[1] * dStack_6e8;\n    dStack_6f0 = -pdVar16[2] * dStack_6e8;\n    dStack_6e8 = *pdVar16 * dStack_6e8;\n    dStack_6e0 = dStack_700 * -pdVar16[4] - dStack_6f0 * pdVar16[5];\n    dStack_6d8 = dStack_6f8 * -pdVar16[4] - dStack_6e8 * pdVar16[5];\n    (**(code **)(pcStack_758 + -0x75e4))(piVar2,auStack_6d0);\n    dVar42 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0);\n    dVar39 = (double)(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar42);\n    dVar41 = (double)(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar42);\n    uVar4 = (**(code **)(pcStack_758 + -0x7144))(puVar23,pdVar5);\n    puVar35 = (undefined1 *)(**(code **)(pcStack_758 + -0x79c4))(piVar2,pdVar5);\n    iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23);\n    if (((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23), iVar3 == 3)) &&\n       ((iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 4 ||\n        (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3)))) {\n      (**(code **)(pcStack_758 + -0x775c))(7);\n      iVar10 = (int)dVar41 - (int)dVar39;\n      iVar3 = iVar10;\n      if (iVar10 < 0) {\n        iVar3 = iVar10 + 0x3f;\n      }\n      pdVar16 = (double *)(iVar3 >> 6);\n      if (extraout_v1 < (int)pdVar16) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        bVar1 = extraout_v1_01 < 2;\n      }\n      else {\n        bVar1 = iVar10 < 0x80;\n      }\n      pdVar29 = (double *)0x1;\n      if (((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16)\n         ) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_03;\n        pdVar16 = extraout_v1_03;\n      }\n    }\n    else {\n      uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar51 < 2) {\n          pdVar29 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }\n      else {\nLAB_000a77f8:\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n      }\n      uVar51 = (*pcVar37)(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_00;\n      }\n      else {\n        pdVar29 = (double *)0x2;\n      }\n    }\nLAB_000a7818:\n    pdStack_720 = &dStack_700;\n    puStack_714 = auStack_6d0;\n    pdStack_710 = &dStack_750;\n    iStack_704 = 1;\n    ppiVar24 = &piStack_72c;\n    piStack_72c = piVar2;\n    puStack_728 = puVar23;\n    pdStack_724 = pdVar5;\n    puStack_71c = puVar35;\n    uStack_718 = uVar4;\n    iStack_70c = (int)dVar39;\n    iStack_708 = (int)dVar41;\n    (**(code **)(pcStack_758 + -0x7700))\n              (*(int *)(pcStack_758 + -0x7ea0) + 0x34c4,ppiVar24,pdVar29,0);\n    iVar3 = iStack_704;\n    (**(code **)(pcStack_758 + -0x79a4))(uVar4);\n    (**(code **)(pcStack_758 + -0x79a4))(puVar35);\n  }\n  if (uStack_638._4_4_ == **(int **)(pcStack_758 + -0x7668)) {\n    return iVar3;\n  }\n  pcVar37 = *(code **)(pcStack_758 + -0x7834);\n  pcVar38 = DrawGradientImage;\n  iVar10 = uStack_638._4_4_;\n  (*pcVar37)();\n  pcStack_830 = pcVar37 + 0x359e18;\n  puStack_794 = (undefined8 *)**(undefined4 **)(pcVar37 + 0x3527b0);\n  pdStack_790 = pdVar16;\n  piStack_78c = piVar2;\n  puStack_788 = puVar23;\n  pdStack_784 = pdVar5;\n  iStack_780 = iVar3;\n  pcStack_77c = pcVar38;\n  dStack_778 = dVar42;\n  if (iVar10 == 0) {\n    iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e48) + 0x3da0,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80a,*(int *)(pcVar37 + 0x351e4c) + 0x7818);\n    return iVar3;\n  }\n  if (*(int *)(iVar10 + 0x336c) != -0x54535255) {\n    iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e4c) + -0x784,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80b,*(int *)(pcVar37 + 0x351e4c) + 0x7818);\n    return iVar3;\n  }\n  if (*(int *)(iVar10 + 0x3350) != 0) {\n    iStack_838 = *(int *)(pcVar37 + 0x351e50) + -0x2f6c;\n    iStack_834 = iVar10 + 0x340;\n    (**(code **)(pcVar37 + 0x352760))\n              (0x8000,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,*(int *)(pcVar37 + 0x351e4c) + 0x7804,\n               0x80d);\n  }\n  if (ppiVar24 == (int **)0x0) {\n    iVar3 = (**(code **)(pcStack_830 + -0x7290))\n                      (*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x69c0,0x80e,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x7818);\n    return iVar3;\n  }\n  ppiVar33 = ppiVar24 + 0x6e;\n  (**(code **)(pcStack_830 + -0x6fc4))\n            (ppiVar24[0x7c],ppiVar24[0x7d],0x60,*(int *)(pcStack_830 + -0x7ea0) + 0x224c);\n  ppiVar34 = ppiVar24 + 0x74;\n  dVar39 = (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) *\n           (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) +\n           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76)) *\n           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76));\n  dVar41 = SQRT(dVar39);\n  if (0.0 <= dVar39) {\n    piStack_828 = ppiVar24[0x6f];\n  }\n  else {\n    (**(code **)(pcStack_830 + -0x7418))();\n    piStack_828 = ppiVar24[0x6f];\n  }\n  piStack_824 = ppiVar24[0x70];\n  piStack_820 = ppiVar24[0x71];\n  piStack_81c = ppiVar24[0x72];\n  (**(code **)(pcStack_830 + -0x75e4))(iVar10,auStack_7f0);\n  uVar4 = (**(code **)(pcStack_830 + -0x79c4))(iVar10,pdVar29);\n  iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10);\n  if ((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 == 3)) {\n    iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10);\n    if ((iVar3 != 4) && (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 != 3))\n    goto LAB_000a7bf4;\n    (**(code **)(pcStack_830 + -0x775c))(7);\n    iVar49 = (int)piStack_824 - (int)piStack_81c;\n    iVar3 = iVar49;\n    if (iVar49 < 0) {\n      iVar3 = iVar49 + 0x3f;\n    }\n    if (extraout_v1_04 < iVar3 >> 6) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = iVar49 < 0x80;\n    }\n    iVar3 = 1;\n    dStack_818 = dVar41;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = (int)piStack_824 - (int)piStack_81c;\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      iVar3 = iVar3 >> 6;\n      dStack_818 = dVar41;\n      if (extraout_v1_07 < iVar3) {\n        (**(code **)(pcStack_830 + -0x775c))(7);\n        iVar3 = extraout_v1_08;\n        dStack_818 = dVar41;\n      }\n    }\n  }\n  else {\nLAB_000a7bf4:\n    uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n      if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a7c10;\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n      if ((uint)uVar51 < 2) {\n        iVar3 = 1;\n        dStack_818 = dVar41;\n        goto LAB_000a7c30;\n      }\n    }\n    else {\nLAB_000a7c10:\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n    }\n    uVar51 = (*pcVar37)(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = extraout_v1_05;\n      dStack_818 = dVar41;\n    }\n    else {\n      iVar3 = 2;\n      dStack_818 = dVar41;\n    }\n  }\nLAB_000a7c30:\n  puStack_7fc = auStack_7f0;\n  ppiStack_7f8 = &piStack_828;\n  iStack_7f4 = 1;\n  iStack_810 = iVar10;\n  pdStack_80c = pdVar29;\n  uStack_808 = uVar4;\n  ppiStack_804 = ppiVar33;\n  ppiStack_800 = ppiVar34;\n  (**(code **)(pcStack_830 + -0x7700))(*(int *)(pcStack_830 + -0x7ea0) + 0x549c,&dStack_818,iVar3,0)\n  ;\n  iVar3 = iStack_7f4;\n  (**(code **)(pcStack_830 + -0x79a4))(uVar4);\n  if (puStack_794 == (undefined8 *)**(int **)(pcStack_830 + -0x7668)) {\n    return iVar3;\n  }\n  pcVar37 = *(code **)(pcStack_830 + -0x7834);\n  pcVar38 = GetAffineMatrix;\n  puVar20 = puStack_794;\n  (*pcVar37)();\n  pcStack_858 = pcVar37 + 0x359994;\n  iStack_860 = *(int *)(pcVar37 + 0x3519c8) + 0x10f4;\n  uStack_850 = uVar4;\n  pcStack_84c = pcVar38;\n  (**(code **)(pcVar37 + 0x3522dc))\n            (0x8000,*(int *)(pcVar37 + 0x3519c8) + 0x69c0,*(int *)(pcVar37 + 0x3519c8) + 0x76b0,\n             0x16d2);\n  if (puVar20 != (undefined8 *)0x0) {\n    (**(code **)(pcStack_858 + -0x71c4))(puVar20 + 1,0,0x28);\n    iVar3 = *(int *)(pcStack_858 + -0x7fd0);\n    uVar51 = *(undefined8 *)(iVar3 + 0x4408);\n    *puVar20 = uVar51;\n    puVar20[3] = uVar51;\n    return iVar3;\n  }\n  iVar49 = *(int *)(pcStack_858 + -0x7fcc) + 0x69c0;\n  iVar10 = *(int *)(pcStack_858 + -0x7fcc) + 0x6368;\n  pcVar37 = *(code **)(pcStack_858 + -0x7290);\n  pcVar38 = GetDrawInfo;\n  (*pcVar37)(iVar10,iVar49,0x16d3,*(int *)(pcStack_858 + -0x7fcc) + 0x76a0);\n  iStack_888 = iVar3;\n  iStack_894 = **(int **)(pcVar37 + 0x352270);\n  puStack_88c = puVar20;\n  pdStack_884 = pdVar29;\n  ppiStack_880 = ppiVar33;\n  ppiStack_87c = ppiVar34;\n  puStack_878 = puVar35;\n  pcStack_874 = pcVar38;\n  (**(code **)(pcVar37 + 0x352220))\n            (0x8000,*(int *)(pcVar37 + 0x35190c) + 0x69c0,*(int *)(pcVar37 + 0x35190c) + 0x7694,\n             0x1702,*(int *)(pcVar37 + 0x35190c) + 0x10f4);\n  if (iVar49 == 0) {\n    (**(code **)(pcVar37 + 0x352648))\n              (*(int *)(pcVar37 + 0x351908) + 0x40e4,*(int *)(pcVar37 + 0x35190c) + 0x69c0,0x1703,\n               *(int *)(pcVar37 + 0x35190c) + 0x7688);\n  }\n  else {\n    (**(code **)(pcVar37 + 0x352714))(iVar49,0,0x3c0);\n    iVar10 = (**(code **)(pcVar37 + 0x3521dc))(iVar10);\n    (**(code **)(pcVar37 + 0x351e5c))(iVar49 + 0x18);\n    pdVar29 = (double *)(**(code **)(pcVar37 + 0x351f2c))();\n    ppiVar34 = (int **)(iVar49 + 0x48);\n    (**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar34,pdVar29);\n    ppiVar33 = (int **)(iVar49 + 0xa0);\n    (**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar33,pdVar29);\n    *(undefined4 *)(iVar49 + 0x238) = *(undefined4 *)(iVar10 + 0x14);\n    *(undefined8 *)(iVar49 + 0x1b0) = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4408);\n    *(undefined4 *)(iVar49 + 0x240) = 1;\n    *(undefined4 *)(iVar49 + 0x2cc) = *(undefined4 *)(*(int *)(pcVar37 + 0x351908) + 0x4aa8);\n    uVar51 = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4a48);\n    *(undefined8 *)(iVar49 + 0x398) = uVar51;\n    *(undefined8 *)(iVar49 + 0x3a0) = uVar51;\n    *(undefined4 *)(iVar49 + 0x244) = 1;\n    *(undefined4 *)(iVar49 + 0x248) = 1;\n    *(undefined4 *)(iVar49 + 0x24c) = 10;\n    *(undefined4 *)(iVar49 + 600) = 1;\n    *(undefined8 *)(iVar49 + 0x288) = *(undefined8 *)(*(int *)(pcVar37 + 0x35190c) + 0x7970);\n    *(undefined4 *)(iVar49 + 0x144) = 0;\n    *(undefined4 *)(iVar49 + 0x140) = 0;\n    *(undefined4 *)(iVar49 + 0x25c) = 0x36;\n    *(undefined4 *)(iVar49 + 0x2d0) = 1;\n    *(undefined4 *)(iVar49 + 0x3a8) = 0;\n    uVar4 = (**(code **)(pcVar37 + 0x3527e8))();\n    *(undefined4 *)(iVar49 + 0x38c) = uVar4;\n    if (*(int *)(iVar10 + 0x4c) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x264) = uVar4;\n    }\n    if (*(int *)(iVar10 + 0x54) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x290) = uVar4;\n    }\n    *(undefined4 *)(iVar49 + 0x23c) = *(undefined4 *)(iVar10 + 0x14);\n    uVar4 = *(undefined4 *)(iVar10 + 0x58);\n    if (*(double *)(*(int *)(pcVar37 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar10 + 0x58))) {\n      *(undefined4 *)(iVar49 + 0x28c) = *(undefined4 *)(iVar10 + 0x5c);\n      *(undefined4 *)(iVar49 + 0x288) = uVar4;\n    }\n    puVar13 = (undefined4 *)(iVar10 + 0x118);\n    puVar21 = (undefined4 *)(iVar49 + 0x150);\n    do {\n      puVar15 = puVar21;\n      puVar9 = puVar13;\n      uVar27 = puVar9[1];\n      uVar25 = puVar9[2];\n      uVar4 = puVar9[3];\n      *puVar15 = *puVar9;\n      puVar15[1] = uVar27;\n      puVar15[2] = uVar25;\n      puVar15[3] = uVar4;\n      puVar13 = puVar9 + 4;\n      puVar21 = puVar15 + 4;\n    } while (puVar13 != (undefined4 *)(iVar10 + 0x168));\n    uVar4 = puVar9[5];\n    puVar15[4] = *puVar13;\n    puVar15[5] = uVar4;\n    if (*(int *)(iVar10 + 0x48) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x29c) = uVar4;\n    }\n    iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ac4);\n    if (iVar3 != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x14,0,iVar3);\n      *(undefined4 *)(iVar49 + 0x388) = uVar4;\n      goto LAB_000a8298;\n    }\n  }\n  *(undefined4 *)(iVar49 + 0x388) = 0;\nLAB_000a8298:\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ad0);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x280,iVar3);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6adc);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x26c,iVar3);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ae4);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar34,pdVar29);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6aec);\n  if (iVar3 != 0) {\n    uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x21,0,iVar3);\n    *(undefined4 *)(iVar49 + 0x298) = uVar4;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6af4);\n  if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x380) = dVar39;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b08);\n  if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x378) = dVar39;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b1c);\n  if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x370) = dVar39;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b24);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar33,pdVar29);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b2c);\n  if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x1b0) = dVar39;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b38);\n  if (iVar3 != 0) {\n    uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x47,0,iVar3);\n    *(undefined4 *)(iVar49 + 0x274) = uVar4;\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b40);\n  if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,iVar49 + 0xf8,pdVar29);\n  }\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x351920) + -0x3000);\n  if (iVar3 != 0) {\n    iVar28 = (**(code **)(pcVar37 + 0x3526d4))(0x4c,0,iVar3);\n    if (iVar28 == -1) {\n      uVar4 = (**(code **)(pcVar37 + 0x352380))(iVar3,0,10);\n      *(undefined4 *)(iVar49 + 0x27c) = uVar4;\n    }\n    else {\n      *(int *)(iVar49 + 0x27c) = iVar28;\n    }\n  }\n  (**(code **)(pcVar37 + 0x351d90))(pdVar29);\n  *(undefined4 *)(iVar49 + 0x390) = 0xabacadab;\n  (**(code **)(pcVar37 + 0x352628))(iVar10);\n  if (iStack_894 == **(int **)(pcVar37 + 0x352270)) {\n    return **(int **)(pcVar37 + 0x352270);\n  }\n  pcVar37 = *(code **)(pcVar37 + 0x3520a4);\n  (*pcVar37)();\n  iVar3 = (**(code **)(pcVar37 + 0x351be4))(0x3c0);\n  (**(code **)(pcVar37 + 0x3518b4))(0,iVar3);\n  return iVar3;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "double *pdVar5;" (primitive_type "double") (pointer_declarator "*pdVar5" (* "*") (identifier "pdVar5")) (; ";")) (declaration "undefined *puVar6;" (type_identifier "undefined") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "undefined4 *puVar9;" (type_identifier "undefined4") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int *piVar11;" (primitive_type "int") (pointer_declarator "*piVar11" (* "*") (identifier "piVar11")) (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "undefined4 *puVar13;" (type_identifier "undefined4") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "double *pdVar14;" (primitive_type "double") (pointer_declarator "*pdVar14" (* "*") (identifier "pdVar14")) (; ";")) (declaration "int extraout_v1;" (primitive_type "int") (identifier "extraout_v1") (; ";")) (declaration "double *extraout_v1_00;" (primitive_type "double") (pointer_declarator "*extraout_v1_00" (* "*") (identifier "extraout_v1_00")) (; ";")) (declaration "int extraout_v1_01;" (primitive_type "int") (identifier "extraout_v1_01") (; ";")) (declaration "int extraout_v1_02;" (primitive_type "int") (identifier "extraout_v1_02") (; ";")) (declaration "double *extraout_v1_03;" (primitive_type "double") (pointer_declarator "*extraout_v1_03" (* "*") (identifier "extraout_v1_03")) (; ";")) (declaration "int extraout_v1_04;" (primitive_type "int") (identifier "extraout_v1_04") (; ";")) (declaration "int extraout_v1_05;" (primitive_type "int") (identifier "extraout_v1_05") (; ";")) (declaration "int extraout_v1_06;" (primitive_type "int") (identifier "extraout_v1_06") (; ";")) (declaration "int extraout_v1_07;" (primitive_type "int") (identifier "extraout_v1_07") (; ";")) (declaration "int extraout_v1_08;" (primitive_type "int") (identifier "extraout_v1_08") (; ";")) (declaration "undefined4 *puVar15;" (type_identifier "undefined4") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "double *pdVar16;" (primitive_type "double") (pointer_declarator "*pdVar16" (* "*") (identifier "pdVar16")) (; ";")) (declaration "int *piVar17;" (primitive_type "int") (pointer_declarator "*piVar17" (* "*") (identifier "piVar17")) (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "int *piVar19;" (primitive_type "int") (pointer_declarator "*piVar19" (* "*") (identifier "piVar19")) (; ";")) (declaration "undefined8 *puVar20;" (type_identifier "undefined8") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "undefined4 *puVar21;" (type_identifier "undefined4") (pointer_declarator "*puVar21" (* "*") (identifier "puVar21")) (; ";")) (declaration "uint uVar22;" (type_identifier "uint") (identifier "uVar22") (; ";")) (declaration "uint *puVar23;" (type_identifier "uint") (pointer_declarator "*puVar23" (* "*") (identifier "puVar23")) (; ";")) (declaration "int **ppiVar24;" (primitive_type "int") (pointer_declarator "**ppiVar24" (* "*") (pointer_declarator "*ppiVar24" (* "*") (identifier "ppiVar24"))) (; ";")) (declaration "undefined4 uVar25;" (type_identifier "undefined4") (identifier "uVar25") (; ";")) (declaration "uint uVar26;" (type_identifier "uint") (identifier "uVar26") (; ";")) (declaration "undefined4 uVar27;" (type_identifier "undefined4") (identifier "uVar27") (; ";")) (declaration "int iVar28;" (primitive_type "int") (identifier "iVar28") (; ";")) (declaration "double *pdVar29;" (primitive_type "double") (pointer_declarator "*pdVar29" (* "*") (identifier "pdVar29")) (; ";")) (declaration "double *pdVar30;" (primitive_type "double") (pointer_declarator "*pdVar30" (* "*") (identifier "pdVar30")) (; ";")) (declaration "int unaff_s2;" (primitive_type "int") (identifier "unaff_s2") (; ";")) (declaration "int iVar31;" (primitive_type "int") (identifier "iVar31") (; ";")) (declaration "uint *puVar32;" (type_identifier "uint") (pointer_declarator "*puVar32" (* "*") (identifier "puVar32")) (; ";")) (declaration "double *unaff_s3;" (primitive_type "double") (pointer_declarator "*unaff_s3" (* "*") (identifier "unaff_s3")) (; ";")) (declaration "int **ppiVar33;" (primitive_type "int") (pointer_declarator "**ppiVar33" (* "*") (pointer_declarator "*ppiVar33" (* "*") (identifier "ppiVar33"))) (; ";")) (declaration "int *unaff_s4;" (primitive_type "int") (pointer_declarator "*unaff_s4" (* "*") (identifier "unaff_s4")) (; ";")) (declaration "int **ppiVar34;" (primitive_type "int") (pointer_declarator "**ppiVar34" (* "*") (pointer_declarator "*ppiVar34" (* "*") (identifier "ppiVar34"))) (; ";")) (declaration "undefined1 *puVar35;" (type_identifier "undefined1") (pointer_declarator "*puVar35" (* "*") (identifier "puVar35")) (; ";")) (declaration "double *unaff_s6;" (primitive_type "double") (pointer_declarator "*unaff_s6" (* "*") (identifier "unaff_s6")) (; ";")) (declaration "uint unaff_s7;" (type_identifier "uint") (identifier "unaff_s7") (; ";")) (declaration "undefined *puVar36;" (type_identifier "undefined") (pointer_declarator "*puVar36" (* "*") (identifier "puVar36")) (; ";")) (declaration "code *pcVar37;" (type_identifier "code") (pointer_declarator "*pcVar37" (* "*") (identifier "pcVar37")) (; ";")) (declaration "code *pcVar38;" (type_identifier "code") (pointer_declarator "*pcVar38" (* "*") (identifier "pcVar38")) (; ";")) (declaration "double dVar39;" (primitive_type "double") (identifier "dVar39") (; ";")) (declaration "double dVar40;" (primitive_type "double") (identifier "dVar40") (; ";")) (declaration "double dVar41;" (primitive_type "double") (identifier "dVar41") (; ";")) (declaration "float fVar43;" (primitive_type "float") (identifier "fVar43") (; ";")) (declaration "double dVar42;" (primitive_type "double") (identifier "dVar42") (; ";")) (declaration "double dVar44;" (primitive_type "double") (identifier "dVar44") (; ";")) (declaration "double dVar45;" (primitive_type "double") (identifier "dVar45") (; ";")) (declaration "double dVar46;" (primitive_type "double") (identifier "dVar46") (; ";")) (declaration "double in_f20_21;" (primitive_type "double") (identifier "in_f20_21") (; ";")) (declaration "double dVar47;" (primitive_type "double") (identifier "dVar47") (; ";")) (declaration "double in_f22_23;" (primitive_type "double") (identifier "in_f22_23") (; ";")) (declaration "double in_f24_25;" (primitive_type "double") (identifier "in_f24_25") (; ";")) (declaration "double in_f26_27;" (primitive_type "double") (identifier "in_f26_27") (; ";")) (declaration "double in_f28_29;" (primitive_type "double") (identifier "in_f28_29") (; ";")) (declaration "double in_f30_31;" (primitive_type "double") (identifier "in_f30_31") (; ";")) (declaration "int *piVar48;" (primitive_type "int") (pointer_declarator "*piVar48" (* "*") (identifier "piVar48")) (; ";")) (declaration "int iVar49;" (primitive_type "int") (identifier "iVar49") (; ";")) (declaration "int iVar50;" (primitive_type "int") (identifier "iVar50") (; ";")) (declaration "undefined8 uVar51;" (type_identifier "undefined8") (identifier "uVar51") (; ";")) (declaration "undefined1 auStack_898 [4];" (type_identifier "undefined1") (array_declarator "auStack_898 [4]" (identifier "auStack_898") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "int iStack_894;" (primitive_type "int") (identifier "iStack_894") (; ";")) (declaration "undefined8 *puStack_88c;" (type_identifier "undefined8") (pointer_declarator "*puStack_88c" (* "*") (identifier "puStack_88c")) (; ";")) (declaration "int iStack_888;" (primitive_type "int") (identifier "iStack_888") (; ";")) (declaration "double *pdStack_884;" (primitive_type "double") (pointer_declarator "*pdStack_884" (* "*") (identifier "pdStack_884")) (; ";")) (declaration "int **ppiStack_880;" (primitive_type "int") (pointer_declarator "**ppiStack_880" (* "*") (pointer_declarator "*ppiStack_880" (* "*") (identifier "ppiStack_880"))) (; ";")) (declaration "int **ppiStack_87c;" (primitive_type "int") (pointer_declarator "**ppiStack_87c" (* "*") (pointer_declarator "*ppiStack_87c" (* "*") (identifier "ppiStack_87c"))) (; ";")) (declaration "undefined1 *puStack_878;" (type_identifier "undefined1") (pointer_declarator "*puStack_878" (* "*") (identifier "puStack_878")) (; ";")) (declaration "code *pcStack_874;" (type_identifier "code") (pointer_declarator "*pcStack_874" (* "*") (identifier "pcStack_874")) (; ";")) (declaration "int iStack_860;" (primitive_type "int") (identifier "iStack_860") (; ";")) (declaration "code *pcStack_858;" (type_identifier "code") (pointer_declarator "*pcStack_858" (* "*") (identifier "pcStack_858")) (; ";")) (declaration "undefined4 uStack_850;" (type_identifier "undefined4") (identifier "uStack_850") (; ";")) (declaration "code *pcStack_84c;" (type_identifier "code") (pointer_declarator "*pcStack_84c" (* "*") (identifier "pcStack_84c")) (; ";")) (declaration "int iStack_838;" (primitive_type "int") (identifier "iStack_838") (; ";")) (declaration "int iStack_834;" (primitive_type "int") (identifier "iStack_834") (; ";")) (declaration "code *pcStack_830;" (type_identifier "code") (pointer_declarator "*pcStack_830" (* "*") (identifier "pcStack_830")) (; ";")) (declaration "int *piStack_828;" (primitive_type "int") (pointer_declarator "*piStack_828" (* "*") (identifier "piStack_828")) (; ";")) (declaration "int *piStack_824;" (primitive_type "int") (pointer_declarator "*piStack_824" (* "*") (identifier "piStack_824")) (; ";")) (declaration "int *piStack_820;" (primitive_type "int") (pointer_declarator "*piStack_820" (* "*") (identifier "piStack_820")) (; ";")) (declaration "int *piStack_81c;" (primitive_type "int") (pointer_declarator "*piStack_81c" (* "*") (identifier "piStack_81c")) (; ";")) (declaration "double dStack_818;" (primitive_type "double") (identifier "dStack_818") (; ";")) (declaration "int iStack_810;" (primitive_type "int") (identifier "iStack_810") (; ";")) (declaration "double *pdStack_80c;" (primitive_type "double") (pointer_declarator "*pdStack_80c" (* "*") (identifier "pdStack_80c")) (; ";")) (declaration "undefined4 uStack_808;" (type_identifier "undefined4") (identifier "uStack_808") (; ";")) (declaration "int **ppiStack_804;" (primitive_type "int") (pointer_declarator "**ppiStack_804" (* "*") (pointer_declarator "*ppiStack_804" (* "*") (identifier "ppiStack_804"))) (; ";")) (declaration "int **ppiStack_800;" (primitive_type "int") (pointer_declarator "**ppiStack_800" (* "*") (pointer_declarator "*ppiStack_800" (* "*") (identifier "ppiStack_800"))) (; ";")) (declaration "undefined1 *puStack_7fc;" (type_identifier "undefined1") (pointer_declarator "*puStack_7fc" (* "*") (identifier "puStack_7fc")) (; ";")) (declaration "int **ppiStack_7f8;" (primitive_type "int") (pointer_declarator "**ppiStack_7f8" (* "*") (pointer_declarator "*ppiStack_7f8" (* "*") (identifier "ppiStack_7f8"))) (; ";")) (declaration "int iStack_7f4;" (primitive_type "int") (identifier "iStack_7f4") (; ";")) (declaration "undefined1 auStack_7f0 [92];" (type_identifier "undefined1") (array_declarator "auStack_7f0 [92]" (identifier "auStack_7f0") ([ "[") (number_literal "92") (] "]")) (; ";")) (declaration "undefined8 *puStack_794;" (type_identifier "undefined8") (pointer_declarator "*puStack_794" (* "*") (identifier "puStack_794")) (; ";")) (declaration "double *pdStack_790;" (primitive_type "double") (pointer_declarator "*pdStack_790" (* "*") (identifier "pdStack_790")) (; ";")) (declaration "int *piStack_78c;" (primitive_type "int") (pointer_declarator "*piStack_78c" (* "*") (identifier "piStack_78c")) (; ";")) (declaration "uint *puStack_788;" (type_identifier "uint") (pointer_declarator "*puStack_788" (* "*") (identifier "puStack_788")) (; ";")) (declaration "double *pdStack_784;" (primitive_type "double") (pointer_declarator "*pdStack_784" (* "*") (identifier "pdStack_784")) (; ";")) (declaration "int iStack_780;" (primitive_type "int") (identifier "iStack_780") (; ";")) (declaration "code *pcStack_77c;" (type_identifier "code") (pointer_declarator "*pcStack_77c" (* "*") (identifier "pcStack_77c")) (; ";")) (declaration "double dStack_778;" (primitive_type "double") (identifier "dStack_778") (; ";")) (declaration "int iStack_760;" (primitive_type "int") (identifier "iStack_760") (; ";")) (declaration "int *piStack_75c;" (primitive_type "int") (pointer_declarator "*piStack_75c" (* "*") (identifier "piStack_75c")) (; ";")) (declaration "code *pcStack_758;" (type_identifier "code") (pointer_declarator "*pcStack_758" (* "*") (identifier "pcStack_758")) (; ";")) (declaration "double dStack_750;" (primitive_type "double") (identifier "dStack_750") (; ";")) (declaration "double dStack_748;" (primitive_type "double") (identifier "dStack_748") (; ";")) (declaration "double dStack_740;" (primitive_type "double") (identifier "dStack_740") (; ";")) (declaration "double dStack_738;" (primitive_type "double") (identifier "dStack_738") (; ";")) (declaration "int *piStack_72c;" (primitive_type "int") (pointer_declarator "*piStack_72c" (* "*") (identifier "piStack_72c")) (; ";")) (declaration "uint *puStack_728;" (type_identifier "uint") (pointer_declarator "*puStack_728" (* "*") (identifier "puStack_728")) (; ";")) (declaration "double *pdStack_724;" (primitive_type "double") (pointer_declarator "*pdStack_724" (* "*") (identifier "pdStack_724")) (; ";")) (declaration "double *pdStack_720;" (primitive_type "double") (pointer_declarator "*pdStack_720" (* "*") (identifier "pdStack_720")) (; ";")) (declaration "undefined1 *puStack_71c;" (type_identifier "undefined1") (pointer_declarator "*puStack_71c" (* "*") (identifier "puStack_71c")) (; ";")) (declaration "undefined4 uStack_718;" (type_identifier "undefined4") (identifier "uStack_718") (; ";")) (declaration "undefined1 *puStack_714;" (type_identifier "undefined1") (pointer_declarator "*puStack_714" (* "*") (identifier "puStack_714")) (; ";")) (declaration "double *pdStack_710;" (primitive_type "double") (pointer_declarator "*pdStack_710" (* "*") (identifier "pdStack_710")) (; ";")) (declaration "int iStack_70c;" (primitive_type "int") (identifier "iStack_70c") (; ";")) (declaration "int iStack_708;" (primitive_type "int") (identifier "iStack_708") (; ";")) (declaration "int iStack_704;" (primitive_type "int") (identifier "iStack_704") (; ";")) (declaration "double dStack_700;" (primitive_type "double") (identifier "dStack_700") (; ";")) (declaration "double dStack_6f8;" (primitive_type "double") (identifier "dStack_6f8") (; ";")) (declaration "double dStack_6f0;" (primitive_type "double") (identifier "dStack_6f0") (; ";")) (declaration "double dStack_6e8;" (primitive_type "double") (identifier "dStack_6e8") (; ";")) (declaration "double dStack_6e0;" (primitive_type "double") (identifier "dStack_6e0") (; ";")) (declaration "double dStack_6d8;" (primitive_type "double") (identifier "dStack_6d8") (; ";")) (declaration "undefined1 auStack_6d0 [88];" (type_identifier "undefined1") (array_declarator "auStack_6d0 [88]" (identifier "auStack_6d0") ([ "[") (number_literal "88") (] "]")) (; ";")) (declaration "undefined8 uStack_678;" (type_identifier "undefined8") (identifier "uStack_678") (; ";")) (declaration "undefined4 uStack_670;" (type_identifier "undefined4") (identifier "uStack_670") (; ";")) (declaration "undefined4 uStack_66c;" (type_identifier "undefined4") (identifier "uStack_66c") (; ";")) (declaration "double dStack_668;" (primitive_type "double") (identifier "dStack_668") (; ";")) (declaration "undefined4 uStack_660;" (type_identifier "undefined4") (identifier "uStack_660") (; ";")) (declaration "undefined4 uStack_65c;" (type_identifier "undefined4") (identifier "uStack_65c") (; ";")) (declaration "double dStack_658;" (primitive_type "double") (identifier "dStack_658") (; ";")) (declaration "double dStack_650;" (primitive_type "double") (identifier "dStack_650") (; ";")) (declaration "undefined4 uStack_648;" (type_identifier "undefined4") (identifier "uStack_648") (; ";")) (declaration "undefined4 uStack_644;" (type_identifier "undefined4") (identifier "uStack_644") (; ";")) (declaration "double dStack_640;" (primitive_type "double") (identifier "dStack_640") (; ";")) (declaration "undefined8 uStack_638;" (type_identifier "undefined8") (identifier "uStack_638") (; ";")) (declaration "double *pdStack_62c;" (primitive_type "double") (pointer_declarator "*pdStack_62c" (* "*") (identifier "pdStack_62c")) (; ";")) (declaration "int *piStack_628;" (primitive_type "int") (pointer_declarator "*piStack_628" (* "*") (identifier "piStack_628")) (; ";")) (declaration "uint *puStack_624;" (type_identifier "uint") (pointer_declarator "*puStack_624" (* "*") (identifier "puStack_624")) (; ";")) (declaration "double *pdStack_620;" (primitive_type "double") (pointer_declarator "*pdStack_620" (* "*") (identifier "pdStack_620")) (; ";")) (declaration "int iStack_61c;" (primitive_type "int") (identifier "iStack_61c") (; ";")) (declaration "undefined1 *puStack_618;" (type_identifier "undefined1") (pointer_declarator "*puStack_618" (* "*") (identifier "puStack_618")) (; ";")) (declaration "double *pdStack_614;" (primitive_type "double") (pointer_declarator "*pdStack_614" (* "*") (identifier "pdStack_614")) (; ";")) (declaration "uint uStack_610;" (type_identifier "uint") (identifier "uStack_610") (; ";")) (declaration "code *pcStack_60c;" (type_identifier "code") (pointer_declarator "*pcStack_60c" (* "*") (identifier "pcStack_60c")) (; ";")) (declaration "double dStack_608;" (primitive_type "double") (identifier "dStack_608") (; ";")) (declaration "double dStack_600;" (primitive_type "double") (identifier "dStack_600") (; ";")) (declaration "double dStack_5f8;" (primitive_type "double") (identifier "dStack_5f8") (; ";")) (declaration "double dStack_5f0;" (primitive_type "double") (identifier "dStack_5f0") (; ";")) (declaration "int iStack_5d8;" (primitive_type "int") (identifier "iStack_5d8") (; ";")) (declaration "code *pcStack_5d0;" (type_identifier "code") (pointer_declarator "*pcStack_5d0" (* "*") (identifier "pcStack_5d0")) (; ";")) (declaration "double *pdStack_5c8;" (primitive_type "double") (pointer_declarator "*pdStack_5c8" (* "*") (identifier "pdStack_5c8")) (; ";")) (declaration "code *pcStack_5c4;" (type_identifier "code") (pointer_declarator "*pcStack_5c4" (* "*") (identifier "pcStack_5c4")) (; ";")) (declaration "undefined4 uStack_5b0;" (type_identifier "undefined4") (identifier "uStack_5b0") (; ";")) (declaration "uint uStack_5ac;" (type_identifier "uint") (identifier "uStack_5ac") (; ";")) (declaration "code *pcStack_5a8;" (type_identifier "code") (pointer_declarator "*pcStack_5a8" (* "*") (identifier "pcStack_5a8")) (; ";")) (declaration "undefined8 uStack_5a0;" (type_identifier "undefined8") (identifier "uStack_5a0") (; ";")) (declaration "double dStack_598;" (primitive_type "double") (identifier "dStack_598") (; ";")) (declaration "double dStack_590;" (primitive_type "double") (identifier "dStack_590") (; ";")) (declaration "double *pdStack_588;" (primitive_type "double") (pointer_declarator "*pdStack_588" (* "*") (identifier "pdStack_588")) (; ";")) (declaration "int iStack_584;" (primitive_type "int") (identifier "iStack_584") (; ";")) (declaration "double dStack_580;" (primitive_type "double") (identifier "dStack_580") (; ";")) (declaration "double dStack_578;" (primitive_type "double") (identifier "dStack_578") (; ";")) (declaration "int iStack_570;" (primitive_type "int") (identifier "iStack_570") (; ";")) (declaration "undefined1 *puStack_56c;" (type_identifier "undefined1") (pointer_declarator "*puStack_56c" (* "*") (identifier "puStack_56c")) (; ";")) (declaration "double *pdStack_568;" (primitive_type "double") (pointer_declarator "*pdStack_568" (* "*") (identifier "pdStack_568")) (; ";")) (declaration "uint uStack_564;" (type_identifier "uint") (identifier "uStack_564") (; ";")) (declaration "double dStack_560;" (primitive_type "double") (identifier "dStack_560") (; ";")) (declaration "double dStack_558;" (primitive_type "double") (identifier "dStack_558") (; ";")) (declaration "uint uStack_550;" (type_identifier "uint") (identifier "uStack_550") (; ";")) (declaration "undefined4 uStack_54c;" (type_identifier "undefined4") (identifier "uStack_54c") (; ";")) (declaration "double dStack_548;" (primitive_type "double") (identifier "dStack_548") (; ";")) (declaration "double dStack_540;" (primitive_type "double") (identifier "dStack_540") (; ";")) (declaration "uint uStack_538;" (type_identifier "uint") (identifier "uStack_538") (; ";")) (declaration "undefined4 uStack_534;" (type_identifier "undefined4") (identifier "uStack_534") (; ";")) (declaration "double dStack_530;" (primitive_type "double") (identifier "dStack_530") (; ";")) (declaration "uint uStack_528;" (type_identifier "uint") (identifier "uStack_528") (; ";")) (declaration "undefined4 uStack_524;" (type_identifier "undefined4") (identifier "uStack_524") (; ";")) (declaration "double dStack_520;" (primitive_type "double") (identifier "dStack_520") (; ";")) (declaration "double dStack_518;" (primitive_type "double") (identifier "dStack_518") (; ";")) (declaration "int aiStack_510 [4];" (primitive_type "int") (array_declarator "aiStack_510 [4]" (identifier "aiStack_510") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined8 uStack_500;" (type_identifier "undefined8") (identifier "uStack_500") (; ";")) (declaration "int iStack_4f8;" (primitive_type "int") (identifier "iStack_4f8") (; ";")) (declaration "double dStack_4e8;" (primitive_type "double") (identifier "dStack_4e8") (; ";")) (declaration "double dStack_4e0;" (primitive_type "double") (identifier "dStack_4e0") (; ";")) (declaration "double dStack_4d8;" (primitive_type "double") (identifier "dStack_4d8") (; ";")) (declaration "double dStack_4d0;" (primitive_type "double") (identifier "dStack_4d0") (; ";")) (declaration "double dStack_4c8;" (primitive_type "double") (identifier "dStack_4c8") (; ";")) (declaration "double dStack_4c0;" (primitive_type "double") (identifier "dStack_4c0") (; ";")) (declaration "int iStack_4b4;" (primitive_type "int") (identifier "iStack_4b4") (; ";")) (declaration "uint uStack_4b0;" (type_identifier "uint") (identifier "uStack_4b0") (; ";")) (declaration "int iStack_4ac;" (primitive_type "int") (identifier "iStack_4ac") (; ";")) (declaration "double *pdStack_4a8;" (primitive_type "double") (pointer_declarator "*pdStack_4a8" (* "*") (identifier "pdStack_4a8")) (; ";")) (declaration "double *pdStack_4a4;" (primitive_type "double") (pointer_declarator "*pdStack_4a4" (* "*") (identifier "pdStack_4a4")) (; ";")) (declaration "int iStack_4a0;" (primitive_type "int") (identifier "iStack_4a0") (; ";")) (declaration "undefined4 *puStack_49c;" (type_identifier "undefined4") (pointer_declarator "*puStack_49c" (* "*") (identifier "puStack_49c")) (; ";")) (declaration "double *pdStack_498;" (primitive_type "double") (pointer_declarator "*pdStack_498" (* "*") (identifier "pdStack_498")) (; ";")) (declaration "uint uStack_494;" (type_identifier "uint") (identifier "uStack_494") (; ";")) (declaration "int iStack_490;" (primitive_type "int") (identifier "iStack_490") (; ";")) (declaration "code *pcStack_48c;" (type_identifier "code") (pointer_declarator "*pcStack_48c" (* "*") (identifier "pcStack_48c")) (; ";")) (declaration "double dStack_488;" (primitive_type "double") (identifier "dStack_488") (; ";")) (declaration "double dStack_480;" (primitive_type "double") (identifier "dStack_480") (; ";")) (declaration "double dStack_478;" (primitive_type "double") (identifier "dStack_478") (; ";")) (declaration "double dStack_470;" (primitive_type "double") (identifier "dStack_470") (; ";")) (declaration "double dStack_468;" (primitive_type "double") (identifier "dStack_468") (; ";")) (declaration "double dStack_460;" (primitive_type "double") (identifier "dStack_460") (; ";")) (declaration "int *piStack_448;" (primitive_type "int") (pointer_declarator "*piStack_448" (* "*") (identifier "piStack_448")) (; ";")) (declaration "uint uStack_444;" (type_identifier "uint") (identifier "uStack_444") (; ";")) (declaration "code *pcStack_440;" (type_identifier "code") (pointer_declarator "*pcStack_440" (* "*") (identifier "pcStack_440")) (; ";")) (declaration "uint uStack_434;" (type_identifier "uint") (identifier "uStack_434") (; ";")) (declaration "uint uStack_430;" (type_identifier "uint") (identifier "uStack_430") (; ";")) (declaration "double *pdStack_42c;" (primitive_type "double") (pointer_declarator "*pdStack_42c" (* "*") (identifier "pdStack_42c")) (; ";")) (declaration "uint uStack_428;" (type_identifier "uint") (identifier "uStack_428") (; ";")) (declaration "uint uStack_424;" (type_identifier "uint") (identifier "uStack_424") (; ";")) (declaration "uint uStack_420;" (type_identifier "uint") (identifier "uStack_420") (; ";")) (declaration "undefined4 uStack_41c;" (type_identifier "undefined4") (identifier "uStack_41c") (; ";")) (declaration "int aiStack_418 [10];" (primitive_type "int") (array_declarator "aiStack_418 [10]" (identifier "aiStack_418") ([ "[") (number_literal "10") (] "]")) (; ";")) (declaration "double dStack_3f0;" (primitive_type "double") (identifier "dStack_3f0") (; ";")) (declaration "double dStack_3e8;" (primitive_type "double") (identifier "dStack_3e8") (; ";")) (declaration "double dStack_3e0;" (primitive_type "double") (identifier "dStack_3e0") (; ";")) (declaration "double dStack_3d8;" (primitive_type "double") (identifier "dStack_3d8") (; ";")) (declaration "double dStack_3d0;" (primitive_type "double") (identifier "dStack_3d0") (; ";")) (declaration "int iStack_3bc;" (primitive_type "int") (identifier "iStack_3bc") (; ";")) (declaration "int iStack_3b8;" (primitive_type "int") (identifier "iStack_3b8") (; ";")) (declaration "uint uStack_3b4;" (type_identifier "uint") (identifier "uStack_3b4") (; ";")) (declaration "double *pdStack_3b0;" (primitive_type "double") (pointer_declarator "*pdStack_3b0" (* "*") (identifier "pdStack_3b0")) (; ";")) (declaration "double *pdStack_3ac;" (primitive_type "double") (pointer_declarator "*pdStack_3ac" (* "*") (identifier "pdStack_3ac")) (; ";")) (declaration "int *piStack_3a8;" (primitive_type "int") (pointer_declarator "*piStack_3a8" (* "*") (identifier "piStack_3a8")) (; ";")) (declaration "undefined4 *puStack_3a4;" (type_identifier "undefined4") (pointer_declarator "*puStack_3a4" (* "*") (identifier "puStack_3a4")) (; ";")) (declaration "double *pdStack_3a0;" (primitive_type "double") (pointer_declarator "*pdStack_3a0" (* "*") (identifier "pdStack_3a0")) (; ";")) (declaration "uint uStack_39c;" (type_identifier "uint") (identifier "uStack_39c") (; ";")) (declaration "int iStack_398;" (primitive_type "int") (identifier "iStack_398") (; ";")) (declaration "code *pcStack_394;" (type_identifier "code") (pointer_declarator "*pcStack_394" (* "*") (identifier "pcStack_394")) (; ";")) (declaration "double dStack_390;" (primitive_type "double") (identifier "dStack_390") (; ";")) (declaration "double dStack_388;" (primitive_type "double") (identifier "dStack_388") (; ";")) (declaration "double dStack_380;" (primitive_type "double") (identifier "dStack_380") (; ";")) (declaration "double dStack_378;" (primitive_type "double") (identifier "dStack_378") (; ";")) (declaration "double dStack_370;" (primitive_type "double") (identifier "dStack_370") (; ";")) (declaration "undefined4 *puStack_358;" (type_identifier "undefined4") (pointer_declarator "*puStack_358" (* "*") (identifier "puStack_358")) (; ";")) (declaration "undefined4 uStack_354;" (type_identifier "undefined4") (identifier "uStack_354") (; ";")) (declaration "undefined *puStack_350;" (type_identifier "undefined") (pointer_declarator "*puStack_350" (* "*") (identifier "puStack_350")) (; ";")) (declaration "undefined8 uStack_348;" (type_identifier "undefined8") (identifier "uStack_348") (; ";")) (declaration "double dStack_340;" (primitive_type "double") (identifier "dStack_340") (; ";")) (declaration "double dStack_338;" (primitive_type "double") (identifier "dStack_338") (; ";")) (declaration "double dStack_330;" (primitive_type "double") (identifier "dStack_330") (; ";")) (declaration "uint uStack_328;" (type_identifier "uint") (identifier "uStack_328") (; ";")) (declaration "int iStack_324;" (primitive_type "int") (identifier "iStack_324") (; ";")) (declaration "double dStack_320;" (primitive_type "double") (identifier "dStack_320") (; ";")) (declaration "double dStack_318;" (primitive_type "double") (identifier "dStack_318") (; ";")) (declaration "uint uStack_310;" (type_identifier "uint") (identifier "uStack_310") (; ";")) (declaration "undefined4 uStack_30c;" (type_identifier "undefined4") (identifier "uStack_30c") (; ";")) (declaration "int iStack_308;" (primitive_type "int") (identifier "iStack_308") (; ";")) (declaration "int *piStack_304;" (primitive_type "int") (pointer_declarator "*piStack_304" (* "*") (identifier "piStack_304")) (; ";")) (declaration "double dStack_300;" (primitive_type "double") (identifier "dStack_300") (; ";")) (declaration "uint uStack_2f8;" (type_identifier "uint") (identifier "uStack_2f8") (; ";")) (declaration "int iStack_2f4;" (primitive_type "int") (identifier "iStack_2f4") (; ";")) (declaration "int iStack_2f0;" (primitive_type "int") (identifier "iStack_2f0") (; ";")) (declaration "double *pdStack_2ec;" (primitive_type "double") (pointer_declarator "*pdStack_2ec" (* "*") (identifier "pdStack_2ec")) (; ";")) (declaration "uint uStack_2e8;" (type_identifier "uint") (identifier "uStack_2e8") (; ";")) (declaration "undefined4 uStack_2e4;" (type_identifier "undefined4") (identifier "uStack_2e4") (; ";")) (declaration "uint uStack_2e0;" (type_identifier "uint") (identifier "uStack_2e0") (; ";")) (declaration "undefined4 uStack_2dc;" (type_identifier "undefined4") (identifier "uStack_2dc") (; ";")) (declaration "double *pdStack_2d8;" (primitive_type "double") (pointer_declarator "*pdStack_2d8" (* "*") (identifier "pdStack_2d8")) (; ";")) (declaration "uint uStack_2d4;" (type_identifier "uint") (identifier "uStack_2d4") (; ";")) (declaration "undefined4 uStack_2d0;" (type_identifier "undefined4") (identifier "uStack_2d0") (; ";")) (declaration "double *pdStack_2cc;" (primitive_type "double") (pointer_declarator "*pdStack_2cc" (* "*") (identifier "pdStack_2cc")) (; ";")) (declaration "uint uStack_2c8;" (type_identifier "uint") (identifier "uStack_2c8") (; ";")) (declaration "undefined4 uStack_2c4;" (type_identifier "undefined4") (identifier "uStack_2c4") (; ";")) (declaration "int iStack_2c0;" (primitive_type "int") (identifier "iStack_2c0") (; ";")) (declaration "undefined4 *puStack_2bc;" (type_identifier "undefined4") (pointer_declarator "*puStack_2bc" (* "*") (identifier "puStack_2bc")) (; ";")) (declaration "double dStack_2b8;" (primitive_type "double") (identifier "dStack_2b8") (; ";")) (declaration "uint uStack_2b0;" (type_identifier "uint") (identifier "uStack_2b0") (; ";")) (declaration "undefined4 uStack_2ac;" (type_identifier "undefined4") (identifier "uStack_2ac") (; ";")) (declaration "double *pdStack_2a8;" (primitive_type "double") (pointer_declarator "*pdStack_2a8" (* "*") (identifier "pdStack_2a8")) (; ";")) (declaration "undefined1 *puStack_2a4;" (type_identifier "undefined1") (pointer_declarator "*puStack_2a4" (* "*") (identifier "puStack_2a4")) (; ";")) (declaration "double *pdStack_2a0;" (primitive_type "double") (pointer_declarator "*pdStack_2a0" (* "*") (identifier "pdStack_2a0")) (; ";")) (declaration "int iStack_29c;" (primitive_type "int") (identifier "iStack_29c") (; ";")) (declaration "undefined4 auStack_298 [18];" (type_identifier "undefined4") (array_declarator "auStack_298 [18]" (identifier "auStack_298") ([ "[") (number_literal "18") (] "]")) (; ";")) (declaration "double dStack_250;" (primitive_type "double") (identifier "dStack_250") (; ";")) (declaration "undefined4 auStack_240 [18];" (type_identifier "undefined4") (array_declarator "auStack_240 [18]" (identifier "auStack_240") ([ "[") (number_literal "18") (] "]")) (; ";")) (declaration "double dStack_1f8;" (primitive_type "double") (identifier "dStack_1f8") (; ";")) (declaration "int iStack_1e4;" (primitive_type "int") (identifier "iStack_1e4") (; ";")) (declaration "double *pdStack_1e0;" (primitive_type "double") (pointer_declarator "*pdStack_1e0" (* "*") (identifier "pdStack_1e0")) (; ";")) (declaration "int *piStack_1dc;" (primitive_type "int") (pointer_declarator "*piStack_1dc" (* "*") (identifier "piStack_1dc")) (; ";")) (declaration "int iStack_1d8;" (primitive_type "int") (identifier "iStack_1d8") (; ";")) (declaration "double *pdStack_1d4;" (primitive_type "double") (pointer_declarator "*pdStack_1d4" (* "*") (identifier "pdStack_1d4")) (; ";")) (declaration "int *piStack_1d0;" (primitive_type "int") (pointer_declarator "*piStack_1d0" (* "*") (identifier "piStack_1d0")) (; ";")) (declaration "undefined4 *puStack_1cc;" (type_identifier "undefined4") (pointer_declarator "*puStack_1cc" (* "*") (identifier "puStack_1cc")) (; ";")) (declaration "double *pdStack_1c8;" (primitive_type "double") (pointer_declarator "*pdStack_1c8" (* "*") (identifier "pdStack_1c8")) (; ";")) (declaration "uint uStack_1c4;" (type_identifier "uint") (identifier "uStack_1c4") (; ";")) (declaration "int iStack_1c0;" (primitive_type "int") (identifier "iStack_1c0") (; ";")) (declaration "code *pcStack_1bc;" (type_identifier "code") (pointer_declarator "*pcStack_1bc" (* "*") (identifier "pcStack_1bc")) (; ";")) (declaration "double dStack_1b8;" (primitive_type "double") (identifier "dStack_1b8") (; ";")) (declaration "double dStack_1b0;" (primitive_type "double") (identifier "dStack_1b0") (; ";")) (declaration "double dStack_1a8;" (primitive_type "double") (identifier "dStack_1a8") (; ";")) (declaration "double dStack_1a0;" (primitive_type "double") (identifier "dStack_1a0") (; ";")) (declaration "double dStack_198;" (primitive_type "double") (identifier "dStack_198") (; ";")) (declaration "double dStack_190;" (primitive_type "double") (identifier "dStack_190") (; ";")) (declaration "undefined8 local_178;" (type_identifier "undefined8") (identifier "local_178") (; ";")) (declaration "double local_170;" (primitive_type "double") (identifier "local_170") (; ";")) (declaration "int *local_168;" (primitive_type "int") (pointer_declarator "*local_168" (* "*") (identifier "local_168")) (; ";")) (declaration "int *local_164;" (primitive_type "int") (pointer_declarator "*local_164" (* "*") (identifier "local_164")) (; ";")) (declaration "int local_110 [4];" (primitive_type "int") (array_declarator "local_110 [4]" (identifier "local_110") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined8 local_100;" (type_identifier "undefined8") (identifier "local_100") (; ";")) (declaration "int local_f8;" (primitive_type "int") (identifier "local_f8") (; ";")) (declaration "double local_e8;" (primitive_type "double") (identifier "local_e8") (; ";")) (declaration "double local_e0;" (primitive_type "double") (identifier "local_e0") (; ";")) (declaration "double local_d8;" (primitive_type "double") (identifier "local_d8") (; ";")) (declaration "double local_d0;" (primitive_type "double") (identifier "local_d0") (; ";")) (declaration "double local_c8;" (primitive_type "double") (identifier "local_c8") (; ";")) (declaration "double local_c0;" (primitive_type "double") (identifier "local_c0") (; ";")) (declaration "int local_b8 [10];" (primitive_type "int") (array_declarator "local_b8 [10]" (identifier "local_b8") ([ "[") (number_literal "10") (] "]")) (; ";")) (declaration "double local_90;" (primitive_type "double") (identifier "local_90") (; ";")) (declaration "double local_88;" (primitive_type "double") (identifier "local_88") (; ";")) (declaration "double local_80;" (primitive_type "double") (identifier "local_80") (; ";")) (declaration "double local_78;" (primitive_type "double") (identifier "local_78") (; ";")) (declaration "double local_70;" (primitive_type "double") (identifier "local_70") (; ";")) (declaration "int local_5c;" (primitive_type "int") (identifier "local_5c") (; ";")) (expression_statement "local_5c = *(int *)PTR___stack_chk_guard_003fa248;" (assignment_expression "local_5c = *(int *)PTR___stack_chk_guard_003fa248" (identifier "local_5c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_003fa248" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_003fa248" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_003fa248")))) (; ";")) (expression_statement "pdVar29 = (double *)param_1[8];" (assignment_expression "pdVar29 = (double *)param_1[8]" (identifier "pdVar29") (= "=") (cast_expression "(double *)param_1[8]" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")))) (; ";")) (expression_statement "piVar2 = (int *)(*(code *)PTR_omp_get_num_threads_003fa924)();" (assignment_expression "piVar2 = (int *)(*(code *)PTR_omp_get_num_threads_003fa924)()" (identifier "piVar2") (= "=") (cast_expression "(int *)(*(code *)PTR_omp_get_num_threads_003fa924)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_omp_get_num_threads_003fa924)()" (parenthesized_expression "(*(code *)PTR_omp_get_num_threads_003fa924)" (( "(") (pointer_expression "*(code *)PTR_omp_get_num_threads_003fa924" (* "*") (cast_expression "(code *)PTR_omp_get_num_threads_003fa924" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_omp_get_num_threads_003fa924"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_omp_get_thread_num_003fa520)();" (assignment_expression "iVar3 = (*(code *)PTR_omp_get_thread_num_003fa520)()" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_omp_get_thread_num_003fa520)()" (parenthesized_expression "(*(code *)PTR_omp_get_thread_num_003fa520)" (( "(") (pointer_expression "*(code *)PTR_omp_get_thread_num_003fa520" (* "*") (cast_expression "(code *)PTR_omp_get_thread_num_003fa520" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_omp_get_thread_num_003fa520"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar36 = PTR_LAB_003f98e0;" (assignment_expression "puVar36 = PTR_LAB_003f98e0" (identifier "puVar36") (= "=") (identifier "PTR_LAB_003f98e0")) (; ";")) (expression_statement "iVar10 = (param_1[9] + 1) - (int)pdVar29;" (assignment_expression "iVar10 = (param_1[9] + 1) - (int)pdVar29" (identifier "iVar10") (= "=") (binary_expression "(param_1[9] + 1) - (int)pdVar29" (parenthesized_expression "(param_1[9] + 1)" (( "(") (binary_expression "param_1[9] + 1" (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (+ "+") (number_literal "1")) () ")")) (- "-") (cast_expression "(int)pdVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar29")))) (; ";")) (if_statement "if (piVar2 == (int *)0x0) {\n    trap(7);\n  }" (if "if") (parenthesized_expression "(piVar2 == (int *)0x0)" (( "(") (binary_expression "piVar2 == (int *)0x0" (identifier "piVar2") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    trap(7);\n  }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar49 = iVar10 / (int)piVar2;" (assignment_expression "iVar49 = iVar10 / (int)piVar2" (identifier "iVar49") (= "=") (binary_expression "iVar10 / (int)piVar2" (identifier "iVar10") (/ "/") (cast_expression "(int)piVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar2")))) (; ";")) (expression_statement "iVar10 = iVar10 % (int)piVar2;" (assignment_expression "iVar10 = iVar10 % (int)piVar2" (identifier "iVar10") (= "=") (binary_expression "iVar10 % (int)piVar2" (identifier "iVar10") (% "%") (cast_expression "(int)piVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar2")))) (; ";")) (if_statement "if (iVar3 < iVar10) {\n    iVar49 = iVar49 + 1;\n    iVar10 = 0;\n  }" (if "if") (parenthesized_expression "(iVar3 < iVar10)" (( "(") (binary_expression "iVar3 < iVar10" (identifier "iVar3") (< "<") (identifier "iVar10")) () ")")) (compound_statement "{\n    iVar49 = iVar49 + 1;\n    iVar10 = 0;\n  }" ({ "{") (expression_statement "iVar49 = iVar49 + 1;" (assignment_expression "iVar49 = iVar49 + 1" (identifier "iVar49") (= "=") (binary_expression "iVar49 + 1" (identifier "iVar49") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "iVar10 = iVar49 * iVar3 + iVar10;" (assignment_expression "iVar10 = iVar49 * iVar3 + iVar10" (identifier "iVar10") (= "=") (binary_expression "iVar49 * iVar3 + iVar10" (binary_expression "iVar49 * iVar3" (identifier "iVar49") (* "*") (identifier "iVar3")) (+ "+") (identifier "iVar10"))) (; ";")) (expression_statement "pdVar16 = (double *)(iVar49 + iVar10);" (assignment_expression "pdVar16 = (double *)(iVar49 + iVar10)" (identifier "pdVar16") (= "=") (cast_expression "(double *)(iVar49 + iVar10)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + iVar10)" (( "(") (binary_expression "iVar49 + iVar10" (identifier "iVar49") (+ "+") (identifier "iVar10")) () ")")))) (; ";")) (expression_statement "iVar3 = (int)pdVar29 + iVar10;" (assignment_expression "iVar3 = (int)pdVar29 + iVar10" (identifier "iVar3") (= "=") (binary_expression "(int)pdVar29 + iVar10" (cast_expression "(int)pdVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar29")) (+ "+") (identifier "iVar10"))) (; ";")) (if_statement "if (iVar10 < (int)pdVar16) {\n    uVar4 = param_1[5];\n    pdVar5 = (double *)param_1[4];\n    unaff_s4 = (int *)param_1[2];\n    unaff_s7 = param_1[1];\n    piVar2 = (int *)*param_1;\n    puVar6 = (undefined *)((int)pdVar29 + (int)pdVar16);\n    dVar39 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    in_f26_27 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    in_f30_31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n    do {\n      in_f24_25 = (double)iVar3;\n      pdVar29 = (double *)param_1[3];\n      in_f20_21 = *(double *)param_1[7];\n      in_f28_29 = ((double *)param_1[7])[2];\n      dVar40 = in_f24_25 * pdVar29[2] + pdVar29[4];\n      dVar47 = *pdVar29;\n      dVar41 = in_f28_29;\n      if (dVar39 <= dVar47) {\n        in_f22_23 = -dVar40 / dVar47;\n        if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }\n        dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n        if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }\n        dVar47 = (dVar44 - dVar40) / dVar47;\n        if (dVar47 < in_f28_29) {\n          dVar41 = dVar47;\n        }\nLAB_000a3890:\n        dVar40 = in_f24_25 * pdVar29[3] + pdVar29[5];\n        dVar47 = pdVar29[1];\n        if (*(double *)(puVar36 + 0x43c8) <= dVar47) {\n          dVar44 = -dVar40 / dVar47;\n          if (-dVar40 / dVar47 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = *(double **)(unaff_s7 + 0x1c);\n          dVar44 = (double)(int)pdVar16;\n          if ((int)pdVar16 < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar44 - dVar40) / dVar47;\n          if (dVar41 <= in_f20_21) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }\n        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;\n      }\n      else {\n        if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar44 - dVar40) / dVar47;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar40) {\n          dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n          if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar41;\n          if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar36 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar41 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar41;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar40 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar41 = (dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar41 < in_f20_21) {\n          uVar26 = (uint)dVar41;\n        }\n        else {\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar16 = pdVar5;\n        pdVar29 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26);\n        if (pdVar29 != (double *)0x0) {\n          piVar17 = (int *)param_1[6];\n          piVar48 = piVar17;\n          piVar19 = local_b8;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          piVar48 = piVar17;\n          piVar19 = local_110;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }\n          pdVar16 = pdVar5;\n          iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);\n          if (iVar10 == 0) {\n            param_1[10] = 0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n      unaff_s6 = (double *)puVar36;\n    } while (iVar3 < (int)puVar6);\n  }" (if "if") (parenthesized_expression "(iVar10 < (int)pdVar16)" (( "(") (binary_expression "iVar10 < (int)pdVar16" (identifier "iVar10") (< "<") (cast_expression "(int)pdVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar16"))) () ")")) (compound_statement "{\n    uVar4 = param_1[5];\n    pdVar5 = (double *)param_1[4];\n    unaff_s4 = (int *)param_1[2];\n    unaff_s7 = param_1[1];\n    piVar2 = (int *)*param_1;\n    puVar6 = (undefined *)((int)pdVar29 + (int)pdVar16);\n    dVar39 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);\n    in_f26_27 = *(double *)(PTR_LAB_003f98e0 + 0x4410);\n    in_f30_31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);\n    do {\n      in_f24_25 = (double)iVar3;\n      pdVar29 = (double *)param_1[3];\n      in_f20_21 = *(double *)param_1[7];\n      in_f28_29 = ((double *)param_1[7])[2];\n      dVar40 = in_f24_25 * pdVar29[2] + pdVar29[4];\n      dVar47 = *pdVar29;\n      dVar41 = in_f28_29;\n      if (dVar39 <= dVar47) {\n        in_f22_23 = -dVar40 / dVar47;\n        if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }\n        dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n        if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }\n        dVar47 = (dVar44 - dVar40) / dVar47;\n        if (dVar47 < in_f28_29) {\n          dVar41 = dVar47;\n        }\nLAB_000a3890:\n        dVar40 = in_f24_25 * pdVar29[3] + pdVar29[5];\n        dVar47 = pdVar29[1];\n        if (*(double *)(puVar36 + 0x43c8) <= dVar47) {\n          dVar44 = -dVar40 / dVar47;\n          if (-dVar40 / dVar47 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = *(double **)(unaff_s7 + 0x1c);\n          dVar44 = (double)(int)pdVar16;\n          if ((int)pdVar16 < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar44 - dVar40) / dVar47;\n          if (dVar41 <= in_f20_21) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }\n        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;\n      }\n      else {\n        if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar44 - dVar40) / dVar47;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar40) {\n          dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n          if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar41;\n          if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar36 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar41 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar41;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar40 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar41 = (dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar41 < in_f20_21) {\n          uVar26 = (uint)dVar41;\n        }\n        else {\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar16 = pdVar5;\n        pdVar29 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26);\n        if (pdVar29 != (double *)0x0) {\n          piVar17 = (int *)param_1[6];\n          piVar48 = piVar17;\n          piVar19 = local_b8;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          piVar48 = piVar17;\n          piVar19 = local_110;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }\n          pdVar16 = pdVar5;\n          iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);\n          if (iVar10 == 0) {\n            param_1[10] = 0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n      unaff_s6 = (double *)puVar36;\n    } while (iVar3 < (int)puVar6);\n  }" ({ "{") (expression_statement "uVar4 = param_1[5];" (assignment_expression "uVar4 = param_1[5]" (identifier "uVar4") (= "=") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "pdVar5 = (double *)param_1[4];" (assignment_expression "pdVar5 = (double *)param_1[4]" (identifier "pdVar5") (= "=") (cast_expression "(double *)param_1[4]" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")))) (; ";")) (expression_statement "unaff_s4 = (int *)param_1[2];" (assignment_expression "unaff_s4 = (int *)param_1[2]" (identifier "unaff_s4") (= "=") (cast_expression "(int *)param_1[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "unaff_s7 = param_1[1];" (assignment_expression "unaff_s7 = param_1[1]" (identifier "unaff_s7") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "piVar2 = (int *)*param_1;" (assignment_expression "piVar2 = (int *)*param_1" (identifier "piVar2") (= "=") (cast_expression "(int *)*param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "puVar6 = (undefined *)((int)pdVar29 + (int)pdVar16);" (assignment_expression "puVar6 = (undefined *)((int)pdVar29 + (int)pdVar16)" (identifier "puVar6") (= "=") (cast_expression "(undefined *)((int)pdVar29 + (int)pdVar16)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar29 + (int)pdVar16)" (( "(") (binary_expression "(int)pdVar29 + (int)pdVar16" (cast_expression "(int)pdVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar29")) (+ "+") (cast_expression "(int)pdVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar16"))) () ")")))) (; ";")) (expression_statement "dVar39 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);" (assignment_expression "dVar39 = *(double *)(PTR_LAB_003f98e0 + 0x43c8)" (identifier "dVar39") (= "=") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43c8)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43c8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43c8)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x43c8" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x43c8")) () ")"))))) (; ";")) (expression_statement "in_f26_27 = *(double *)(PTR_LAB_003f98e0 + 0x4410);" (assignment_expression "in_f26_27 = *(double *)(PTR_LAB_003f98e0 + 0x4410)" (identifier "in_f26_27") (= "=") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4410)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4410)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x4410" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x4410")) () ")"))))) (; ";")) (expression_statement "in_f30_31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);" (assignment_expression "in_f30_31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48)" (identifier "in_f30_31") (= "=") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4a48)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4a48)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4a48)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x4a48" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x4a48")) () ")"))))) (; ";")) (do_statement "do {\n      in_f24_25 = (double)iVar3;\n      pdVar29 = (double *)param_1[3];\n      in_f20_21 = *(double *)param_1[7];\n      in_f28_29 = ((double *)param_1[7])[2];\n      dVar40 = in_f24_25 * pdVar29[2] + pdVar29[4];\n      dVar47 = *pdVar29;\n      dVar41 = in_f28_29;\n      if (dVar39 <= dVar47) {\n        in_f22_23 = -dVar40 / dVar47;\n        if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }\n        dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n        if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }\n        dVar47 = (dVar44 - dVar40) / dVar47;\n        if (dVar47 < in_f28_29) {\n          dVar41 = dVar47;\n        }\nLAB_000a3890:\n        dVar40 = in_f24_25 * pdVar29[3] + pdVar29[5];\n        dVar47 = pdVar29[1];\n        if (*(double *)(puVar36 + 0x43c8) <= dVar47) {\n          dVar44 = -dVar40 / dVar47;\n          if (-dVar40 / dVar47 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = *(double **)(unaff_s7 + 0x1c);\n          dVar44 = (double)(int)pdVar16;\n          if ((int)pdVar16 < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar44 - dVar40) / dVar47;\n          if (dVar41 <= in_f20_21) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }\n        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;\n      }\n      else {\n        if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar44 - dVar40) / dVar47;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar40) {\n          dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n          if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar41;\n          if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar36 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar41 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar41;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar40 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar41 = (dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar41 < in_f20_21) {\n          uVar26 = (uint)dVar41;\n        }\n        else {\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar16 = pdVar5;\n        pdVar29 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26);\n        if (pdVar29 != (double *)0x0) {\n          piVar17 = (int *)param_1[6];\n          piVar48 = piVar17;\n          piVar19 = local_b8;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          piVar48 = piVar17;\n          piVar19 = local_110;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }\n          pdVar16 = pdVar5;\n          iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);\n          if (iVar10 == 0) {\n            param_1[10] = 0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n      unaff_s6 = (double *)puVar36;\n    } while (iVar3 < (int)puVar6);" (do "do") (compound_statement "{\n      in_f24_25 = (double)iVar3;\n      pdVar29 = (double *)param_1[3];\n      in_f20_21 = *(double *)param_1[7];\n      in_f28_29 = ((double *)param_1[7])[2];\n      dVar40 = in_f24_25 * pdVar29[2] + pdVar29[4];\n      dVar47 = *pdVar29;\n      dVar41 = in_f28_29;\n      if (dVar39 <= dVar47) {\n        in_f22_23 = -dVar40 / dVar47;\n        if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }\n        dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n        if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }\n        dVar47 = (dVar44 - dVar40) / dVar47;\n        if (dVar47 < in_f28_29) {\n          dVar41 = dVar47;\n        }\nLAB_000a3890:\n        dVar40 = in_f24_25 * pdVar29[3] + pdVar29[5];\n        dVar47 = pdVar29[1];\n        if (*(double *)(puVar36 + 0x43c8) <= dVar47) {\n          dVar44 = -dVar40 / dVar47;\n          if (-dVar40 / dVar47 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = *(double **)(unaff_s7 + 0x1c);\n          dVar44 = (double)(int)pdVar16;\n          if ((int)pdVar16 < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar44 - dVar40) / dVar47;\n          if (dVar41 <= in_f20_21) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }\n        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;\n      }\n      else {\n        if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar44 - dVar40) / dVar47;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar40) {\n          dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n          if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar41;\n          if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar36 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar41 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar41;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar40 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar41 = (dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar41 < in_f20_21) {\n          uVar26 = (uint)dVar41;\n        }\n        else {\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar16 = pdVar5;\n        pdVar29 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26);\n        if (pdVar29 != (double *)0x0) {\n          piVar17 = (int *)param_1[6];\n          piVar48 = piVar17;\n          piVar19 = local_b8;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          piVar48 = piVar17;\n          piVar19 = local_110;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }\n          pdVar16 = pdVar5;\n          iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);\n          if (iVar10 == 0) {\n            param_1[10] = 0;\n          }\n        }\n      }\n      iVar3 = iVar3 + 1;\n      unaff_s6 = (double *)puVar36;\n    }" ({ "{") (expression_statement "in_f24_25 = (double)iVar3;" (assignment_expression "in_f24_25 = (double)iVar3" (identifier "in_f24_25") (= "=") (cast_expression "(double)iVar3" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar3"))) (; ";")) (expression_statement "pdVar29 = (double *)param_1[3];" (assignment_expression "pdVar29 = (double *)param_1[3]" (identifier "pdVar29") (= "=") (cast_expression "(double *)param_1[3]" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "in_f20_21 = *(double *)param_1[7];" (assignment_expression "in_f20_21 = *(double *)param_1[7]" (identifier "in_f20_21") (= "=") (pointer_expression "*(double *)param_1[7]" (* "*") (cast_expression "(double *)param_1[7]" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))))) (; ";")) (expression_statement "in_f28_29 = ((double *)param_1[7])[2];" (assignment_expression "in_f28_29 = ((double *)param_1[7])[2]" (identifier "in_f28_29") (= "=") (subscript_expression "((double *)param_1[7])[2]" (parenthesized_expression "((double *)param_1[7])" (( "(") (cast_expression "(double *)param_1[7]" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) () ")")) ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "dVar40 = in_f24_25 * pdVar29[2] + pdVar29[4];" (assignment_expression "dVar40 = in_f24_25 * pdVar29[2] + pdVar29[4]" (identifier "dVar40") (= "=") (binary_expression "in_f24_25 * pdVar29[2] + pdVar29[4]" (binary_expression "in_f24_25 * pdVar29[2]" (identifier "in_f24_25") (* "*") (subscript_expression "pdVar29[2]" (identifier "pdVar29") ([ "[") (number_literal "2") (] "]"))) (+ "+") (subscript_expression "pdVar29[4]" (identifier "pdVar29") ([ "[") (number_literal "4") (] "]")))) (; ";")) (expression_statement "dVar47 = *pdVar29;" (assignment_expression "dVar47 = *pdVar29" (identifier "dVar47") (= "=") (pointer_expression "*pdVar29" (* "*") (identifier "pdVar29"))) (; ";")) (expression_statement "dVar41 = in_f28_29;" (assignment_expression "dVar41 = in_f28_29" (identifier "dVar41") (= "=") (identifier "in_f28_29")) (; ";")) (if_statement "if (dVar39 <= dVar47) {\n        in_f22_23 = -dVar40 / dVar47;\n        if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }\n        dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n        if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }\n        dVar47 = (dVar44 - dVar40) / dVar47;\n        if (dVar47 < in_f28_29) {\n          dVar41 = dVar47;\n        }\nLAB_000a3890:\n        dVar40 = in_f24_25 * pdVar29[3] + pdVar29[5];\n        dVar47 = pdVar29[1];\n        if (*(double *)(puVar36 + 0x43c8) <= dVar47) {\n          dVar44 = -dVar40 / dVar47;\n          if (-dVar40 / dVar47 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = *(double **)(unaff_s7 + 0x1c);\n          dVar44 = (double)(int)pdVar16;\n          if ((int)pdVar16 < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar44 - dVar40) / dVar47;\n          if (dVar41 <= in_f20_21) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }\n        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;\n      }\n      else {\n        if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar44 - dVar40) / dVar47;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar40) {\n          dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n          if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar41;\n          if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar36 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar41 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar41;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar40 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar41 = (dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar41 < in_f20_21) {\n          uVar26 = (uint)dVar41;\n        }\n        else {\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar16 = pdVar5;\n        pdVar29 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26);\n        if (pdVar29 != (double *)0x0) {\n          piVar17 = (int *)param_1[6];\n          piVar48 = piVar17;\n          piVar19 = local_b8;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          piVar48 = piVar17;\n          piVar19 = local_110;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }\n          pdVar16 = pdVar5;\n          iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);\n          if (iVar10 == 0) {\n            param_1[10] = 0;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(dVar39 <= dVar47)" (( "(") (binary_expression "dVar39 <= dVar47" (identifier "dVar39") (<= "<=") (identifier "dVar47")) () ")")) (compound_statement "{\n        in_f22_23 = -dVar40 / dVar47;\n        if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }\n        dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n        if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }\n        dVar47 = (dVar44 - dVar40) / dVar47;\n        if (dVar47 < in_f28_29) {\n          dVar41 = dVar47;\n        }\nLAB_000a3890:\n        dVar40 = in_f24_25 * pdVar29[3] + pdVar29[5];\n        dVar47 = pdVar29[1];\n        if (*(double *)(puVar36 + 0x43c8) <= dVar47) {\n          dVar44 = -dVar40 / dVar47;\n          if (-dVar40 / dVar47 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = *(double **)(unaff_s7 + 0x1c);\n          dVar44 = (double)(int)pdVar16;\n          if ((int)pdVar16 < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar44 - dVar40) / dVar47;\n          if (dVar41 <= in_f20_21) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }\n        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;\n      }" ({ "{") (expression_statement "in_f22_23 = -dVar40 / dVar47;" (assignment_expression "in_f22_23 = -dVar40 / dVar47" (identifier "in_f22_23") (= "=") (binary_expression "-dVar40 / dVar47" (unary_expression "-dVar40" (- "-") (identifier "dVar40")) (/ "/") (identifier "dVar47"))) (; ";")) (if_statement "if (in_f22_23 <= in_f20_21) {\n          in_f22_23 = in_f20_21;\n        }" (if "if") (parenthesized_expression "(in_f22_23 <= in_f20_21)" (( "(") (binary_expression "in_f22_23 <= in_f20_21" (identifier "in_f22_23") (<= "<=") (identifier "in_f20_21")) () ")")) (compound_statement "{\n          in_f22_23 = in_f20_21;\n        }" ({ "{") (expression_statement "in_f22_23 = in_f20_21;" (assignment_expression "in_f22_23 = in_f20_21" (identifier "in_f22_23") (= "=") (identifier "in_f20_21")) (; ";")) (} "}"))) (expression_statement "dVar44 = (double)*(int *)(unaff_s7 + 0x18);" (assignment_expression "dVar44 = (double)*(int *)(unaff_s7 + 0x18)" (identifier "dVar44") (= "=") (cast_expression "(double)*(int *)(unaff_s7 + 0x18)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(int *)(unaff_s7 + 0x18)" (* "*") (cast_expression "(int *)(unaff_s7 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s7 + 0x18)" (( "(") (binary_expression "unaff_s7 + 0x18" (identifier "unaff_s7") (+ "+") (number_literal "0x18")) () ")")))))) (; ";")) (if_statement "if (*(int *)(unaff_s7 + 0x18) < 0) {\n          dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }" (if "if") (parenthesized_expression "(*(int *)(unaff_s7 + 0x18) < 0)" (( "(") (binary_expression "*(int *)(unaff_s7 + 0x18) < 0" (pointer_expression "*(int *)(unaff_s7 + 0x18)" (* "*") (cast_expression "(int *)(unaff_s7 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s7 + 0x18)" (( "(") (binary_expression "unaff_s7 + 0x18" (identifier "unaff_s7") (+ "+") (number_literal "0x18")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n        }" ({ "{") (expression_statement "dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);" (assignment_expression "dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" (identifier "dVar44") (= "=") (binary_expression "dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" (identifier "dVar44") (+ "+") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e8)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e8)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x43e8" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x43e8")) () ")")))))) (; ";")) (} "}"))) (expression_statement "dVar47 = (dVar44 - dVar40) / dVar47;" (assignment_expression "dVar47 = (dVar44 - dVar40) / dVar47" (identifier "dVar47") (= "=") (binary_expression "(dVar44 - dVar40) / dVar47" (parenthesized_expression "(dVar44 - dVar40)" (( "(") (binary_expression "dVar44 - dVar40" (identifier "dVar44") (- "-") (identifier "dVar40")) () ")")) (/ "/") (identifier "dVar47"))) (; ";")) (if_statement "if (dVar47 < in_f28_29) {\n          dVar41 = dVar47;\n        }" (if "if") (parenthesized_expression "(dVar47 < in_f28_29)" (( "(") (binary_expression "dVar47 < in_f28_29" (identifier "dVar47") (< "<") (identifier "in_f28_29")) () ")")) (compound_statement "{\n          dVar41 = dVar47;\n        }" ({ "{") (expression_statement "dVar41 = dVar47;" (assignment_expression "dVar41 = dVar47" (identifier "dVar41") (= "=") (identifier "dVar47")) (; ";")) (} "}"))) (labeled_statement "LAB_000a3890:\n        dVar40 = in_f24_25 * pdVar29[3] + pdVar29[5];" (statement_identifier "LAB_000a3890") (: ":") (expression_statement "dVar40 = in_f24_25 * pdVar29[3] + pdVar29[5];" (assignment_expression "dVar40 = in_f24_25 * pdVar29[3] + pdVar29[5]" (identifier "dVar40") (= "=") (binary_expression "in_f24_25 * pdVar29[3] + pdVar29[5]" (binary_expression "in_f24_25 * pdVar29[3]" (identifier "in_f24_25") (* "*") (subscript_expression "pdVar29[3]" (identifier "pdVar29") ([ "[") (number_literal "3") (] "]"))) (+ "+") (subscript_expression "pdVar29[5]" (identifier "pdVar29") ([ "[") (number_literal "5") (] "]")))) (; ";"))) (expression_statement "dVar47 = pdVar29[1];" (assignment_expression "dVar47 = pdVar29[1]" (identifier "dVar47") (= "=") (subscript_expression "pdVar29[1]" (identifier "pdVar29") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (*(double *)(puVar36 + 0x43c8) <= dVar47) {\n          dVar44 = -dVar40 / dVar47;\n          if (-dVar40 / dVar47 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = *(double **)(unaff_s7 + 0x1c);\n          dVar44 = (double)(int)pdVar16;\n          if ((int)pdVar16 < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar44 - dVar40) / dVar47;\n          if (dVar41 <= in_f20_21) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(*(double *)(puVar36 + 0x43c8) <= dVar47)" (( "(") (binary_expression "*(double *)(puVar36 + 0x43c8) <= dVar47" (pointer_expression "*(double *)(puVar36 + 0x43c8)" (* "*") (cast_expression "(double *)(puVar36 + 0x43c8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x43c8)" (( "(") (binary_expression "puVar36 + 0x43c8" (identifier "puVar36") (+ "+") (number_literal "0x43c8")) () ")")))) (<= "<=") (identifier "dVar47")) () ")")) (compound_statement "{\n          dVar44 = -dVar40 / dVar47;\n          if (-dVar40 / dVar47 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = *(double **)(unaff_s7 + 0x1c);\n          dVar44 = (double)(int)pdVar16;\n          if ((int)pdVar16 < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }\n          in_f20_21 = (dVar44 - dVar40) / dVar47;\n          if (dVar41 <= in_f20_21) {\n            in_f20_21 = dVar41;\n          }\n        }" ({ "{") (expression_statement "dVar44 = -dVar40 / dVar47;" (assignment_expression "dVar44 = -dVar40 / dVar47" (identifier "dVar44") (= "=") (binary_expression "-dVar40 / dVar47" (unary_expression "-dVar40" (- "-") (identifier "dVar40")) (/ "/") (identifier "dVar47"))) (; ";")) (if_statement "if (-dVar40 / dVar47 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }" (if "if") (parenthesized_expression "(-dVar40 / dVar47 <= in_f22_23)" (( "(") (binary_expression "-dVar40 / dVar47 <= in_f22_23" (binary_expression "-dVar40 / dVar47" (unary_expression "-dVar40" (- "-") (identifier "dVar40")) (/ "/") (identifier "dVar47")) (<= "<=") (identifier "in_f22_23")) () ")")) (compound_statement "{\n            dVar44 = in_f22_23;\n          }" ({ "{") (expression_statement "dVar44 = in_f22_23;" (assignment_expression "dVar44 = in_f22_23" (identifier "dVar44") (= "=") (identifier "in_f22_23")) (; ";")) (} "}"))) (expression_statement "in_f22_23 = dVar44;" (assignment_expression "in_f22_23 = dVar44" (identifier "in_f22_23") (= "=") (identifier "dVar44")) (; ";")) (expression_statement "pdVar16 = *(double **)(unaff_s7 + 0x1c);" (assignment_expression "pdVar16 = *(double **)(unaff_s7 + 0x1c)" (identifier "pdVar16") (= "=") (pointer_expression "*(double **)(unaff_s7 + 0x1c)" (* "*") (cast_expression "(double **)(unaff_s7 + 0x1c)" (( "(") (type_descriptor "double **" (primitive_type "double") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_s7 + 0x1c)" (( "(") (binary_expression "unaff_s7 + 0x1c" (identifier "unaff_s7") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "dVar44 = (double)(int)pdVar16;" (assignment_expression "dVar44 = (double)(int)pdVar16" (identifier "dVar44") (= "=") (cast_expression "(double)(int)pdVar16" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)pdVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar16")))) (; ";")) (if_statement "if ((int)pdVar16 < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }" (if "if") (parenthesized_expression "((int)pdVar16 < 0)" (( "(") (binary_expression "(int)pdVar16 < 0" (cast_expression "(int)pdVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar16")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n            pdVar16 = (double *)PTR_LAB_003f98e0;\n          }" ({ "{") (expression_statement "dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);" (assignment_expression "dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" (identifier "dVar44") (= "=") (binary_expression "dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" (identifier "dVar44") (+ "+") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e8)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e8)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x43e8" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x43e8")) () ")")))))) (; ";")) (expression_statement "pdVar16 = (double *)PTR_LAB_003f98e0;" (assignment_expression "pdVar16 = (double *)PTR_LAB_003f98e0" (identifier "pdVar16") (= "=") (cast_expression "(double *)PTR_LAB_003f98e0" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_LAB_003f98e0"))) (; ";")) (} "}"))) (expression_statement "in_f20_21 = (dVar44 - dVar40) / dVar47;" (assignment_expression "in_f20_21 = (dVar44 - dVar40) / dVar47" (identifier "in_f20_21") (= "=") (binary_expression "(dVar44 - dVar40) / dVar47" (parenthesized_expression "(dVar44 - dVar40)" (( "(") (binary_expression "dVar44 - dVar40" (identifier "dVar44") (- "-") (identifier "dVar40")) () ")")) (/ "/") (identifier "dVar47"))) (; ";")) (if_statement "if (dVar41 <= in_f20_21) {\n            in_f20_21 = dVar41;\n          }" (if "if") (parenthesized_expression "(dVar41 <= in_f20_21)" (( "(") (binary_expression "dVar41 <= in_f20_21" (identifier "dVar41") (<= "<=") (identifier "in_f20_21")) () ")")) (compound_statement "{\n            in_f20_21 = dVar41;\n          }" ({ "{") (expression_statement "in_f20_21 = dVar41;" (assignment_expression "in_f20_21 = dVar41" (identifier "in_f20_21") (= "=") (identifier "dVar41")) (; ";")) (} "}"))) (} "}")) (else_clause "else if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }" (else "else") (if_statement "if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }\n        else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8))" (( "(") (binary_expression "dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)" (identifier "dVar47") (< "<") (pointer_expression "*(double *)(PTR_UINT_003f98e4 + 0x65b8)" (* "*") (cast_expression "(double *)(PTR_UINT_003f98e4 + 0x65b8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003f98e4 + 0x65b8)" (( "(") (binary_expression "PTR_UINT_003f98e4 + 0x65b8" (identifier "PTR_UINT_003f98e4") (+ "+") (number_literal "0x65b8")) () ")"))))) () ")")) (compound_statement "{\n          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);\n          if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          dVar44 = (dVar44 - dVar40) / dVar47;\n          if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }\n          in_f22_23 = dVar44;\n          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);\n          in_f20_21 = -dVar40 / dVar47;\n          if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }\n        }" ({ "{") (expression_statement "dVar44 = (double)*(int *)(unaff_s7 + 0x1c);" (assignment_expression "dVar44 = (double)*(int *)(unaff_s7 + 0x1c)" (identifier "dVar44") (= "=") (cast_expression "(double)*(int *)(unaff_s7 + 0x1c)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(int *)(unaff_s7 + 0x1c)" (* "*") (cast_expression "(int *)(unaff_s7 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s7 + 0x1c)" (( "(") (binary_expression "unaff_s7 + 0x1c" (identifier "unaff_s7") (+ "+") (number_literal "0x1c")) () ")")))))) (; ";")) (if_statement "if (*(int *)(unaff_s7 + 0x1c) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }" (if "if") (parenthesized_expression "(*(int *)(unaff_s7 + 0x1c) < 0)" (( "(") (binary_expression "*(int *)(unaff_s7 + 0x1c) < 0" (pointer_expression "*(int *)(unaff_s7 + 0x1c)" (* "*") (cast_expression "(int *)(unaff_s7 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s7 + 0x1c)" (( "(") (binary_expression "unaff_s7 + 0x1c" (identifier "unaff_s7") (+ "+") (number_literal "0x1c")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }" ({ "{") (expression_statement "dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);" (assignment_expression "dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" (identifier "dVar44") (= "=") (binary_expression "dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" (identifier "dVar44") (+ "+") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e8)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e8)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x43e8" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x43e8")) () ")")))))) (; ";")) (} "}"))) (expression_statement "dVar44 = (dVar44 - dVar40) / dVar47;" (assignment_expression "dVar44 = (dVar44 - dVar40) / dVar47" (identifier "dVar44") (= "=") (binary_expression "(dVar44 - dVar40) / dVar47" (parenthesized_expression "(dVar44 - dVar40)" (( "(") (binary_expression "dVar44 - dVar40" (identifier "dVar44") (- "-") (identifier "dVar40")) () ")")) (/ "/") (identifier "dVar47"))) (; ";")) (if_statement "if (dVar44 <= in_f22_23) {\n            dVar44 = in_f22_23;\n          }" (if "if") (parenthesized_expression "(dVar44 <= in_f22_23)" (( "(") (binary_expression "dVar44 <= in_f22_23" (identifier "dVar44") (<= "<=") (identifier "in_f22_23")) () ")")) (compound_statement "{\n            dVar44 = in_f22_23;\n          }" ({ "{") (expression_statement "dVar44 = in_f22_23;" (assignment_expression "dVar44 = in_f22_23" (identifier "dVar44") (= "=") (identifier "in_f22_23")) (; ";")) (} "}"))) (expression_statement "in_f22_23 = dVar44;" (assignment_expression "in_f22_23 = dVar44" (identifier "in_f22_23") (= "=") (identifier "dVar44")) (; ";")) (expression_statement "pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);" (assignment_expression "pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000)" (identifier "pdVar16") (= "=") (cast_expression "(double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000)" (( "(") (binary_expression "(uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000" (call_expression "(uint)((ulonglong)dVar40 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)dVar40 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar40 >> 0x20" (cast_expression "(ulonglong)dVar40" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar40")) (>> ">>") (number_literal "0x20")) () ")"))) (^ "^") (number_literal "0x80000000")) () ")")))) (; ";")) (expression_statement "in_f20_21 = -dVar40 / dVar47;" (assignment_expression "in_f20_21 = -dVar40 / dVar47" (identifier "in_f20_21") (= "=") (binary_expression "-dVar40 / dVar47" (unary_expression "-dVar40" (- "-") (identifier "dVar40")) (/ "/") (identifier "dVar47"))) (; ";")) (if_statement "if (dVar41 <= -dVar40 / dVar47) {\n            in_f20_21 = dVar41;\n          }" (if "if") (parenthesized_expression "(dVar41 <= -dVar40 / dVar47)" (( "(") (binary_expression "dVar41 <= -dVar40 / dVar47" (identifier "dVar41") (<= "<=") (binary_expression "-dVar40 / dVar47" (unary_expression "-dVar40" (- "-") (identifier "dVar40")) (/ "/") (identifier "dVar47"))) () ")")) (compound_statement "{\n            in_f20_21 = dVar41;\n          }" ({ "{") (expression_statement "in_f20_21 = dVar41;" (assignment_expression "in_f20_21 = dVar41" (identifier "in_f20_21") (= "=") (identifier "dVar41")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }" (else "else") (compound_statement "{\n          pdVar16 = (double *)puVar36;\n          in_f20_21 = in_f28_29;\n          if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }\n        }" ({ "{") (expression_statement "pdVar16 = (double *)puVar36;" (assignment_expression "pdVar16 = (double *)puVar36" (identifier "pdVar16") (= "=") (cast_expression "(double *)puVar36" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar36"))) (; ";")) (expression_statement "in_f20_21 = in_f28_29;" (assignment_expression "in_f20_21 = in_f28_29" (identifier "in_f20_21") (= "=") (identifier "in_f28_29")) (; ";")) (if_statement "if (0.0 <= dVar40) {\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }" (if "if") (parenthesized_expression "(0.0 <= dVar40)" (( "(") (binary_expression "0.0 <= dVar40" (number_literal "0.0") (<= "<=") (identifier "dVar40")) () ")")) (compound_statement "{\n            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }\n            in_f20_21 = dVar41;\n            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }\n          }" ({ "{") (expression_statement "dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));" (assignment_expression "dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0))" (identifier "dVar40") (= "=") (cast_expression "(double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0))" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0))" (parenthesized_expression "(*(code *)PTR_floor_003fa688)" (( "(") (pointer_expression "*(code *)PTR_floor_003fa688" (* "*") (cast_expression "(code *)PTR_floor_003fa688" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_floor_003fa688"))) () ")")) (argument_list "(dVar40 + *(double *)(puVar36 + 0x43d0))" (( "(") (binary_expression "dVar40 + *(double *)(puVar36 + 0x43d0)" (identifier "dVar40") (+ "+") (pointer_expression "*(double *)(puVar36 + 0x43d0)" (* "*") (cast_expression "(double *)(puVar36 + 0x43d0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x43d0)" (( "(") (binary_expression "puVar36 + 0x43d0" (identifier "puVar36") (+ "+") (number_literal "0x43d0")) () ")"))))) () ")"))))) (; ";")) (if_statement "if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n              uVar26 = (uint)dVar40;\n            }\n            else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }" (if "if") (parenthesized_expression "(dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0))" (( "(") (binary_expression "dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)" (identifier "dVar40") (< "<") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x43e0" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x43e0")) () ")"))))) () ")")) (compound_statement "{\n              uVar26 = (uint)dVar40;\n            }" ({ "{") (expression_statement "uVar26 = (uint)dVar40;" (assignment_expression "uVar26 = (uint)dVar40" (identifier "uVar26") (= "=") (cast_expression "(uint)dVar40" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "dVar40"))) (; ";")) (} "}")) (else_clause "else {\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }" (else "else") (compound_statement "{\n              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n            }" ({ "{") (expression_statement "uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;" (assignment_expression "uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000" (identifier "uVar26") (= "=") (binary_expression "(int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000" (cast_expression "(int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0))" (( "(") (binary_expression "dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" (identifier "dVar40") (- "-") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x43e0" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x43e0")) () ")"))))) () ")"))) (| "|") (number_literal "0x80000000"))) (; ";")) (} "}")))) (expression_statement "in_f20_21 = dVar41;" (assignment_expression "in_f20_21 = dVar41" (identifier "in_f20_21") (= "=") (identifier "dVar41")) (; ";")) (if_statement "if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {\n              in_f20_21 = in_f28_29;\n            }" (if "if") (parenthesized_expression "(*(uint *)(unaff_s7 + 0x1c) <= uVar26)" (( "(") (binary_expression "*(uint *)(unaff_s7 + 0x1c) <= uVar26" (pointer_expression "*(uint *)(unaff_s7 + 0x1c)" (* "*") (cast_expression "(uint *)(unaff_s7 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s7 + 0x1c)" (( "(") (binary_expression "unaff_s7 + 0x1c" (identifier "unaff_s7") (+ "+") (number_literal "0x1c")) () ")")))) (<= "<=") (identifier "uVar26")) () ")")) (compound_statement "{\n              in_f20_21 = in_f28_29;\n            }" ({ "{") (expression_statement "in_f20_21 = in_f28_29;" (assignment_expression "in_f20_21 = in_f28_29" (identifier "in_f20_21") (= "=") (identifier "in_f28_29")) (; ";")) (} "}"))) (} "}"))) (} "}")))))) (if_statement "if (in_f22_23 <= in_f20_21) goto LAB_000a3938;" (if "if") (parenthesized_expression "(in_f22_23 <= in_f20_21)" (( "(") (binary_expression "in_f22_23 <= in_f20_21" (identifier "in_f22_23") (<= "<=") (identifier "in_f20_21")) () ")")) (goto_statement "goto LAB_000a3938;" (goto "goto") (statement_identifier "LAB_000a3938") (; ";"))) (} "}")) (else_clause "else {\n        if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar44 - dVar40) / dVar47;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar40) {\n          dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n          if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar41;\n          if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar36 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar41 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar41;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar40 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar41 = (dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar41 < in_f20_21) {\n          uVar26 = (uint)dVar41;\n        }\n        else {\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar16 = pdVar5;\n        pdVar29 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26);\n        if (pdVar29 != (double *)0x0) {\n          piVar17 = (int *)param_1[6];\n          piVar48 = piVar17;\n          piVar19 = local_b8;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          piVar48 = piVar17;\n          piVar19 = local_110;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }\n          pdVar16 = pdVar5;\n          iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);\n          if (iVar10 == 0) {\n            param_1[10] = 0;\n          }\n        }\n      }" (else "else") (compound_statement "{\n        if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar44 - dVar40) / dVar47;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }\n          goto LAB_000a3890;\n        }\n        in_f22_23 = in_f20_21;\n        if (0.0 <= dVar40) {\n          dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n          if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar41;\n          if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }\nLAB_000a3938:\n        in_f28_29 = *(double *)(puVar36 + 0x43d0);\n        in_f22_23 = in_f22_23 - in_f28_29;\n        dVar41 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        unaff_s2 = (int)dVar41;\n        in_f28_29 = in_f20_21 + in_f28_29;\n        dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n        dVar40 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);\n        dVar41 = (dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408);\n        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);\n        if (dVar41 < in_f20_21) {\n          uVar26 = (uint)dVar41;\n        }\n        else {\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }\n        local_178 = (double)CONCAT44(1,unaff_s4);\n        pdVar16 = pdVar5;\n        pdVar29 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26);\n        if (pdVar29 != (double *)0x0) {\n          piVar17 = (int *)param_1[6];\n          piVar48 = piVar17;\n          piVar19 = local_b8;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          piVar48 = piVar17;\n          piVar19 = local_110;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }\n          pdVar16 = pdVar5;\n          iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);\n          if (iVar10 == 0) {\n            param_1[10] = 0;\n          }\n        }\n      }" ({ "{") (if_statement "if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {\n          dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar44 - dVar40) / dVar47;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }\n          goto LAB_000a3890;\n        }" (if "if") (parenthesized_expression "(dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8))" (( "(") (binary_expression "dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)" (identifier "dVar47") (< "<") (pointer_expression "*(double *)(PTR_UINT_003f98e4 + 0x65b8)" (* "*") (cast_expression "(double *)(PTR_UINT_003f98e4 + 0x65b8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_003f98e4 + 0x65b8)" (( "(") (binary_expression "PTR_UINT_003f98e4 + 0x65b8" (identifier "PTR_UINT_003f98e4") (+ "+") (number_literal "0x65b8")) () ")"))))) () ")")) (compound_statement "{\n          dVar44 = (double)*(int *)(unaff_s7 + 0x18);\n          if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }\n          in_f22_23 = (dVar44 - dVar40) / dVar47;\n          if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }\n          if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }\n          goto LAB_000a3890;\n        }" ({ "{") (expression_statement "dVar44 = (double)*(int *)(unaff_s7 + 0x18);" (assignment_expression "dVar44 = (double)*(int *)(unaff_s7 + 0x18)" (identifier "dVar44") (= "=") (cast_expression "(double)*(int *)(unaff_s7 + 0x18)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(int *)(unaff_s7 + 0x18)" (* "*") (cast_expression "(int *)(unaff_s7 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s7 + 0x18)" (( "(") (binary_expression "unaff_s7 + 0x18" (identifier "unaff_s7") (+ "+") (number_literal "0x18")) () ")")))))) (; ";")) (if_statement "if (*(int *)(unaff_s7 + 0x18) < 0) {\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }" (if "if") (parenthesized_expression "(*(int *)(unaff_s7 + 0x18) < 0)" (( "(") (binary_expression "*(int *)(unaff_s7 + 0x18) < 0" (pointer_expression "*(int *)(unaff_s7 + 0x18)" (* "*") (cast_expression "(int *)(unaff_s7 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s7 + 0x18)" (( "(") (binary_expression "unaff_s7 + 0x18" (identifier "unaff_s7") (+ "+") (number_literal "0x18")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);\n          }" ({ "{") (expression_statement "dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);" (assignment_expression "dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" (identifier "dVar44") (= "=") (binary_expression "dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8)" (identifier "dVar44") (+ "+") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e8)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e8)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x43e8" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x43e8")) () ")")))))) (; ";")) (} "}"))) (expression_statement "in_f22_23 = (dVar44 - dVar40) / dVar47;" (assignment_expression "in_f22_23 = (dVar44 - dVar40) / dVar47" (identifier "in_f22_23") (= "=") (binary_expression "(dVar44 - dVar40) / dVar47" (parenthesized_expression "(dVar44 - dVar40)" (( "(") (binary_expression "dVar44 - dVar40" (identifier "dVar44") (- "-") (identifier "dVar40")) () ")")) (/ "/") (identifier "dVar47"))) (; ";")) (if_statement "if (in_f22_23 <= in_f20_21) {\n            in_f22_23 = in_f20_21;\n          }" (if "if") (parenthesized_expression "(in_f22_23 <= in_f20_21)" (( "(") (binary_expression "in_f22_23 <= in_f20_21" (identifier "in_f22_23") (<= "<=") (identifier "in_f20_21")) () ")")) (compound_statement "{\n            in_f22_23 = in_f20_21;\n          }" ({ "{") (expression_statement "in_f22_23 = in_f20_21;" (assignment_expression "in_f22_23 = in_f20_21" (identifier "in_f22_23") (= "=") (identifier "in_f20_21")) (; ";")) (} "}"))) (if_statement "if (-dVar40 / dVar47 < in_f28_29) {\n            dVar41 = -dVar40 / dVar47;\n          }" (if "if") (parenthesized_expression "(-dVar40 / dVar47 < in_f28_29)" (( "(") (binary_expression "-dVar40 / dVar47 < in_f28_29" (binary_expression "-dVar40 / dVar47" (unary_expression "-dVar40" (- "-") (identifier "dVar40")) (/ "/") (identifier "dVar47")) (< "<") (identifier "in_f28_29")) () ")")) (compound_statement "{\n            dVar41 = -dVar40 / dVar47;\n          }" ({ "{") (expression_statement "dVar41 = -dVar40 / dVar47;" (assignment_expression "dVar41 = -dVar40 / dVar47" (identifier "dVar41") (= "=") (binary_expression "-dVar40 / dVar47" (unary_expression "-dVar40" (- "-") (identifier "dVar40")) (/ "/") (identifier "dVar47"))) (; ";")) (} "}"))) (goto_statement "goto LAB_000a3890;" (goto "goto") (statement_identifier "LAB_000a3890") (; ";")) (} "}"))) (expression_statement "in_f22_23 = in_f20_21;" (assignment_expression "in_f22_23 = in_f20_21" (identifier "in_f22_23") (= "=") (identifier "in_f20_21")) (; ";")) (if_statement "if (0.0 <= dVar40) {\n          dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n          if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar41;\n          if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }" (if "if") (parenthesized_expression "(0.0 <= dVar40)" (( "(") (binary_expression "0.0 <= dVar40" (number_literal "0.0") (<= "<=") (identifier "dVar40")) () ")")) (compound_statement "{\n          dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));\n          if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }\n          in_f22_23 = in_f20_21;\n          in_f28_29 = dVar41;\n          if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;\n        }" ({ "{") (expression_statement "dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));" (assignment_expression "dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0))" (identifier "dVar40") (= "=") (cast_expression "(double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0))" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0))" (parenthesized_expression "(*(code *)PTR_floor_003fa688)" (( "(") (pointer_expression "*(code *)PTR_floor_003fa688" (* "*") (cast_expression "(code *)PTR_floor_003fa688" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_floor_003fa688"))) () ")")) (argument_list "(dVar40 + *(double *)(puVar36 + 0x43d0))" (( "(") (binary_expression "dVar40 + *(double *)(puVar36 + 0x43d0)" (identifier "dVar40") (+ "+") (pointer_expression "*(double *)(puVar36 + 0x43d0)" (* "*") (cast_expression "(double *)(puVar36 + 0x43d0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x43d0)" (( "(") (binary_expression "puVar36 + 0x43d0" (identifier "puVar36") (+ "+") (number_literal "0x43d0")) () ")"))))) () ")"))))) (; ";")) (if_statement "if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {\n            uVar26 = (uint)dVar40;\n          }\n          else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }" (if "if") (parenthesized_expression "(dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0))" (( "(") (binary_expression "dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)" (identifier "dVar40") (< "<") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x43e0" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x43e0")) () ")"))))) () ")")) (compound_statement "{\n            uVar26 = (uint)dVar40;\n          }" ({ "{") (expression_statement "uVar26 = (uint)dVar40;" (assignment_expression "uVar26 = (uint)dVar40" (identifier "uVar26") (= "=") (cast_expression "(uint)dVar40" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "dVar40"))) (; ";")) (} "}")) (else_clause "else {\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }" (else "else") (compound_statement "{\n            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;\n          }" ({ "{") (expression_statement "uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;" (assignment_expression "uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000" (identifier "uVar26") (= "=") (binary_expression "(int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000" (cast_expression "(int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0))" (( "(") (binary_expression "dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)" (identifier "dVar40") (- "-") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x43e0" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x43e0")) () ")"))))) () ")"))) (| "|") (number_literal "0x80000000"))) (; ";")) (} "}")))) (expression_statement "in_f22_23 = in_f20_21;" (assignment_expression "in_f22_23 = in_f20_21" (identifier "in_f22_23") (= "=") (identifier "in_f20_21")) (; ";")) (expression_statement "in_f28_29 = dVar41;" (assignment_expression "in_f28_29 = dVar41" (identifier "in_f28_29") (= "=") (identifier "dVar41")) (; ";")) (if_statement "if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;" (if "if") (parenthesized_expression "(uVar26 < *(uint *)(unaff_s7 + 0x18))" (( "(") (binary_expression "uVar26 < *(uint *)(unaff_s7 + 0x18)" (identifier "uVar26") (< "<") (pointer_expression "*(uint *)(unaff_s7 + 0x18)" (* "*") (cast_expression "(uint *)(unaff_s7 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s7 + 0x18)" (( "(") (binary_expression "unaff_s7 + 0x18" (identifier "unaff_s7") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (goto_statement "goto LAB_000a3890;" (goto "goto") (statement_identifier "LAB_000a3890") (; ";"))) (} "}"))) (labeled_statement "LAB_000a3938:\n        in_f28_29 = *(double *)(puVar36 + 0x43d0);" (statement_identifier "LAB_000a3938") (: ":") (expression_statement "in_f28_29 = *(double *)(puVar36 + 0x43d0);" (assignment_expression "in_f28_29 = *(double *)(puVar36 + 0x43d0)" (identifier "in_f28_29") (= "=") (pointer_expression "*(double *)(puVar36 + 0x43d0)" (* "*") (cast_expression "(double *)(puVar36 + 0x43d0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x43d0)" (( "(") (binary_expression "puVar36 + 0x43d0" (identifier "puVar36") (+ "+") (number_literal "0x43d0")) () ")"))))) (; ";"))) (expression_statement "in_f22_23 = in_f22_23 - in_f28_29;" (assignment_expression "in_f22_23 = in_f22_23 - in_f28_29" (identifier "in_f22_23") (= "=") (binary_expression "in_f22_23 - in_f28_29" (identifier "in_f22_23") (- "-") (identifier "in_f28_29"))) (; ";")) (expression_statement "dVar41 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);" (assignment_expression "dVar41 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23)" (identifier "dVar41") (= "=") (cast_expression "(double)(*(code *)PTR_ceil_003f9c38)(in_f22_23)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(*(code *)PTR_ceil_003f9c38)(in_f22_23)" (parenthesized_expression "(*(code *)PTR_ceil_003f9c38)" (( "(") (pointer_expression "*(code *)PTR_ceil_003f9c38" (* "*") (cast_expression "(code *)PTR_ceil_003f9c38" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ceil_003f9c38"))) () ")")) (argument_list "(in_f22_23)" (( "(") (identifier "in_f22_23") () ")"))))) (; ";")) (expression_statement "unaff_s2 = (int)dVar41;" (assignment_expression "unaff_s2 = (int)dVar41" (identifier "unaff_s2") (= "=") (cast_expression "(int)dVar41" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar41"))) (; ";")) (expression_statement "in_f28_29 = in_f20_21 + in_f28_29;" (assignment_expression "in_f28_29 = in_f20_21 + in_f28_29" (identifier "in_f28_29") (= "=") (binary_expression "in_f20_21 + in_f28_29" (identifier "in_f20_21") (+ "+") (identifier "in_f28_29"))) (; ";")) (expression_statement "dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);" (assignment_expression "dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29)" (identifier "dVar41") (= "=") (cast_expression "(double)(*(code *)PTR_floor_003fa688)(in_f28_29)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(*(code *)PTR_floor_003fa688)(in_f28_29)" (parenthesized_expression "(*(code *)PTR_floor_003fa688)" (( "(") (pointer_expression "*(code *)PTR_floor_003fa688" (* "*") (cast_expression "(code *)PTR_floor_003fa688" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_floor_003fa688"))) () ")")) (argument_list "(in_f28_29)" (( "(") (identifier "in_f28_29") () ")"))))) (; ";")) (expression_statement "dVar40 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);" (assignment_expression "dVar40 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23)" (identifier "dVar40") (= "=") (cast_expression "(double)(*(code *)PTR_ceil_003f9c38)(in_f22_23)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(*(code *)PTR_ceil_003f9c38)(in_f22_23)" (parenthesized_expression "(*(code *)PTR_ceil_003f9c38)" (( "(") (pointer_expression "*(code *)PTR_ceil_003f9c38" (* "*") (cast_expression "(code *)PTR_ceil_003f9c38" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ceil_003f9c38"))) () ")")) (argument_list "(in_f22_23)" (( "(") (identifier "in_f22_23") () ")"))))) (; ";")) (expression_statement "dVar41 = (dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408);" (assignment_expression "dVar41 = (dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408)" (identifier "dVar41") (= "=") (binary_expression "(dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408)" (parenthesized_expression "(dVar41 - dVar40)" (( "(") (binary_expression "dVar41 - dVar40" (identifier "dVar41") (- "-") (identifier "dVar40")) () ")")) (+ "+") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4408)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4408)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x4408" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x4408")) () ")")))))) (; ";")) (expression_statement "in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);" (assignment_expression "in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0)" (identifier "in_f20_21") (= "=") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x43e0)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x43e0)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x43e0" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x43e0")) () ")"))))) (; ";")) (if_statement "if (dVar41 < in_f20_21) {\n          uVar26 = (uint)dVar41;\n        }\n        else {\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }" (if "if") (parenthesized_expression "(dVar41 < in_f20_21)" (( "(") (binary_expression "dVar41 < in_f20_21" (identifier "dVar41") (< "<") (identifier "in_f20_21")) () ")")) (compound_statement "{\n          uVar26 = (uint)dVar41;\n        }" ({ "{") (expression_statement "uVar26 = (uint)dVar41;" (assignment_expression "uVar26 = (uint)dVar41" (identifier "uVar26") (= "=") (cast_expression "(uint)dVar41" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "dVar41"))) (; ";")) (} "}")) (else_clause "else {\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }" (else "else") (compound_statement "{\n          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;\n        }" ({ "{") (expression_statement "uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;" (assignment_expression "uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000" (identifier "uVar26") (= "=") (binary_expression "(int)(dVar41 - in_f20_21) | 0x80000000" (cast_expression "(int)(dVar41 - in_f20_21)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(dVar41 - in_f20_21)" (( "(") (binary_expression "dVar41 - in_f20_21" (identifier "dVar41") (- "-") (identifier "in_f20_21")) () ")"))) (| "|") (number_literal "0x80000000"))) (; ";")) (} "}")))) (expression_statement "local_178 = (double)CONCAT44(1,unaff_s4);" (assignment_expression "local_178 = (double)CONCAT44(1,unaff_s4)" (identifier "local_178") (= "=") (cast_expression "(double)CONCAT44(1,unaff_s4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(1,unaff_s4)" (identifier "CONCAT44") (argument_list "(1,unaff_s4)" (( "(") (number_literal "1") (, ",") (identifier "unaff_s4") () ")"))))) (; ";")) (expression_statement "pdVar16 = pdVar5;" (assignment_expression "pdVar16 = pdVar5" (identifier "pdVar16") (= "=") (identifier "pdVar5")) (; ";")) (expression_statement "pdVar29 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26);" (assignment_expression "pdVar29 = (double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26)" (identifier "pdVar29") (= "=") (cast_expression "(double *)\n                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26)" (parenthesized_expression "(*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)" (( "(") (pointer_expression "*(code *)PTR_GetCacheViewAuthenticPixels_003fa664" (* "*") (cast_expression "(code *)PTR_GetCacheViewAuthenticPixels_003fa664" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetCacheViewAuthenticPixels_003fa664"))) () ")")) (argument_list "(pdVar5,unaff_s2,iVar3,uVar26)" (( "(") (identifier "pdVar5") (, ",") (identifier "unaff_s2") (, ",") (identifier "iVar3") (, ",") (identifier "uVar26") () ")"))))) (; ";")) (if_statement "if (pdVar29 != (double *)0x0) {\n          piVar17 = (int *)param_1[6];\n          piVar48 = piVar17;\n          piVar19 = local_b8;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          piVar48 = piVar17;\n          piVar19 = local_110;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }\n          pdVar16 = pdVar5;\n          iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);\n          if (iVar10 == 0) {\n            param_1[10] = 0;\n          }\n        }" (if "if") (parenthesized_expression "(pdVar29 != (double *)0x0)" (( "(") (binary_expression "pdVar29 != (double *)0x0" (identifier "pdVar29") (!= "!=") (cast_expression "(double *)0x0" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          piVar17 = (int *)param_1[6];\n          piVar48 = piVar17;\n          piVar19 = local_b8;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          piVar48 = piVar17;\n          piVar19 = local_110;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);\n          iVar10 = piVar7[5];\n          piVar11[4] = *piVar48;\n          piVar11[5] = iVar10;\n          dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);\n          unaff_s3 = (double *)PTR_LAB_003f98e0;\n          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);\n          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);\n          for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }\n          pdVar16 = pdVar5;\n          iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);\n          if (iVar10 == 0) {\n            param_1[10] = 0;\n          }\n        }" ({ "{") (expression_statement "piVar17 = (int *)param_1[6];" (assignment_expression "piVar17 = (int *)param_1[6]" (identifier "piVar17") (= "=") (cast_expression "(int *)param_1[6]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")))) (; ";")) (expression_statement "piVar48 = piVar17;" (assignment_expression "piVar48 = piVar17" (identifier "piVar48") (= "=") (identifier "piVar17")) (; ";")) (expression_statement "piVar19 = local_b8;" (assignment_expression "piVar19 = local_b8" (identifier "piVar19") (= "=") (identifier "local_b8")) (; ";")) (do_statement "do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);" (do "do") (compound_statement "{\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          }" ({ "{") (expression_statement "piVar11 = piVar19;" (assignment_expression "piVar11 = piVar19" (identifier "piVar11") (= "=") (identifier "piVar19")) (; ";")) (expression_statement "piVar7 = piVar48;" (assignment_expression "piVar7 = piVar48" (identifier "piVar7") (= "=") (identifier "piVar48")) (; ";")) (expression_statement "iVar28 = piVar7[1];" (assignment_expression "iVar28 = piVar7[1]" (identifier "iVar28") (= "=") (subscript_expression "piVar7[1]" (identifier "piVar7") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iVar49 = piVar7[2];" (assignment_expression "iVar49 = piVar7[2]" (identifier "iVar49") (= "=") (subscript_expression "piVar7[2]" (identifier "piVar7") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar10 = piVar7[3];" (assignment_expression "iVar10 = piVar7[3]" (identifier "iVar10") (= "=") (subscript_expression "piVar7[3]" (identifier "piVar7") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*piVar11 = *piVar7;" (assignment_expression "*piVar11 = *piVar7" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (= "=") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) (; ";")) (expression_statement "piVar11[1] = iVar28;" (assignment_expression "piVar11[1] = iVar28" (subscript_expression "piVar11[1]" (identifier "piVar11") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar28")) (; ";")) (expression_statement "piVar11[2] = iVar49;" (assignment_expression "piVar11[2] = iVar49" (subscript_expression "piVar11[2]" (identifier "piVar11") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar49")) (; ";")) (expression_statement "piVar11[3] = iVar10;" (assignment_expression "piVar11[3] = iVar10" (subscript_expression "piVar11[3]" (identifier "piVar11") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "iVar10")) (; ";")) (expression_statement "piVar48 = piVar7 + 4;" (assignment_expression "piVar48 = piVar7 + 4" (identifier "piVar48") (= "=") (binary_expression "piVar7 + 4" (identifier "piVar7") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "piVar19 = piVar11 + 4;" (assignment_expression "piVar19 = piVar11 + 4" (identifier "piVar19") (= "=") (binary_expression "piVar11 + 4" (identifier "piVar11") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar48 != piVar17 + 0x14)" (( "(") (binary_expression "piVar48 != piVar17 + 0x14" (identifier "piVar48") (!= "!=") (binary_expression "piVar17 + 0x14" (identifier "piVar17") (+ "+") (number_literal "0x14"))) () ")")) (; ";")) (expression_statement "iVar10 = piVar7[5];" (assignment_expression "iVar10 = piVar7[5]" (identifier "iVar10") (= "=") (subscript_expression "piVar7[5]" (identifier "piVar7") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "piVar11[4] = *piVar48;" (assignment_expression "piVar11[4] = *piVar48" (subscript_expression "piVar11[4]" (identifier "piVar11") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*piVar48" (* "*") (identifier "piVar48"))) (; ";")) (expression_statement "piVar11[5] = iVar10;" (assignment_expression "piVar11[5] = iVar10" (subscript_expression "piVar11[5]" (identifier "piVar11") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "iVar10")) (; ";")) (expression_statement "piVar48 = piVar17;" (assignment_expression "piVar48 = piVar17" (identifier "piVar48") (= "=") (identifier "piVar17")) (; ";")) (expression_statement "piVar19 = local_110;" (assignment_expression "piVar19 = local_110" (identifier "piVar19") (= "=") (identifier "local_110")) (; ";")) (do_statement "do {\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar48 != piVar17 + 0x14);" (do "do") (compound_statement "{\n            piVar11 = piVar19;\n            piVar7 = piVar48;\n            iVar28 = piVar7[1];\n            iVar49 = piVar7[2];\n            iVar10 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar28;\n            piVar11[2] = iVar49;\n            piVar11[3] = iVar10;\n            piVar48 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          }" ({ "{") (expression_statement "piVar11 = piVar19;" (assignment_expression "piVar11 = piVar19" (identifier "piVar11") (= "=") (identifier "piVar19")) (; ";")) (expression_statement "piVar7 = piVar48;" (assignment_expression "piVar7 = piVar48" (identifier "piVar7") (= "=") (identifier "piVar48")) (; ";")) (expression_statement "iVar28 = piVar7[1];" (assignment_expression "iVar28 = piVar7[1]" (identifier "iVar28") (= "=") (subscript_expression "piVar7[1]" (identifier "piVar7") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iVar49 = piVar7[2];" (assignment_expression "iVar49 = piVar7[2]" (identifier "iVar49") (= "=") (subscript_expression "piVar7[2]" (identifier "piVar7") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar10 = piVar7[3];" (assignment_expression "iVar10 = piVar7[3]" (identifier "iVar10") (= "=") (subscript_expression "piVar7[3]" (identifier "piVar7") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*piVar11 = *piVar7;" (assignment_expression "*piVar11 = *piVar7" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (= "=") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) (; ";")) (expression_statement "piVar11[1] = iVar28;" (assignment_expression "piVar11[1] = iVar28" (subscript_expression "piVar11[1]" (identifier "piVar11") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar28")) (; ";")) (expression_statement "piVar11[2] = iVar49;" (assignment_expression "piVar11[2] = iVar49" (subscript_expression "piVar11[2]" (identifier "piVar11") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar49")) (; ";")) (expression_statement "piVar11[3] = iVar10;" (assignment_expression "piVar11[3] = iVar10" (subscript_expression "piVar11[3]" (identifier "piVar11") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "iVar10")) (; ";")) (expression_statement "piVar48 = piVar7 + 4;" (assignment_expression "piVar48 = piVar7 + 4" (identifier "piVar48") (= "=") (binary_expression "piVar7 + 4" (identifier "piVar7") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "piVar19 = piVar11 + 4;" (assignment_expression "piVar19 = piVar11 + 4" (identifier "piVar19") (= "=") (binary_expression "piVar11 + 4" (identifier "piVar11") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar48 != piVar17 + 0x14)" (( "(") (binary_expression "piVar48 != piVar17 + 0x14" (identifier "piVar48") (!= "!=") (binary_expression "piVar17 + 0x14" (identifier "piVar17") (+ "+") (number_literal "0x14"))) () ")")) (; ";")) (expression_statement "iVar10 = piVar7[5];" (assignment_expression "iVar10 = piVar7[5]" (identifier "iVar10") (= "=") (subscript_expression "piVar7[5]" (identifier "piVar7") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "piVar11[4] = *piVar48;" (assignment_expression "piVar11[4] = *piVar48" (subscript_expression "piVar11[4]" (identifier "piVar11") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*piVar48" (* "*") (identifier "piVar48"))) (; ";")) (expression_statement "piVar11[5] = iVar10;" (assignment_expression "piVar11[5] = iVar10" (subscript_expression "piVar11[5]" (identifier "piVar11") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "iVar10")) (; ";")) (expression_statement "dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);" (assignment_expression "dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29)" (identifier "dVar41") (= "=") (cast_expression "(double)(*(code *)PTR_floor_003fa688)(in_f28_29)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(*(code *)PTR_floor_003fa688)(in_f28_29)" (parenthesized_expression "(*(code *)PTR_floor_003fa688)" (( "(") (pointer_expression "*(code *)PTR_floor_003fa688" (* "*") (cast_expression "(code *)PTR_floor_003fa688" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_floor_003fa688"))) () ")")) (argument_list "(in_f28_29)" (( "(") (identifier "in_f28_29") () ")"))))) (; ";")) (expression_statement "unaff_s3 = (double *)PTR_LAB_003f98e0;" (assignment_expression "unaff_s3 = (double *)PTR_LAB_003f98e0" (identifier "unaff_s3") (= "=") (cast_expression "(double *)PTR_LAB_003f98e0" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_LAB_003f98e0"))) (; ";")) (expression_statement "in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);" (assignment_expression "in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418)" (identifier "in_f22_23") (= "=") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4418)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4418)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x4418" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x4418")) () ")"))))) (; ";")) (expression_statement "in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);" (assignment_expression "in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408)" (identifier "in_f20_21") (= "=") (pointer_expression "*(double *)(PTR_LAB_003f98e0 + 0x4408)" (* "*") (cast_expression "(double *)(PTR_LAB_003f98e0 + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4408)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x4408" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x4408")) () ")"))))) (; ";")) (for_statement "for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }" (for "for") (( "(") (; ";") (binary_expression "unaff_s2 <= (int)dVar41" (identifier "unaff_s2") (<= "<=") (cast_expression "(int)dVar41" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar41"))) (; ";") (assignment_expression "unaff_s2 = unaff_s2 + 1" (identifier "unaff_s2") (= "=") (binary_expression "unaff_s2 + 1" (identifier "unaff_s2") (+ "+") (number_literal "1"))) () ")") (compound_statement "{\n            pdVar16 = (double *)param_1[3];\n            local_168 = local_b8;\n            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];\n            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];\n            local_164 = unaff_s4;\n            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);\n            param_1[10] = iVar10;\n            if (iVar10 == 0) break;\n            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);\n            local_110[0] = 1;\n            local_110[1] = 0x17;\n            local_f8 = 0x10;\n            local_110[2] = 0;\n            local_c8 = in_f30_31;\n            if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }\n            dVar40 = local_70 * in_f26_27;\n            dVar47 = local_c8 * in_f26_27;\n            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;\n            if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }\n            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }\n            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;\n            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;\n            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;\n            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;\n            if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }\n            iVar10 = piVar2[0xb4];\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;\n            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;\n            if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }\n            if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }\n            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);\n          }" ({ "{") (expression_statement "pdVar16 = (double *)param_1[3];" (assignment_expression "pdVar16 = (double *)param_1[3]" (identifier "pdVar16") (= "=") (cast_expression "(double *)param_1[3]" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "local_168 = local_b8;" (assignment_expression "local_168 = local_b8" (identifier "local_168") (= "=") (identifier "local_b8")) (; ";")) (expression_statement "local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];" (assignment_expression "local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5]" (identifier "local_170") (= "=") (binary_expression "(double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5]" (binary_expression "(double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3]" (binary_expression "(double)unaff_s2 * pdVar16[1]" (cast_expression "(double)unaff_s2" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "unaff_s2")) (* "*") (subscript_expression "pdVar16[1]" (identifier "pdVar16") ([ "[") (number_literal "1") (] "]"))) (+ "+") (binary_expression "in_f24_25 * pdVar16[3]" (identifier "in_f24_25") (* "*") (subscript_expression "pdVar16[3]" (identifier "pdVar16") ([ "[") (number_literal "3") (] "]")))) (+ "+") (subscript_expression "pdVar16[5]" (identifier "pdVar16") ([ "[") (number_literal "5") (] "]")))) (; ";")) (expression_statement "local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];" (assignment_expression "local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4]" (identifier "local_178") (= "=") (binary_expression "(double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4]" (binary_expression "(double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2]" (binary_expression "(double)unaff_s2 * *pdVar16" (cast_expression "(double)unaff_s2" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "unaff_s2")) (* "*") (pointer_expression "*pdVar16" (* "*") (identifier "pdVar16"))) (+ "+") (binary_expression "in_f24_25 * pdVar16[2]" (identifier "in_f24_25") (* "*") (subscript_expression "pdVar16[2]" (identifier "pdVar16") ([ "[") (number_literal "2") (] "]")))) (+ "+") (subscript_expression "pdVar16[4]" (identifier "pdVar16") ([ "[") (number_literal "4") (] "]")))) (; ";")) (expression_statement "local_164 = unaff_s4;" (assignment_expression "local_164 = unaff_s4" (identifier "local_164") (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);" (assignment_expression "iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0)" (identifier "iVar10") (= "=") (call_expression "(*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0)" (parenthesized_expression "(*(code *)PTR_InterpolatePixelInfo_003fa0a4)" (( "(") (pointer_expression "*(code *)PTR_InterpolatePixelInfo_003fa0a4" (* "*") (cast_expression "(code *)PTR_InterpolatePixelInfo_003fa0a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_InterpolatePixelInfo_003fa0a4"))) () ")")) (argument_list "(unaff_s7,uVar4,0)" (( "(") (identifier "unaff_s7") (, ",") (identifier "uVar4") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_1[10] = iVar10;" (assignment_expression "param_1[10] = iVar10" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "iVar10")) (; ";")) (if_statement "if (iVar10 == 0) break;" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "(*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);" (call_expression "(*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58)" (parenthesized_expression "(*(code *)PTR_ResetMagickMemory_003fa00c)" (( "(") (pointer_expression "*(code *)PTR_ResetMagickMemory_003fa00c" (* "*") (cast_expression "(code *)PTR_ResetMagickMemory_003fa00c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ResetMagickMemory_003fa00c"))) () ")")) (argument_list "(local_110,0,0x58)" (( "(") (identifier "local_110") (, ",") (number_literal "0") (, ",") (number_literal "0x58") () ")"))) (; ";")) (expression_statement "local_110[0] = 1;" (assignment_expression "local_110[0] = 1" (subscript_expression "local_110[0]" (identifier "local_110") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "local_110[1] = 0x17;" (assignment_expression "local_110[1] = 0x17" (subscript_expression "local_110[1]" (identifier "local_110") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0x17")) (; ";")) (expression_statement "local_f8 = 0x10;" (assignment_expression "local_f8 = 0x10" (identifier "local_f8") (= "=") (number_literal "0x10")) (; ";")) (expression_statement "local_110[2] = 0;" (assignment_expression "local_110[2] = 0" (subscript_expression "local_110[2]" (identifier "local_110") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_c8 = in_f30_31;" (assignment_expression "local_c8 = in_f30_31" (identifier "local_c8") (= "=") (identifier "in_f30_31")) (; ";")) (if_statement "if (piVar2 != (int *)0x0) {\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }" (if "if") (parenthesized_expression "(piVar2 != (int *)0x0)" (( "(") (binary_expression "piVar2 != (int *)0x0" (identifier "piVar2") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              local_110[0] = *piVar2;\n              local_110[1] = piVar2[1];\n              local_100 = *(undefined8 *)(piVar2 + 0x92);\n              local_f8 = piVar2[8];\n              local_110[2] = piVar2[0xaf];\n              if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }\n            }" ({ "{") (expression_statement "local_110[0] = *piVar2;" (assignment_expression "local_110[0] = *piVar2" (subscript_expression "local_110[0]" (identifier "local_110") ([ "[") (number_literal "0") (] "]")) (= "=") (pointer_expression "*piVar2" (* "*") (identifier "piVar2"))) (; ";")) (expression_statement "local_110[1] = piVar2[1];" (assignment_expression "local_110[1] = piVar2[1]" (subscript_expression "local_110[1]" (identifier "local_110") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "piVar2[1]" (identifier "piVar2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_100 = *(undefined8 *)(piVar2 + 0x92);" (assignment_expression "local_100 = *(undefined8 *)(piVar2 + 0x92)" (identifier "local_100") (= "=") (pointer_expression "*(undefined8 *)(piVar2 + 0x92)" (* "*") (cast_expression "(undefined8 *)(piVar2 + 0x92)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar2 + 0x92)" (( "(") (binary_expression "piVar2 + 0x92" (identifier "piVar2") (+ "+") (number_literal "0x92")) () ")"))))) (; ";")) (expression_statement "local_f8 = piVar2[8];" (assignment_expression "local_f8 = piVar2[8]" (identifier "local_f8") (= "=") (subscript_expression "piVar2[8]" (identifier "piVar2") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "local_110[2] = piVar2[0xaf];" (assignment_expression "local_110[2] = piVar2[0xaf]" (subscript_expression "local_110[2]" (identifier "local_110") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "piVar2[0xaf]" (identifier "piVar2") ([ "[") (number_literal "0xaf") (] "]"))) (; ";")) (if_statement "if (pdVar29 != (double *)0x0) {\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }" (if "if") (parenthesized_expression "(pdVar29 != (double *)0x0)" (( "(") (binary_expression "pdVar29 != (double *)0x0" (identifier "pdVar29") (!= "!=") (cast_expression "(double *)0x0" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                iVar10 = piVar2[0xb4];\n                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);\n                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);\n                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }\n                if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }\n              }" ({ "{") (expression_statement "iVar10 = piVar2[0xb4];" (assignment_expression "iVar10 = piVar2[0xb4]" (identifier "iVar10") (= "=") (subscript_expression "piVar2[0xb4]" (identifier "piVar2") ([ "[") (number_literal "0xb4") (] "]"))) (; ";")) (expression_statement "local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);" (assignment_expression "local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4)" (identifier "local_e8") (= "=") (cast_expression "(double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4)" (* "*") (cast_expression "(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar29 + *(int *)(iVar10 + 8) * 4)" (( "(") (binary_expression "(int)pdVar29 + *(int *)(iVar10 + 8) * 4" (cast_expression "(int)pdVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar29")) (+ "+") (binary_expression "*(int *)(iVar10 + 8) * 4" (pointer_expression "*(int *)(iVar10 + 8)" (* "*") (cast_expression "(int *)(iVar10 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (expression_statement "local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);" (assignment_expression "local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4)" (identifier "local_e0") (= "=") (cast_expression "(double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4)" (* "*") (cast_expression "(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4)" (( "(") (binary_expression "(int)pdVar29 + *(int *)(iVar10 + 0x14) * 4" (cast_expression "(int)pdVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar29")) (+ "+") (binary_expression "*(int *)(iVar10 + 0x14) * 4" (pointer_expression "*(int *)(iVar10 + 0x14)" (* "*") (cast_expression "(int *)(iVar10 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x14)" (( "(") (binary_expression "iVar10 + 0x14" (identifier "iVar10") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (expression_statement "local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);" (assignment_expression "local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4)" (identifier "local_d8") (= "=") (cast_expression "(double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4)" (* "*") (cast_expression "(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4)" (( "(") (binary_expression "(int)pdVar29 + *(int *)(iVar10 + 0x20) * 4" (cast_expression "(int)pdVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar29")) (+ "+") (binary_expression "*(int *)(iVar10 + 0x20) * 4" (pointer_expression "*(int *)(iVar10 + 0x20)" (* "*") (cast_expression "(int *)(iVar10 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x20)" (( "(") (binary_expression "iVar10 + 0x20" (identifier "iVar10") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (if_statement "if (*(int *)(iVar10 + 0x28) != 0) {\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }" (if "if") (parenthesized_expression "(*(int *)(iVar10 + 0x28) != 0)" (( "(") (binary_expression "*(int *)(iVar10 + 0x28) != 0" (pointer_expression "*(int *)(iVar10 + 0x28)" (* "*") (cast_expression "(int *)(iVar10 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x28)" (( "(") (binary_expression "iVar10 + 0x28" (identifier "iVar10") (+ "+") (number_literal "0x28")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);\n                }" ({ "{") (expression_statement "local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);" (assignment_expression "local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4)" (identifier "local_d0") (= "=") (cast_expression "(double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4)" (* "*") (cast_expression "(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4)" (( "(") (binary_expression "(int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4" (cast_expression "(int)pdVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar29")) (+ "+") (binary_expression "*(int *)(iVar10 + 0x2c) * 4" (pointer_expression "*(int *)(iVar10 + 0x2c)" (* "*") (cast_expression "(int *)(iVar10 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x2c)" (( "(") (binary_expression "iVar10 + 0x2c" (identifier "iVar10") (+ "+") (number_literal "0x2c")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar10 + 0x34) != 0) {\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }" (if "if") (parenthesized_expression "(*(int *)(iVar10 + 0x34) != 0)" (( "(") (binary_expression "*(int *)(iVar10 + 0x34) != 0" (pointer_expression "*(int *)(iVar10 + 0x34)" (* "*") (cast_expression "(int *)(iVar10 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x34)" (( "(") (binary_expression "iVar10 + 0x34" (identifier "iVar10") (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);\n                  local_110[2] = 4;\n                }" ({ "{") (expression_statement "local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);" (assignment_expression "local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4)" (identifier "local_c8") (= "=") (cast_expression "(double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4)" (* "*") (cast_expression "(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4)" (( "(") (binary_expression "(int)pdVar29 + *(int *)(iVar10 + 0x38) * 4" (cast_expression "(int)pdVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar29")) (+ "+") (binary_expression "*(int *)(iVar10 + 0x38) * 4" (pointer_expression "*(int *)(iVar10 + 0x38)" (* "*") (cast_expression "(int *)(iVar10 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x38)" (( "(") (binary_expression "iVar10 + 0x38" (identifier "iVar10") (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (expression_statement "local_110[2] = 4;" (assignment_expression "local_110[2] = 4" (subscript_expression "local_110[2]" (identifier "local_110") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "4")) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar10 + 0x40) != 0) {\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }" (if "if") (parenthesized_expression "(*(int *)(iVar10 + 0x40) != 0)" (( "(") (binary_expression "*(int *)(iVar10 + 0x40) != 0" (pointer_expression "*(int *)(iVar10 + 0x40)" (* "*") (cast_expression "(int *)(iVar10 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x40)" (( "(") (binary_expression "iVar10 + 0x40" (identifier "iVar10") (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);\n                }" ({ "{") (expression_statement "local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);" (assignment_expression "local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4)" (identifier "local_c0") (= "=") (cast_expression "(double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4)" (* "*") (cast_expression "(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4)" (( "(") (binary_expression "(int)pdVar29 + *(int *)(iVar10 + 0x44) * 4" (cast_expression "(int)pdVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar29")) (+ "+") (binary_expression "*(int *)(iVar10 + 0x44) * 4" (pointer_expression "*(int *)(iVar10 + 0x44)" (* "*") (cast_expression "(int *)(iVar10 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x44)" (( "(") (binary_expression "iVar10 + 0x44" (identifier "iVar10") (+ "+") (number_literal "0x44")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "dVar40 = local_70 * in_f26_27;" (assignment_expression "dVar40 = local_70 * in_f26_27" (identifier "dVar40") (= "=") (binary_expression "local_70 * in_f26_27" (identifier "local_70") (* "*") (identifier "in_f26_27"))) (; ";")) (expression_statement "dVar47 = local_c8 * in_f26_27;" (assignment_expression "dVar47 = local_c8 * in_f26_27" (identifier "dVar47") (= "=") (binary_expression "local_c8 * in_f26_27" (identifier "local_c8") (* "*") (identifier "in_f26_27"))) (; ";")) (expression_statement "dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;" (assignment_expression "dVar44 = (dVar40 + dVar47) - dVar40 * dVar47" (identifier "dVar44") (= "=") (binary_expression "(dVar40 + dVar47) - dVar40 * dVar47" (parenthesized_expression "(dVar40 + dVar47)" (( "(") (binary_expression "dVar40 + dVar47" (identifier "dVar40") (+ "+") (identifier "dVar47")) () ")")) (- "-") (binary_expression "dVar40 * dVar47" (identifier "dVar40") (* "*") (identifier "dVar47")))) (; ";")) (if_statement "if (0.0 <= dVar44) {\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }\n            else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }" (if "if") (parenthesized_expression "(0.0 <= dVar44)" (( "(") (binary_expression "0.0 <= dVar44" (number_literal "0.0") (<= "<=") (identifier "dVar44")) () ")")) (compound_statement "{\n              local_c8 = dVar44;\n              if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);\n              if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }\n            }" ({ "{") (expression_statement "local_c8 = dVar44;" (assignment_expression "local_c8 = dVar44" (identifier "local_c8") (= "=") (identifier "dVar44")) (; ";")) (if_statement "if (in_f20_21 < dVar44) {\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }" (if "if") (parenthesized_expression "(in_f20_21 < dVar44)" (( "(") (binary_expression "in_f20_21 < dVar44" (identifier "in_f20_21") (< "<") (identifier "dVar44")) () ")")) (compound_statement "{\n                local_c8 = *(double *)((int)unaff_s3 + 0x4408);\n              }" ({ "{") (expression_statement "local_c8 = *(double *)((int)unaff_s3 + 0x4408);" (assignment_expression "local_c8 = *(double *)((int)unaff_s3 + 0x4408)" (identifier "local_c8") (= "=") (pointer_expression "*(double *)((int)unaff_s3 + 0x4408)" (* "*") (cast_expression "(double *)((int)unaff_s3 + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s3 + 0x4408)" (( "(") (binary_expression "(int)unaff_s3 + 0x4408" (cast_expression "(int)unaff_s3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s3")) (+ "+") (number_literal "0x4408")) () ")"))))) (; ";")) (} "}"))) (expression_statement "local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);" (assignment_expression "local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48)" (identifier "local_c8") (= "=") (binary_expression "local_c8 * *(double *)(puVar36 + 0x4a48)" (identifier "local_c8") (* "*") (pointer_expression "*(double *)(puVar36 + 0x4a48)" (* "*") (cast_expression "(double *)(puVar36 + 0x4a48)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x4a48)" (( "(") (binary_expression "puVar36 + 0x4a48" (identifier "puVar36") (+ "+") (number_literal "0x4a48")) () ")")))))) (; ";")) (if_statement "if (0.0 <= dVar44) {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }\n              else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }" (if "if") (parenthesized_expression "(0.0 <= dVar44)" (( "(") (binary_expression "0.0 <= dVar44" (number_literal "0.0") (<= "<=") (identifier "dVar44")) () ")")) (compound_statement "{\n                dVar45 = *(double *)((int)unaff_s3 + 0x4408);\n              }" ({ "{") (expression_statement "dVar45 = *(double *)((int)unaff_s3 + 0x4408);" (assignment_expression "dVar45 = *(double *)((int)unaff_s3 + 0x4408)" (identifier "dVar45") (= "=") (pointer_expression "*(double *)((int)unaff_s3 + 0x4408)" (* "*") (cast_expression "(double *)((int)unaff_s3 + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s3 + 0x4408)" (( "(") (binary_expression "(int)unaff_s3 + 0x4408" (cast_expression "(int)unaff_s3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s3")) (+ "+") (number_literal "0x4408")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }" (else "else") (compound_statement "{\n                dVar45 = *(double *)((int)unaff_s3 + 0x4418);\n              }" ({ "{") (expression_statement "dVar45 = *(double *)((int)unaff_s3 + 0x4418);" (assignment_expression "dVar45 = *(double *)((int)unaff_s3 + 0x4418)" (identifier "dVar45") (= "=") (pointer_expression "*(double *)((int)unaff_s3 + 0x4418)" (* "*") (cast_expression "(double *)((int)unaff_s3 + 0x4418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s3 + 0x4418)" (( "(") (binary_expression "(int)unaff_s3 + 0x4418" (cast_expression "(int)unaff_s3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s3")) (+ "+") (number_literal "0x4418")) () ")"))))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }" (else "else") (compound_statement "{\n              local_c8 = 0.0;\n              dVar45 = in_f22_23;\n            }" ({ "{") (expression_statement "local_c8 = 0.0;" (assignment_expression "local_c8 = 0.0" (identifier "local_c8") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "dVar45 = in_f22_23;" (assignment_expression "dVar45 = in_f22_23" (identifier "dVar45") (= "=") (identifier "in_f22_23")) (; ";")) (} "}")))) (if_statement "if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }\n            else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }" (if "if") (parenthesized_expression "(*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45)" (( "(") (binary_expression "*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45" (pointer_expression "*(double *)(puVar36 + 0x43c8)" (* "*") (cast_expression "(double *)(puVar36 + 0x43c8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x43c8)" (( "(") (binary_expression "puVar36 + 0x43c8" (identifier "puVar36") (+ "+") (number_literal "0x43c8")) () ")")))) (<= "<=") (binary_expression "dVar44 * dVar45" (identifier "dVar44") (* "*") (identifier "dVar45"))) () ")")) (compound_statement "{\n              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;\n            }" ({ "{") (expression_statement "dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;" (assignment_expression "dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44" (identifier "dVar45") (= "=") (binary_expression "*(double *)((int)unaff_s3 + 0x4408) / dVar44" (pointer_expression "*(double *)((int)unaff_s3 + 0x4408)" (* "*") (cast_expression "(double *)((int)unaff_s3 + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s3 + 0x4408)" (( "(") (binary_expression "(int)unaff_s3 + 0x4408" (cast_expression "(int)unaff_s3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s3")) (+ "+") (number_literal "0x4408")) () ")")))) (/ "/") (identifier "dVar44"))) (; ";")) (} "}")) (else_clause "else {\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }" (else "else") (compound_statement "{\n              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);\n            }" ({ "{") (expression_statement "dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);" (assignment_expression "dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8)" (identifier "dVar45") (= "=") (binary_expression "dVar45 / *(double *)(puVar36 + 0x43c8)" (identifier "dVar45") (/ "/") (pointer_expression "*(double *)(puVar36 + 0x43c8)" (* "*") (cast_expression "(double *)(puVar36 + 0x43c8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x43c8)" (( "(") (binary_expression "puVar36 + 0x43c8" (identifier "puVar36") (+ "+") (number_literal "0x43c8")) () ")")))))) (; ";")) (} "}")))) (expression_statement "dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;" (assignment_expression "dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40" (identifier "dVar44") (= "=") (binary_expression "*(double *)((int)unaff_s3 + 0x4408) - dVar40" (pointer_expression "*(double *)((int)unaff_s3 + 0x4408)" (* "*") (cast_expression "(double *)((int)unaff_s3 + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s3 + 0x4408)" (( "(") (binary_expression "(int)unaff_s3 + 0x4408" (cast_expression "(int)unaff_s3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s3")) (+ "+") (number_literal "0x4408")) () ")")))) (- "-") (identifier "dVar40"))) (; ";")) (expression_statement "local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;" (assignment_expression "local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45" (identifier "local_e8") (= "=") (binary_expression "(dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45" (parenthesized_expression "(dVar47 * local_e8 * dVar44 + dVar40 * local_90)" (( "(") (binary_expression "dVar47 * local_e8 * dVar44 + dVar40 * local_90" (binary_expression "dVar47 * local_e8 * dVar44" (binary_expression "dVar47 * local_e8" (identifier "dVar47") (* "*") (identifier "local_e8")) (* "*") (identifier "dVar44")) (+ "+") (binary_expression "dVar40 * local_90" (identifier "dVar40") (* "*") (identifier "local_90"))) () ")")) (* "*") (identifier "dVar45"))) (; ";")) (expression_statement "local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;" (assignment_expression "local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45" (identifier "local_e0") (= "=") (binary_expression "(dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45" (parenthesized_expression "(dVar47 * local_e0 * dVar44 + dVar40 * local_88)" (( "(") (binary_expression "dVar47 * local_e0 * dVar44 + dVar40 * local_88" (binary_expression "dVar47 * local_e0 * dVar44" (binary_expression "dVar47 * local_e0" (identifier "dVar47") (* "*") (identifier "local_e0")) (* "*") (identifier "dVar44")) (+ "+") (binary_expression "dVar40 * local_88" (identifier "dVar40") (* "*") (identifier "local_88"))) () ")")) (* "*") (identifier "dVar45"))) (; ";")) (expression_statement "local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;" (assignment_expression "local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45" (identifier "local_d8") (= "=") (binary_expression "(dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45" (parenthesized_expression "(dVar47 * local_d8 * dVar44 + dVar40 * local_80)" (( "(") (binary_expression "dVar47 * local_d8 * dVar44 + dVar40 * local_80" (binary_expression "dVar47 * local_d8 * dVar44" (binary_expression "dVar47 * local_d8" (identifier "dVar47") (* "*") (identifier "local_d8")) (* "*") (identifier "dVar44")) (+ "+") (binary_expression "dVar40 * local_80" (identifier "dVar40") (* "*") (identifier "local_80"))) () ")")) (* "*") (identifier "dVar45"))) (; ";")) (if_statement "if (local_110[1] == 2) {\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }" (if "if") (parenthesized_expression "(local_110[1] == 2)" (( "(") (binary_expression "local_110[1] == 2" (subscript_expression "local_110[1]" (identifier "local_110") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;\n            }" ({ "{") (expression_statement "local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;" (assignment_expression "local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45" (identifier "local_d0") (= "=") (binary_expression "(dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45" (parenthesized_expression "(dVar47 * local_d0 * dVar44 + dVar40 * local_78)" (( "(") (binary_expression "dVar47 * local_d0 * dVar44 + dVar40 * local_78" (binary_expression "dVar47 * local_d0 * dVar44" (binary_expression "dVar47 * local_d0" (identifier "dVar47") (* "*") (identifier "local_d0")) (* "*") (identifier "dVar44")) (+ "+") (binary_expression "dVar40 * local_78" (identifier "dVar40") (* "*") (identifier "local_78"))) () ")")) (* "*") (identifier "dVar45"))) (; ";")) (} "}"))) (expression_statement "iVar10 = piVar2[0xb4];" (assignment_expression "iVar10 = piVar2[0xb4]" (identifier "iVar10") (= "=") (subscript_expression "piVar2[0xb4]" (identifier "piVar2") ([ "[") (number_literal "0xb4") (] "]"))) (; ";")) (expression_statement "*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;" (assignment_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8" (pointer_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4)" (* "*") (cast_expression "(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar29 + *(int *)(iVar10 + 8) * 4)" (( "(") (binary_expression "(int)pdVar29 + *(int *)(iVar10 + 8) * 4" (cast_expression "(int)pdVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar29")) (+ "+") (binary_expression "*(int *)(iVar10 + 8) * 4" (pointer_expression "*(int *)(iVar10 + 8)" (* "*") (cast_expression "(int *)(iVar10 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (cast_expression "(float)local_e8" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "local_e8"))) (; ";")) (expression_statement "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;" (assignment_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0" (pointer_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4)" (* "*") (cast_expression "(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4)" (( "(") (binary_expression "(int)pdVar29 + *(int *)(iVar10 + 0x14) * 4" (cast_expression "(int)pdVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar29")) (+ "+") (binary_expression "*(int *)(iVar10 + 0x14) * 4" (pointer_expression "*(int *)(iVar10 + 0x14)" (* "*") (cast_expression "(int *)(iVar10 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x14)" (( "(") (binary_expression "iVar10 + 0x14" (identifier "iVar10") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (cast_expression "(float)local_e0" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "local_e0"))) (; ";")) (expression_statement "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;" (assignment_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8" (pointer_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4)" (* "*") (cast_expression "(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4)" (( "(") (binary_expression "(int)pdVar29 + *(int *)(iVar10 + 0x20) * 4" (cast_expression "(int)pdVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar29")) (+ "+") (binary_expression "*(int *)(iVar10 + 0x20) * 4" (pointer_expression "*(int *)(iVar10 + 0x20)" (* "*") (cast_expression "(int *)(iVar10 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x20)" (( "(") (binary_expression "iVar10 + 0x20" (identifier "iVar10") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (cast_expression "(float)local_d8" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "local_d8"))) (; ";")) (if_statement "if (*(int *)(iVar10 + 0x28) != 0) {\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }" (if "if") (parenthesized_expression "(*(int *)(iVar10 + 0x28) != 0)" (( "(") (binary_expression "*(int *)(iVar10 + 0x28) != 0" (pointer_expression "*(int *)(iVar10 + 0x28)" (* "*") (cast_expression "(int *)(iVar10 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x28)" (( "(") (binary_expression "iVar10 + 0x28" (identifier "iVar10") (+ "+") (number_literal "0x28")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;\n            }" ({ "{") (expression_statement "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;" (assignment_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0" (pointer_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4)" (* "*") (cast_expression "(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4)" (( "(") (binary_expression "(int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4" (cast_expression "(int)pdVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar29")) (+ "+") (binary_expression "*(int *)(iVar10 + 0x2c) * 4" (pointer_expression "*(int *)(iVar10 + 0x2c)" (* "*") (cast_expression "(int *)(iVar10 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x2c)" (( "(") (binary_expression "iVar10 + 0x2c" (identifier "iVar10") (+ "+") (number_literal "0x2c")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (cast_expression "(float)local_d0" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "local_d0"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar10 + 0x34) != 0) {\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }" (if "if") (parenthesized_expression "(*(int *)(iVar10 + 0x34) != 0)" (( "(") (binary_expression "*(int *)(iVar10 + 0x34) != 0" (pointer_expression "*(int *)(iVar10 + 0x34)" (* "*") (cast_expression "(int *)(iVar10 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x34)" (( "(") (binary_expression "iVar10 + 0x34" (identifier "iVar10") (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }\n              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n            }" ({ "{") (if_statement "if (local_110[2] == 0) {\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }\n              else {\n                fVar43 = (float)local_c8;\n              }" (if "if") (parenthesized_expression "(local_110[2] == 0)" (( "(") (binary_expression "local_110[2] == 0" (subscript_expression "local_110[2]" (identifier "local_110") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);\n              }" ({ "{") (expression_statement "fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);" (assignment_expression "fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (identifier "fVar43") (= "=") (pointer_expression "*(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (* "*") (cast_expression "(float *)(PTR_LAB_003f98e0 + 0x4aa8)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003f98e0 + 0x4aa8)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x4aa8" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x4aa8")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                fVar43 = (float)local_c8;\n              }" (else "else") (compound_statement "{\n                fVar43 = (float)local_c8;\n              }" ({ "{") (expression_statement "fVar43 = (float)local_c8;" (assignment_expression "fVar43 = (float)local_c8" (identifier "fVar43") (= "=") (cast_expression "(float)local_c8" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "local_c8"))) (; ";")) (} "}")))) (expression_statement "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;" (assignment_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43" (pointer_expression "*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4)" (* "*") (cast_expression "(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4)" (( "(") (binary_expression "(int)pdVar29 + *(int *)(iVar10 + 0x38) * 4" (cast_expression "(int)pdVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar29")) (+ "+") (binary_expression "*(int *)(iVar10 + 0x38) * 4" (pointer_expression "*(int *)(iVar10 + 0x38)" (* "*") (cast_expression "(int *)(iVar10 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x38)" (( "(") (binary_expression "iVar10 + 0x38" (identifier "iVar10") (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "fVar43")) (; ";")) (} "}"))) (expression_statement "pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);" (assignment_expression "pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4)" (identifier "pdVar29") (= "=") (cast_expression "(double *)((int)pdVar29 + piVar2[0xb0] * 4)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar29 + piVar2[0xb0] * 4)" (( "(") (binary_expression "(int)pdVar29 + piVar2[0xb0] * 4" (cast_expression "(int)pdVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar29")) (+ "+") (binary_expression "piVar2[0xb0] * 4" (subscript_expression "piVar2[0xb0]" (identifier "piVar2") ([ "[") (number_literal "0xb0") (] "]")) (* "*") (number_literal "4"))) () ")")))) (; ";")) (} "}"))) (expression_statement "pdVar16 = pdVar5;" (assignment_expression "pdVar16 = pdVar5" (identifier "pdVar16") (= "=") (identifier "pdVar5")) (; ";")) (expression_statement "iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);" (assignment_expression "iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4)" (identifier "iVar10") (= "=") (call_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4)" (parenthesized_expression "(*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)" (( "(") (pointer_expression "*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510" (* "*") (cast_expression "(code *)PTR_SyncCacheViewAuthenticPixels_003fa510" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_SyncCacheViewAuthenticPixels_003fa510"))) () ")")) (argument_list "(pdVar5,unaff_s4)" (( "(") (identifier "pdVar5") (, ",") (identifier "unaff_s4") () ")")))) (; ";")) (if_statement "if (iVar10 == 0) {\n            param_1[10] = 0;\n          }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            param_1[10] = 0;\n          }" ({ "{") (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}"))) (} "}")))) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "unaff_s6 = (double *)puVar36;" (assignment_expression "unaff_s6 = (double *)puVar36" (identifier "unaff_s6") (= "=") (cast_expression "(double *)puVar36" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar36"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar3 < (int)puVar6)" (( "(") (binary_expression "iVar3 < (int)puVar6" (identifier "iVar3") (< "<") (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6"))) () ")")) (; ";")) (} "}"))) (if_statement "if (local_5c == *(int *)PTR___stack_chk_guard_003fa248) {\n    return *(int *)PTR___stack_chk_guard_003fa248;\n  }" (if "if") (parenthesized_expression "(local_5c == *(int *)PTR___stack_chk_guard_003fa248)" (( "(") (binary_expression "local_5c == *(int *)PTR___stack_chk_guard_003fa248" (identifier "local_5c") (== "==") (pointer_expression "*(int *)PTR___stack_chk_guard_003fa248" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_003fa248" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_003fa248")))) () ")")) (compound_statement "{\n    return *(int *)PTR___stack_chk_guard_003fa248;\n  }" ({ "{") (return_statement "return *(int *)PTR___stack_chk_guard_003fa248;" (return "return") (pointer_expression "*(int *)PTR___stack_chk_guard_003fa248" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_003fa248" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_003fa248"))) (; ";")) (} "}"))) (expression_statement "pcVar37 = FUN_000a3ef0;" (assignment_expression "pcVar37 = FUN_000a3ef0" (identifier "pcVar37") (= "=") (identifier "FUN_000a3ef0")) (; ";")) (expression_statement "puVar36 = PTR___stack_chk_fail_003fa07c;" (assignment_expression "puVar36 = PTR___stack_chk_fail_003fa07c" (identifier "puVar36") (= "=") (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 "puStack_350 = puVar36 + 0x35d9c0;" (assignment_expression "puStack_350 = puVar36 + 0x35d9c0" (identifier "puStack_350") (= "=") (binary_expression "puVar36 + 0x35d9c0" (identifier "puVar36") (+ "+") (number_literal "0x35d9c0"))) (; ";")) (expression_statement "iStack_1e4 = **(int **)(puVar36 + 0x356358);" (assignment_expression "iStack_1e4 = **(int **)(puVar36 + 0x356358)" (identifier "iStack_1e4") (= "=") (pointer_expression "**(int **)(puVar36 + 0x356358)" (* "*") (pointer_expression "*(int **)(puVar36 + 0x356358)" (* "*") (cast_expression "(int **)(puVar36 + 0x356358)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x356358)" (( "(") (binary_expression "puVar36 + 0x356358" (identifier "puVar36") (+ "+") (number_literal "0x356358")) () ")")))))) (; ";")) (expression_statement "iVar28 = *(int *)((int)pdVar16 + 0x24);" (assignment_expression "iVar28 = *(int *)((int)pdVar16 + 0x24)" (identifier "iVar28") (= "=") (pointer_expression "*(int *)((int)pdVar16 + 0x24)" (* "*") (cast_expression "(int *)((int)pdVar16 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar16 + 0x24)" (( "(") (binary_expression "(int)pdVar16 + 0x24" (cast_expression "(int)pdVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar16")) (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "pdStack_2a8 = pdVar16;" (assignment_expression "pdStack_2a8 = pdVar16" (identifier "pdStack_2a8") (= "=") (identifier "pdVar16")) (; ";")) (expression_statement "pdStack_1e0 = pdVar29;" (assignment_expression "pdStack_1e0 = pdVar29" (identifier "pdStack_1e0") (= "=") (identifier "pdVar29")) (; ";")) (expression_statement "piStack_1dc = piVar2;" (assignment_expression "piStack_1dc = piVar2" (identifier "piStack_1dc") (= "=") (identifier "piVar2")) (; ";")) (expression_statement "iStack_1d8 = unaff_s2;" (assignment_expression "iStack_1d8 = unaff_s2" (identifier "iStack_1d8") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "pdStack_1d4 = unaff_s3;" (assignment_expression "pdStack_1d4 = unaff_s3" (identifier "pdStack_1d4") (= "=") (identifier "unaff_s3")) (; ";")) (expression_statement "piStack_1d0 = unaff_s4;" (assignment_expression "piStack_1d0 = unaff_s4" (identifier "piStack_1d0") (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "puStack_1cc = param_1;" (assignment_expression "puStack_1cc = param_1" (identifier "puStack_1cc") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pdStack_1c8 = unaff_s6;" (assignment_expression "pdStack_1c8 = unaff_s6" (identifier "pdStack_1c8") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "uStack_1c4 = unaff_s7;" (assignment_expression "uStack_1c4 = unaff_s7" (identifier "uStack_1c4") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "iStack_1c0 = iVar3;" (assignment_expression "iStack_1c0 = iVar3" (identifier "iStack_1c0") (= "=") (identifier "iVar3")) (; ";")) (expression_statement "pcStack_1bc = pcVar37;" (assignment_expression "pcStack_1bc = pcVar37" (identifier "pcStack_1bc") (= "=") (identifier "pcVar37")) (; ";")) (expression_statement "dStack_1b8 = in_f20_21;" (assignment_expression "dStack_1b8 = in_f20_21" (identifier "dStack_1b8") (= "=") (identifier "in_f20_21")) (; ";")) (expression_statement "dStack_1b0 = in_f22_23;" (assignment_expression "dStack_1b0 = in_f22_23" (identifier "dStack_1b0") (= "=") (identifier "in_f22_23")) (; ";")) (expression_statement "dStack_1a8 = in_f24_25;" (assignment_expression "dStack_1a8 = in_f24_25" (identifier "dStack_1a8") (= "=") (identifier "in_f24_25")) (; ";")) (expression_statement "dStack_1a0 = in_f26_27;" (assignment_expression "dStack_1a0 = in_f26_27" (identifier "dStack_1a0") (= "=") (identifier "in_f26_27")) (; ";")) (expression_statement "dStack_198 = in_f28_29;" (assignment_expression "dStack_198 = in_f28_29" (identifier "dStack_198") (= "=") (identifier "in_f28_29")) (; ";")) (expression_statement "dStack_190 = in_f30_31;" (assignment_expression "dStack_190 = in_f30_31" (identifier "dStack_190") (= "=") (identifier "in_f30_31")) (; ";")) (expression_statement "iVar10 = (**(code **)(puVar36 + 0x356a34))();" (assignment_expression "iVar10 = (**(code **)(puVar36 + 0x356a34))()" (identifier "iVar10") (= "=") (call_expression "(**(code **)(puVar36 + 0x356a34))()" (parenthesized_expression "(**(code **)(puVar36 + 0x356a34))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x356a34)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x356a34)" (* "*") (cast_expression "(code **)(puVar36 + 0x356a34)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x356a34)" (( "(") (binary_expression "puVar36 + 0x356a34" (identifier "puVar36") (+ "+") (number_literal "0x356a34")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar49 = (**(code **)(puStack_350 + -0x7390))();" (assignment_expression "iVar49 = (**(code **)(puStack_350 + -0x7390))()" (identifier "iVar49") (= "=") (call_expression "(**(code **)(puStack_350 + -0x7390))()" (parenthesized_expression "(**(code **)(puStack_350 + -0x7390))" (( "(") (pointer_expression "**(code **)(puStack_350 + -0x7390)" (* "*") (pointer_expression "*(code **)(puStack_350 + -0x7390)" (* "*") (cast_expression "(code **)(puStack_350 + -0x7390)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_350 + -0x7390)" (( "(") (binary_expression "puStack_350 + -0x7390" (identifier "puStack_350") (+ "+") (number_literal "-0x7390")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar12 = (*(int *)(pdVar16 + 5) + 1) - iVar28;" (assignment_expression "iVar12 = (*(int *)(pdVar16 + 5) + 1) - iVar28" (identifier "iVar12") (= "=") (binary_expression "(*(int *)(pdVar16 + 5) + 1) - iVar28" (parenthesized_expression "(*(int *)(pdVar16 + 5) + 1)" (( "(") (binary_expression "*(int *)(pdVar16 + 5) + 1" (pointer_expression "*(int *)(pdVar16 + 5)" (* "*") (cast_expression "(int *)(pdVar16 + 5)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar16 + 5)" (( "(") (binary_expression "pdVar16 + 5" (identifier "pdVar16") (+ "+") (number_literal "5")) () ")")))) (+ "+") (number_literal "1")) () ")")) (- "-") (identifier "iVar28"))) (; ";")) (if_statement "if (iVar10 == 0) {\n    trap(7);\n  }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (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 "iVar50 = iVar12 / iVar10;" (assignment_expression "iVar50 = iVar12 / iVar10" (identifier "iVar50") (= "=") (binary_expression "iVar12 / iVar10" (identifier "iVar12") (/ "/") (identifier "iVar10"))) (; ";")) (expression_statement "iVar12 = iVar12 % iVar10;" (assignment_expression "iVar12 = iVar12 % iVar10" (identifier "iVar12") (= "=") (binary_expression "iVar12 % iVar10" (identifier "iVar12") (% "%") (identifier "iVar10"))) (; ";")) (expression_statement "uVar26 = (uint)(iVar49 < iVar12);" (assignment_expression "uVar26 = (uint)(iVar49 < iVar12)" (identifier "uVar26") (= "=") (call_expression "(uint)(iVar49 < iVar12)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar49 < iVar12)" (( "(") (binary_expression "iVar49 < iVar12" (identifier "iVar49") (< "<") (identifier "iVar12")) () ")")))) (; ";")) (if_statement "if (uVar26 != 0) {\n    iVar50 = iVar50 + 1;\n    iVar12 = 0;\n  }" (if "if") (parenthesized_expression "(uVar26 != 0)" (( "(") (binary_expression "uVar26 != 0" (identifier "uVar26") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar50 = iVar50 + 1;\n    iVar12 = 0;\n  }" ({ "{") (expression_statement "iVar50 = iVar50 + 1;" (assignment_expression "iVar50 = iVar50 + 1" (identifier "iVar50") (= "=") (binary_expression "iVar50 + 1" (identifier "iVar50") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar8 = iVar50 * iVar49 + iVar12;" (assignment_expression "uVar8 = iVar50 * iVar49 + iVar12" (identifier "uVar8") (= "=") (binary_expression "iVar50 * iVar49 + iVar12" (binary_expression "iVar50 * iVar49" (identifier "iVar50") (* "*") (identifier "iVar49")) (+ "+") (identifier "iVar12"))) (; ";")) (expression_statement "pdVar29 = (double *)(iVar50 + uVar8);" (assignment_expression "pdVar29 = (double *)(iVar50 + uVar8)" (identifier "pdVar29") (= "=") (cast_expression "(double *)(iVar50 + uVar8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar50 + uVar8)" (( "(") (binary_expression "iVar50 + uVar8" (identifier "iVar50") (+ "+") (identifier "uVar8")) () ")")))) (; ";")) (if_statement "if ((int)uVar8 < (int)pdVar29) {\n    iStack_29c = *(int *)((int)pdStack_2a8 + 0x1c);\n    in_f28_29 = *pdStack_2a8;\n    iStack_2f4 = *(int *)(pdStack_2a8 + 3);\n    pdStack_2a0 = *(double **)((int)pdStack_2a8 + 0x14);\n    uStack_2d0 = *(undefined4 *)(pdStack_2a8 + 2);\n    iStack_324 = *(int *)((int)pdStack_2a8 + 0xc);\n    unaff_s6 = *(double **)(pdStack_2a8 + 1);\n    iStack_2f0 = iVar28 + uVar8;\n    puStack_2a4 = (undefined1 *)(iVar28 + (int)pdVar29);\n    unaff_s7 = *(uint *)(puStack_350 + -0x7fd0);\n    dStack_320 = *(double *)(unaff_s7 + 0x4408);\n    iVar3 = *(int *)(puStack_350 + -0x7fd0);\n    dStack_2b8 = *(double *)(iVar3 + 0x43c8);\n    uStack_2f8 = uVar8;\n    do {\n      iVar28 = (**(code **)(puStack_350 + -0x7390))();\n      if (*(int *)((int)pdStack_2a8 + 0x2c) != 0) {\n        pdVar29 = *(double **)(pdStack_2a8 + 4);\n        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21);\n        uStack_2d4 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21);\n        uVar26 = uStack_2d4;\n        pdVar16 = (double *)(int)dVar39;\n        uStack_354 = uStack_2d0;\n        puStack_358 = (undefined4 *)0x1;\n        pdVar29 = pdStack_2a0;\n        pdStack_2cc = pdVar16;\n        iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)));\n        if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar28 = iVar28 * 4;\n          puVar36 = puStack_350;\n          if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar29 = pdStack_2a0;\n          iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }\n      }\n      iStack_2f0 = iStack_2f0 + 1;\n      uStack_2f8 = uStack_2f8 + 1;\n    } while (iStack_2f0 < (int)puStack_2a4);\n  }" (if "if") (parenthesized_expression "((int)uVar8 < (int)pdVar29)" (( "(") (binary_expression "(int)uVar8 < (int)pdVar29" (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8")) (< "<") (cast_expression "(int)pdVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar29"))) () ")")) (compound_statement "{\n    iStack_29c = *(int *)((int)pdStack_2a8 + 0x1c);\n    in_f28_29 = *pdStack_2a8;\n    iStack_2f4 = *(int *)(pdStack_2a8 + 3);\n    pdStack_2a0 = *(double **)((int)pdStack_2a8 + 0x14);\n    uStack_2d0 = *(undefined4 *)(pdStack_2a8 + 2);\n    iStack_324 = *(int *)((int)pdStack_2a8 + 0xc);\n    unaff_s6 = *(double **)(pdStack_2a8 + 1);\n    iStack_2f0 = iVar28 + uVar8;\n    puStack_2a4 = (undefined1 *)(iVar28 + (int)pdVar29);\n    unaff_s7 = *(uint *)(puStack_350 + -0x7fd0);\n    dStack_320 = *(double *)(unaff_s7 + 0x4408);\n    iVar3 = *(int *)(puStack_350 + -0x7fd0);\n    dStack_2b8 = *(double *)(iVar3 + 0x43c8);\n    uStack_2f8 = uVar8;\n    do {\n      iVar28 = (**(code **)(puStack_350 + -0x7390))();\n      if (*(int *)((int)pdStack_2a8 + 0x2c) != 0) {\n        pdVar29 = *(double **)(pdStack_2a8 + 4);\n        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21);\n        uStack_2d4 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21);\n        uVar26 = uStack_2d4;\n        pdVar16 = (double *)(int)dVar39;\n        uStack_354 = uStack_2d0;\n        puStack_358 = (undefined4 *)0x1;\n        pdVar29 = pdStack_2a0;\n        pdStack_2cc = pdVar16;\n        iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)));\n        if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar28 = iVar28 * 4;\n          puVar36 = puStack_350;\n          if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar29 = pdStack_2a0;\n          iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }\n      }\n      iStack_2f0 = iStack_2f0 + 1;\n      uStack_2f8 = uStack_2f8 + 1;\n    } while (iStack_2f0 < (int)puStack_2a4);\n  }" ({ "{") (expression_statement "iStack_29c = *(int *)((int)pdStack_2a8 + 0x1c);" (assignment_expression "iStack_29c = *(int *)((int)pdStack_2a8 + 0x1c)" (identifier "iStack_29c") (= "=") (pointer_expression "*(int *)((int)pdStack_2a8 + 0x1c)" (* "*") (cast_expression "(int *)((int)pdStack_2a8 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdStack_2a8 + 0x1c)" (( "(") (binary_expression "(int)pdStack_2a8 + 0x1c" (cast_expression "(int)pdStack_2a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdStack_2a8")) (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "in_f28_29 = *pdStack_2a8;" (assignment_expression "in_f28_29 = *pdStack_2a8" (identifier "in_f28_29") (= "=") (pointer_expression "*pdStack_2a8" (* "*") (identifier "pdStack_2a8"))) (; ";")) (expression_statement "iStack_2f4 = *(int *)(pdStack_2a8 + 3);" (assignment_expression "iStack_2f4 = *(int *)(pdStack_2a8 + 3)" (identifier "iStack_2f4") (= "=") (pointer_expression "*(int *)(pdStack_2a8 + 3)" (* "*") (cast_expression "(int *)(pdStack_2a8 + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdStack_2a8 + 3)" (( "(") (binary_expression "pdStack_2a8 + 3" (identifier "pdStack_2a8") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "pdStack_2a0 = *(double **)((int)pdStack_2a8 + 0x14);" (assignment_expression "pdStack_2a0 = *(double **)((int)pdStack_2a8 + 0x14)" (identifier "pdStack_2a0") (= "=") (pointer_expression "*(double **)((int)pdStack_2a8 + 0x14)" (* "*") (cast_expression "(double **)((int)pdStack_2a8 + 0x14)" (( "(") (type_descriptor "double **" (primitive_type "double") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pdStack_2a8 + 0x14)" (( "(") (binary_expression "(int)pdStack_2a8 + 0x14" (cast_expression "(int)pdStack_2a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdStack_2a8")) (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "uStack_2d0 = *(undefined4 *)(pdStack_2a8 + 2);" (assignment_expression "uStack_2d0 = *(undefined4 *)(pdStack_2a8 + 2)" (identifier "uStack_2d0") (= "=") (pointer_expression "*(undefined4 *)(pdStack_2a8 + 2)" (* "*") (cast_expression "(undefined4 *)(pdStack_2a8 + 2)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdStack_2a8 + 2)" (( "(") (binary_expression "pdStack_2a8 + 2" (identifier "pdStack_2a8") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "iStack_324 = *(int *)((int)pdStack_2a8 + 0xc);" (assignment_expression "iStack_324 = *(int *)((int)pdStack_2a8 + 0xc)" (identifier "iStack_324") (= "=") (pointer_expression "*(int *)((int)pdStack_2a8 + 0xc)" (* "*") (cast_expression "(int *)((int)pdStack_2a8 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdStack_2a8 + 0xc)" (( "(") (binary_expression "(int)pdStack_2a8 + 0xc" (cast_expression "(int)pdStack_2a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdStack_2a8")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "unaff_s6 = *(double **)(pdStack_2a8 + 1);" (assignment_expression "unaff_s6 = *(double **)(pdStack_2a8 + 1)" (identifier "unaff_s6") (= "=") (pointer_expression "*(double **)(pdStack_2a8 + 1)" (* "*") (cast_expression "(double **)(pdStack_2a8 + 1)" (( "(") (type_descriptor "double **" (primitive_type "double") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pdStack_2a8 + 1)" (( "(") (binary_expression "pdStack_2a8 + 1" (identifier "pdStack_2a8") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "iStack_2f0 = iVar28 + uVar8;" (assignment_expression "iStack_2f0 = iVar28 + uVar8" (identifier "iStack_2f0") (= "=") (binary_expression "iVar28 + uVar8" (identifier "iVar28") (+ "+") (identifier "uVar8"))) (; ";")) (expression_statement "puStack_2a4 = (undefined1 *)(iVar28 + (int)pdVar29);" (assignment_expression "puStack_2a4 = (undefined1 *)(iVar28 + (int)pdVar29)" (identifier "puStack_2a4") (= "=") (cast_expression "(undefined1 *)(iVar28 + (int)pdVar29)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar28 + (int)pdVar29)" (( "(") (binary_expression "iVar28 + (int)pdVar29" (identifier "iVar28") (+ "+") (cast_expression "(int)pdVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar29"))) () ")")))) (; ";")) (expression_statement "unaff_s7 = *(uint *)(puStack_350 + -0x7fd0);" (assignment_expression "unaff_s7 = *(uint *)(puStack_350 + -0x7fd0)" (identifier "unaff_s7") (= "=") (pointer_expression "*(uint *)(puStack_350 + -0x7fd0)" (* "*") (cast_expression "(uint *)(puStack_350 + -0x7fd0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_350 + -0x7fd0)" (( "(") (binary_expression "puStack_350 + -0x7fd0" (identifier "puStack_350") (+ "+") (number_literal "-0x7fd0")) () ")"))))) (; ";")) (expression_statement "dStack_320 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dStack_320 = *(double *)(unaff_s7 + 0x4408)" (identifier "dStack_320") (= "=") (pointer_expression "*(double *)(unaff_s7 + 0x4408)" (* "*") (cast_expression "(double *)(unaff_s7 + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s7 + 0x4408)" (( "(") (binary_expression "unaff_s7 + 0x4408" (identifier "unaff_s7") (+ "+") (number_literal "0x4408")) () ")"))))) (; ";")) (expression_statement "iVar3 = *(int *)(puStack_350 + -0x7fd0);" (assignment_expression "iVar3 = *(int *)(puStack_350 + -0x7fd0)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(puStack_350 + -0x7fd0)" (* "*") (cast_expression "(int *)(puStack_350 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_350 + -0x7fd0)" (( "(") (binary_expression "puStack_350 + -0x7fd0" (identifier "puStack_350") (+ "+") (number_literal "-0x7fd0")) () ")"))))) (; ";")) (expression_statement "dStack_2b8 = *(double *)(iVar3 + 0x43c8);" (assignment_expression "dStack_2b8 = *(double *)(iVar3 + 0x43c8)" (identifier "dStack_2b8") (= "=") (pointer_expression "*(double *)(iVar3 + 0x43c8)" (* "*") (cast_expression "(double *)(iVar3 + 0x43c8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x43c8)" (( "(") (binary_expression "iVar3 + 0x43c8" (identifier "iVar3") (+ "+") (number_literal "0x43c8")) () ")"))))) (; ";")) (expression_statement "uStack_2f8 = uVar8;" (assignment_expression "uStack_2f8 = uVar8" (identifier "uStack_2f8") (= "=") (identifier "uVar8")) (; ";")) (do_statement "do {\n      iVar28 = (**(code **)(puStack_350 + -0x7390))();\n      if (*(int *)((int)pdStack_2a8 + 0x2c) != 0) {\n        pdVar29 = *(double **)(pdStack_2a8 + 4);\n        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21);\n        uStack_2d4 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21);\n        uVar26 = uStack_2d4;\n        pdVar16 = (double *)(int)dVar39;\n        uStack_354 = uStack_2d0;\n        puStack_358 = (undefined4 *)0x1;\n        pdVar29 = pdStack_2a0;\n        pdStack_2cc = pdVar16;\n        iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)));\n        if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar28 = iVar28 * 4;\n          puVar36 = puStack_350;\n          if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar29 = pdStack_2a0;\n          iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }\n      }\n      iStack_2f0 = iStack_2f0 + 1;\n      uStack_2f8 = uStack_2f8 + 1;\n    } while (iStack_2f0 < (int)puStack_2a4);" (do "do") (compound_statement "{\n      iVar28 = (**(code **)(puStack_350 + -0x7390))();\n      if (*(int *)((int)pdStack_2a8 + 0x2c) != 0) {\n        pdVar29 = *(double **)(pdStack_2a8 + 4);\n        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21);\n        uStack_2d4 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21);\n        uVar26 = uStack_2d4;\n        pdVar16 = (double *)(int)dVar39;\n        uStack_354 = uStack_2d0;\n        puStack_358 = (undefined4 *)0x1;\n        pdVar29 = pdStack_2a0;\n        pdStack_2cc = pdVar16;\n        iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)));\n        if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar28 = iVar28 * 4;\n          puVar36 = puStack_350;\n          if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar29 = pdStack_2a0;\n          iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }\n      }\n      iStack_2f0 = iStack_2f0 + 1;\n      uStack_2f8 = uStack_2f8 + 1;\n    }" ({ "{") (expression_statement "iVar28 = (**(code **)(puStack_350 + -0x7390))();" (assignment_expression "iVar28 = (**(code **)(puStack_350 + -0x7390))()" (identifier "iVar28") (= "=") (call_expression "(**(code **)(puStack_350 + -0x7390))()" (parenthesized_expression "(**(code **)(puStack_350 + -0x7390))" (( "(") (pointer_expression "**(code **)(puStack_350 + -0x7390)" (* "*") (pointer_expression "*(code **)(puStack_350 + -0x7390)" (* "*") (cast_expression "(code **)(puStack_350 + -0x7390)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_350 + -0x7390)" (( "(") (binary_expression "puStack_350 + -0x7390" (identifier "puStack_350") (+ "+") (number_literal "-0x7390")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (*(int *)((int)pdStack_2a8 + 0x2c) != 0) {\n        pdVar29 = *(double **)(pdStack_2a8 + 4);\n        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21);\n        uStack_2d4 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21);\n        uVar26 = uStack_2d4;\n        pdVar16 = (double *)(int)dVar39;\n        uStack_354 = uStack_2d0;\n        puStack_358 = (undefined4 *)0x1;\n        pdVar29 = pdStack_2a0;\n        pdStack_2cc = pdVar16;\n        iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)));\n        if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar28 = iVar28 * 4;\n          puVar36 = puStack_350;\n          if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar29 = pdStack_2a0;\n          iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(*(int *)((int)pdStack_2a8 + 0x2c) != 0)" (( "(") (binary_expression "*(int *)((int)pdStack_2a8 + 0x2c) != 0" (pointer_expression "*(int *)((int)pdStack_2a8 + 0x2c)" (* "*") (cast_expression "(int *)((int)pdStack_2a8 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdStack_2a8 + 0x2c)" (( "(") (binary_expression "(int)pdStack_2a8 + 0x2c" (cast_expression "(int)pdStack_2a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdStack_2a8")) (+ "+") (number_literal "0x2c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        pdVar29 = *(double **)(pdStack_2a8 + 4);\n        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21);\n        uStack_2d4 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21);\n        uVar26 = uStack_2d4;\n        pdVar16 = (double *)(int)dVar39;\n        uStack_354 = uStack_2d0;\n        puStack_358 = (undefined4 *)0x1;\n        pdVar29 = pdStack_2a0;\n        pdStack_2cc = pdVar16;\n        iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)));\n        if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar28 = iVar28 * 4;\n          puVar36 = puStack_350;\n          if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar29 = pdStack_2a0;\n          iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }\n      }" ({ "{") (expression_statement "pdVar29 = *(double **)(pdStack_2a8 + 4);" (assignment_expression "pdVar29 = *(double **)(pdStack_2a8 + 4)" (identifier "pdVar29") (= "=") (pointer_expression "*(double **)(pdStack_2a8 + 4)" (* "*") (cast_expression "(double **)(pdStack_2a8 + 4)" (( "(") (type_descriptor "double **" (primitive_type "double") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pdStack_2a8 + 4)" (( "(") (binary_expression "pdStack_2a8 + 4" (identifier "pdStack_2a8") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);" (assignment_expression "in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0)" (identifier "in_f20_21") (= "=") (pointer_expression "*(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0)" (* "*") (cast_expression "(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puStack_350 + -0x7fd0) + 0x43d0)" (( "(") (binary_expression "*(int *)(puStack_350 + -0x7fd0) + 0x43d0" (pointer_expression "*(int *)(puStack_350 + -0x7fd0)" (* "*") (cast_expression "(int *)(puStack_350 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_350 + -0x7fd0)" (( "(") (binary_expression "puStack_350 + -0x7fd0" (identifier "puStack_350") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x43d0")) () ")"))))) (; ";")) (expression_statement "dVar39 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21);" (assignment_expression "dVar39 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21)" (identifier "dVar39") (= "=") (cast_expression "(double)(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21)" (parenthesized_expression "(**(code **)(puStack_350 + -0x7c78))" (( "(") (pointer_expression "**(code **)(puStack_350 + -0x7c78)" (* "*") (pointer_expression "*(code **)(puStack_350 + -0x7c78)" (* "*") (cast_expression "(code **)(puStack_350 + -0x7c78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_350 + -0x7c78)" (( "(") (binary_expression "puStack_350 + -0x7c78" (identifier "puStack_350") (+ "+") (number_literal "-0x7c78")) () ")"))))) () ")")) (argument_list "(*pdVar29 - in_f20_21)" (( "(") (binary_expression "*pdVar29 - in_f20_21" (pointer_expression "*pdVar29" (* "*") (identifier "pdVar29")) (- "-") (identifier "in_f20_21")) () ")"))))) (; ";")) (expression_statement "uStack_2d4 = (uint)dVar39;" (assignment_expression "uStack_2d4 = (uint)dVar39" (identifier "uStack_2d4") (= "=") (cast_expression "(uint)dVar39" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "dVar39"))) (; ";")) (expression_statement "dVar39 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21);" (assignment_expression "dVar39 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21)" (identifier "dVar39") (= "=") (cast_expression "(double)(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21)" (parenthesized_expression "(**(code **)(puStack_350 + -0x7228))" (( "(") (pointer_expression "**(code **)(puStack_350 + -0x7228)" (* "*") (pointer_expression "*(code **)(puStack_350 + -0x7228)" (* "*") (cast_expression "(code **)(puStack_350 + -0x7228)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_350 + -0x7228)" (( "(") (binary_expression "puStack_350 + -0x7228" (identifier "puStack_350") (+ "+") (number_literal "-0x7228")) () ")"))))) () ")")) (argument_list "(pdVar29[2] + in_f20_21)" (( "(") (binary_expression "pdVar29[2] + in_f20_21" (subscript_expression "pdVar29[2]" (identifier "pdVar29") ([ "[") (number_literal "2") (] "]")) (+ "+") (identifier "in_f20_21")) () ")"))))) (; ";")) (expression_statement "uVar26 = uStack_2d4;" (assignment_expression "uVar26 = uStack_2d4" (identifier "uVar26") (= "=") (identifier "uStack_2d4")) (; ";")) (expression_statement "pdVar16 = (double *)(int)dVar39;" (assignment_expression "pdVar16 = (double *)(int)dVar39" (identifier "pdVar16") (= "=") (cast_expression "(double *)(int)dVar39" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)dVar39" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar39")))) (; ";")) (expression_statement "uStack_354 = uStack_2d0;" (assignment_expression "uStack_354 = uStack_2d0" (identifier "uStack_354") (= "=") (identifier "uStack_2d0")) (; ";")) (expression_statement "puStack_358 = (undefined4 *)0x1;" (assignment_expression "puStack_358 = (undefined4 *)0x1" (identifier "puStack_358") (= "=") (cast_expression "(undefined4 *)0x1" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "pdVar29 = pdStack_2a0;" (assignment_expression "pdVar29 = pdStack_2a0" (identifier "pdVar29") (= "=") (identifier "pdStack_2a0")) (; ";")) (expression_statement "pdStack_2cc = pdVar16;" (assignment_expression "pdStack_2cc = pdVar16" (identifier "pdStack_2cc") (= "=") (identifier "pdVar16")) (; ";")) (expression_statement "iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)));" (assignment_expression "iStack_308 = (**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)))" (identifier "iStack_308") (= "=") (call_expression "(**(code **)(puStack_350 + -0x724c))\n                               (pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)))" (parenthesized_expression "(**(code **)(puStack_350 + -0x724c))" (( "(") (pointer_expression "**(code **)(puStack_350 + -0x724c)" (* "*") (pointer_expression "*(code **)(puStack_350 + -0x724c)" (* "*") (cast_expression "(code **)(puStack_350 + -0x724c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_350 + -0x724c)" (( "(") (binary_expression "puStack_350 + -0x724c" (identifier "puStack_350") (+ "+") (number_literal "-0x724c")) () ")"))))) () ")")) (argument_list "(pdStack_2a0,uStack_2d4,iStack_2f0,\n                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)))" (( "(") (identifier "pdStack_2a0") (, ",") (identifier "uStack_2d4") (, ",") (identifier "iStack_2f0") (, ",") (cast_expression "(undefined *)((int)pdVar16 + (1 - uStack_2d4))" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar16 + (1 - uStack_2d4))" (( "(") (binary_expression "(int)pdVar16 + (1 - uStack_2d4)" (cast_expression "(int)pdVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar16")) (+ "+") (parenthesized_expression "(1 - uStack_2d4)" (( "(") (binary_expression "1 - uStack_2d4" (number_literal "1") (- "-") (identifier "uStack_2d4")) () ")"))) () ")"))) () ")")))) (; ";")) (if_statement "if (iStack_308 == 0) {\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }\n        else {\n          iVar28 = iVar28 * 4;\n          puVar36 = puStack_350;\n          if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar29 = pdStack_2a0;\n          iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }" (if "if") (parenthesized_expression "(iStack_308 == 0)" (( "(") (binary_expression "iStack_308 == 0" (identifier "iStack_308") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n        }" ({ "{") (expression_statement "*(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0" (pointer_expression "*(undefined4 *)((int)pdStack_2a8 + 0x2c)" (* "*") (cast_expression "(undefined4 *)((int)pdStack_2a8 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdStack_2a8 + 0x2c)" (( "(") (binary_expression "(int)pdStack_2a8 + 0x2c" (cast_expression "(int)pdStack_2a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdStack_2a8")) (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          iVar28 = iVar28 * 4;\n          puVar36 = puStack_350;\n          if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar29 = pdStack_2a0;\n          iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }" (else "else") (compound_statement "{\n          iVar28 = iVar28 * 4;\n          puVar36 = puStack_350;\n          if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }\n          pdVar29 = pdStack_2a0;\n          iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);\n          if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }\n        }" ({ "{") (expression_statement "iVar28 = iVar28 * 4;" (assignment_expression "iVar28 = iVar28 * 4" (identifier "iVar28") (= "=") (binary_expression "iVar28 * 4" (identifier "iVar28") (* "*") (number_literal "4"))) (; ";")) (expression_statement "puVar36 = puStack_350;" (assignment_expression "puVar36 = puStack_350" (identifier "puVar36") (= "=") (identifier "puStack_350")) (; ";")) (if_statement "if ((int)uVar26 <= (int)pdVar16) {\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }" (if "if") (parenthesized_expression "((int)uVar26 <= (int)pdVar16)" (( "(") (binary_expression "(int)uVar26 <= (int)pdVar16" (cast_expression "(int)uVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar26")) (<= "<=") (cast_expression "(int)pdVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar16"))) () ")")) (compound_statement "{\n            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);\n            uStack_328 = uStack_2d4;\n            pdVar16 = unaff_s6;\n            do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);\n          }" ({ "{") (expression_statement "puStack_2bc = (undefined4 *)(iStack_29c + iVar28);" (assignment_expression "puStack_2bc = (undefined4 *)(iStack_29c + iVar28)" (identifier "puStack_2bc") (= "=") (cast_expression "(undefined4 *)(iStack_29c + iVar28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_29c + iVar28)" (( "(") (binary_expression "iStack_29c + iVar28" (identifier "iStack_29c") (+ "+") (identifier "iVar28")) () ")")))) (; ";")) (expression_statement "uStack_328 = uStack_2d4;" (assignment_expression "uStack_328 = uStack_2d4" (identifier "uStack_328") (= "=") (identifier "uStack_2d4")) (; ";")) (expression_statement "pdVar16 = unaff_s6;" (assignment_expression "pdVar16 = unaff_s6" (identifier "pdVar16") (= "=") (identifier "unaff_s6")) (; ";")) (do_statement "do {\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            } while ((int)uStack_328 <= (int)pdStack_2cc);" (do "do") (compound_statement "{\n              unaff_s4 = (int *)*puStack_2bc;\n              iStack_2c0 = *(int *)(iStack_324 + 0x240);\n              unaff_s3 = (double *)*unaff_s4;\n              puVar13 = (undefined4 *)unaff_s4[1];\n              pdStack_2ec = unaff_s3;\n              if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }\nLAB_000a46d8:\n              uVar26 = uStack_2f8;\n              iVar28 = uStack_328 - uStack_2d4;\n              iVar10 = *(int *)(iStack_324 + 0x1a8);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;\n              in_f30_31 = dVar39;\n              if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }\n              iVar10 = *(int *)(iStack_324 + 0x1ac);\n              if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }\n              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }\n              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);\n              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;\n              iVar10 = *(int *)(pdVar16 + 0x58);\n              if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }\n              iStack_308 = iStack_308 + iVar10 * 4;\n              uStack_328 = uStack_328 + 1;\n              unaff_s6 = pdVar16;\n            }" ({ "{") (expression_statement "unaff_s4 = (int *)*puStack_2bc;" (assignment_expression "unaff_s4 = (int *)*puStack_2bc" (identifier "unaff_s4") (= "=") (cast_expression "(int *)*puStack_2bc" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puStack_2bc" (* "*") (identifier "puStack_2bc")))) (; ";")) (expression_statement "iStack_2c0 = *(int *)(iStack_324 + 0x240);" (assignment_expression "iStack_2c0 = *(int *)(iStack_324 + 0x240)" (identifier "iStack_2c0") (= "=") (pointer_expression "*(int *)(iStack_324 + 0x240)" (* "*") (cast_expression "(int *)(iStack_324 + 0x240)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_324 + 0x240)" (( "(") (binary_expression "iStack_324 + 0x240" (identifier "iStack_324") (+ "+") (number_literal "0x240")) () ")"))))) (; ";")) (expression_statement "unaff_s3 = (double *)*unaff_s4;" (assignment_expression "unaff_s3 = (double *)*unaff_s4" (identifier "unaff_s3") (= "=") (cast_expression "(double *)*unaff_s4" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*unaff_s4" (* "*") (identifier "unaff_s4")))) (; ";")) (expression_statement "puVar13 = (undefined4 *)unaff_s4[1];" (assignment_expression "puVar13 = (undefined4 *)unaff_s4[1]" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)unaff_s4[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "unaff_s4[1]" (identifier "unaff_s4") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "pdStack_2ec = unaff_s3;" (assignment_expression "pdStack_2ec = unaff_s3" (identifier "pdStack_2ec") (= "=") (identifier "unaff_s3")) (; ";")) (if_statement "if ((int)puVar13 < 1) {\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }\n              else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }" (if "if") (parenthesized_expression "((int)puVar13 < 1)" (( "(") (binary_expression "(int)puVar13 < 1" (cast_expression "(int)puVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar13")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n                if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }\nLAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\n              }" ({ "{") (if_statement "if (iStack_2f4 != 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }" (if "if") (parenthesized_expression "(iStack_2f4 != 0)" (( "(") (binary_expression "iStack_2f4 != 0" (identifier "iStack_2f4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;\n                  if (0 < (int)puVar13) goto LAB_000a4f3c;\n                  goto LAB_000a4684;\n                }" ({ "{") (expression_statement "dStack_338 = 0.0;" (assignment_expression "dStack_338 = 0.0" (identifier "dStack_338") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "dStack_340 = 0.0;" (assignment_expression "dStack_340 = 0.0" (identifier "dStack_340") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "dVar39 = in_f30_31;" (assignment_expression "dVar39 = in_f30_31" (identifier "dVar39") (= "=") (identifier "in_f30_31")) (; ";")) (labeled_statement "LAB_000a4f34:\n                  pdVar29 = (double *)*unaff_s4;" (statement_identifier "LAB_000a4f34") (: ":") (expression_statement "pdVar29 = (double *)*unaff_s4;" (assignment_expression "pdVar29 = (double *)*unaff_s4" (identifier "pdVar29") (= "=") (cast_expression "(double *)*unaff_s4" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*unaff_s4" (* "*") (identifier "unaff_s4")))) (; ";"))) (if_statement "if (0 < (int)puVar13) goto LAB_000a4f3c;" (if "if") (parenthesized_expression "(0 < (int)puVar13)" (( "(") (binary_expression "0 < (int)puVar13" (number_literal "0") (< "<") (cast_expression "(int)puVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar13"))) () ")")) (goto_statement "goto LAB_000a4f3c;" (goto "goto") (statement_identifier "LAB_000a4f3c") (; ";"))) (goto_statement "goto LAB_000a4684;" (goto "goto") (statement_identifier "LAB_000a4684") (; ";")) (} "}"))) (labeled_statement "LAB_000a4f94:\n                if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }" (statement_identifier "LAB_000a4f94") (: ":") (if_statement "if (*(int *)(iStack_324 + 0x238) == 0) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }" (if "if") (parenthesized_expression "(*(int *)(iStack_324 + 0x238) == 0)" (( "(") (binary_expression "*(int *)(iStack_324 + 0x238) == 0" (pointer_expression "*(int *)(iStack_324 + 0x238)" (* "*") (cast_expression "(int *)(iStack_324 + 0x238)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_324 + 0x238)" (( "(") (binary_expression "iStack_324 + 0x238" (identifier "iStack_324") (+ "+") (number_literal "0x238")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  dVar39 = in_f30_31;\nLAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  goto LAB_000a4ec4;\n                }" ({ "{") (expression_statement "dStack_338 = 0.0;" (assignment_expression "dStack_338 = 0.0" (identifier "dStack_338") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "dStack_340 = 0.0;" (assignment_expression "dStack_340 = 0.0" (identifier "dStack_340") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "dVar39 = in_f30_31;" (assignment_expression "dVar39 = in_f30_31" (identifier "dVar39") (= "=") (identifier "in_f30_31")) (; ";")) (labeled_statement "LAB_000a4ec0:\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);" (statement_identifier "LAB_000a4ec0") (: ":") (expression_statement "iVar10 = *(int *)(puVar36 + -0x7fd0);" (assignment_expression "iVar10 = *(int *)(puVar36 + -0x7fd0)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(puVar36 + -0x7fd0)" (* "*") (cast_expression "(int *)(puVar36 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x7fd0)" (( "(") (binary_expression "puVar36 + -0x7fd0" (identifier "puVar36") (+ "+") (number_literal "-0x7fd0")) () ")"))))) (; ";"))) (goto_statement "goto LAB_000a4ec4;" (goto "goto") (statement_identifier "LAB_000a4ec4") (; ";")) (} "}")))) (expression_statement "dStack_338 = 0.0;" (assignment_expression "dStack_338 = 0.0" (identifier "dStack_338") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "dStack_340 = 0.0;" (assignment_expression "dStack_340 = 0.0" (identifier "dStack_340") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "dVar39 = in_f30_31;" (assignment_expression "dVar39 = in_f30_31" (identifier "dVar39") (= "=") (identifier "in_f30_31")) (; ";")) (} "}")) (else_clause "else {\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }" (else "else") (compound_statement "{\n                in_f26_27 = (double)iStack_2f0;\n                iVar10 = *(int *)(puVar36 + -0x7fd0);\n                dVar39 = *(double *)(iVar10 + 0x43d0);\n                param_1 = (undefined4 *)0x0;\n                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }\n                if (iStack_2f4 == 0) goto LAB_000a4f94;\n                pdVar29 = (double *)*unaff_s4;\n                dStack_338 = 0.0;\n                dStack_340 = 0.0;\n                dVar39 = in_f30_31;\nLAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;\n                puVar21 = (undefined4 *)0x0;\n                if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }\n              }" ({ "{") (expression_statement "in_f26_27 = (double)iStack_2f0;" (assignment_expression "in_f26_27 = (double)iStack_2f0" (identifier "in_f26_27") (= "=") (cast_expression "(double)iStack_2f0" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iStack_2f0"))) (; ";")) (expression_statement "iVar10 = *(int *)(puVar36 + -0x7fd0);" (assignment_expression "iVar10 = *(int *)(puVar36 + -0x7fd0)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(puVar36 + -0x7fd0)" (* "*") (cast_expression "(int *)(puVar36 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x7fd0)" (( "(") (binary_expression "puVar36 + -0x7fd0" (identifier "puVar36") (+ "+") (number_literal "-0x7fd0")) () ")"))))) (; ";")) (expression_statement "dVar39 = *(double *)(iVar10 + 0x43d0);" (assignment_expression "dVar39 = *(double *)(iVar10 + 0x43d0)" (identifier "dVar39") (= "=") (pointer_expression "*(double *)(iVar10 + 0x43d0)" (* "*") (cast_expression "(double *)(iVar10 + 0x43d0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x43d0)" (( "(") (binary_expression "iVar10 + 0x43d0" (identifier "iVar10") (+ "+") (number_literal "0x43d0")) () ")"))))) (; ";")) (expression_statement "param_1 = (undefined4 *)0x0;" (assignment_expression "param_1 = (undefined4 *)0x0" (identifier "param_1") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }" (if "if") (parenthesized_expression "((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27)" (( "(") (binary_expression "(unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27" (binary_expression "(unaff_s3[1] - in_f28_29) - dVar39" (parenthesized_expression "(unaff_s3[1] - in_f28_29)" (( "(") (binary_expression "unaff_s3[1] - in_f28_29" (subscript_expression "unaff_s3[1]" (identifier "unaff_s3") ([ "[") (number_literal "1") (] "]")) (- "-") (identifier "in_f28_29")) () ")")) (- "-") (identifier "dVar39")) (< "<") (identifier "in_f26_27")) () ")")) (compound_statement "{\n                  dStack_338 = 0.0;\n                  dStack_340 = 0.0;\n                  pdVar29 = unaff_s3;\n                  dStack_330 = dVar39;\n                  pdStack_2d8 = pdVar16;\n                  do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));\n                  pdVar16 = pdStack_2d8;\n                  if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }\n                  if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\n                  dStack_340 = 0.0;\n                  goto LAB_000a46d8;\n                }" ({ "{") (expression_statement "dStack_338 = 0.0;" (assignment_expression "dStack_338 = 0.0" (identifier "dStack_338") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "dStack_340 = 0.0;" (assignment_expression "dStack_340 = 0.0" (identifier "dStack_340") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "pdVar29 = unaff_s3;" (assignment_expression "pdVar29 = unaff_s3" (identifier "pdVar29") (= "=") (identifier "unaff_s3")) (; ";")) (expression_statement "dStack_330 = dVar39;" (assignment_expression "dStack_330 = dVar39" (identifier "dStack_330") (= "=") (identifier "dVar39")) (; ";")) (expression_statement "pdStack_2d8 = pdVar16;" (assignment_expression "pdStack_2d8 = pdVar16" (identifier "pdStack_2d8") (= "=") (identifier "pdVar16")) (; ";")) (do_statement "do {\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  } while (((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));" (do "do") (compound_statement "{\n                    pdVar16 = pdStack_2ec;\n                    iVar49 = iStack_2f4;\n                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }\n                    param_1 = (undefined4 *)((int)param_1 + 1);\n                    unaff_s3 = pdVar29 + 8;\n                    puVar13 = (undefined4 *)unaff_s4[1];\n                  }" ({ "{") (expression_statement "pdVar16 = pdStack_2ec;" (assignment_expression "pdVar16 = pdStack_2ec" (identifier "pdVar16") (= "=") (identifier "pdStack_2ec")) (; ";")) (expression_statement "iVar49 = iStack_2f4;" (assignment_expression "iVar49 = iStack_2f4" (identifier "iVar49") (= "=") (identifier "iStack_2f4")) (; ";")) (if_statement "if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }\n                    else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }" (if "if") (parenthesized_expression "(in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39)" (( "(") (binary_expression "in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39" (identifier "in_f26_27") (<= "<=") (binary_expression "in_f28_29 + pdVar29[3] + dVar39" (binary_expression "in_f28_29 + pdVar29[3]" (identifier "in_f28_29") (+ "+") (subscript_expression "pdVar29[3]" (identifier "pdVar29") ([ "[") (number_literal "3") (] "]"))) (+ "+") (identifier "dVar39"))) () ")")) (compound_statement "{\n                      in_f22_23 = (double)(int)uStack_328;\n                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }\n                    }" ({ "{") (expression_statement "in_f22_23 = (double)(int)uStack_328;" (assignment_expression "in_f22_23 = (double)(int)uStack_328" (identifier "in_f22_23") (= "=") (cast_expression "(double)(int)uStack_328" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)uStack_328" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uStack_328")))) (; ";")) (if_statement "if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }" (if "if") (parenthesized_expression "(((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0)))" (( "(") (binary_expression "((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&\n                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))" (parenthesized_expression "((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23)" (( "(") (binary_expression "(*pdVar29 - in_f28_29) - dStack_330 < in_f22_23" (binary_expression "(*pdVar29 - in_f28_29) - dStack_330" (parenthesized_expression "(*pdVar29 - in_f28_29)" (( "(") (binary_expression "*pdVar29 - in_f28_29" (pointer_expression "*pdVar29" (* "*") (identifier "pdVar29")) (- "-") (identifier "in_f28_29")) () ")")) (- "-") (identifier "dStack_330")) (< "<") (identifier "in_f22_23")) () ")")) (&& "&&") (parenthesized_expression "(in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))" (( "(") (binary_expression "in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0)" (identifier "in_f22_23") (<= "<=") (binary_expression "in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0)" (binary_expression "in_f28_29 + pdVar29[2]" (identifier "in_f28_29") (+ "+") (subscript_expression "pdVar29[2]" (identifier "pdVar29") ([ "[") (number_literal "2") (] "]"))) (+ "+") (pointer_expression "*(double *)(iVar10 + 0x43d0)" (* "*") (cast_expression "(double *)(iVar10 + 0x43d0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x43d0)" (( "(") (binary_expression "iVar10 + 0x43d0" (identifier "iVar10") (+ "+") (number_literal "0x43d0")) () ")")))))) () ")"))) () ")")) (compound_statement "{\n                        iVar28 = *(int *)(pdVar29 + 7);\n                        dVar41 = (double)iVar28;\n                        if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }\n                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }\n                      }" ({ "{") (expression_statement "iVar28 = *(int *)(pdVar29 + 7);" (assignment_expression "iVar28 = *(int *)(pdVar29 + 7)" (identifier "iVar28") (= "=") (pointer_expression "*(int *)(pdVar29 + 7)" (* "*") (cast_expression "(int *)(pdVar29 + 7)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar29 + 7)" (( "(") (binary_expression "pdVar29 + 7" (identifier "pdVar29") (+ "+") (number_literal "7")) () ")"))))) (; ";")) (expression_statement "dVar41 = (double)iVar28;" (assignment_expression "dVar41 = (double)iVar28" (identifier "dVar41") (= "=") (cast_expression "(double)iVar28" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar28"))) (; ";")) (if_statement "if (iVar28 < 0) {\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }" (if "if") (parenthesized_expression "(iVar28 < 0)" (( "(") (binary_expression "iVar28 < 0" (identifier "iVar28") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }" ({ "{") (expression_statement "dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);" (assignment_expression "dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8)" (identifier "dVar41") (= "=") (binary_expression "dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8)" (identifier "dVar41") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8)" (* "*") (cast_expression "(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar36 + -0x7fd0) + 0x43e8)" (( "(") (binary_expression "*(int *)(puVar36 + -0x7fd0) + 0x43e8" (pointer_expression "*(int *)(puVar36 + -0x7fd0)" (* "*") (cast_expression "(int *)(puVar36 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x7fd0)" (( "(") (binary_expression "puVar36 + -0x7fd0" (identifier "puVar36") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x43e8")) () ")")))))) (; ";")) (} "}"))) (if_statement "if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar28 = 1;\n                        }" (if "if") (parenthesized_expression "(dVar41 <= *(double *)(unaff_s7 + 0x4408))" (( "(") (binary_expression "dVar41 <= *(double *)(unaff_s7 + 0x4408)" (identifier "dVar41") (<= "<=") (pointer_expression "*(double *)(unaff_s7 + 0x4408)" (* "*") (cast_expression "(double *)(unaff_s7 + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s7 + 0x4408)" (( "(") (binary_expression "unaff_s7 + 0x4408" (identifier "unaff_s7") (+ "+") (number_literal "0x4408")) () ")"))))) () ")")) (compound_statement "{\n                          iVar28 = 1;\n                        }" ({ "{") (expression_statement "iVar28 = 1;" (assignment_expression "iVar28 = 1" (identifier "iVar28") (= "=") (number_literal "1")) (; ";")) (} "}"))) (if_statement "if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }" (if "if") (parenthesized_expression "(iVar28 < *(int *)((int)pdVar29 + 0x2c))" (( "(") (binary_expression "iVar28 < *(int *)((int)pdVar29 + 0x2c)" (identifier "iVar28") (< "<") (pointer_expression "*(int *)((int)pdVar29 + 0x2c)" (* "*") (cast_expression "(int *)((int)pdVar29 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar29 + 0x2c)" (( "(") (binary_expression "(int)pdVar29 + 0x2c" (cast_expression "(int)pdVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar29")) (+ "+") (number_literal "0x2c")) () ")"))))) () ")")) (compound_statement "{\n                          iVar12 = *(int *)(pdVar29 + 5);\n                          iVar50 = (iVar28 + 0xfffffff) * 0x10;\n                          pdVar16 = (double *)(iVar12 + iVar50);\n                          dVar41 = *(double *)(iVar10 + 0x43d0);\n                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }\n                        }" ({ "{") (expression_statement "iVar12 = *(int *)(pdVar29 + 5);" (assignment_expression "iVar12 = *(int *)(pdVar29 + 5)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(pdVar29 + 5)" (* "*") (cast_expression "(int *)(pdVar29 + 5)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar29 + 5)" (( "(") (binary_expression "pdVar29 + 5" (identifier "pdVar29") (+ "+") (number_literal "5")) () ")"))))) (; ";")) (expression_statement "iVar50 = (iVar28 + 0xfffffff) * 0x10;" (assignment_expression "iVar50 = (iVar28 + 0xfffffff) * 0x10" (identifier "iVar50") (= "=") (binary_expression "(iVar28 + 0xfffffff) * 0x10" (parenthesized_expression "(iVar28 + 0xfffffff)" (( "(") (binary_expression "iVar28 + 0xfffffff" (identifier "iVar28") (+ "+") (number_literal "0xfffffff")) () ")")) (* "*") (number_literal "0x10"))) (; ";")) (expression_statement "pdVar16 = (double *)(iVar12 + iVar50);" (assignment_expression "pdVar16 = (double *)(iVar12 + iVar50)" (identifier "pdVar16") (= "=") (cast_expression "(double *)(iVar12 + iVar50)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + iVar50)" (( "(") (binary_expression "iVar12 + iVar50" (identifier "iVar12") (+ "+") (identifier "iVar50")) () ")")))) (; ";")) (expression_statement "dVar41 = *(double *)(iVar10 + 0x43d0);" (assignment_expression "dVar41 = *(double *)(iVar10 + 0x43d0)" (identifier "dVar41") (= "=") (pointer_expression "*(double *)(iVar10 + 0x43d0)" (* "*") (cast_expression "(double *)(iVar10 + 0x43d0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x43d0)" (( "(") (binary_expression "iVar10 + 0x43d0" (identifier "iVar10") (+ "+") (number_literal "0x43d0")) () ")"))))) (; ";")) (if_statement "if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }" (if "if") (parenthesized_expression "((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27)" (( "(") (binary_expression "(pdVar16[1] - in_f28_29) - dVar41 < in_f26_27" (binary_expression "(pdVar16[1] - in_f28_29) - dVar41" (parenthesized_expression "(pdVar16[1] - in_f28_29)" (( "(") (binary_expression "pdVar16[1] - in_f28_29" (subscript_expression "pdVar16[1]" (identifier "pdVar16") ([ "[") (number_literal "1") (] "]")) (- "-") (identifier "in_f28_29")) () ")")) (- "-") (identifier "dVar41")) (< "<") (identifier "in_f26_27")) () ")")) (compound_statement "{\n                            dStack_318 = *(double *)(unaff_s7 + 0x4408);\n                            iVar31 = *(int *)(puVar36 + -0x7fcc);\n                            dStack_300 = *(double *)(iVar31 + 0x2a8);\n                            piStack_304 = unaff_s4;\n                            do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);\n                          }" ({ "{") (expression_statement "dStack_318 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dStack_318 = *(double *)(unaff_s7 + 0x4408)" (identifier "dStack_318") (= "=") (pointer_expression "*(double *)(unaff_s7 + 0x4408)" (* "*") (cast_expression "(double *)(unaff_s7 + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s7 + 0x4408)" (( "(") (binary_expression "unaff_s7 + 0x4408" (identifier "unaff_s7") (+ "+") (number_literal "0x4408")) () ")"))))) (; ";")) (expression_statement "iVar31 = *(int *)(puVar36 + -0x7fcc);" (assignment_expression "iVar31 = *(int *)(puVar36 + -0x7fcc)" (identifier "iVar31") (= "=") (pointer_expression "*(int *)(puVar36 + -0x7fcc)" (* "*") (cast_expression "(int *)(puVar36 + -0x7fcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x7fcc)" (( "(") (binary_expression "puVar36 + -0x7fcc" (identifier "puVar36") (+ "+") (number_literal "-0x7fcc")) () ")"))))) (; ";")) (expression_statement "dStack_300 = *(double *)(iVar31 + 0x2a8);" (assignment_expression "dStack_300 = *(double *)(iVar31 + 0x2a8)" (identifier "dStack_300") (= "=") (pointer_expression "*(double *)(iVar31 + 0x2a8)" (* "*") (cast_expression "(double *)(iVar31 + 0x2a8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar31 + 0x2a8)" (( "(") (binary_expression "iVar31 + 0x2a8" (identifier "iVar31") (+ "+") (number_literal "0x2a8")) () ")"))))) (; ";")) (expression_statement "piStack_304 = unaff_s4;" (assignment_expression "piStack_304 = unaff_s4" (identifier "piStack_304") (= "=") (identifier "unaff_s4")) (; ";")) (do_statement "do {\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27);" (do "do") (compound_statement "{\n                              iVar50 = iVar50 + 0x10;\n                              dVar40 = dStack_340;\n                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }\n                              dStack_340 = dVar40;\n                              iVar28 = iVar28 + 1;\n                              unaff_s4 = piStack_304;\n                              in_f24_25 = dVar41;\n                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;\n                              iVar12 = *(int *)(pdVar29 + 5);\n                              pdVar16 = (double *)(iVar12 + iVar50);\n                            }" ({ "{") (expression_statement "iVar50 = iVar50 + 0x10;" (assignment_expression "iVar50 = iVar50 + 0x10" (identifier "iVar50") (= "=") (binary_expression "iVar50 + 0x10" (identifier "iVar50") (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "dVar40 = dStack_340;" (assignment_expression "dVar40 = dStack_340" (identifier "dVar40") (= "=") (identifier "dStack_340")) (; ";")) (if_statement "if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 ) {\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }" (if "if") (parenthesized_expression "(in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41\n                                 )" (( "(") (binary_expression "in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41" (identifier "in_f26_27") (<= "<=") (binary_expression "in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41" (binary_expression "in_f28_29 + *(double *)(iVar12 + iVar50 + 8)" (identifier "in_f28_29") (+ "+") (pointer_expression "*(double *)(iVar12 + iVar50 + 8)" (* "*") (cast_expression "(double *)(iVar12 + iVar50 + 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + iVar50 + 8)" (( "(") (binary_expression "iVar12 + iVar50 + 8" (binary_expression "iVar12 + iVar50" (identifier "iVar12") (+ "+") (identifier "iVar50")) (+ "+") (number_literal "8")) () ")"))))) (+ "+") (identifier "dVar41"))) () ")")) (compound_statement "{\n                                if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }\n                                dVar44 = pdVar16[2] - *pdVar16;\n                                dVar42 = pdVar16[3] - pdVar16[1];\n                                dVar47 = in_f22_23 - *pdVar16;\n                                dVar40 = in_f26_27 - pdVar16[1];\n                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;\n                                if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }\n                                dVar40 = dStack_338;\n                                if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }\n                                dStack_338 = dVar40;\n                                dVar40 = dStack_340;\n                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }\n                              }" ({ "{") (if_statement "if (in_f26_27 != pdVar29[4]) {\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }" (if "if") (parenthesized_expression "(in_f26_27 != pdVar29[4])" (( "(") (binary_expression "in_f26_27 != pdVar29[4]" (identifier "in_f26_27") (!= "!=") (subscript_expression "pdVar29[4]" (identifier "pdVar29") ([ "[") (number_literal "4") (] "]"))) () ")")) (compound_statement "{\n                                  pdVar29[4] = in_f26_27;\n                                  *(int *)(pdVar29 + 7) = iVar28;\n                                }" ({ "{") (expression_statement "pdVar29[4] = in_f26_27;" (assignment_expression "pdVar29[4] = in_f26_27" (subscript_expression "pdVar29[4]" (identifier "pdVar29") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "in_f26_27")) (; ";")) (expression_statement "*(int *)(pdVar29 + 7) = iVar28;" (assignment_expression "*(int *)(pdVar29 + 7) = iVar28" (pointer_expression "*(int *)(pdVar29 + 7)" (* "*") (cast_expression "(int *)(pdVar29 + 7)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar29 + 7)" (( "(") (binary_expression "pdVar29 + 7" (identifier "pdVar29") (+ "+") (number_literal "7")) () ")")))) (= "=") (identifier "iVar28")) (; ";")) (} "}"))) (expression_statement "dVar44 = pdVar16[2] - *pdVar16;" (assignment_expression "dVar44 = pdVar16[2] - *pdVar16" (identifier "dVar44") (= "=") (binary_expression "pdVar16[2] - *pdVar16" (subscript_expression "pdVar16[2]" (identifier "pdVar16") ([ "[") (number_literal "2") (] "]")) (- "-") (pointer_expression "*pdVar16" (* "*") (identifier "pdVar16")))) (; ";")) (expression_statement "dVar42 = pdVar16[3] - pdVar16[1];" (assignment_expression "dVar42 = pdVar16[3] - pdVar16[1]" (identifier "dVar42") (= "=") (binary_expression "pdVar16[3] - pdVar16[1]" (subscript_expression "pdVar16[3]" (identifier "pdVar16") ([ "[") (number_literal "3") (] "]")) (- "-") (subscript_expression "pdVar16[1]" (identifier "pdVar16") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "dVar47 = in_f22_23 - *pdVar16;" (assignment_expression "dVar47 = in_f22_23 - *pdVar16" (identifier "dVar47") (= "=") (binary_expression "in_f22_23 - *pdVar16" (identifier "in_f22_23") (- "-") (pointer_expression "*pdVar16" (* "*") (identifier "pdVar16")))) (; ";")) (expression_statement "dVar40 = in_f26_27 - pdVar16[1];" (assignment_expression "dVar40 = in_f26_27 - pdVar16[1]" (identifier "dVar40") (= "=") (binary_expression "in_f26_27 - pdVar16[1]" (identifier "in_f26_27") (- "-") (subscript_expression "pdVar16[1]" (identifier "pdVar16") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "dVar45 = dVar44 * dVar47 + dVar42 * dVar40;" (assignment_expression "dVar45 = dVar44 * dVar47 + dVar42 * dVar40" (identifier "dVar45") (= "=") (binary_expression "dVar44 * dVar47 + dVar42 * dVar40" (binary_expression "dVar44 * dVar47" (identifier "dVar44") (* "*") (identifier "dVar47")) (+ "+") (binary_expression "dVar42 * dVar40" (identifier "dVar42") (* "*") (identifier "dVar40")))) (; ";")) (if_statement "if (0.0 < dVar45) {\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }\n                                else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }" (if "if") (parenthesized_expression "(0.0 < dVar45)" (( "(") (binary_expression "0.0 < dVar45" (number_literal "0.0") (< "<") (identifier "dVar45")) () ")")) (compound_statement "{\n                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;\n                                  if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }\n                                }" ({ "{") (expression_statement "dVar46 = dVar44 * dVar44 + dVar42 * dVar42;" (assignment_expression "dVar46 = dVar44 * dVar44 + dVar42 * dVar42" (identifier "dVar46") (= "=") (binary_expression "dVar44 * dVar44 + dVar42 * dVar42" (binary_expression "dVar44 * dVar44" (identifier "dVar44") (* "*") (identifier "dVar44")) (+ "+") (binary_expression "dVar42 * dVar42" (identifier "dVar42") (* "*") (identifier "dVar42")))) (; ";")) (if_statement "if (dVar46 <= dVar45) {\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }\n                                  else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }" (if "if") (parenthesized_expression "(dVar46 <= dVar45)" (( "(") (binary_expression "dVar46 <= dVar45" (identifier "dVar46") (<= "<=") (identifier "dVar45")) () ")")) (compound_statement "{\n                                    dVar47 = in_f22_23 - pdVar16[2];\n                                    dVar40 = in_f26_27 - pdVar16[3];\n                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                  }" ({ "{") (expression_statement "dVar47 = in_f22_23 - pdVar16[2];" (assignment_expression "dVar47 = in_f22_23 - pdVar16[2]" (identifier "dVar47") (= "=") (binary_expression "in_f22_23 - pdVar16[2]" (identifier "in_f22_23") (- "-") (subscript_expression "pdVar16[2]" (identifier "pdVar16") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "dVar40 = in_f26_27 - pdVar16[3];" (assignment_expression "dVar40 = in_f26_27 - pdVar16[3]" (identifier "dVar40") (= "=") (binary_expression "in_f26_27 - pdVar16[3]" (identifier "in_f26_27") (- "-") (subscript_expression "pdVar16[3]" (identifier "pdVar16") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;" (assignment_expression "in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40" (identifier "in_f20_21") (= "=") (binary_expression "dVar47 * dVar47 + dVar40 * dVar40" (binary_expression "dVar47 * dVar47" (identifier "dVar47") (* "*") (identifier "dVar47")) (+ "+") (binary_expression "dVar40 * dVar40" (identifier "dVar40") (* "*") (identifier "dVar40")))) (; ";")) (} "}")) (else_clause "else {\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }" (else "else") (compound_statement "{\n                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }\n                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);\n                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;\n                                  }" ({ "{") (if_statement "if (*(double *)(iVar3 + 0x43c8) <= dVar46) {\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }\n                                    else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }" (if "if") (parenthesized_expression "(*(double *)(iVar3 + 0x43c8) <= dVar46)" (( "(") (binary_expression "*(double *)(iVar3 + 0x43c8) <= dVar46" (pointer_expression "*(double *)(iVar3 + 0x43c8)" (* "*") (cast_expression "(double *)(iVar3 + 0x43c8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x43c8)" (( "(") (binary_expression "iVar3 + 0x43c8" (identifier "iVar3") (+ "+") (number_literal "0x43c8")) () ")")))) (<= "<=") (identifier "dVar46")) () ")")) (compound_statement "{\n                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;\n                                    }" ({ "{") (expression_statement "dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;" (assignment_expression "dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46" (identifier "dVar46") (= "=") (binary_expression "*(double *)(unaff_s7 + 0x4408) / dVar46" (pointer_expression "*(double *)(unaff_s7 + 0x4408)" (* "*") (cast_expression "(double *)(unaff_s7 + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s7 + 0x4408)" (( "(") (binary_expression "unaff_s7 + 0x4408" (identifier "unaff_s7") (+ "+") (number_literal "0x4408")) () ")")))) (/ "/") (identifier "dVar46"))) (; ";")) (} "}")) (else_clause "else {\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }" (else "else") (compound_statement "{\n                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);\n                                    }" ({ "{") (expression_statement "dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);" (assignment_expression "dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40)" (identifier "dVar46") (= "=") (pointer_expression "*(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40)" (* "*") (cast_expression "(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar36 + -0x7fd0) + 0x4a40)" (( "(") (binary_expression "*(int *)(puVar36 + -0x7fd0) + 0x4a40" (pointer_expression "*(int *)(puVar36 + -0x7fd0)" (* "*") (cast_expression "(int *)(puVar36 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x7fd0)" (( "(") (binary_expression "puVar36 + -0x7fd0" (identifier "puVar36") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4a40")) () ")"))))) (; ";")) (} "}")))) (expression_statement "in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8);" (assignment_expression "in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8)" (identifier "in_f20_21") (= "=") (binary_expression "(dVar44 * dVar40 - dVar42 * dVar47) +\n                                                *(double *)(iVar3 + 0x43c8)" (parenthesized_expression "(dVar44 * dVar40 - dVar42 * dVar47)" (( "(") (binary_expression "dVar44 * dVar40 - dVar42 * dVar47" (binary_expression "dVar44 * dVar40" (identifier "dVar44") (* "*") (identifier "dVar40")) (- "-") (binary_expression "dVar42 * dVar47" (identifier "dVar42") (* "*") (identifier "dVar47"))) () ")")) (+ "+") (pointer_expression "*(double *)(iVar3 + 0x43c8)" (* "*") (cast_expression "(double *)(iVar3 + 0x43c8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x43c8)" (( "(") (binary_expression "iVar3 + 0x43c8" (identifier "iVar3") (+ "+") (number_literal "0x43c8")) () ")")))))) (; ";")) (expression_statement "in_f20_21 = in_f20_21 * dVar46 * in_f20_21;" (assignment_expression "in_f20_21 = in_f20_21 * dVar46 * in_f20_21" (identifier "in_f20_21") (= "=") (binary_expression "in_f20_21 * dVar46 * in_f20_21" (binary_expression "in_f20_21 * dVar46" (identifier "in_f20_21") (* "*") (identifier "dVar46")) (* "*") (identifier "in_f20_21"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }" (else "else") (compound_statement "{\n                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;\n                                }" ({ "{") (expression_statement "in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;" (assignment_expression "in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40" (identifier "in_f20_21") (= "=") (binary_expression "dVar47 * dVar47 + dVar40 * dVar40" (binary_expression "dVar47 * dVar47" (identifier "dVar47") (* "*") (identifier "dVar47")) (+ "+") (binary_expression "dVar40 * dVar40" (identifier "dVar40") (* "*") (identifier "dVar40")))) (; ";")) (} "}")))) (expression_statement "dVar40 = dStack_338;" (assignment_expression "dVar40 = dStack_338" (identifier "dVar40") (= "=") (identifier "dStack_338")) (; ";")) (if_statement "if (*(int *)((int)pdVar29 + 0x34) == 0) {\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }\n                                else {\n                                  uStack_348 = 0.0;\n                                }" (if "if") (parenthesized_expression "(*(int *)((int)pdVar29 + 0x34) == 0)" (( "(") (binary_expression "*(int *)((int)pdVar29 + 0x34) == 0" (pointer_expression "*(int *)((int)pdVar29 + 0x34)" (* "*") (cast_expression "(int *)((int)pdVar29 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar29 + 0x34)" (( "(") (binary_expression "(int)pdVar29 + 0x34" (cast_expression "(int)pdVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar29")) (+ "+") (number_literal "0x34")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }\n                                }" ({ "{") (if_statement "if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {\n                                    uStack_348 = 0.0;\n                                  }\n                                  else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }" (if "if") (parenthesized_expression "(*(double *)(unaff_s7 + 0x4408) <= dStack_338)" (( "(") (binary_expression "*(double *)(unaff_s7 + 0x4408) <= dStack_338" (pointer_expression "*(double *)(unaff_s7 + 0x4408)" (* "*") (cast_expression "(double *)(unaff_s7 + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s7 + 0x4408)" (( "(") (binary_expression "unaff_s7 + 0x4408" (identifier "unaff_s7") (+ "+") (number_literal "0x4408")) () ")")))) (<= "<=") (identifier "dStack_338")) () ")")) (compound_statement "{\n                                    uStack_348 = 0.0;\n                                  }" ({ "{") (expression_statement "uStack_348 = 0.0;" (assignment_expression "uStack_348 = 0.0" (identifier "uStack_348") (= "=") (number_literal "0.0")) (; ";")) (} "}")) (else_clause "else {\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }" (else "else") (compound_statement "{\n                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;\n                                    if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }\n                                  }" ({ "{") (expression_statement "dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;" (assignment_expression "dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300" (identifier "dVar47") (= "=") (binary_expression "in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300" (binary_expression "in_f28_29 + *(double *)(iVar10 + 0x43d0)" (identifier "in_f28_29") (+ "+") (pointer_expression "*(double *)(iVar10 + 0x43d0)" (* "*") (cast_expression "(double *)(iVar10 + 0x43d0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x43d0)" (( "(") (binary_expression "iVar10 + 0x43d0" (identifier "iVar10") (+ "+") (number_literal "0x43d0")) () ")"))))) (+ "+") (identifier "dStack_300"))) (; ";")) (if_statement "if (in_f20_21 <= dVar47 * dVar47) {\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }\n                                    else {\n                                      uStack_348 = 0.0;\n                                    }" (if "if") (parenthesized_expression "(in_f20_21 <= dVar47 * dVar47)" (( "(") (binary_expression "in_f20_21 <= dVar47 * dVar47" (identifier "in_f20_21") (<= "<=") (binary_expression "dVar47 * dVar47" (identifier "dVar47") (* "*") (identifier "dVar47"))) () ")")) (compound_statement "{\n                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);\n                                      if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                    }" ({ "{") (expression_statement "dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8);" (assignment_expression "dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8)" (identifier "dVar40") (= "=") (binary_expression "(in_f28_29 - *(double *)(iVar10 + 0x43d0)) +\n                                               *(double *)(iVar31 + 0x2a8)" (parenthesized_expression "(in_f28_29 - *(double *)(iVar10 + 0x43d0))" (( "(") (binary_expression "in_f28_29 - *(double *)(iVar10 + 0x43d0)" (identifier "in_f28_29") (- "-") (pointer_expression "*(double *)(iVar10 + 0x43d0)" (* "*") (cast_expression "(double *)(iVar10 + 0x43d0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x43d0)" (( "(") (binary_expression "iVar10 + 0x43d0" (identifier "iVar10") (+ "+") (number_literal "0x43d0")) () ")"))))) () ")")) (+ "+") (pointer_expression "*(double *)(iVar31 + 0x2a8)" (* "*") (cast_expression "(double *)(iVar31 + 0x2a8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar31 + 0x2a8)" (( "(") (binary_expression "iVar31 + 0x2a8" (identifier "iVar31") (+ "+") (number_literal "0x2a8")) () ")")))))) (; ";")) (if_statement "if (dVar40 * dVar40 < in_f20_21) {\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }\n                                      else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }" (if "if") (parenthesized_expression "(dVar40 * dVar40 < in_f20_21)" (( "(") (binary_expression "dVar40 * dVar40 < in_f20_21" (binary_expression "dVar40 * dVar40" (identifier "dVar40") (* "*") (identifier "dVar40")) (< "<") (identifier "in_f20_21")) () ")")) (compound_statement "{\n                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);\n                                        uStack_2ac = SUB84(dVar40,0);\n                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }\n                                        dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);\n                                        dVar40 = dVar40 * dVar40;\n                                        if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }\n                                      }" ({ "{") (expression_statement "dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408)" (identifier "dVar40") (= "=") (binary_expression "in_f20_21 - *(double *)(unaff_s7 + 0x4408)" (identifier "in_f20_21") (- "-") (pointer_expression "*(double *)(unaff_s7 + 0x4408)" (* "*") (cast_expression "(double *)(unaff_s7 + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s7 + 0x4408)" (( "(") (binary_expression "unaff_s7 + 0x4408" (identifier "unaff_s7") (+ "+") (number_literal "0x4408")) () ")")))))) (; ";")) (expression_statement "uStack_2ac = SUB84(dVar40,0);" (assignment_expression "uStack_2ac = SUB84(dVar40,0)" (identifier "uStack_2ac") (= "=") (call_expression "SUB84(dVar40,0)" (identifier "SUB84") (argument_list "(dVar40,0)" (( "(") (identifier "dVar40") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;" (assignment_expression "uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff" (identifier "uStack_2b0") (= "=") (binary_expression "(uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff" (call_expression "(uint)((ulonglong)dVar40 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)dVar40 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar40 >> 0x20" (cast_expression "(ulonglong)dVar40" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar40")) (>> ">>") (number_literal "0x20")) () ")"))) (& "&") (number_literal "0x7fffffff"))) (; ";")) (expression_statement "uStack_348 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "uStack_348 = *(double *)(unaff_s7 + 0x4408)" (identifier "uStack_348") (= "=") (pointer_expression "*(double *)(unaff_s7 + 0x4408)" (* "*") (cast_expression "(double *)(unaff_s7 + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s7 + 0x4408)" (( "(") (binary_expression "unaff_s7 + 0x4408" (identifier "unaff_s7") (+ "+") (number_literal "0x4408")) () ")"))))) (; ";")) (if_statement "if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }" (if "if") (parenthesized_expression "((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0))" (( "(") (binary_expression "(*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&\n                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)" (parenthesized_expression "(*(double *)(iVar3 + 0x43c8) <= ABS(dVar40))" (( "(") (binary_expression "*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)" (pointer_expression "*(double *)(iVar3 + 0x43c8)" (* "*") (cast_expression "(double *)(iVar3 + 0x43c8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x43c8)" (( "(") (binary_expression "iVar3 + 0x43c8" (identifier "iVar3") (+ "+") (number_literal "0x43c8")) () ")")))) (<= "<=") (call_expression "ABS(dVar40)" (identifier "ABS") (argument_list "(dVar40)" (( "(") (identifier "dVar40") () ")")))) () ")")) (&& "&&") (parenthesized_expression "(uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)" (( "(") (comma_expression "uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0" (assignment_expression "uStack_348 = SQRT(in_f20_21)" (identifier "uStack_348") (= "=") (call_expression "SQRT(in_f20_21)" (identifier "SQRT") (argument_list "(in_f20_21)" (( "(") (identifier "in_f20_21") () ")")))) (, ",") (binary_expression "in_f20_21 < 0.0" (identifier "in_f20_21") (< "<") (number_literal "0.0"))) () ")"))) () ")")) (compound_statement "{\n                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                          puVar36 = puStack_350;\n                                        }" ({ "{") (expression_statement "(**(code **)(puVar36 + -0x7418))(in_f20_21);" (call_expression "(**(code **)(puVar36 + -0x7418))(in_f20_21)" (parenthesized_expression "(**(code **)(puVar36 + -0x7418))" (( "(") (pointer_expression "**(code **)(puVar36 + -0x7418)" (* "*") (pointer_expression "*(code **)(puVar36 + -0x7418)" (* "*") (cast_expression "(code **)(puVar36 + -0x7418)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x7418)" (( "(") (binary_expression "puVar36 + -0x7418" (identifier "puVar36") (+ "+") (number_literal "-0x7418")) () ")"))))) () ")")) (argument_list "(in_f20_21)" (( "(") (identifier "in_f20_21") () ")"))) (; ";")) (expression_statement "puVar36 = puStack_350;" (assignment_expression "puVar36 = puStack_350" (identifier "puVar36") (= "=") (identifier "puStack_350")) (; ";")) (} "}"))) (expression_statement "dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8);" (assignment_expression "dVar40 = ((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8)" (identifier "dVar40") (= "=") (binary_expression "((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)) -\n                                                 *(double *)(iVar31 + 0x2a8)" (parenthesized_expression "((uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0))" (( "(") (binary_expression "(uStack_348 - in_f28_29) -\n                                                 *(double *)(iVar10 + 0x43d0)" (parenthesized_expression "(uStack_348 - in_f28_29)" (( "(") (binary_expression "uStack_348 - in_f28_29" (identifier "uStack_348") (- "-") (identifier "in_f28_29")) () ")")) (- "-") (pointer_expression "*(double *)(iVar10 + 0x43d0)" (* "*") (cast_expression "(double *)(iVar10 + 0x43d0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x43d0)" (( "(") (binary_expression "iVar10 + 0x43d0" (identifier "iVar10") (+ "+") (number_literal "0x43d0")) () ")"))))) () ")")) (- "-") (pointer_expression "*(double *)(iVar31 + 0x2a8)" (* "*") (cast_expression "(double *)(iVar31 + 0x2a8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar31 + 0x2a8)" (( "(") (binary_expression "iVar31 + 0x2a8" (identifier "iVar31") (+ "+") (number_literal "0x2a8")) () ")")))))) (; ";")) (expression_statement "dVar40 = dVar40 * dVar40;" (assignment_expression "dVar40 = dVar40 * dVar40" (identifier "dVar40") (= "=") (binary_expression "dVar40 * dVar40" (identifier "dVar40") (* "*") (identifier "dVar40"))) (; ";")) (if_statement "if (dVar40 <= dStack_338) {\n                                          dVar40 = dStack_338;\n                                        }" (if "if") (parenthesized_expression "(dVar40 <= dStack_338)" (( "(") (binary_expression "dVar40 <= dStack_338" (identifier "dVar40") (<= "<=") (identifier "dStack_338")) () ")")) (compound_statement "{\n                                          dVar40 = dStack_338;\n                                        }" ({ "{") (expression_statement "dVar40 = dStack_338;" (assignment_expression "dVar40 = dStack_338" (identifier "dVar40") (= "=") (identifier "dStack_338")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }" (else "else") (compound_statement "{\n                                        uStack_348 = 0.0;\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }" ({ "{") (expression_statement "uStack_348 = 0.0;" (assignment_expression "uStack_348 = 0.0" (identifier "uStack_348") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "dVar40 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dVar40 = *(double *)(unaff_s7 + 0x4408)" (identifier "dVar40") (= "=") (pointer_expression "*(double *)(unaff_s7 + 0x4408)" (* "*") (cast_expression "(double *)(unaff_s7 + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s7 + 0x4408)" (( "(") (binary_expression "unaff_s7 + 0x4408" (identifier "unaff_s7") (+ "+") (number_literal "0x4408")) () ")"))))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                                      uStack_348 = 0.0;\n                                    }" (else "else") (compound_statement "{\n                                      uStack_348 = 0.0;\n                                    }" ({ "{") (expression_statement "uStack_348 = 0.0;" (assignment_expression "uStack_348 = 0.0" (identifier "uStack_348") (= "=") (number_literal "0.0")) (; ";")) (} "}")))) (} "}")))) (} "}")) (else_clause "else {\n                                  uStack_348 = 0.0;\n                                }" (else "else") (compound_statement "{\n                                  uStack_348 = 0.0;\n                                }" ({ "{") (expression_statement "uStack_348 = 0.0;" (assignment_expression "uStack_348 = 0.0" (identifier "uStack_348") (= "=") (number_literal "0.0")) (; ";")) (} "}")))) (expression_statement "dStack_338 = dVar40;" (assignment_expression "dStack_338 = dVar40" (identifier "dStack_338") (= "=") (identifier "dVar40")) (; ";")) (expression_statement "dVar40 = dStack_340;" (assignment_expression "dVar40 = dStack_340" (identifier "dVar40") (= "=") (identifier "dStack_340")) (; ";")) (if_statement "if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)) {\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }" (if "if") (parenthesized_expression "(((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318))" (( "(") (binary_expression "((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&\n                                   (dStack_340 < dStack_318)" (parenthesized_expression "((iVar49 != 0) && (in_f20_21 <= dStack_320))" (( "(") (binary_expression "(iVar49 != 0) && (in_f20_21 <= dStack_320)" (parenthesized_expression "(iVar49 != 0)" (( "(") (binary_expression "iVar49 != 0" (identifier "iVar49") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(in_f20_21 <= dStack_320)" (( "(") (binary_expression "in_f20_21 <= dStack_320" (identifier "in_f20_21") (<= "<=") (identifier "dStack_320")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(dStack_340 < dStack_318)" (( "(") (binary_expression "dStack_340 < dStack_318" (identifier "dStack_340") (< "<") (identifier "dStack_318")) () ")"))) () ")")) (compound_statement "{\n                                  if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }\n                                }" ({ "{") (if_statement "if (0.0 < in_f20_21) {\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }\n                                  else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }" (if "if") (parenthesized_expression "(0.0 < in_f20_21)" (( "(") (binary_expression "0.0 < in_f20_21" (number_literal "0.0") (< "<") (identifier "in_f20_21")) () ")")) (compound_statement "{\n                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;\n                                    uStack_30c = uStack_348._4_4_;\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                    if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }\n                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);\n                                    if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }\n                                  }" ({ "{") (expression_statement "uStack_310 = uStack_348._0_4_ & 0x7fffffff;" (assignment_expression "uStack_310 = uStack_348._0_4_ & 0x7fffffff" (identifier "uStack_310") (= "=") (binary_expression "uStack_348._0_4_ & 0x7fffffff" (field_expression "uStack_348._0_4_" (identifier "uStack_348") (. ".") (field_identifier "_0_4_")) (& "&") (number_literal "0x7fffffff"))) (; ";")) (expression_statement "uStack_30c = uStack_348._4_4_;" (assignment_expression "uStack_30c = uStack_348._4_4_" (identifier "uStack_30c") (= "=") (field_expression "uStack_348._4_4_" (identifier "uStack_348") (. ".") (field_identifier "_4_4_"))) (; ";")) (expression_statement "dVar40 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dVar40 = *(double *)(unaff_s7 + 0x4408)" (identifier "dVar40") (= "=") (pointer_expression "*(double *)(unaff_s7 + 0x4408)" (* "*") (cast_expression "(double *)(unaff_s7 + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s7 + 0x4408)" (( "(") (binary_expression "unaff_s7 + 0x4408" (identifier "unaff_s7") (+ "+") (number_literal "0x4408")) () ")"))))) (; ";")) (if_statement "if (ABS(uStack_348) < dStack_2b8) {\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }" (if "if") (parenthesized_expression "(ABS(uStack_348) < dStack_2b8)" (( "(") (binary_expression "ABS(uStack_348) < dStack_2b8" (call_expression "ABS(uStack_348)" (identifier "ABS") (argument_list "(uStack_348)" (( "(") (identifier "uStack_348") () ")"))) (< "<") (identifier "dStack_2b8")) () ")")) (compound_statement "{\n                                      dVar40 = in_f20_21 - dVar40;\n                                      uStack_2c4 = SUB84(dVar40,0);\n                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;\n                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);\n                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }\n                                    }" ({ "{") (expression_statement "dVar40 = in_f20_21 - dVar40;" (assignment_expression "dVar40 = in_f20_21 - dVar40" (identifier "dVar40") (= "=") (binary_expression "in_f20_21 - dVar40" (identifier "in_f20_21") (- "-") (identifier "dVar40"))) (; ";")) (expression_statement "uStack_2c4 = SUB84(dVar40,0);" (assignment_expression "uStack_2c4 = SUB84(dVar40,0)" (identifier "uStack_2c4") (= "=") (call_expression "SUB84(dVar40,0)" (identifier "SUB84") (argument_list "(dVar40,0)" (( "(") (identifier "dVar40") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;" (assignment_expression "uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff" (identifier "uStack_2c8") (= "=") (binary_expression "(uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff" (call_expression "(uint)((ulonglong)dVar40 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)dVar40 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar40 >> 0x20" (cast_expression "(ulonglong)dVar40" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar40")) (>> ">>") (number_literal "0x20")) () ")"))) (& "&") (number_literal "0x7fffffff"))) (; ";")) (expression_statement "uStack_348 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "uStack_348 = *(double *)(unaff_s7 + 0x4408)" (identifier "uStack_348") (= "=") (pointer_expression "*(double *)(unaff_s7 + 0x4408)" (* "*") (cast_expression "(double *)(unaff_s7 + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s7 + 0x4408)" (( "(") (binary_expression "unaff_s7 + 0x4408" (identifier "unaff_s7") (+ "+") (number_literal "0x4408")) () ")"))))) (; ";")) (if_statement "if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }\n                                      else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }" (if "if") (parenthesized_expression "((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21))" (( "(") (binary_expression "(ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||\n                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)" (parenthesized_expression "(ABS(dVar40) < *(double *)(iVar3 + 0x43c8))" (( "(") (binary_expression "ABS(dVar40) < *(double *)(iVar3 + 0x43c8)" (call_expression "ABS(dVar40)" (identifier "ABS") (argument_list "(dVar40)" (( "(") (identifier "dVar40") () ")"))) (< "<") (pointer_expression "*(double *)(iVar3 + 0x43c8)" (* "*") (cast_expression "(double *)(iVar3 + 0x43c8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x43c8)" (( "(") (binary_expression "iVar3 + 0x43c8" (identifier "iVar3") (+ "+") (number_literal "0x43c8")) () ")"))))) () ")")) (|| "||") (parenthesized_expression "(uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)" (( "(") (comma_expression "uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21" (assignment_expression "uStack_348 = SQRT(in_f20_21)" (identifier "uStack_348") (= "=") (call_expression "SQRT(in_f20_21)" (identifier "SQRT") (argument_list "(in_f20_21)" (( "(") (identifier "in_f20_21") () ")")))) (, ",") (binary_expression "0.0 <= in_f20_21" (number_literal "0.0") (<= "<=") (identifier "in_f20_21"))) () ")"))) () ")")) (compound_statement "{\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                      }" ({ "{") (expression_statement "dVar40 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dVar40 = *(double *)(unaff_s7 + 0x4408)" (identifier "dVar40") (= "=") (pointer_expression "*(double *)(unaff_s7 + 0x4408)" (* "*") (cast_expression "(double *)(unaff_s7 + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s7 + 0x4408)" (( "(") (binary_expression "unaff_s7 + 0x4408" (identifier "unaff_s7") (+ "+") (number_literal "0x4408")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }" (else "else") (compound_statement "{\n                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);\n                                        dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                        puVar36 = puStack_350;\n                                      }" ({ "{") (expression_statement "(**(code **)(puVar36 + -0x7418))(in_f20_21);" (call_expression "(**(code **)(puVar36 + -0x7418))(in_f20_21)" (parenthesized_expression "(**(code **)(puVar36 + -0x7418))" (( "(") (pointer_expression "**(code **)(puVar36 + -0x7418)" (* "*") (pointer_expression "*(code **)(puVar36 + -0x7418)" (* "*") (cast_expression "(code **)(puVar36 + -0x7418)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x7418)" (( "(") (binary_expression "puVar36 + -0x7418" (identifier "puVar36") (+ "+") (number_literal "-0x7418")) () ")"))))) () ")")) (argument_list "(in_f20_21)" (( "(") (identifier "in_f20_21") () ")"))) (; ";")) (expression_statement "dVar40 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dVar40 = *(double *)(unaff_s7 + 0x4408)" (identifier "dVar40") (= "=") (pointer_expression "*(double *)(unaff_s7 + 0x4408)" (* "*") (cast_expression "(double *)(unaff_s7 + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s7 + 0x4408)" (( "(") (binary_expression "unaff_s7 + 0x4408" (identifier "unaff_s7") (+ "+") (number_literal "0x4408")) () ")"))))) (; ";")) (expression_statement "puVar36 = puStack_350;" (assignment_expression "puVar36 = puStack_350" (identifier "puVar36") (= "=") (identifier "puStack_350")) (; ";")) (} "}")))) (} "}"))) (expression_statement "dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);" (assignment_expression "dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40)" (identifier "dVar40") (= "=") (binary_expression "(uStack_348 - dVar40) * (uStack_348 - dVar40)" (parenthesized_expression "(uStack_348 - dVar40)" (( "(") (binary_expression "uStack_348 - dVar40" (identifier "uStack_348") (- "-") (identifier "dVar40")) () ")")) (* "*") (parenthesized_expression "(uStack_348 - dVar40)" (( "(") (binary_expression "uStack_348 - dVar40" (identifier "uStack_348") (- "-") (identifier "dVar40")) () ")")))) (; ";")) (if_statement "if (dVar40 <= dStack_340) {\n                                      dVar40 = dStack_340;\n                                    }" (if "if") (parenthesized_expression "(dVar40 <= dStack_340)" (( "(") (binary_expression "dVar40 <= dStack_340" (identifier "dVar40") (<= "<=") (identifier "dStack_340")) () ")")) (compound_statement "{\n                                      dVar40 = dStack_340;\n                                    }" ({ "{") (expression_statement "dVar40 = dStack_340;" (assignment_expression "dVar40 = dStack_340" (identifier "dVar40") (= "=") (identifier "dStack_340")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }" (else "else") (compound_statement "{\n                                    dVar40 = *(double *)(unaff_s7 + 0x4408);\n                                  }" ({ "{") (expression_statement "dVar40 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dVar40 = *(double *)(unaff_s7 + 0x4408)" (identifier "dVar40") (= "=") (pointer_expression "*(double *)(unaff_s7 + 0x4408)" (* "*") (cast_expression "(double *)(unaff_s7 + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s7 + 0x4408)" (( "(") (binary_expression "unaff_s7 + 0x4408" (identifier "unaff_s7") (+ "+") (number_literal "0x4408")) () ")"))))) (; ";")) (} "}")))) (} "}"))) (} "}"))) (expression_statement "dStack_340 = dVar40;" (assignment_expression "dStack_340 = dVar40" (identifier "dStack_340") (= "=") (identifier "dVar40")) (; ";")) (expression_statement "iVar28 = iVar28 + 1;" (assignment_expression "iVar28 = iVar28 + 1" (identifier "iVar28") (= "=") (binary_expression "iVar28 + 1" (identifier "iVar28") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "unaff_s4 = piStack_304;" (assignment_expression "unaff_s4 = piStack_304" (identifier "unaff_s4") (= "=") (identifier "piStack_304")) (; ";")) (expression_statement "in_f24_25 = dVar41;" (assignment_expression "in_f24_25 = dVar41" (identifier "in_f24_25") (= "=") (identifier "dVar41")) (; ";")) (if_statement "if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;" (if "if") (parenthesized_expression "(*(int *)((int)pdVar29 + 0x2c) <= iVar28)" (( "(") (binary_expression "*(int *)((int)pdVar29 + 0x2c) <= iVar28" (pointer_expression "*(int *)((int)pdVar29 + 0x2c)" (* "*") (cast_expression "(int *)((int)pdVar29 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar29 + 0x2c)" (( "(") (binary_expression "(int)pdVar29 + 0x2c" (cast_expression "(int)pdVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar29")) (+ "+") (number_literal "0x2c")) () ")")))) (<= "<=") (identifier "iVar28")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar12 = *(int *)(pdVar29 + 5);" (assignment_expression "iVar12 = *(int *)(pdVar29 + 5)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(pdVar29 + 5)" (* "*") (cast_expression "(int *)(pdVar29 + 5)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar29 + 5)" (( "(") (binary_expression "pdVar29 + 5" (identifier "pdVar29") (+ "+") (number_literal "5")) () ")"))))) (; ";")) (expression_statement "pdVar16 = (double *)(iVar12 + iVar50);" (assignment_expression "pdVar16 = (double *)(iVar12 + iVar50)" (identifier "pdVar16") (= "=") (cast_expression "(double *)(iVar12 + iVar50)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + iVar50)" (( "(") (binary_expression "iVar12 + iVar50" (identifier "iVar12") (+ "+") (identifier "iVar50")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27)" (( "(") (binary_expression "(pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <\n                                     in_f26_27" (binary_expression "(pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0)" (parenthesized_expression "(pdVar16[1] - in_f28_29)" (( "(") (binary_expression "pdVar16[1] - in_f28_29" (subscript_expression "pdVar16[1]" (identifier "pdVar16") ([ "[") (number_literal "1") (] "]")) (- "-") (identifier "in_f28_29")) () ")")) (- "-") (pointer_expression "*(double *)(iVar10 + 0x43d0)" (* "*") (cast_expression "(double *)(iVar10 + 0x43d0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x43d0)" (( "(") (binary_expression "iVar10 + 0x43d0" (identifier "iVar10") (+ "+") (number_literal "0x43d0")) () ")"))))) (< "<") (identifier "in_f26_27")) () ")")) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }" (else "else") (compound_statement "{\n                      if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }\n                      iVar49 = *unaff_s4 - (int)pdStack_2ec;\n                      uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));\n                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;\n                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);\n                      unaff_s4[1] = (int)puVar13;\n                      puVar36 = puStack_350;\n                      if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }\n                    }" ({ "{") (if_statement "if (puVar13 <= param_1) {\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }" (if "if") (parenthesized_expression "(puVar13 <= param_1)" (( "(") (binary_expression "puVar13 <= param_1" (identifier "puVar13") (<= "<=") (identifier "param_1")) () ")")) (compound_statement "{\n                        iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);\n                        return iVar3;\n                      }" ({ "{") (expression_statement "iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);" (assignment_expression "iVar3 = (**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(puVar36 + -0x7290))\n                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c)" (parenthesized_expression "(**(code **)(puVar36 + -0x7290))" (( "(") (pointer_expression "**(code **)(puVar36 + -0x7290)" (* "*") (pointer_expression "*(code **)(puVar36 + -0x7290)" (* "*") (cast_expression "(code **)(puVar36 + -0x7290)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x7290)" (( "(") (binary_expression "puVar36 + -0x7290" (identifier "puVar36") (+ "+") (number_literal "-0x7290")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar36 + -0x7fcc) + 0x69fc,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,\n                                           *(int *)(puVar36 + -0x7fcc) + 0x773c)" (( "(") (binary_expression "*(int *)(puVar36 + -0x7fcc) + 0x69fc" (pointer_expression "*(int *)(puVar36 + -0x7fcc)" (* "*") (cast_expression "(int *)(puVar36 + -0x7fcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x7fcc)" (( "(") (binary_expression "puVar36 + -0x7fcc" (identifier "puVar36") (+ "+") (number_literal "-0x7fcc")) () ")")))) (+ "+") (number_literal "0x69fc")) (, ",") (binary_expression "*(int *)(puVar36 + -0x7fcc) + 0x69c0" (pointer_expression "*(int *)(puVar36 + -0x7fcc)" (* "*") (cast_expression "(int *)(puVar36 + -0x7fcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x7fcc)" (( "(") (binary_expression "puVar36 + -0x7fcc" (identifier "puVar36") (+ "+") (number_literal "-0x7fcc")) () ")")))) (+ "+") (number_literal "0x69c0")) (, ",") (number_literal "0x3e3") (, ",") (binary_expression "*(int *)(puVar36 + -0x7fcc) + 0x773c" (pointer_expression "*(int *)(puVar36 + -0x7fcc)" (* "*") (cast_expression "(int *)(puVar36 + -0x7fcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x7fcc)" (( "(") (binary_expression "puVar36 + -0x7fcc" (identifier "puVar36") (+ "+") (number_literal "-0x7fcc")) () ")")))) (+ "+") (number_literal "0x773c")) () ")")))) (; ";")) (return_statement "return iVar3;" (return "return") (identifier "iVar3") (; ";")) (} "}"))) (expression_statement "iVar49 = *unaff_s4 - (int)pdStack_2ec;" (assignment_expression "iVar49 = *unaff_s4 - (int)pdStack_2ec" (identifier "iVar49") (= "=") (binary_expression "*unaff_s4 - (int)pdStack_2ec" (pointer_expression "*unaff_s4" (* "*") (identifier "unaff_s4")) (- "-") (cast_expression "(int)pdStack_2ec" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdStack_2ec")))) (; ";")) (expression_statement "uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));" (assignment_expression "uVar4 = (**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28))" (identifier "uVar4") (= "=") (call_expression "(**(code **)(puVar36 + -0x78d8))\n                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28))" (parenthesized_expression "(**(code **)(puVar36 + -0x78d8))" (( "(") (pointer_expression "**(code **)(puVar36 + -0x78d8)" (* "*") (pointer_expression "*(code **)(puVar36 + -0x78d8)" (* "*") (cast_expression "(code **)(puVar36 + -0x78d8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x78d8)" (( "(") (binary_expression "puVar36 + -0x78d8" (identifier "puVar36") (+ "+") (number_literal "-0x78d8")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)((int)pdVar29 + iVar49 + 0x28))" (( "(") (pointer_expression "*(undefined4 *)((int)pdVar29 + iVar49 + 0x28)" (* "*") (cast_expression "(undefined4 *)((int)pdVar29 + iVar49 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar29 + iVar49 + 0x28)" (( "(") (binary_expression "(int)pdVar29 + iVar49 + 0x28" (binary_expression "(int)pdVar29 + iVar49" (cast_expression "(int)pdVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar29")) (+ "+") (identifier "iVar49")) (+ "+") (number_literal "0x28")) () ")")))) () ")")))) (; ";")) (expression_statement "*(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;" (assignment_expression "*(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4" (pointer_expression "*(undefined4 *)((int)pdVar29 + iVar49 + 0x28)" (* "*") (cast_expression "(undefined4 *)((int)pdVar29 + iVar49 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar29 + iVar49 + 0x28)" (( "(") (binary_expression "(int)pdVar29 + iVar49 + 0x28" (binary_expression "(int)pdVar29 + iVar49" (cast_expression "(int)pdVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar29")) (+ "+") (identifier "iVar49")) (+ "+") (number_literal "0x28")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "puVar13 = (undefined4 *)(unaff_s4[1] + -1);" (assignment_expression "puVar13 = (undefined4 *)(unaff_s4[1] + -1)" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)(unaff_s4[1] + -1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s4[1] + -1)" (( "(") (binary_expression "unaff_s4[1] + -1" (subscript_expression "unaff_s4[1]" (identifier "unaff_s4") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "unaff_s4[1] = (int)puVar13;" (assignment_expression "unaff_s4[1] = (int)puVar13" (subscript_expression "unaff_s4[1]" (identifier "unaff_s4") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int)puVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar13"))) (; ";")) (expression_statement "puVar36 = puStack_350;" (assignment_expression "puVar36 = puStack_350" (identifier "puVar36") (= "=") (identifier "puStack_350")) (; ";")) (if_statement "if (param_1 < puVar13) {\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }" (if "if") (parenthesized_expression "(param_1 < puVar13)" (( "(") (binary_expression "param_1 < puVar13" (identifier "param_1") (< "<") (identifier "puVar13")) () ")")) (compound_statement "{\n                        (**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);\n                        puVar36 = puStack_350;\n                      }" ({ "{") (expression_statement "(**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40);" (call_expression "(**(code **)(puStack_350 + -0x7948))\n                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40)" (parenthesized_expression "(**(code **)(puStack_350 + -0x7948))" (( "(") (pointer_expression "**(code **)(puStack_350 + -0x7948)" (* "*") (pointer_expression "*(code **)(puStack_350 + -0x7948)" (* "*") (cast_expression "(code **)(puStack_350 + -0x7948)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_350 + -0x7948)" (( "(") (binary_expression "puStack_350 + -0x7948" (identifier "puStack_350") (+ "+") (number_literal "-0x7948")) () ")"))))) () ")")) (argument_list "((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),\n                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,\n                                   ((int)puVar13 - (int)param_1) * 0x40)" (( "(") (cast_expression "(undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16))" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar29 + (*unaff_s4 - (int)pdVar16))" (( "(") (binary_expression "(int)pdVar29 + (*unaff_s4 - (int)pdVar16)" (cast_expression "(int)pdVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar29")) (+ "+") (parenthesized_expression "(*unaff_s4 - (int)pdVar16)" (( "(") (binary_expression "*unaff_s4 - (int)pdVar16" (pointer_expression "*unaff_s4" (* "*") (identifier "unaff_s4")) (- "-") (cast_expression "(int)pdVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar16"))) () ")"))) () ")"))) (, ",") (binary_expression "*unaff_s4 + ((int)param_1 + 1) * 0x40" (pointer_expression "*unaff_s4" (* "*") (identifier "unaff_s4")) (+ "+") (binary_expression "((int)param_1 + 1) * 0x40" (parenthesized_expression "((int)param_1 + 1)" (( "(") (binary_expression "(int)param_1 + 1" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "0x40"))) (, ",") (binary_expression "((int)puVar13 - (int)param_1) * 0x40" (parenthesized_expression "((int)puVar13 - (int)param_1)" (( "(") (binary_expression "(int)puVar13 - (int)param_1" (cast_expression "(int)puVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar13")) (- "-") (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1"))) () ")")) (* "*") (number_literal "0x40")) () ")"))) (; ";")) (expression_statement "puVar36 = puStack_350;" (assignment_expression "puVar36 = puStack_350" (identifier "puVar36") (= "=") (identifier "puStack_350")) (; ";")) (} "}"))) (} "}")))) (expression_statement "param_1 = (undefined4 *)((int)param_1 + 1);" (assignment_expression "param_1 = (undefined4 *)((int)param_1 + 1)" (identifier "param_1") (= "=") (cast_expression "(undefined4 *)((int)param_1 + 1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 1)" (( "(") (binary_expression "(int)param_1 + 1" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "unaff_s3 = pdVar29 + 8;" (assignment_expression "unaff_s3 = pdVar29 + 8" (identifier "unaff_s3") (= "=") (binary_expression "pdVar29 + 8" (identifier "pdVar29") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "puVar13 = (undefined4 *)unaff_s4[1];" (assignment_expression "puVar13 = (undefined4 *)unaff_s4[1]" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)unaff_s4[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "unaff_s4[1]" (identifier "unaff_s4") ([ "[") (number_literal "1") (] "]")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27))" (( "(") (binary_expression "((int)param_1 < (int)puVar13) &&\n                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27)" (parenthesized_expression "((int)param_1 < (int)puVar13)" (( "(") (binary_expression "(int)param_1 < (int)puVar13" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (< "<") (cast_expression "(int)puVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar13"))) () ")")) (&& "&&") (parenthesized_expression "(pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27)" (( "(") (comma_expression "pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27" (assignment_expression "pdVar16 = pdVar29 + 9" (identifier "pdVar16") (= "=") (binary_expression "pdVar29 + 9" (identifier "pdVar29") (+ "+") (number_literal "9"))) (, ",") (comma_expression "pdVar29 = unaff_s3,\n                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27" (assignment_expression "pdVar29 = unaff_s3" (identifier "pdVar29") (= "=") (identifier "unaff_s3")) (, ",") (binary_expression "(*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27" (binary_expression "(*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0)" (parenthesized_expression "(*pdVar16 - in_f28_29)" (( "(") (binary_expression "*pdVar16 - in_f28_29" (pointer_expression "*pdVar16" (* "*") (identifier "pdVar16")) (- "-") (identifier "in_f28_29")) () ")")) (- "-") (pointer_expression "*(double *)(iVar10 + 0x43d0)" (* "*") (cast_expression "(double *)(iVar10 + 0x43d0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x43d0)" (( "(") (binary_expression "iVar10 + 0x43d0" (identifier "iVar10") (+ "+") (number_literal "0x43d0")) () ")"))))) (< "<") (identifier "in_f26_27")))) () ")"))) () ")")) (; ";")) (expression_statement "pdVar16 = pdStack_2d8;" (assignment_expression "pdVar16 = pdStack_2d8" (identifier "pdVar16") (= "=") (identifier "pdStack_2d8")) (; ";")) (if_statement "if (iStack_2f4 != 0) {\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }" (if "if") (parenthesized_expression "(iStack_2f4 != 0)" (( "(") (binary_expression "iStack_2f4 != 0" (identifier "iStack_2f4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;\n                    goto LAB_000a4528;\n                  }" ({ "{") (if_statement "if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;" (if "if") (parenthesized_expression "(dStack_340 < *(double *)(unaff_s7 + 0x4408))" (( "(") (binary_expression "dStack_340 < *(double *)(unaff_s7 + 0x4408)" (identifier "dStack_340") (< "<") (pointer_expression "*(double *)(unaff_s7 + 0x4408)" (* "*") (cast_expression "(double *)(unaff_s7 + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s7 + 0x4408)" (( "(") (binary_expression "unaff_s7 + 0x4408" (identifier "unaff_s7") (+ "+") (number_literal "0x4408")) () ")"))))) () ")")) (goto_statement "goto LAB_000a4f34;" (goto "goto") (statement_identifier "LAB_000a4f34") (; ";"))) (goto_statement "goto LAB_000a4528;" (goto "goto") (statement_identifier "LAB_000a4528") (; ";")) (} "}"))) (if_statement "if (*(int *)(iStack_324 + 0x238) == 0) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }" (if "if") (parenthesized_expression "(*(int *)(iStack_324 + 0x238) == 0)" (( "(") (binary_expression "*(int *)(iStack_324 + 0x238) == 0" (pointer_expression "*(int *)(iStack_324 + 0x238)" (* "*") (cast_expression "(int *)(iStack_324 + 0x238)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_324 + 0x238)" (( "(") (binary_expression "iStack_324 + 0x238" (identifier "iStack_324") (+ "+") (number_literal "0x238")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }" ({ "{") (expression_statement "dStack_340 = 0.0;" (assignment_expression "dStack_340 = 0.0" (identifier "dStack_340") (= "=") (number_literal "0.0")) (; ";")) (goto_statement "goto LAB_000a4ec0;" (goto "goto") (statement_identifier "LAB_000a4ec0") (; ";")) (} "}"))) (expression_statement "dStack_340 = 0.0;" (assignment_expression "dStack_340 = 0.0" (identifier "dStack_340") (= "=") (number_literal "0.0")) (; ";")) (goto_statement "goto LAB_000a46d8;" (goto "goto") (statement_identifier "LAB_000a46d8") (; ";")) (} "}"))) (if_statement "if (iStack_2f4 == 0) goto LAB_000a4f94;" (if "if") (parenthesized_expression "(iStack_2f4 == 0)" (( "(") (binary_expression "iStack_2f4 == 0" (identifier "iStack_2f4") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000a4f94;" (goto "goto") (statement_identifier "LAB_000a4f94") (; ";"))) (expression_statement "pdVar29 = (double *)*unaff_s4;" (assignment_expression "pdVar29 = (double *)*unaff_s4" (identifier "pdVar29") (= "=") (cast_expression "(double *)*unaff_s4" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*unaff_s4" (* "*") (identifier "unaff_s4")))) (; ";")) (expression_statement "dStack_338 = 0.0;" (assignment_expression "dStack_338 = 0.0" (identifier "dStack_338") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "dStack_340 = 0.0;" (assignment_expression "dStack_340 = 0.0" (identifier "dStack_340") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "dVar39 = in_f30_31;" (assignment_expression "dVar39 = in_f30_31" (identifier "dVar39") (= "=") (identifier "in_f30_31")) (; ";")) (labeled_statement "LAB_000a4f3c:\n                dVar41 = (double)iStack_2f0;" (statement_identifier "LAB_000a4f3c") (: ":") (expression_statement "dVar41 = (double)iStack_2f0;" (assignment_expression "dVar41 = (double)iStack_2f0" (identifier "dVar41") (= "=") (cast_expression "(double)iStack_2f0" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iStack_2f0"))) (; ";"))) (expression_statement "puVar21 = (undefined4 *)0x0;" (assignment_expression "puVar21 = (undefined4 *)0x0" (identifier "puVar21") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (pdVar29[1] < dVar41) {\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }\n                else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }" (if "if") (parenthesized_expression "(pdVar29[1] < dVar41)" (( "(") (binary_expression "pdVar29[1] < dVar41" (subscript_expression "pdVar29[1]" (identifier "pdVar29") ([ "[") (number_literal "1") (] "]")) (< "<") (identifier "dVar41")) () ")")) (compound_statement "{\n                  uVar26 = 0;\n                  do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));\n                  if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }\n                  if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }" ({ "{") (expression_statement "uVar26 = 0;" (assignment_expression "uVar26 = 0" (identifier "uVar26") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  } while ((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));" (do "do") (compound_statement "{\n                    if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }\n                    puVar21 = (undefined4 *)((int)puVar21 + 1);\n                  }" ({ "{") (if_statement "if ((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }" (if "if") (parenthesized_expression "((dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40))" (( "(") (binary_expression "(dVar41 <= pdVar29[3]) &&\n                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)" (parenthesized_expression "(dVar41 <= pdVar29[3])" (( "(") (binary_expression "dVar41 <= pdVar29[3]" (identifier "dVar41") (<= "<=") (subscript_expression "pdVar29[3]" (identifier "pdVar29") ([ "[") (number_literal "3") (] "]"))) () ")")) (&& "&&") (parenthesized_expression "(dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)" (( "(") (comma_expression "dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40" (assignment_expression "dVar40 = (double)(int)uStack_328" (identifier "dVar40") (= "=") (cast_expression "(double)(int)uStack_328" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)uStack_328" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uStack_328")))) (, ",") (binary_expression "*pdVar29 < dVar40" (pointer_expression "*pdVar29" (* "*") (identifier "pdVar29")) (< "<") (identifier "dVar40"))) () ")"))) () ")")) (compound_statement "{\n                      iVar10 = -1;\n                      if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }\n                    }" ({ "{") (expression_statement "iVar10 = -1;" (assignment_expression "iVar10 = -1" (identifier "iVar10") (= "=") (number_literal "-1")) (; ";")) (if_statement "if (dVar40 <= pdVar29[2]) {\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }\n                      else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }" (if "if") (parenthesized_expression "(dVar40 <= pdVar29[2])" (( "(") (binary_expression "dVar40 <= pdVar29[2]" (identifier "dVar40") (<= "<=") (subscript_expression "pdVar29[2]" (identifier "pdVar29") ([ "[") (number_literal "2") (] "]"))) () ")")) (compound_statement "{\n                        iVar10 = *(int *)(pdVar29 + 7);\n                        dVar47 = (double)iVar10;\n                        if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }\n                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }\n                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;\n                        if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }\n                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);\n                        iVar10 = -1;\n                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }\n                      }" ({ "{") (expression_statement "iVar10 = *(int *)(pdVar29 + 7);" (assignment_expression "iVar10 = *(int *)(pdVar29 + 7)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(pdVar29 + 7)" (* "*") (cast_expression "(int *)(pdVar29 + 7)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar29 + 7)" (( "(") (binary_expression "pdVar29 + 7" (identifier "pdVar29") (+ "+") (number_literal "7")) () ")"))))) (; ";")) (expression_statement "dVar47 = (double)iVar10;" (assignment_expression "dVar47 = (double)iVar10" (identifier "dVar47") (= "=") (cast_expression "(double)iVar10" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar10"))) (; ";")) (if_statement "if (iVar10 < 0) {\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }" (if "if") (parenthesized_expression "(iVar10 < 0)" (( "(") (binary_expression "iVar10 < 0" (identifier "iVar10") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);\n                        }" ({ "{") (expression_statement "dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);" (assignment_expression "dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8)" (identifier "dVar47") (= "=") (binary_expression "dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8)" (identifier "dVar47") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8)" (* "*") (cast_expression "(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar36 + -0x7fd0) + 0x43e8)" (( "(") (binary_expression "*(int *)(puVar36 + -0x7fd0) + 0x43e8" (pointer_expression "*(int *)(puVar36 + -0x7fd0)" (* "*") (cast_expression "(int *)(puVar36 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x7fd0)" (( "(") (binary_expression "puVar36 + -0x7fd0" (identifier "puVar36") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x43e8")) () ")")))))) (; ";")) (} "}"))) (if_statement "if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {\n                          iVar10 = 1;\n                        }" (if "if") (parenthesized_expression "(dVar47 <= *(double *)(unaff_s7 + 0x4408))" (( "(") (binary_expression "dVar47 <= *(double *)(unaff_s7 + 0x4408)" (identifier "dVar47") (<= "<=") (pointer_expression "*(double *)(unaff_s7 + 0x4408)" (* "*") (cast_expression "(double *)(unaff_s7 + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s7 + 0x4408)" (( "(") (binary_expression "unaff_s7 + 0x4408" (identifier "unaff_s7") (+ "+") (number_literal "0x4408")) () ")"))))) () ")")) (compound_statement "{\n                          iVar10 = 1;\n                        }" ({ "{") (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" (identifier "iVar10") (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;" (assignment_expression "iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1" (identifier "iVar49") (= "=") (binary_expression "*(int *)((int)pdVar29 + 0x2c) + -1" (pointer_expression "*(int *)((int)pdVar29 + 0x2c)" (* "*") (cast_expression "(int *)((int)pdVar29 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar29 + 0x2c)" (( "(") (binary_expression "(int)pdVar29 + 0x2c" (cast_expression "(int)pdVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar29")) (+ "+") (number_literal "0x2c")) () ")")))) (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (iVar10 < iVar49) {\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }" (if "if") (parenthesized_expression "(iVar10 < iVar49)" (( "(") (binary_expression "iVar10 < iVar49" (identifier "iVar10") (< "<") (identifier "iVar49")) () ")")) (compound_statement "{\n                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;\n                          dVar47 = *(double *)(iVar28 + 8);\n                          while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }\n                        }" ({ "{") (expression_statement "iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;" (assignment_expression "iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10" (identifier "iVar28") (= "=") (binary_expression "*(int *)(pdVar29 + 5) + iVar10 * 0x10" (pointer_expression "*(int *)(pdVar29 + 5)" (* "*") (cast_expression "(int *)(pdVar29 + 5)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar29 + 5)" (( "(") (binary_expression "pdVar29 + 5" (identifier "pdVar29") (+ "+") (number_literal "5")) () ")")))) (+ "+") (binary_expression "iVar10 * 0x10" (identifier "iVar10") (* "*") (number_literal "0x10")))) (; ";")) (expression_statement "dVar47 = *(double *)(iVar28 + 8);" (assignment_expression "dVar47 = *(double *)(iVar28 + 8)" (identifier "dVar47") (= "=") (pointer_expression "*(double *)(iVar28 + 8)" (* "*") (cast_expression "(double *)(iVar28 + 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar28 + 8)" (( "(") (binary_expression "iVar28 + 8" (identifier "iVar28") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (while_statement "while (dVar47 < dVar41) {\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }" (while "while") (parenthesized_expression "(dVar47 < dVar41)" (( "(") (binary_expression "dVar47 < dVar41" (identifier "dVar47") (< "<") (identifier "dVar41")) () ")")) (compound_statement "{\n                            iVar10 = iVar10 + 1;\n                            if (iVar49 <= iVar10) break;\n                            dVar47 = *(double *)(iVar28 + 0x18);\n                            iVar28 = iVar28 + 0x10;\n                          }" ({ "{") (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" (identifier "iVar10") (= "=") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar49 <= iVar10) break;" (if "if") (parenthesized_expression "(iVar49 <= iVar10)" (( "(") (binary_expression "iVar49 <= iVar10" (identifier "iVar49") (<= "<=") (identifier "iVar10")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "dVar47 = *(double *)(iVar28 + 0x18);" (assignment_expression "dVar47 = *(double *)(iVar28 + 0x18)" (identifier "dVar47") (= "=") (pointer_expression "*(double *)(iVar28 + 0x18)" (* "*") (cast_expression "(double *)(iVar28 + 0x18)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar28 + 0x18)" (( "(") (binary_expression "iVar28 + 0x18" (identifier "iVar28") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "iVar28 = iVar28 + 0x10;" (assignment_expression "iVar28 = iVar28 + 0x10" (identifier "iVar28") (= "=") (binary_expression "iVar28 + 0x10" (identifier "iVar28") (+ "+") (number_literal "0x10"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);" (assignment_expression "pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10)" (identifier "pdVar5") (= "=") (cast_expression "(double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10)" (( "(") (binary_expression "*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10" (pointer_expression "*(int *)(pdVar29 + 5)" (* "*") (cast_expression "(int *)(pdVar29 + 5)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar29 + 5)" (( "(") (binary_expression "pdVar29 + 5" (identifier "pdVar29") (+ "+") (number_literal "5")) () ")")))) (+ "+") (binary_expression "(iVar10 + 0xfffffff) * 0x10" (parenthesized_expression "(iVar10 + 0xfffffff)" (( "(") (binary_expression "iVar10 + 0xfffffff" (identifier "iVar10") (+ "+") (number_literal "0xfffffff")) () ")")) (* "*") (number_literal "0x10"))) () ")")))) (; ";")) (expression_statement "iVar10 = -1;" (assignment_expression "iVar10 = -1" (identifier "iVar10") (= "=") (number_literal "-1")) (; ";")) (if_statement "if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }" (if "if") (parenthesized_expression "((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5))" (( "(") (binary_expression "(pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=\n                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)" (binary_expression "(pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1])" (parenthesized_expression "(pdVar5[2] - *pdVar5)" (( "(") (binary_expression "pdVar5[2] - *pdVar5" (subscript_expression "pdVar5[2]" (identifier "pdVar5") ([ "[") (number_literal "2") (] "]")) (- "-") (pointer_expression "*pdVar5" (* "*") (identifier "pdVar5"))) () ")")) (* "*") (parenthesized_expression "(dVar41 - pdVar5[1])" (( "(") (binary_expression "dVar41 - pdVar5[1]" (identifier "dVar41") (- "-") (subscript_expression "pdVar5[1]" (identifier "pdVar5") ([ "[") (number_literal "1") (] "]"))) () ")"))) (<= "<=") (binary_expression "(pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)" (parenthesized_expression "(pdVar5[3] - pdVar5[1])" (( "(") (binary_expression "pdVar5[3] - pdVar5[1]" (subscript_expression "pdVar5[3]" (identifier "pdVar5") ([ "[") (number_literal "3") (] "]")) (- "-") (subscript_expression "pdVar5[1]" (identifier "pdVar5") ([ "[") (number_literal "1") (] "]"))) () ")")) (* "*") (parenthesized_expression "(dVar40 - *pdVar5)" (( "(") (binary_expression "dVar40 - *pdVar5" (identifier "dVar40") (- "-") (pointer_expression "*pdVar5" (* "*") (identifier "pdVar5"))) () ")")))) () ")")) (compound_statement "{\n                          if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }\n                          uVar26 = uVar26 + iVar10;\n                        }" ({ "{") (if_statement "if (*(int *)(pdVar29 + 6) != 0) {\n                            iVar10 = 1;\n                          }" (if "if") (parenthesized_expression "(*(int *)(pdVar29 + 6) != 0)" (( "(") (binary_expression "*(int *)(pdVar29 + 6) != 0" (pointer_expression "*(int *)(pdVar29 + 6)" (* "*") (cast_expression "(int *)(pdVar29 + 6)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar29 + 6)" (( "(") (binary_expression "pdVar29 + 6" (identifier "pdVar29") (+ "+") (number_literal "6")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                            iVar10 = 1;\n                          }" ({ "{") (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" (identifier "iVar10") (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "uVar26 = uVar26 + iVar10;" (assignment_expression "uVar26 = uVar26 + iVar10" (identifier "uVar26") (= "=") (binary_expression "uVar26 + iVar10" (identifier "uVar26") (+ "+") (identifier "iVar10"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }" (else "else") (compound_statement "{\n                        if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }\n                        uVar26 = uVar26 + iVar10;\n                      }" ({ "{") (if_statement "if (*(int *)(pdVar29 + 6) != 0) {\n                          iVar10 = 1;\n                        }" (if "if") (parenthesized_expression "(*(int *)(pdVar29 + 6) != 0)" (( "(") (binary_expression "*(int *)(pdVar29 + 6) != 0" (pointer_expression "*(int *)(pdVar29 + 6)" (* "*") (cast_expression "(int *)(pdVar29 + 6)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar29 + 6)" (( "(") (binary_expression "pdVar29 + 6" (identifier "pdVar29") (+ "+") (number_literal "6")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                          iVar10 = 1;\n                        }" ({ "{") (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" (identifier "iVar10") (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "uVar26 = uVar26 + iVar10;" (assignment_expression "uVar26 = uVar26 + iVar10" (identifier "uVar26") (= "=") (binary_expression "uVar26 + iVar10" (identifier "uVar26") (+ "+") (identifier "iVar10"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "puVar21 = (undefined4 *)((int)puVar21 + 1);" (assignment_expression "puVar21 = (undefined4 *)((int)puVar21 + 1)" (identifier "puVar21") (= "=") (cast_expression "(undefined4 *)((int)puVar21 + 1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar21 + 1)" (( "(") (binary_expression "(int)puVar21 + 1" (cast_expression "(int)puVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar21")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41))" (( "(") (binary_expression "(puVar21 != puVar13) &&\n                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41)" (parenthesized_expression "(puVar21 != puVar13)" (( "(") (binary_expression "puVar21 != puVar13" (identifier "puVar21") (!= "!=") (identifier "puVar13")) () ")")) (&& "&&") (parenthesized_expression "(pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41)" (( "(") (comma_expression "pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41" (assignment_expression "pdVar5 = pdVar29 + 9" (identifier "pdVar5") (= "=") (binary_expression "pdVar29 + 9" (identifier "pdVar29") (+ "+") (number_literal "9"))) (, ",") (comma_expression "pdVar29 = pdVar29 + 8, *pdVar5 < dVar41" (assignment_expression "pdVar29 = pdVar29 + 8" (identifier "pdVar29") (= "=") (binary_expression "pdVar29 + 8" (identifier "pdVar29") (+ "+") (number_literal "8"))) (, ",") (binary_expression "*pdVar5 < dVar41" (pointer_expression "*pdVar5" (* "*") (identifier "pdVar5")) (< "<") (identifier "dVar41")))) () ")"))) () ")")) (; ";")) (if_statement "if (iStack_2c0 != 2) {\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }" (if "if") (parenthesized_expression "(iStack_2c0 != 2)" (( "(") (binary_expression "iStack_2c0 != 2" (identifier "iStack_2c0") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n                    if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }\n                    if ((uVar26 & 1) != 0) goto LAB_000a4528;\n                    goto LAB_000a4684;\n                  }" ({ "{") (if_statement "if ((int)uVar26 < 0) {\n                      uVar26 = -uVar26;\n                    }" (if "if") (parenthesized_expression "((int)uVar26 < 0)" (( "(") (binary_expression "(int)uVar26 < 0" (cast_expression "(int)uVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar26")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                      uVar26 = -uVar26;\n                    }" ({ "{") (expression_statement "uVar26 = -uVar26;" (assignment_expression "uVar26 = -uVar26" (identifier "uVar26") (= "=") (unary_expression "-uVar26" (- "-") (identifier "uVar26"))) (; ";")) (} "}"))) (if_statement "if ((uVar26 & 1) != 0) goto LAB_000a4528;" (if "if") (parenthesized_expression "((uVar26 & 1) != 0)" (( "(") (binary_expression "(uVar26 & 1) != 0" (parenthesized_expression "(uVar26 & 1)" (( "(") (binary_expression "uVar26 & 1" (identifier "uVar26") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000a4528;" (goto "goto") (statement_identifier "LAB_000a4528") (; ";"))) (goto_statement "goto LAB_000a4684;" (goto "goto") (statement_identifier "LAB_000a4684") (; ";")) (} "}"))) (if_statement "if (uVar26 != 0) {\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }" (if "if") (parenthesized_expression "(uVar26 != 0)" (( "(") (binary_expression "uVar26 != 0" (identifier "uVar26") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;\n                    goto LAB_000a46d8;\n                  }" ({ "{") (labeled_statement "LAB_000a4528:\n                    dStack_340 = *(double *)(unaff_s7 + 0x4408);" (statement_identifier "LAB_000a4528") (: ":") (expression_statement "dStack_340 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dStack_340 = *(double *)(unaff_s7 + 0x4408)" (identifier "dStack_340") (= "=") (pointer_expression "*(double *)(unaff_s7 + 0x4408)" (* "*") (cast_expression "(double *)(unaff_s7 + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s7 + 0x4408)" (( "(") (binary_expression "unaff_s7 + 0x4408" (identifier "unaff_s7") (+ "+") (number_literal "0x4408")) () ")"))))) (; ";"))) (if_statement "if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;" (if "if") (parenthesized_expression "(*(int *)(iStack_324 + 0x238) == 0)" (( "(") (binary_expression "*(int *)(iStack_324 + 0x238) == 0" (pointer_expression "*(int *)(iStack_324 + 0x238)" (* "*") (cast_expression "(int *)(iStack_324 + 0x238)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_324 + 0x238)" (( "(") (binary_expression "iStack_324 + 0x238" (identifier "iStack_324") (+ "+") (number_literal "0x238")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000a4ec0;" (goto "goto") (statement_identifier "LAB_000a4ec0") (; ";"))) (goto_statement "goto LAB_000a46d8;" (goto "goto") (statement_identifier "LAB_000a46d8") (; ";")) (} "}"))) (expression_statement "iVar10 = *(int *)(iStack_324 + 0x238);" (assignment_expression "iVar10 = *(int *)(iStack_324 + 0x238)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(iStack_324 + 0x238)" (* "*") (cast_expression "(int *)(iStack_324 + 0x238)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_324 + 0x238)" (( "(") (binary_expression "iStack_324 + 0x238" (identifier "iStack_324") (+ "+") (number_literal "0x238")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }" (else "else") (compound_statement "{\nLAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);\n                }" ({ "{") (labeled_statement "LAB_000a4684:\n                  iVar10 = *(int *)(iStack_324 + 0x238);" (statement_identifier "LAB_000a4684") (: ":") (expression_statement "iVar10 = *(int *)(iStack_324 + 0x238);" (assignment_expression "iVar10 = *(int *)(iStack_324 + 0x238)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(iStack_324 + 0x238)" (* "*") (cast_expression "(int *)(iStack_324 + 0x238)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_324 + 0x238)" (( "(") (binary_expression "iStack_324 + 0x238" (identifier "iStack_324") (+ "+") (number_literal "0x238")) () ")"))))) (; ";"))) (} "}")))) (if_statement "if (iVar10 == 0) {\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  iVar10 = *(int *)(puVar36 + -0x7fd0);\n                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_340 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }\nLAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);\n                  dStack_338 = *(double *)(unaff_s7 + 0x4408);\n                  if (bVar1) {\n                    dStack_338 = 0.0;\n                  }\n                }" ({ "{") (expression_statement "iVar10 = *(int *)(puVar36 + -0x7fd0);" (assignment_expression "iVar10 = *(int *)(puVar36 + -0x7fd0)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(puVar36 + -0x7fd0)" (* "*") (cast_expression "(int *)(puVar36 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x7fd0)" (( "(") (binary_expression "puVar36 + -0x7fd0" (identifier "puVar36") (+ "+") (number_literal "-0x7fd0")) () ")"))))) (; ";")) (expression_statement "bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);" (assignment_expression "bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0)" (identifier "bVar1") (= "=") (binary_expression "dStack_340 <= *(double *)(iVar10 + 0x43d0)" (identifier "dStack_340") (<= "<=") (pointer_expression "*(double *)(iVar10 + 0x43d0)" (* "*") (cast_expression "(double *)(iVar10 + 0x43d0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x43d0)" (( "(") (binary_expression "iVar10 + 0x43d0" (identifier "iVar10") (+ "+") (number_literal "0x43d0")) () ")")))))) (; ";")) (expression_statement "dStack_340 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dStack_340 = *(double *)(unaff_s7 + 0x4408)" (identifier "dStack_340") (= "=") (pointer_expression "*(double *)(unaff_s7 + 0x4408)" (* "*") (cast_expression "(double *)(unaff_s7 + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s7 + 0x4408)" (( "(") (binary_expression "unaff_s7 + 0x4408" (identifier "unaff_s7") (+ "+") (number_literal "0x4408")) () ")"))))) (; ";")) (if_statement "if (bVar1) {\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n                    dStack_340 = 0.0;\n                    goto LAB_000a4ec0;\n                  }" ({ "{") (expression_statement "dStack_340 = 0.0;" (assignment_expression "dStack_340 = 0.0" (identifier "dStack_340") (= "=") (number_literal "0.0")) (; ";")) (goto_statement "goto LAB_000a4ec0;" (goto "goto") (statement_identifier "LAB_000a4ec0") (; ";")) (} "}"))) (labeled_statement "LAB_000a4ec4:\n                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);" (statement_identifier "LAB_000a4ec4") (: ":") (expression_statement "bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);" (assignment_expression "bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0)" (identifier "bVar1") (= "=") (binary_expression "dStack_338 <= *(double *)(iVar10 + 0x43d0)" (identifier "dStack_338") (<= "<=") (pointer_expression "*(double *)(iVar10 + 0x43d0)" (* "*") (cast_expression "(double *)(iVar10 + 0x43d0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x43d0)" (( "(") (binary_expression "iVar10 + 0x43d0" (identifier "iVar10") (+ "+") (number_literal "0x43d0")) () ")")))))) (; ";"))) (expression_statement "dStack_338 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "dStack_338 = *(double *)(unaff_s7 + 0x4408)" (identifier "dStack_338") (= "=") (pointer_expression "*(double *)(unaff_s7 + 0x4408)" (* "*") (cast_expression "(double *)(unaff_s7 + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s7 + 0x4408)" (( "(") (binary_expression "unaff_s7 + 0x4408" (identifier "unaff_s7") (+ "+") (number_literal "0x4408")) () ")"))))) (; ";")) (if_statement "if (bVar1) {\n                    dStack_338 = 0.0;\n                  }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n                    dStack_338 = 0.0;\n                  }" ({ "{") (expression_statement "dStack_338 = 0.0;" (assignment_expression "dStack_338 = 0.0" (identifier "dStack_338") (= "=") (number_literal "0.0")) (; ";")) (} "}"))) (} "}"))) (} "}")))) (labeled_statement "LAB_000a46d8:\n              uVar26 = uStack_2f8;" (statement_identifier "LAB_000a46d8") (: ":") (expression_statement "uVar26 = uStack_2f8;" (assignment_expression "uVar26 = uStack_2f8" (identifier "uVar26") (= "=") (identifier "uStack_2f8")) (; ";"))) (expression_statement "iVar28 = uStack_328 - uStack_2d4;" (assignment_expression "iVar28 = uStack_328 - uStack_2d4" (identifier "iVar28") (= "=") (binary_expression "uStack_328 - uStack_2d4" (identifier "uStack_328") (- "-") (identifier "uStack_2d4"))) (; ";")) (expression_statement "iVar10 = *(int *)(iStack_324 + 0x1a8);" (assignment_expression "iVar10 = *(int *)(iStack_324 + 0x1a8)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(iStack_324 + 0x1a8)" (* "*") (cast_expression "(int *)(iStack_324 + 0x1a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_324 + 0x1a8)" (( "(") (binary_expression "iStack_324 + 0x1a8" (identifier "iStack_324") (+ "+") (number_literal "0x1a8")) () ")"))))) (; ";")) (if_statement "if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                puVar13 = (undefined4 *)(iStack_324 + 0x48);\n                puVar21 = auStack_298;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }" ({ "{") (expression_statement "puVar13 = (undefined4 *)(iStack_324 + 0x48);" (assignment_expression "puVar13 = (undefined4 *)(iStack_324 + 0x48)" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)(iStack_324 + 0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_324 + 0x48)" (( "(") (binary_expression "iStack_324 + 0x48" (identifier "iStack_324") (+ "+") (number_literal "0x48")) () ")")))) (; ";")) (expression_statement "puVar21 = auStack_298;" (assignment_expression "puVar21 = auStack_298" (identifier "puVar21") (= "=") (identifier "auStack_298")) (; ";")) (do_statement "do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));" (do "do") (compound_statement "{\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                }" ({ "{") (expression_statement "puVar15 = puVar21;" (assignment_expression "puVar15 = puVar21" (identifier "puVar15") (= "=") (identifier "puVar21")) (; ";")) (expression_statement "puVar9 = puVar13;" (assignment_expression "puVar9 = puVar13" (identifier "puVar9") (= "=") (identifier "puVar13")) (; ";")) (expression_statement "uVar27 = puVar9[1];" (assignment_expression "uVar27 = puVar9[1]" (identifier "uVar27") (= "=") (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar25 = puVar9[2];" (assignment_expression "uVar25 = puVar9[2]" (identifier "uVar25") (= "=") (subscript_expression "puVar9[2]" (identifier "puVar9") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar4 = puVar9[3];" (assignment_expression "uVar4 = puVar9[3]" (identifier "uVar4") (= "=") (subscript_expression "puVar9[3]" (identifier "puVar9") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar15 = *puVar9;" (assignment_expression "*puVar15 = *puVar9" (pointer_expression "*puVar15" (* "*") (identifier "puVar15")) (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (expression_statement "puVar15[1] = uVar27;" (assignment_expression "puVar15[1] = uVar27" (subscript_expression "puVar15[1]" (identifier "puVar15") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar27")) (; ";")) (expression_statement "puVar15[2] = uVar25;" (assignment_expression "puVar15[2] = uVar25" (subscript_expression "puVar15[2]" (identifier "puVar15") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar25")) (; ";")) (expression_statement "puVar15[3] = uVar4;" (assignment_expression "puVar15[3] = uVar4" (subscript_expression "puVar15[3]" (identifier "puVar15") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "puVar13 = puVar9 + 4;" (assignment_expression "puVar13 = puVar9 + 4" (identifier "puVar13") (= "=") (binary_expression "puVar9 + 4" (identifier "puVar9") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "puVar21 = puVar15 + 4;" (assignment_expression "puVar21 = puVar15 + 4" (identifier "puVar21") (= "=") (binary_expression "puVar15 + 4" (identifier "puVar15") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar13 != (undefined4 *)(iStack_324 + 0x98))" (( "(") (binary_expression "puVar13 != (undefined4 *)(iStack_324 + 0x98)" (identifier "puVar13") (!= "!=") (cast_expression "(undefined4 *)(iStack_324 + 0x98)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_324 + 0x98)" (( "(") (binary_expression "iStack_324 + 0x98" (identifier "iStack_324") (+ "+") (number_literal "0x98")) () ")")))) () ")")) (; ";")) (expression_statement "uVar4 = puVar9[5];" (assignment_expression "uVar4 = puVar9[5]" (identifier "uVar4") (= "=") (subscript_expression "puVar9[5]" (identifier "puVar9") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "puVar15[4] = *puVar13;" (assignment_expression "puVar15[4] = *puVar13" (subscript_expression "puVar15[4]" (identifier "puVar15") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*puVar13" (* "*") (identifier "puVar13"))) (; ";")) (expression_statement "puVar15[5] = uVar4;" (assignment_expression "puVar15[5] = uVar4" (subscript_expression "puVar15[5]" (identifier "puVar15") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (} "}")) (else_clause "else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }" (else "else") (compound_statement "{\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_298;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));\n                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);\n                pdVar29 = (double *)(iStack_324 + 0x398);\n                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }" ({ "{") (expression_statement "uStack_354 = uStack_2d0;" (assignment_expression "uStack_354 = uStack_2d0" (identifier "uStack_354") (= "=") (identifier "uStack_2d0")) (; ";")) (expression_statement "puStack_358 = auStack_298;" (assignment_expression "puStack_358 = auStack_298" (identifier "puStack_358") (= "=") (identifier "auStack_298")) (; ";")) (expression_statement "(**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c));" (call_expression "(**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c))" (parenthesized_expression "(**(code **)(puVar36 + -0x747c))" (( "(") (pointer_expression "**(code **)(puVar36 + -0x747c)" (* "*") (pointer_expression "*(code **)(puVar36 + -0x747c)" (* "*") (cast_expression "(code **)(puVar36 + -0x747c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x747c)" (( "(") (binary_expression "puVar36 + -0x747c" (identifier "puVar36") (+ "+") (number_literal "-0x747c")) () ")"))))) () ")")) (argument_list "(iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uStack_2f8 + *(int *)(iVar10 + 0x29c))" (( "(") (identifier "iVar10") (, ",") (number_literal "6") (, ",") (binary_expression "iVar28 + *(int *)(iVar10 + 0x298)" (identifier "iVar28") (+ "+") (pointer_expression "*(int *)(iVar10 + 0x298)" (* "*") (cast_expression "(int *)(iVar10 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x298)" (( "(") (binary_expression "iVar10 + 0x298" (identifier "iVar10") (+ "+") (number_literal "0x298")) () ")"))))) (, ",") (binary_expression "uStack_2f8 + *(int *)(iVar10 + 0x29c)" (identifier "uStack_2f8") (+ "+") (pointer_expression "*(int *)(iVar10 + 0x29c)" (* "*") (cast_expression "(int *)(iVar10 + 0x29c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x29c)" (( "(") (binary_expression "iVar10 + 0x29c" (identifier "iVar10") (+ "+") (number_literal "0x29c")) () ")"))))) () ")"))) (; ";")) (expression_statement "uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);" (assignment_expression "uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c)" (identifier "uStack_2e4") (= "=") (pointer_expression "*(undefined4 *)(iStack_324 + 0x39c)" (* "*") (cast_expression "(undefined4 *)(iStack_324 + 0x39c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_324 + 0x39c)" (( "(") (binary_expression "iStack_324 + 0x39c" (identifier "iStack_324") (+ "+") (number_literal "0x39c")) () ")"))))) (; ";")) (expression_statement "pdVar29 = (double *)(iStack_324 + 0x398);" (assignment_expression "pdVar29 = (double *)(iStack_324 + 0x398)" (identifier "pdVar29") (= "=") (cast_expression "(double *)(iStack_324 + 0x398)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_324 + 0x398)" (( "(") (binary_expression "iStack_324 + 0x398" (identifier "iStack_324") (+ "+") (number_literal "0x398")) () ")")))) (; ";")) (expression_statement "uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;" (assignment_expression "uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff" (identifier "uStack_2e8") (= "=") (binary_expression "*(uint *)pdVar29 & 0x7fffffff" (pointer_expression "*(uint *)pdVar29" (* "*") (cast_expression "(uint *)pdVar29" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pdVar29"))) (& "&") (number_literal "0x7fffffff"))) (; ";")) (expression_statement "puVar36 = puStack_350;" (assignment_expression "puVar36 = puStack_350" (identifier "puVar36") (= "=") (identifier "puStack_350")) (; ";")) (if_statement "if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }" (if "if") (parenthesized_expression "(*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29))" (( "(") (binary_expression "*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)" (pointer_expression "*(double *)(iVar3 + 0x43c8)" (* "*") (cast_expression "(double *)(iVar3 + 0x43c8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x43c8)" (( "(") (binary_expression "iVar3 + 0x43c8" (identifier "iVar3") (+ "+") (number_literal "0x43c8")) () ")")))) (<= "<=") (call_expression "ABS(*pdVar29)" (identifier "ABS") (argument_list "(*pdVar29)" (( "(") (pointer_expression "*pdVar29" (* "*") (identifier "pdVar29")) () ")")))) () ")")) (compound_statement "{\n                  dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }" ({ "{") (expression_statement "dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);" (assignment_expression "dStack_250 = dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" (identifier "dStack_250") (= "=") (binary_expression "dStack_250 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" (binary_expression "dStack_250 *\n                               *pdVar29" (identifier "dStack_250") (* "*") (pointer_expression "*pdVar29" (* "*") (identifier "pdVar29"))) (* "*") (pointer_expression "*(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" (* "*") (cast_expression "(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" (( "(") (binary_expression "*(int *)(puStack_350 + -0x7fd0) + 0x4410" (pointer_expression "*(int *)(puStack_350 + -0x7fd0)" (* "*") (cast_expression "(int *)(puStack_350 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_350 + -0x7fd0)" (( "(") (binary_expression "puStack_350 + -0x7fd0" (identifier "puStack_350") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4410")) () ")")))))) (; ";")) (} "}"))) (} "}")))) (if_statement "if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0)" (( "(") (binary_expression "*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0" (pointer_expression "*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34)" (* "*") (cast_expression "(int *)(*(int *)(pdVar16 + 0x5a) + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pdVar16 + 0x5a) + 0x34)" (( "(") (binary_expression "*(int *)(pdVar16 + 0x5a) + 0x34" (pointer_expression "*(int *)(pdVar16 + 0x5a)" (* "*") (cast_expression "(int *)(pdVar16 + 0x5a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar16 + 0x5a)" (( "(") (binary_expression "pdVar16 + 0x5a" (identifier "pdVar16") (+ "+") (number_literal "0x5a")) () ")")))) (+ "+") (number_literal "0x34")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }" ({ "{") (expression_statement "fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);" (assignment_expression "fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8)" (identifier "fVar43") (= "=") (pointer_expression "*(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8)" (* "*") (cast_expression "(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar36 + -0x7fd0) + 0x4aa8)" (( "(") (binary_expression "*(int *)(puVar36 + -0x7fd0) + 0x4aa8" (pointer_expression "*(int *)(puVar36 + -0x7fd0)" (* "*") (cast_expression "(int *)(puVar36 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x7fd0)" (( "(") (binary_expression "puVar36 + -0x7fd0" (identifier "puVar36") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4aa8")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }" (else "else") (compound_statement "{\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }" ({ "{") (expression_statement "fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);" (assignment_expression "fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4)" (identifier "fVar43") (= "=") (pointer_expression "*(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4)" (* "*") (cast_expression "(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4)" (( "(") (binary_expression "iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4" (identifier "iStack_308") (+ "+") (binary_expression "*(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4" (pointer_expression "*(int *)(*(int *)(pdVar16 + 0x5a) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(pdVar16 + 0x5a) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pdVar16 + 0x5a) + 0x38)" (( "(") (binary_expression "*(int *)(pdVar16 + 0x5a) + 0x38" (pointer_expression "*(int *)(pdVar16 + 0x5a)" (* "*") (cast_expression "(int *)(pdVar16 + 0x5a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar16 + 0x5a)" (( "(") (binary_expression "pdVar16 + 0x5a" (identifier "pdVar16") (+ "+") (number_literal "0x5a")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}")))) (expression_statement "dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);" (assignment_expression "dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" (identifier "dVar41") (= "=") (binary_expression "dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" (binary_expression "dStack_340 * dStack_250" (identifier "dStack_340") (* "*") (identifier "dStack_250")) (* "*") (pointer_expression "*(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" (* "*") (cast_expression "(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar36 + -0x7fd0) + 0x4410)" (( "(") (binary_expression "*(int *)(puVar36 + -0x7fd0) + 0x4410" (pointer_expression "*(int *)(puVar36 + -0x7fd0)" (* "*") (cast_expression "(int *)(puVar36 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x7fd0)" (( "(") (binary_expression "puVar36 + -0x7fd0" (identifier "puVar36") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4410")) () ")")))))) (; ";")) (expression_statement "dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);" (assignment_expression "dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" (identifier "dVar40") (= "=") (binary_expression "(double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" (cast_expression "(double)fVar43" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar43")) (* "*") (pointer_expression "*(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" (* "*") (cast_expression "(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar36 + -0x7fd0) + 0x4410)" (( "(") (binary_expression "*(int *)(puVar36 + -0x7fd0) + 0x4410" (pointer_expression "*(int *)(puVar36 + -0x7fd0)" (* "*") (cast_expression "(int *)(puVar36 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x7fd0)" (( "(") (binary_expression "puVar36 + -0x7fd0" (identifier "puVar36") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4410")) () ")")))))) (; ";")) (expression_statement "dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;" (assignment_expression "dVar41 = (dVar41 + dVar40) - dVar41 * dVar40" (identifier "dVar41") (= "=") (binary_expression "(dVar41 + dVar40) - dVar41 * dVar40" (parenthesized_expression "(dVar41 + dVar40)" (( "(") (binary_expression "dVar41 + dVar40" (identifier "dVar41") (+ "+") (identifier "dVar40")) () ")")) (- "-") (binary_expression "dVar41 * dVar40" (identifier "dVar41") (* "*") (identifier "dVar40")))) (; ";")) (expression_statement "in_f30_31 = dVar39;" (assignment_expression "in_f30_31 = dVar39" (identifier "in_f30_31") (= "=") (identifier "dVar39")) (; ";")) (if_statement "if (0 < *(int *)(pdVar16 + 0x58)) {\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }" (if "if") (parenthesized_expression "(0 < *(int *)(pdVar16 + 0x58))" (( "(") (binary_expression "0 < *(int *)(pdVar16 + 0x58)" (number_literal "0") (< "<") (pointer_expression "*(int *)(pdVar16 + 0x58)" (* "*") (cast_expression "(int *)(pdVar16 + 0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar16 + 0x58)" (( "(") (binary_expression "pdVar16 + 0x58" (identifier "pdVar16") (+ "+") (number_literal "0x58")) () ")"))))) () ")")) (compound_statement "{\n                iVar49 = 0;\n                iVar10 = 0;\n                in_f26_27 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));\n              }" ({ "{") (expression_statement "iVar49 = 0;" (assignment_expression "iVar49 = 0" (identifier "iVar49") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "in_f26_27 = 0.0;" (assignment_expression "in_f26_27 = 0.0" (identifier "in_f26_27") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "in_f20_21 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "in_f20_21 = *(double *)(unaff_s7 + 0x4408)" (identifier "in_f20_21") (= "=") (pointer_expression "*(double *)(unaff_s7 + 0x4408)" (* "*") (cast_expression "(double *)(unaff_s7 + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s7 + 0x4408)" (( "(") (binary_expression "unaff_s7 + 0x4408" (identifier "unaff_s7") (+ "+") (number_literal "0x4408")) () ")"))))) (; ";")) (do_statement "do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                } while (iVar10 < *(int *)(pdVar16 + 0x58));" (do "do") (compound_statement "{\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);\n                  uStack_348 = dVar41;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }\n                  iVar10 = iVar10 + 1;\n                  iVar49 = iVar49 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f30_31 = in_f20_21;\n                }" ({ "{") (expression_statement "uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);" (assignment_expression "uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49)" (* "*") (cast_expression "(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pdVar16 + 0x5a) + iVar49)" (( "(") (binary_expression "*(int *)(pdVar16 + 0x5a) + iVar49" (pointer_expression "*(int *)(pdVar16 + 0x5a)" (* "*") (cast_expression "(int *)(pdVar16 + 0x5a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar16 + 0x5a)" (( "(") (binary_expression "pdVar16 + 0x5a" (identifier "pdVar16") (+ "+") (number_literal "0x5a")) () ")")))) (+ "+") (identifier "iVar49")) () ")"))))) (; ";")) (expression_statement "uStack_348 = dVar41;" (assignment_expression "uStack_348 = dVar41" (identifier "uStack_348") (= "=") (identifier "dVar41")) (; ";")) (if_statement "if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }" (if "if") (parenthesized_expression "((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5))" (( "(") (binary_expression "(*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)" (parenthesized_expression "(*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0)" (( "(") (binary_expression "*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0" (pointer_expression "*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4)" (* "*") (cast_expression "(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4)" (( "(") (binary_expression "*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4" (binary_expression "*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc" (pointer_expression "*(int *)(pdVar16 + 0x5a)" (* "*") (cast_expression "(int *)(pdVar16 + 0x5a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar16 + 0x5a)" (( "(") (binary_expression "pdVar16 + 0x5a" (identifier "pdVar16") (+ "+") (number_literal "0x5a")) () ")")))) (+ "+") (binary_expression "uVar8 * 0xc" (identifier "uVar8") (* "*") (number_literal "0xc"))) (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar8 < 5)" (( "(") (binary_expression "uVar8 < 5" (identifier "uVar8") (< "<") (number_literal "5")) () ")"))) () ")")) (compound_statement "{\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;\n                    return iVar3;\n                  }" ({ "{") (expression_statement "iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()\n                    ;" (assignment_expression "iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()" (identifier "iVar3") (= "=") (call_expression "(*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()" (parenthesized_expression "(*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))" (( "(") (pointer_expression "*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4))" (* "*") (cast_expression "(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4))" (( "(") (binary_expression "puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)" (identifier "puVar36") (+ "+") (pointer_expression "*(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)" (* "*") (cast_expression "(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)" (( "(") (binary_expression "*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4" (binary_expression "*(int *)(puVar36 + -0x7fcc) + 0x7370" (pointer_expression "*(int *)(puVar36 + -0x7fcc)" (* "*") (cast_expression "(int *)(puVar36 + -0x7fcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x7fcc)" (( "(") (binary_expression "puVar36 + -0x7fcc" (identifier "puVar36") (+ "+") (number_literal "-0x7fcc")) () ")")))) (+ "+") (number_literal "0x7370")) (+ "+") (binary_expression "uVar8 * 4" (identifier "uVar8") (* "*") (number_literal "4"))) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return iVar3;" (return "return") (identifier "iVar3") (; ";")) (} "}"))) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" (identifier "iVar10") (= "=") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar49 = iVar49 + 0xc;" (assignment_expression "iVar49 = iVar49 + 0xc" (identifier "iVar49") (= "=") (binary_expression "iVar49 + 0xc" (identifier "iVar49") (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "in_f22_23 = in_f20_21;" (assignment_expression "in_f22_23 = in_f20_21" (identifier "in_f22_23") (= "=") (identifier "in_f20_21")) (; ";")) (expression_statement "in_f24_25 = in_f20_21;" (assignment_expression "in_f24_25 = in_f20_21" (identifier "in_f24_25") (= "=") (identifier "in_f20_21")) (; ";")) (expression_statement "in_f30_31 = in_f20_21;" (assignment_expression "in_f30_31 = in_f20_21" (identifier "in_f30_31") (= "=") (identifier "in_f20_21")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar10 < *(int *)(pdVar16 + 0x58))" (( "(") (binary_expression "iVar10 < *(int *)(pdVar16 + 0x58)" (identifier "iVar10") (< "<") (pointer_expression "*(int *)(pdVar16 + 0x58)" (* "*") (cast_expression "(int *)(pdVar16 + 0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar16 + 0x58)" (( "(") (binary_expression "pdVar16 + 0x58" (identifier "pdVar16") (+ "+") (number_literal "0x58")) () ")"))))) () ")")) (; ";")) (} "}"))) (expression_statement "iVar10 = *(int *)(iStack_324 + 0x1ac);" (assignment_expression "iVar10 = *(int *)(iStack_324 + 0x1ac)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(iStack_324 + 0x1ac)" (* "*") (cast_expression "(int *)(iStack_324 + 0x1ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_324 + 0x1ac)" (( "(") (binary_expression "iStack_324 + 0x1ac" (identifier "iStack_324") (+ "+") (number_literal "0x1ac")) () ")"))))) (; ";")) (if_statement "if (iVar10 == 0) {\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }\n              else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                puVar13 = (undefined4 *)(iStack_324 + 0xa0);\n                puVar21 = auStack_240;\n                do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));\n                uVar4 = puVar9[5];\n                puVar15[4] = *puVar13;\n                puVar15[5] = uVar4;\n              }" ({ "{") (expression_statement "puVar13 = (undefined4 *)(iStack_324 + 0xa0);" (assignment_expression "puVar13 = (undefined4 *)(iStack_324 + 0xa0)" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)(iStack_324 + 0xa0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_324 + 0xa0)" (( "(") (binary_expression "iStack_324 + 0xa0" (identifier "iStack_324") (+ "+") (number_literal "0xa0")) () ")")))) (; ";")) (expression_statement "puVar21 = auStack_240;" (assignment_expression "puVar21 = auStack_240" (identifier "puVar21") (= "=") (identifier "auStack_240")) (; ";")) (do_statement "do {\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));" (do "do") (compound_statement "{\n                  puVar15 = puVar21;\n                  puVar9 = puVar13;\n                  uVar27 = puVar9[1];\n                  uVar25 = puVar9[2];\n                  uVar4 = puVar9[3];\n                  *puVar15 = *puVar9;\n                  puVar15[1] = uVar27;\n                  puVar15[2] = uVar25;\n                  puVar15[3] = uVar4;\n                  puVar13 = puVar9 + 4;\n                  puVar21 = puVar15 + 4;\n                }" ({ "{") (expression_statement "puVar15 = puVar21;" (assignment_expression "puVar15 = puVar21" (identifier "puVar15") (= "=") (identifier "puVar21")) (; ";")) (expression_statement "puVar9 = puVar13;" (assignment_expression "puVar9 = puVar13" (identifier "puVar9") (= "=") (identifier "puVar13")) (; ";")) (expression_statement "uVar27 = puVar9[1];" (assignment_expression "uVar27 = puVar9[1]" (identifier "uVar27") (= "=") (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar25 = puVar9[2];" (assignment_expression "uVar25 = puVar9[2]" (identifier "uVar25") (= "=") (subscript_expression "puVar9[2]" (identifier "puVar9") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar4 = puVar9[3];" (assignment_expression "uVar4 = puVar9[3]" (identifier "uVar4") (= "=") (subscript_expression "puVar9[3]" (identifier "puVar9") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar15 = *puVar9;" (assignment_expression "*puVar15 = *puVar9" (pointer_expression "*puVar15" (* "*") (identifier "puVar15")) (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (expression_statement "puVar15[1] = uVar27;" (assignment_expression "puVar15[1] = uVar27" (subscript_expression "puVar15[1]" (identifier "puVar15") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar27")) (; ";")) (expression_statement "puVar15[2] = uVar25;" (assignment_expression "puVar15[2] = uVar25" (subscript_expression "puVar15[2]" (identifier "puVar15") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar25")) (; ";")) (expression_statement "puVar15[3] = uVar4;" (assignment_expression "puVar15[3] = uVar4" (subscript_expression "puVar15[3]" (identifier "puVar15") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "puVar13 = puVar9 + 4;" (assignment_expression "puVar13 = puVar9 + 4" (identifier "puVar13") (= "=") (binary_expression "puVar9 + 4" (identifier "puVar9") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "puVar21 = puVar15 + 4;" (assignment_expression "puVar21 = puVar15 + 4" (identifier "puVar21") (= "=") (binary_expression "puVar15 + 4" (identifier "puVar15") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar13 != (undefined4 *)(iStack_324 + 0xf0))" (( "(") (binary_expression "puVar13 != (undefined4 *)(iStack_324 + 0xf0)" (identifier "puVar13") (!= "!=") (cast_expression "(undefined4 *)(iStack_324 + 0xf0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_324 + 0xf0)" (( "(") (binary_expression "iStack_324 + 0xf0" (identifier "iStack_324") (+ "+") (number_literal "0xf0")) () ")")))) () ")")) (; ";")) (expression_statement "uVar4 = puVar9[5];" (assignment_expression "uVar4 = puVar9[5]" (identifier "uVar4") (= "=") (subscript_expression "puVar9[5]" (identifier "puVar9") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "puVar15[4] = *puVar13;" (assignment_expression "puVar15[4] = *puVar13" (subscript_expression "puVar15[4]" (identifier "puVar15") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*puVar13" (* "*") (identifier "puVar13"))) (; ";")) (expression_statement "puVar15[5] = uVar4;" (assignment_expression "puVar15[5] = uVar4" (subscript_expression "puVar15[5]" (identifier "puVar15") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (} "}")) (else_clause "else {\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }" (else "else") (compound_statement "{\n                uStack_354 = uStack_2d0;\n                puStack_358 = auStack_240;\n                (**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));\n                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);\n                pdVar29 = (double *)(iStack_324 + 0x3a0);\n                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;\n                puVar36 = puStack_350;\n                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }\n              }" ({ "{") (expression_statement "uStack_354 = uStack_2d0;" (assignment_expression "uStack_354 = uStack_2d0" (identifier "uStack_354") (= "=") (identifier "uStack_2d0")) (; ";")) (expression_statement "puStack_358 = auStack_240;" (assignment_expression "puStack_358 = auStack_240" (identifier "puStack_358") (= "=") (identifier "auStack_240")) (; ";")) (expression_statement "(**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c));" (call_expression "(**(code **)(puVar36 + -0x747c))\n                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c))" (parenthesized_expression "(**(code **)(puVar36 + -0x747c))" (( "(") (pointer_expression "**(code **)(puVar36 + -0x747c)" (* "*") (pointer_expression "*(code **)(puVar36 + -0x747c)" (* "*") (cast_expression "(code **)(puVar36 + -0x747c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x747c)" (( "(") (binary_expression "puVar36 + -0x747c" (identifier "puVar36") (+ "+") (number_literal "-0x747c")) () ")"))))) () ")")) (argument_list "(iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),\n                           uVar26 + *(int *)(iVar10 + 0x29c))" (( "(") (identifier "iVar10") (, ",") (number_literal "6") (, ",") (binary_expression "iVar28 + *(int *)(iVar10 + 0x298)" (identifier "iVar28") (+ "+") (pointer_expression "*(int *)(iVar10 + 0x298)" (* "*") (cast_expression "(int *)(iVar10 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x298)" (( "(") (binary_expression "iVar10 + 0x298" (identifier "iVar10") (+ "+") (number_literal "0x298")) () ")"))))) (, ",") (binary_expression "uVar26 + *(int *)(iVar10 + 0x29c)" (identifier "uVar26") (+ "+") (pointer_expression "*(int *)(iVar10 + 0x29c)" (* "*") (cast_expression "(int *)(iVar10 + 0x29c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x29c)" (( "(") (binary_expression "iVar10 + 0x29c" (identifier "iVar10") (+ "+") (number_literal "0x29c")) () ")"))))) () ")"))) (; ";")) (expression_statement "uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);" (assignment_expression "uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4)" (identifier "uStack_2dc") (= "=") (pointer_expression "*(undefined4 *)(iStack_324 + 0x3a4)" (* "*") (cast_expression "(undefined4 *)(iStack_324 + 0x3a4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_324 + 0x3a4)" (( "(") (binary_expression "iStack_324 + 0x3a4" (identifier "iStack_324") (+ "+") (number_literal "0x3a4")) () ")"))))) (; ";")) (expression_statement "pdVar29 = (double *)(iStack_324 + 0x3a0);" (assignment_expression "pdVar29 = (double *)(iStack_324 + 0x3a0)" (identifier "pdVar29") (= "=") (cast_expression "(double *)(iStack_324 + 0x3a0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_324 + 0x3a0)" (( "(") (binary_expression "iStack_324 + 0x3a0" (identifier "iStack_324") (+ "+") (number_literal "0x3a0")) () ")")))) (; ";")) (expression_statement "uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;" (assignment_expression "uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff" (identifier "uStack_2e0") (= "=") (binary_expression "*(uint *)pdVar29 & 0x7fffffff" (pointer_expression "*(uint *)pdVar29" (* "*") (cast_expression "(uint *)pdVar29" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pdVar29"))) (& "&") (number_literal "0x7fffffff"))) (; ";")) (expression_statement "puVar36 = puStack_350;" (assignment_expression "puVar36 = puStack_350" (identifier "puVar36") (= "=") (identifier "puStack_350")) (; ";")) (if_statement "if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }" (if "if") (parenthesized_expression "(*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29))" (( "(") (binary_expression "*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)" (pointer_expression "*(double *)(iVar3 + 0x43c8)" (* "*") (cast_expression "(double *)(iVar3 + 0x43c8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x43c8)" (( "(") (binary_expression "iVar3 + 0x43c8" (identifier "iVar3") (+ "+") (number_literal "0x43c8")) () ")")))) (<= "<=") (call_expression "ABS(*pdVar29)" (identifier "ABS") (argument_list "(*pdVar29)" (( "(") (pointer_expression "*pdVar29" (* "*") (identifier "pdVar29")) () ")")))) () ")")) (compound_statement "{\n                  dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);\n                }" ({ "{") (expression_statement "dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);" (assignment_expression "dStack_1f8 = dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" (identifier "dStack_1f8") (= "=") (binary_expression "dStack_1f8 *\n                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" (binary_expression "dStack_1f8 *\n                               *pdVar29" (identifier "dStack_1f8") (* "*") (pointer_expression "*pdVar29" (* "*") (identifier "pdVar29"))) (* "*") (pointer_expression "*(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" (* "*") (cast_expression "(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puStack_350 + -0x7fd0) + 0x4410)" (( "(") (binary_expression "*(int *)(puStack_350 + -0x7fd0) + 0x4410" (pointer_expression "*(int *)(puStack_350 + -0x7fd0)" (* "*") (cast_expression "(int *)(puStack_350 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_350 + -0x7fd0)" (( "(") (binary_expression "puStack_350 + -0x7fd0" (identifier "puStack_350") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4410")) () ")")))))) (; ";")) (} "}"))) (} "}")))) (if_statement "if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }\n              else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0)" (( "(") (binary_expression "*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0" (pointer_expression "*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34)" (* "*") (cast_expression "(int *)(*(int *)(pdVar16 + 0x5a) + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pdVar16 + 0x5a) + 0x34)" (( "(") (binary_expression "*(int *)(pdVar16 + 0x5a) + 0x34" (pointer_expression "*(int *)(pdVar16 + 0x5a)" (* "*") (cast_expression "(int *)(pdVar16 + 0x5a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar16 + 0x5a)" (( "(") (binary_expression "pdVar16 + 0x5a" (identifier "pdVar16") (+ "+") (number_literal "0x5a")) () ")")))) (+ "+") (number_literal "0x34")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);\n              }" ({ "{") (expression_statement "fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);" (assignment_expression "fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8)" (identifier "fVar43") (= "=") (pointer_expression "*(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8)" (* "*") (cast_expression "(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar36 + -0x7fd0) + 0x4aa8)" (( "(") (binary_expression "*(int *)(puVar36 + -0x7fd0) + 0x4aa8" (pointer_expression "*(int *)(puVar36 + -0x7fd0)" (* "*") (cast_expression "(int *)(puVar36 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x7fd0)" (( "(") (binary_expression "puVar36 + -0x7fd0" (identifier "puVar36") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4aa8")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }" (else "else") (compound_statement "{\n                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);\n              }" ({ "{") (expression_statement "fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);" (assignment_expression "fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4)" (identifier "fVar43") (= "=") (pointer_expression "*(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4)" (* "*") (cast_expression "(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4)" (( "(") (binary_expression "iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4" (identifier "iStack_308") (+ "+") (binary_expression "*(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4" (pointer_expression "*(int *)(*(int *)(pdVar16 + 0x5a) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(pdVar16 + 0x5a) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pdVar16 + 0x5a) + 0x38)" (( "(") (binary_expression "*(int *)(pdVar16 + 0x5a) + 0x38" (pointer_expression "*(int *)(pdVar16 + 0x5a)" (* "*") (cast_expression "(int *)(pdVar16 + 0x5a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar16 + 0x5a)" (( "(") (binary_expression "pdVar16 + 0x5a" (identifier "pdVar16") (+ "+") (number_literal "0x5a")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}")))) (expression_statement "dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);" (assignment_expression "dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" (identifier "dVar39") (= "=") (binary_expression "dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" (binary_expression "dStack_338 * dStack_1f8" (identifier "dStack_338") (* "*") (identifier "dStack_1f8")) (* "*") (pointer_expression "*(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" (* "*") (cast_expression "(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar36 + -0x7fd0) + 0x4410)" (( "(") (binary_expression "*(int *)(puVar36 + -0x7fd0) + 0x4410" (pointer_expression "*(int *)(puVar36 + -0x7fd0)" (* "*") (cast_expression "(int *)(puVar36 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x7fd0)" (( "(") (binary_expression "puVar36 + -0x7fd0" (identifier "puVar36") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4410")) () ")")))))) (; ";")) (expression_statement "dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);" (assignment_expression "dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" (identifier "dVar41") (= "=") (binary_expression "(double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" (cast_expression "(double)fVar43" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar43")) (* "*") (pointer_expression "*(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" (* "*") (cast_expression "(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar36 + -0x7fd0) + 0x4410)" (( "(") (binary_expression "*(int *)(puVar36 + -0x7fd0) + 0x4410" (pointer_expression "*(int *)(puVar36 + -0x7fd0)" (* "*") (cast_expression "(int *)(puVar36 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x7fd0)" (( "(") (binary_expression "puVar36 + -0x7fd0" (identifier "puVar36") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4410")) () ")")))))) (; ";")) (expression_statement "dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;" (assignment_expression "dVar39 = (dVar39 + dVar41) - dVar39 * dVar41" (identifier "dVar39") (= "=") (binary_expression "(dVar39 + dVar41) - dVar39 * dVar41" (parenthesized_expression "(dVar39 + dVar41)" (( "(") (binary_expression "dVar39 + dVar41" (identifier "dVar39") (+ "+") (identifier "dVar41")) () ")")) (- "-") (binary_expression "dVar39 * dVar41" (identifier "dVar39") (* "*") (identifier "dVar41")))) (; ";")) (expression_statement "iVar10 = *(int *)(pdVar16 + 0x58);" (assignment_expression "iVar10 = *(int *)(pdVar16 + 0x58)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(pdVar16 + 0x58)" (* "*") (cast_expression "(int *)(pdVar16 + 0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar16 + 0x58)" (( "(") (binary_expression "pdVar16 + 0x58" (identifier "pdVar16") (+ "+") (number_literal "0x58")) () ")"))))) (; ";")) (if_statement "if (0 < iVar10) {\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }" (if "if") (parenthesized_expression "(0 < iVar10)" (( "(") (binary_expression "0 < iVar10" (number_literal "0") (< "<") (identifier "iVar10")) () ")")) (compound_statement "{\n                iVar12 = 0;\n                iVar49 = 0;\n                in_f30_31 = 0.0;\n                in_f20_21 = *(double *)(unaff_s7 + 0x4408);\n                do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);\n              }" ({ "{") (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar49 = 0;" (assignment_expression "iVar49 = 0" (identifier "iVar49") (= "=") (number_literal "0")) (; ";")) (expression_statement "in_f30_31 = 0.0;" (assignment_expression "in_f30_31 = 0.0" (identifier "in_f30_31") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "in_f20_21 = *(double *)(unaff_s7 + 0x4408);" (assignment_expression "in_f20_21 = *(double *)(unaff_s7 + 0x4408)" (identifier "in_f20_21") (= "=") (pointer_expression "*(double *)(unaff_s7 + 0x4408)" (* "*") (cast_expression "(double *)(unaff_s7 + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s7 + 0x4408)" (( "(") (binary_expression "unaff_s7 + 0x4408" (identifier "unaff_s7") (+ "+") (number_literal "0x4408")) () ")"))))) (; ";")) (do_statement "do {\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                } while (iVar49 < iVar10);" (do "do") (compound_statement "{\n                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);\n                  uStack_348 = dVar39;\n                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }\n                  iVar49 = iVar49 + 1;\n                  iVar10 = *(int *)(pdVar16 + 0x58);\n                  iVar12 = iVar12 + 0xc;\n                  in_f22_23 = in_f20_21;\n                  in_f24_25 = in_f20_21;\n                  in_f26_27 = in_f20_21;\n                }" ({ "{") (expression_statement "uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);" (assignment_expression "uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12)" (* "*") (cast_expression "(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pdVar16 + 0x5a) + iVar12)" (( "(") (binary_expression "*(int *)(pdVar16 + 0x5a) + iVar12" (pointer_expression "*(int *)(pdVar16 + 0x5a)" (* "*") (cast_expression "(int *)(pdVar16 + 0x5a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar16 + 0x5a)" (( "(") (binary_expression "pdVar16 + 0x5a" (identifier "pdVar16") (+ "+") (number_literal "0x5a")) () ")")))) (+ "+") (identifier "iVar12")) () ")"))))) (; ";")) (expression_statement "uStack_348 = dVar39;" (assignment_expression "uStack_348 = dVar39" (identifier "uStack_348") (= "=") (identifier "dVar39")) (; ";")) (if_statement "if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }" (if "if") (parenthesized_expression "((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5))" (( "(") (binary_expression "(*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)" (parenthesized_expression "(*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0)" (( "(") (binary_expression "*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0" (pointer_expression "*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4)" (* "*") (cast_expression "(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4)" (( "(") (binary_expression "*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4" (binary_expression "*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc" (pointer_expression "*(int *)(pdVar16 + 0x5a)" (* "*") (cast_expression "(int *)(pdVar16 + 0x5a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar16 + 0x5a)" (( "(") (binary_expression "pdVar16 + 0x5a" (identifier "pdVar16") (+ "+") (number_literal "0x5a")) () ")")))) (+ "+") (binary_expression "uVar8 * 0xc" (identifier "uVar8") (* "*") (number_literal "0xc"))) (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar8 < 5)" (( "(") (binary_expression "uVar8 < 5" (identifier "uVar8") (< "<") (number_literal "5")) () ")"))) () ")")) (compound_statement "{\n                    \n                    \n                    iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));\n                    return iVar3;\n                  }" ({ "{") (expression_statement "iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));" (assignment_expression "iVar3 = (*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48))" (identifier "iVar3") (= "=") (call_expression "(*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))\n                                      (in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48))" (parenthesized_expression "(*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))" (( "(") (pointer_expression "*(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4))" (* "*") (cast_expression "(code *)(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4))" (( "(") (binary_expression "puVar36 +\n                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)" (identifier "puVar36") (+ "+") (pointer_expression "*(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)" (* "*") (cast_expression "(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)" (( "(") (binary_expression "*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4" (binary_expression "*(int *)(puVar36 + -0x7fcc) + 0x7384" (pointer_expression "*(int *)(puVar36 + -0x7fcc)" (* "*") (cast_expression "(int *)(puVar36 + -0x7fcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x7fcc)" (( "(") (binary_expression "puVar36 + -0x7fcc" (identifier "puVar36") (+ "+") (number_literal "-0x7fcc")) () ")")))) (+ "+") (number_literal "0x7384")) (+ "+") (binary_expression "uVar8 * 4" (identifier "uVar8") (* "*") (number_literal "4"))) () ")"))))) () ")")))) () ")")) (argument_list "(in_f20_21,\n                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48))" (( "(") (identifier "in_f20_21") (, ",") (pointer_expression "*(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48)" (* "*") (cast_expression "(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar36 + -0x7fd0) + 0x4a48)" (( "(") (binary_expression "*(int *)(puVar36 + -0x7fd0) + 0x4a48" (pointer_expression "*(int *)(puVar36 + -0x7fd0)" (* "*") (cast_expression "(int *)(puVar36 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + -0x7fd0)" (( "(") (binary_expression "puVar36 + -0x7fd0" (identifier "puVar36") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4a48")) () ")")))) () ")")))) (; ";")) (return_statement "return iVar3;" (return "return") (identifier "iVar3") (; ";")) (} "}"))) (expression_statement "iVar49 = iVar49 + 1;" (assignment_expression "iVar49 = iVar49 + 1" (identifier "iVar49") (= "=") (binary_expression "iVar49 + 1" (identifier "iVar49") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar10 = *(int *)(pdVar16 + 0x58);" (assignment_expression "iVar10 = *(int *)(pdVar16 + 0x58)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(pdVar16 + 0x58)" (* "*") (cast_expression "(int *)(pdVar16 + 0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar16 + 0x58)" (( "(") (binary_expression "pdVar16 + 0x58" (identifier "pdVar16") (+ "+") (number_literal "0x58")) () ")"))))) (; ";")) (expression_statement "iVar12 = iVar12 + 0xc;" (assignment_expression "iVar12 = iVar12 + 0xc" (identifier "iVar12") (= "=") (binary_expression "iVar12 + 0xc" (identifier "iVar12") (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "in_f22_23 = in_f20_21;" (assignment_expression "in_f22_23 = in_f20_21" (identifier "in_f22_23") (= "=") (identifier "in_f20_21")) (; ";")) (expression_statement "in_f24_25 = in_f20_21;" (assignment_expression "in_f24_25 = in_f20_21" (identifier "in_f24_25") (= "=") (identifier "in_f20_21")) (; ";")) (expression_statement "in_f26_27 = in_f20_21;" (assignment_expression "in_f26_27 = in_f20_21" (identifier "in_f26_27") (= "=") (identifier "in_f20_21")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar49 < iVar10)" (( "(") (binary_expression "iVar49 < iVar10" (identifier "iVar49") (< "<") (identifier "iVar10")) () ")")) (; ";")) (} "}"))) (expression_statement "iStack_308 = iStack_308 + iVar10 * 4;" (assignment_expression "iStack_308 = iStack_308 + iVar10 * 4" (identifier "iStack_308") (= "=") (binary_expression "iStack_308 + iVar10 * 4" (identifier "iStack_308") (+ "+") (binary_expression "iVar10 * 4" (identifier "iVar10") (* "*") (number_literal "4")))) (; ";")) (expression_statement "uStack_328 = uStack_328 + 1;" (assignment_expression "uStack_328 = uStack_328 + 1" (identifier "uStack_328") (= "=") (binary_expression "uStack_328 + 1" (identifier "uStack_328") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "unaff_s6 = pdVar16;" (assignment_expression "unaff_s6 = pdVar16" (identifier "unaff_s6") (= "=") (identifier "pdVar16")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)uStack_328 <= (int)pdStack_2cc)" (( "(") (binary_expression "(int)uStack_328 <= (int)pdStack_2cc" (cast_expression "(int)uStack_328" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uStack_328")) (<= "<=") (cast_expression "(int)pdStack_2cc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdStack_2cc"))) () ")")) (; ";")) (} "}"))) (expression_statement "pdVar29 = pdStack_2a0;" (assignment_expression "pdVar29 = pdStack_2a0" (identifier "pdVar29") (= "=") (identifier "pdStack_2a0")) (; ";")) (expression_statement "iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);" (assignment_expression "iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0)" (identifier "iVar10") (= "=") (call_expression "(**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0)" (parenthesized_expression "(**(code **)(puVar36 + -0x73a0))" (( "(") (pointer_expression "**(code **)(puVar36 + -0x73a0)" (* "*") (pointer_expression "*(code **)(puVar36 + -0x73a0)" (* "*") (cast_expression "(code **)(puVar36 + -0x73a0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + -0x73a0)" (( "(") (binary_expression "puVar36 + -0x73a0" (identifier "puVar36") (+ "+") (number_literal "-0x73a0")) () ")"))))) () ")")) (argument_list "(pdStack_2a0,uStack_2d0)" (( "(") (identifier "pdStack_2a0") (, ",") (identifier "uStack_2d0") () ")")))) (; ";")) (if_statement "if (iVar10 == 0) {\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;\n          }" ({ "{") (expression_statement "*(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0" (pointer_expression "*(undefined4 *)((int)pdStack_2a8 + 0x2c)" (* "*") (cast_expression "(undefined4 *)((int)pdStack_2a8 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdStack_2a8 + 0x2c)" (( "(") (binary_expression "(int)pdStack_2a8 + 0x2c" (cast_expression "(int)pdStack_2a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdStack_2a8")) (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}")))) (} "}"))) (expression_statement "iStack_2f0 = iStack_2f0 + 1;" (assignment_expression "iStack_2f0 = iStack_2f0 + 1" (identifier "iStack_2f0") (= "=") (binary_expression "iStack_2f0 + 1" (identifier "iStack_2f0") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uStack_2f8 = uStack_2f8 + 1;" (assignment_expression "uStack_2f8 = uStack_2f8 + 1" (identifier "uStack_2f8") (= "=") (binary_expression "uStack_2f8 + 1" (identifier "uStack_2f8") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iStack_2f0 < (int)puStack_2a4)" (( "(") (binary_expression "iStack_2f0 < (int)puStack_2a4" (identifier "iStack_2f0") (< "<") (cast_expression "(int)puStack_2a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_2a4"))) () ")")) (; ";")) (} "}"))) (if_statement "if (iStack_1e4 == **(int **)(puStack_350 + -0x7668)) {\n    return **(int **)(puStack_350 + -0x7668);\n  }" (if "if") (parenthesized_expression "(iStack_1e4 == **(int **)(puStack_350 + -0x7668))" (( "(") (binary_expression "iStack_1e4 == **(int **)(puStack_350 + -0x7668)" (identifier "iStack_1e4") (== "==") (pointer_expression "**(int **)(puStack_350 + -0x7668)" (* "*") (pointer_expression "*(int **)(puStack_350 + -0x7668)" (* "*") (cast_expression "(int **)(puStack_350 + -0x7668)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_350 + -0x7668)" (( "(") (binary_expression "puStack_350 + -0x7668" (identifier "puStack_350") (+ "+") (number_literal "-0x7668")) () ")")))))) () ")")) (compound_statement "{\n    return **(int **)(puStack_350 + -0x7668);\n  }" ({ "{") (return_statement "return **(int **)(puStack_350 + -0x7668);" (return "return") (pointer_expression "**(int **)(puStack_350 + -0x7668)" (* "*") (pointer_expression "*(int **)(puStack_350 + -0x7668)" (* "*") (cast_expression "(int **)(puStack_350 + -0x7668)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_350 + -0x7668)" (( "(") (binary_expression "puStack_350 + -0x7668" (identifier "puStack_350") (+ "+") (number_literal "-0x7668")) () ")"))))) (; ";")) (} "}"))) (expression_statement "pcVar37 = *(code **)(puStack_350 + -0x7834);" (assignment_expression "pcVar37 = *(code **)(puStack_350 + -0x7834)" (identifier "pcVar37") (= "=") (pointer_expression "*(code **)(puStack_350 + -0x7834)" (* "*") (cast_expression "(code **)(puStack_350 + -0x7834)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_350 + -0x7834)" (( "(") (binary_expression "puStack_350 + -0x7834" (identifier "puStack_350") (+ "+") (number_literal "-0x7834")) () ")"))))) (; ";")) (expression_statement "pcVar38 = FUN_000a5040;" (assignment_expression "pcVar38 = FUN_000a5040" (identifier "pcVar38") (= "=") (identifier "FUN_000a5040")) (; ";")) (expression_statement "(*pcVar37)();" (call_expression "(*pcVar37)()" (parenthesized_expression "(*pcVar37)" (( "(") (pointer_expression "*pcVar37" (* "*") (identifier "pcVar37")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcStack_440 = pcVar37 + 0x35c870;" (assignment_expression "pcStack_440 = pcVar37 + 0x35c870" (identifier "pcStack_440") (= "=") (binary_expression "pcVar37 + 0x35c870" (identifier "pcVar37") (+ "+") (number_literal "0x35c870"))) (; ";")) (expression_statement "iStack_3bc = **(int **)(pcVar37 + 0x355208);" (assignment_expression "iStack_3bc = **(int **)(pcVar37 + 0x355208)" (identifier "iStack_3bc") (= "=") (pointer_expression "**(int **)(pcVar37 + 0x355208)" (* "*") (pointer_expression "*(int **)(pcVar37 + 0x355208)" (* "*") (cast_expression "(int **)(pcVar37 + 0x355208)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x355208)" (( "(") (binary_expression "pcVar37 + 0x355208" (identifier "pcVar37") (+ "+") (number_literal "0x355208")) () ")")))))) (; ";")) (expression_statement "uVar8 = *(uint *)(pdVar29 + 3);" (assignment_expression "uVar8 = *(uint *)(pdVar29 + 3)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(pdVar29 + 3)" (* "*") (cast_expression "(uint *)(pdVar29 + 3)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar29 + 3)" (( "(") (binary_expression "pdVar29 + 3" (identifier "pdVar29") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "pdVar5 = pdVar29;" (assignment_expression "pdVar5 = pdVar29" (identifier "pdVar5") (= "=") (identifier "pdVar29")) (; ";")) (expression_statement "uStack_428 = uVar8;" (assignment_expression "uStack_428 = uVar8" (identifier "uStack_428") (= "=") (identifier "uVar8")) (; ";")) (expression_statement "iStack_3b8 = iVar28;" (assignment_expression "iStack_3b8 = iVar28" (identifier "iStack_3b8") (= "=") (identifier "iVar28")) (; ";")) (expression_statement "uStack_3b4 = uVar26;" (assignment_expression "uStack_3b4 = uVar26" (identifier "uStack_3b4") (= "=") (identifier "uVar26")) (; ";")) (expression_statement "pdStack_3b0 = pdVar16;" (assignment_expression "pdStack_3b0 = pdVar16" (identifier "pdStack_3b0") (= "=") (identifier "pdVar16")) (; ";")) (expression_statement "pdStack_3ac = unaff_s3;" (assignment_expression "pdStack_3ac = unaff_s3" (identifier "pdStack_3ac") (= "=") (identifier "unaff_s3")) (; ";")) (expression_statement "piStack_3a8 = unaff_s4;" (assignment_expression "piStack_3a8 = unaff_s4" (identifier "piStack_3a8") (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "puStack_3a4 = param_1;" (assignment_expression "puStack_3a4 = param_1" (identifier "puStack_3a4") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pdStack_3a0 = unaff_s6;" (assignment_expression "pdStack_3a0 = unaff_s6" (identifier "pdStack_3a0") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "uStack_39c = unaff_s7;" (assignment_expression "uStack_39c = unaff_s7" (identifier "uStack_39c") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "iStack_398 = iVar3;" (assignment_expression "iStack_398 = iVar3" (identifier "iStack_398") (= "=") (identifier "iVar3")) (; ";")) (expression_statement "pcStack_394 = pcVar38;" (assignment_expression "pcStack_394 = pcVar38" (identifier "pcStack_394") (= "=") (identifier "pcVar38")) (; ";")) (expression_statement "dStack_390 = in_f20_21;" (assignment_expression "dStack_390 = in_f20_21" (identifier "dStack_390") (= "=") (identifier "in_f20_21")) (; ";")) (expression_statement "dStack_388 = in_f22_23;" (assignment_expression "dStack_388 = in_f22_23" (identifier "dStack_388") (= "=") (identifier "in_f22_23")) (; ";")) (expression_statement "dStack_380 = in_f24_25;" (assignment_expression "dStack_380 = in_f24_25" (identifier "dStack_380") (= "=") (identifier "in_f24_25")) (; ";")) (expression_statement "dStack_378 = in_f26_27;" (assignment_expression "dStack_378 = in_f26_27" (identifier "dStack_378") (= "=") (identifier "in_f26_27")) (; ";")) (expression_statement "dStack_370 = in_f28_29;" (assignment_expression "dStack_370 = in_f28_29" (identifier "dStack_370") (= "=") (identifier "in_f28_29")) (; ";")) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3558e4))();" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3558e4))()" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar37 + 0x3558e4))()" (parenthesized_expression "(**(code **)(pcVar37 + 0x3558e4))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x3558e4)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x3558e4)" (* "*") (cast_expression "(code **)(pcVar37 + 0x3558e4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x3558e4)" (( "(") (binary_expression "pcVar37 + 0x3558e4" (identifier "pcVar37") (+ "+") (number_literal "0x3558e4")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar10 = (**(code **)(pcStack_440 + -0x7390))();" (assignment_expression "iVar10 = (**(code **)(pcStack_440 + -0x7390))()" (identifier "iVar10") (= "=") (call_expression "(**(code **)(pcStack_440 + -0x7390))()" (parenthesized_expression "(**(code **)(pcStack_440 + -0x7390))" (( "(") (pointer_expression "**(code **)(pcStack_440 + -0x7390)" (* "*") (pointer_expression "*(code **)(pcStack_440 + -0x7390)" (* "*") (cast_expression "(code **)(pcStack_440 + -0x7390)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_440 + -0x7390)" (( "(") (binary_expression "pcStack_440 + -0x7390" (identifier "pcStack_440") (+ "+") (number_literal "-0x7390")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar49 = (*(uint *)((int)pdVar29 + 0x1c) + 1) - uVar8;" (assignment_expression "iVar49 = (*(uint *)((int)pdVar29 + 0x1c) + 1) - uVar8" (identifier "iVar49") (= "=") (binary_expression "(*(uint *)((int)pdVar29 + 0x1c) + 1) - uVar8" (parenthesized_expression "(*(uint *)((int)pdVar29 + 0x1c) + 1)" (( "(") (binary_expression "*(uint *)((int)pdVar29 + 0x1c) + 1" (pointer_expression "*(uint *)((int)pdVar29 + 0x1c)" (* "*") (cast_expression "(uint *)((int)pdVar29 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar29 + 0x1c)" (( "(") (binary_expression "(int)pdVar29 + 0x1c" (cast_expression "(int)pdVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar29")) (+ "+") (number_literal "0x1c")) () ")")))) (+ "+") (number_literal "1")) () ")")) (- "-") (identifier "uVar8"))) (; ";")) (if_statement "if (iVar3 == 0) {\n    trap(7);\n  }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (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 "iVar28 = iVar49 / iVar3;" (assignment_expression "iVar28 = iVar49 / iVar3" (identifier "iVar28") (= "=") (binary_expression "iVar49 / iVar3" (identifier "iVar49") (/ "/") (identifier "iVar3"))) (; ";")) (expression_statement "iVar49 = iVar49 % iVar3;" (assignment_expression "iVar49 = iVar49 % iVar3" (identifier "iVar49") (= "=") (binary_expression "iVar49 % iVar3" (identifier "iVar49") (% "%") (identifier "iVar3"))) (; ";")) (expression_statement "uVar26 = (uint)(iVar10 < iVar49);" (assignment_expression "uVar26 = (uint)(iVar10 < iVar49)" (identifier "uVar26") (= "=") (call_expression "(uint)(iVar10 < iVar49)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar10 < iVar49)" (( "(") (binary_expression "iVar10 < iVar49" (identifier "iVar10") (< "<") (identifier "iVar49")) () ")")))) (; ";")) (if_statement "if (uVar26 != 0) {\n    iVar28 = iVar28 + 1;\n    iVar49 = 0;\n  }" (if "if") (parenthesized_expression "(uVar26 != 0)" (( "(") (binary_expression "uVar26 != 0" (identifier "uVar26") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar28 = iVar28 + 1;\n    iVar49 = 0;\n  }" ({ "{") (expression_statement "iVar28 = iVar28 + 1;" (assignment_expression "iVar28 = iVar28 + 1" (identifier "iVar28") (= "=") (binary_expression "iVar28 + 1" (identifier "iVar28") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar49 = 0;" (assignment_expression "iVar49 = 0" (identifier "iVar49") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "iVar49 = iVar28 * iVar10 + iVar49;" (assignment_expression "iVar49 = iVar28 * iVar10 + iVar49" (identifier "iVar49") (= "=") (binary_expression "iVar28 * iVar10 + iVar49" (binary_expression "iVar28 * iVar10" (identifier "iVar28") (* "*") (identifier "iVar10")) (+ "+") (identifier "iVar49"))) (; ";")) (expression_statement "iVar28 = iVar28 + iVar49;" (assignment_expression "iVar28 = iVar28 + iVar49" (identifier "iVar28") (= "=") (binary_expression "iVar28 + iVar49" (identifier "iVar28") (+ "+") (identifier "iVar49"))) (; ";")) (expression_statement "iVar3 = *(int *)(pcStack_440 + -0x7fd0);" (assignment_expression "iVar3 = *(int *)(pcStack_440 + -0x7fd0)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(pcStack_440 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_440 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_440 + -0x7fd0)" (( "(") (binary_expression "pcStack_440 + -0x7fd0" (identifier "pcStack_440") (+ "+") (number_literal "-0x7fd0")) () ")"))))) (; ";")) (expression_statement "pcVar37 = pcStack_440;" (assignment_expression "pcVar37 = pcStack_440" (identifier "pcVar37") (= "=") (identifier "pcStack_440")) (; ";")) (if_statement "if (iVar49 < iVar28) {\n    pdStack_42c = *(double **)(pdVar29 + 2);\n    uStack_430 = *(uint *)((int)pdVar29 + 0xc);\n    unaff_s6 = *(double **)(pdVar29 + 1);\n    uStack_424 = *(uint *)((int)pdVar29 + 4);\n    unaff_s7 = *(uint *)pdVar29;\n    iVar49 = uStack_428 + iVar49;\n    iVar28 = uStack_428 + iVar28;\n    in_f22_23 = *(double *)(iVar3 + 0x43d0);\n    in_f26_27 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8);\n    in_f28_29 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410);\n    do {\n      in_f20_21 = *(double *)(iVar3 + 0x43d0);\n      if (*(uint *)(pdVar29 + 4) != 0) {\n        pdVar16 = *(double **)((int)pdVar29 + 0x14);\n        dVar39 = (double)(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21);\n        uStack_434 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21);\n        uVar26 = uStack_434;\n        param_1 = (undefined4 *)(int)dVar39;\n        uStack_444 = uStack_430;\n        piStack_448 = (int *)0x1;\n        pdVar5 = pdStack_42c;\n        pdVar16 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434));\n        if (pdVar16 == (double *)0x0) {\n          *(uint *)(pdVar29 + 4) = 0;\n          pcVar37 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar26 <= (int)param_1;\n          uVar26 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }\n          pdVar5 = pdStack_42c;\n          iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar37 = pcStack_440;\n          if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }\n        }\n      }\n      iVar49 = iVar49 + 1;\n    } while (iVar49 < iVar28);\n  }" (if "if") (parenthesized_expression "(iVar49 < iVar28)" (( "(") (binary_expression "iVar49 < iVar28" (identifier "iVar49") (< "<") (identifier "iVar28")) () ")")) (compound_statement "{\n    pdStack_42c = *(double **)(pdVar29 + 2);\n    uStack_430 = *(uint *)((int)pdVar29 + 0xc);\n    unaff_s6 = *(double **)(pdVar29 + 1);\n    uStack_424 = *(uint *)((int)pdVar29 + 4);\n    unaff_s7 = *(uint *)pdVar29;\n    iVar49 = uStack_428 + iVar49;\n    iVar28 = uStack_428 + iVar28;\n    in_f22_23 = *(double *)(iVar3 + 0x43d0);\n    in_f26_27 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8);\n    in_f28_29 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410);\n    do {\n      in_f20_21 = *(double *)(iVar3 + 0x43d0);\n      if (*(uint *)(pdVar29 + 4) != 0) {\n        pdVar16 = *(double **)((int)pdVar29 + 0x14);\n        dVar39 = (double)(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21);\n        uStack_434 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21);\n        uVar26 = uStack_434;\n        param_1 = (undefined4 *)(int)dVar39;\n        uStack_444 = uStack_430;\n        piStack_448 = (int *)0x1;\n        pdVar5 = pdStack_42c;\n        pdVar16 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434));\n        if (pdVar16 == (double *)0x0) {\n          *(uint *)(pdVar29 + 4) = 0;\n          pcVar37 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar26 <= (int)param_1;\n          uVar26 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }\n          pdVar5 = pdStack_42c;\n          iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar37 = pcStack_440;\n          if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }\n        }\n      }\n      iVar49 = iVar49 + 1;\n    } while (iVar49 < iVar28);\n  }" ({ "{") (expression_statement "pdStack_42c = *(double **)(pdVar29 + 2);" (assignment_expression "pdStack_42c = *(double **)(pdVar29 + 2)" (identifier "pdStack_42c") (= "=") (pointer_expression "*(double **)(pdVar29 + 2)" (* "*") (cast_expression "(double **)(pdVar29 + 2)" (( "(") (type_descriptor "double **" (primitive_type "double") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pdVar29 + 2)" (( "(") (binary_expression "pdVar29 + 2" (identifier "pdVar29") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "uStack_430 = *(uint *)((int)pdVar29 + 0xc);" (assignment_expression "uStack_430 = *(uint *)((int)pdVar29 + 0xc)" (identifier "uStack_430") (= "=") (pointer_expression "*(uint *)((int)pdVar29 + 0xc)" (* "*") (cast_expression "(uint *)((int)pdVar29 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar29 + 0xc)" (( "(") (binary_expression "(int)pdVar29 + 0xc" (cast_expression "(int)pdVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar29")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "unaff_s6 = *(double **)(pdVar29 + 1);" (assignment_expression "unaff_s6 = *(double **)(pdVar29 + 1)" (identifier "unaff_s6") (= "=") (pointer_expression "*(double **)(pdVar29 + 1)" (* "*") (cast_expression "(double **)(pdVar29 + 1)" (( "(") (type_descriptor "double **" (primitive_type "double") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pdVar29 + 1)" (( "(") (binary_expression "pdVar29 + 1" (identifier "pdVar29") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "uStack_424 = *(uint *)((int)pdVar29 + 4);" (assignment_expression "uStack_424 = *(uint *)((int)pdVar29 + 4)" (identifier "uStack_424") (= "=") (pointer_expression "*(uint *)((int)pdVar29 + 4)" (* "*") (cast_expression "(uint *)((int)pdVar29 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar29 + 4)" (( "(") (binary_expression "(int)pdVar29 + 4" (cast_expression "(int)pdVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar29")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "unaff_s7 = *(uint *)pdVar29;" (assignment_expression "unaff_s7 = *(uint *)pdVar29" (identifier "unaff_s7") (= "=") (pointer_expression "*(uint *)pdVar29" (* "*") (cast_expression "(uint *)pdVar29" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pdVar29")))) (; ";")) (expression_statement "iVar49 = uStack_428 + iVar49;" (assignment_expression "iVar49 = uStack_428 + iVar49" (identifier "iVar49") (= "=") (binary_expression "uStack_428 + iVar49" (identifier "uStack_428") (+ "+") (identifier "iVar49"))) (; ";")) (expression_statement "iVar28 = uStack_428 + iVar28;" (assignment_expression "iVar28 = uStack_428 + iVar28" (identifier "iVar28") (= "=") (binary_expression "uStack_428 + iVar28" (identifier "uStack_428") (+ "+") (identifier "iVar28"))) (; ";")) (expression_statement "in_f22_23 = *(double *)(iVar3 + 0x43d0);" (assignment_expression "in_f22_23 = *(double *)(iVar3 + 0x43d0)" (identifier "in_f22_23") (= "=") (pointer_expression "*(double *)(iVar3 + 0x43d0)" (* "*") (cast_expression "(double *)(iVar3 + 0x43d0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x43d0)" (( "(") (binary_expression "iVar3 + 0x43d0" (identifier "iVar3") (+ "+") (number_literal "0x43d0")) () ")"))))) (; ";")) (expression_statement "in_f26_27 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8);" (assignment_expression "in_f26_27 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8)" (identifier "in_f26_27") (= "=") (pointer_expression "*(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8)" (( "(") (binary_expression "*(int *)(pcStack_440 + -0x7fd0) + 0x43c8" (pointer_expression "*(int *)(pcStack_440 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_440 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_440 + -0x7fd0)" (( "(") (binary_expression "pcStack_440 + -0x7fd0" (identifier "pcStack_440") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x43c8")) () ")"))))) (; ";")) (expression_statement "in_f28_29 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410);" (assignment_expression "in_f28_29 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410)" (identifier "in_f28_29") (= "=") (pointer_expression "*(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_440 + -0x7fd0) + 0x4410)" (( "(") (binary_expression "*(int *)(pcStack_440 + -0x7fd0) + 0x4410" (pointer_expression "*(int *)(pcStack_440 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_440 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_440 + -0x7fd0)" (( "(") (binary_expression "pcStack_440 + -0x7fd0" (identifier "pcStack_440") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4410")) () ")"))))) (; ";")) (do_statement "do {\n      in_f20_21 = *(double *)(iVar3 + 0x43d0);\n      if (*(uint *)(pdVar29 + 4) != 0) {\n        pdVar16 = *(double **)((int)pdVar29 + 0x14);\n        dVar39 = (double)(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21);\n        uStack_434 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21);\n        uVar26 = uStack_434;\n        param_1 = (undefined4 *)(int)dVar39;\n        uStack_444 = uStack_430;\n        piStack_448 = (int *)0x1;\n        pdVar5 = pdStack_42c;\n        pdVar16 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434));\n        if (pdVar16 == (double *)0x0) {\n          *(uint *)(pdVar29 + 4) = 0;\n          pcVar37 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar26 <= (int)param_1;\n          uVar26 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }\n          pdVar5 = pdStack_42c;\n          iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar37 = pcStack_440;\n          if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }\n        }\n      }\n      iVar49 = iVar49 + 1;\n    } while (iVar49 < iVar28);" (do "do") (compound_statement "{\n      in_f20_21 = *(double *)(iVar3 + 0x43d0);\n      if (*(uint *)(pdVar29 + 4) != 0) {\n        pdVar16 = *(double **)((int)pdVar29 + 0x14);\n        dVar39 = (double)(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21);\n        uStack_434 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21);\n        uVar26 = uStack_434;\n        param_1 = (undefined4 *)(int)dVar39;\n        uStack_444 = uStack_430;\n        piStack_448 = (int *)0x1;\n        pdVar5 = pdStack_42c;\n        pdVar16 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434));\n        if (pdVar16 == (double *)0x0) {\n          *(uint *)(pdVar29 + 4) = 0;\n          pcVar37 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar26 <= (int)param_1;\n          uVar26 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }\n          pdVar5 = pdStack_42c;\n          iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar37 = pcStack_440;\n          if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }\n        }\n      }\n      iVar49 = iVar49 + 1;\n    }" ({ "{") (expression_statement "in_f20_21 = *(double *)(iVar3 + 0x43d0);" (assignment_expression "in_f20_21 = *(double *)(iVar3 + 0x43d0)" (identifier "in_f20_21") (= "=") (pointer_expression "*(double *)(iVar3 + 0x43d0)" (* "*") (cast_expression "(double *)(iVar3 + 0x43d0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x43d0)" (( "(") (binary_expression "iVar3 + 0x43d0" (identifier "iVar3") (+ "+") (number_literal "0x43d0")) () ")"))))) (; ";")) (if_statement "if (*(uint *)(pdVar29 + 4) != 0) {\n        pdVar16 = *(double **)((int)pdVar29 + 0x14);\n        dVar39 = (double)(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21);\n        uStack_434 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21);\n        uVar26 = uStack_434;\n        param_1 = (undefined4 *)(int)dVar39;\n        uStack_444 = uStack_430;\n        piStack_448 = (int *)0x1;\n        pdVar5 = pdStack_42c;\n        pdVar16 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434));\n        if (pdVar16 == (double *)0x0) {\n          *(uint *)(pdVar29 + 4) = 0;\n          pcVar37 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar26 <= (int)param_1;\n          uVar26 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }\n          pdVar5 = pdStack_42c;\n          iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar37 = pcStack_440;\n          if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(*(uint *)(pdVar29 + 4) != 0)" (( "(") (binary_expression "*(uint *)(pdVar29 + 4) != 0" (pointer_expression "*(uint *)(pdVar29 + 4)" (* "*") (cast_expression "(uint *)(pdVar29 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar29 + 4)" (( "(") (binary_expression "pdVar29 + 4" (identifier "pdVar29") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        pdVar16 = *(double **)((int)pdVar29 + 0x14);\n        dVar39 = (double)(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21);\n        uStack_434 = (uint)dVar39;\n        dVar39 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21);\n        uVar26 = uStack_434;\n        param_1 = (undefined4 *)(int)dVar39;\n        uStack_444 = uStack_430;\n        piStack_448 = (int *)0x1;\n        pdVar5 = pdStack_42c;\n        pdVar16 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434));\n        if (pdVar16 == (double *)0x0) {\n          *(uint *)(pdVar29 + 4) = 0;\n          pcVar37 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar26 <= (int)param_1;\n          uVar26 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }\n          pdVar5 = pdStack_42c;\n          iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar37 = pcStack_440;\n          if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }\n        }\n      }" ({ "{") (expression_statement "pdVar16 = *(double **)((int)pdVar29 + 0x14);" (assignment_expression "pdVar16 = *(double **)((int)pdVar29 + 0x14)" (identifier "pdVar16") (= "=") (pointer_expression "*(double **)((int)pdVar29 + 0x14)" (* "*") (cast_expression "(double **)((int)pdVar29 + 0x14)" (( "(") (type_descriptor "double **" (primitive_type "double") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pdVar29 + 0x14)" (( "(") (binary_expression "(int)pdVar29 + 0x14" (cast_expression "(int)pdVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar29")) (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "dVar39 = (double)(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21);" (assignment_expression "dVar39 = (double)(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21)" (identifier "dVar39") (= "=") (cast_expression "(double)(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21)" (parenthesized_expression "(**(code **)(pcVar37 + -0x7c78))" (( "(") (pointer_expression "**(code **)(pcVar37 + -0x7c78)" (* "*") (pointer_expression "*(code **)(pcVar37 + -0x7c78)" (* "*") (cast_expression "(code **)(pcVar37 + -0x7c78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + -0x7c78)" (( "(") (binary_expression "pcVar37 + -0x7c78" (identifier "pcVar37") (+ "+") (number_literal "-0x7c78")) () ")"))))) () ")")) (argument_list "(*pdVar16 - in_f20_21)" (( "(") (binary_expression "*pdVar16 - in_f20_21" (pointer_expression "*pdVar16" (* "*") (identifier "pdVar16")) (- "-") (identifier "in_f20_21")) () ")"))))) (; ";")) (expression_statement "uStack_434 = (uint)dVar39;" (assignment_expression "uStack_434 = (uint)dVar39" (identifier "uStack_434") (= "=") (cast_expression "(uint)dVar39" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "dVar39"))) (; ";")) (expression_statement "dVar39 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21);" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21)" (identifier "dVar39") (= "=") (cast_expression "(double)(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21)" (parenthesized_expression "(**(code **)(pcStack_440 + -0x7228))" (( "(") (pointer_expression "**(code **)(pcStack_440 + -0x7228)" (* "*") (pointer_expression "*(code **)(pcStack_440 + -0x7228)" (* "*") (cast_expression "(code **)(pcStack_440 + -0x7228)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_440 + -0x7228)" (( "(") (binary_expression "pcStack_440 + -0x7228" (identifier "pcStack_440") (+ "+") (number_literal "-0x7228")) () ")"))))) () ")")) (argument_list "(pdVar16[2] + in_f20_21)" (( "(") (binary_expression "pdVar16[2] + in_f20_21" (subscript_expression "pdVar16[2]" (identifier "pdVar16") ([ "[") (number_literal "2") (] "]")) (+ "+") (identifier "in_f20_21")) () ")"))))) (; ";")) (expression_statement "uVar26 = uStack_434;" (assignment_expression "uVar26 = uStack_434" (identifier "uVar26") (= "=") (identifier "uStack_434")) (; ";")) (expression_statement "param_1 = (undefined4 *)(int)dVar39;" (assignment_expression "param_1 = (undefined4 *)(int)dVar39" (identifier "param_1") (= "=") (cast_expression "(undefined4 *)(int)dVar39" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)dVar39" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar39")))) (; ";")) (expression_statement "uStack_444 = uStack_430;" (assignment_expression "uStack_444 = uStack_430" (identifier "uStack_444") (= "=") (identifier "uStack_430")) (; ";")) (expression_statement "piStack_448 = (int *)0x1;" (assignment_expression "piStack_448 = (int *)0x1" (identifier "piStack_448") (= "=") (cast_expression "(int *)0x1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "pdVar5 = pdStack_42c;" (assignment_expression "pdVar5 = pdStack_42c" (identifier "pdVar5") (= "=") (identifier "pdStack_42c")) (; ";")) (expression_statement "pdVar16 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434));" (assignment_expression "pdVar16 = (double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434))" (identifier "pdVar16") (= "=") (cast_expression "(double *)\n                  (**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434))" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcStack_440 + -0x724c))\n                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434))" (parenthesized_expression "(**(code **)(pcStack_440 + -0x724c))" (( "(") (pointer_expression "**(code **)(pcStack_440 + -0x724c)" (* "*") (pointer_expression "*(code **)(pcStack_440 + -0x724c)" (* "*") (cast_expression "(code **)(pcStack_440 + -0x724c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_440 + -0x724c)" (( "(") (binary_expression "pcStack_440 + -0x724c" (identifier "pcStack_440") (+ "+") (number_literal "-0x724c")) () ")"))))) () ")")) (argument_list "(pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434))" (( "(") (identifier "pdStack_42c") (, ",") (identifier "uStack_434") (, ",") (identifier "iVar49") (, ",") (binary_expression "(int)param_1 + (1 - uStack_434)" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (parenthesized_expression "(1 - uStack_434)" (( "(") (binary_expression "1 - uStack_434" (number_literal "1") (- "-") (identifier "uStack_434")) () ")"))) () ")"))))) (; ";")) (if_statement "if (pdVar16 == (double *)0x0) {\n          *(uint *)(pdVar29 + 4) = 0;\n          pcVar37 = pcStack_440;\n        }\n        else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar26 <= (int)param_1;\n          uVar26 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }\n          pdVar5 = pdStack_42c;\n          iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar37 = pcStack_440;\n          if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }\n        }" (if "if") (parenthesized_expression "(pdVar16 == (double *)0x0)" (( "(") (binary_expression "pdVar16 == (double *)0x0" (identifier "pdVar16") (== "==") (cast_expression "(double *)0x0" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          *(uint *)(pdVar29 + 4) = 0;\n          pcVar37 = pcStack_440;\n        }" ({ "{") (expression_statement "*(uint *)(pdVar29 + 4) = 0;" (assignment_expression "*(uint *)(pdVar29 + 4) = 0" (pointer_expression "*(uint *)(pdVar29 + 4)" (* "*") (cast_expression "(uint *)(pdVar29 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar29 + 4)" (( "(") (binary_expression "pdVar29 + 4" (identifier "pdVar29") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar37 = pcStack_440;" (assignment_expression "pcVar37 = pcStack_440" (identifier "pcVar37") (= "=") (identifier "pcStack_440")) (; ";")) (} "}")) (else_clause "else {\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar26 <= (int)param_1;\n          uVar26 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }\n          pdVar5 = pdStack_42c;\n          iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar37 = pcStack_440;\n          if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }\n        }" (else "else") (compound_statement "{\n          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);\n          bVar1 = (int)uVar26 <= (int)param_1;\n          uVar26 = uStack_434;\n          if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }\n          pdVar5 = pdStack_42c;\n          iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);\n          pcVar37 = pcStack_440;\n          if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }\n        }" ({ "{") (expression_statement "(**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);" (call_expression "(**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418)" (parenthesized_expression "(**(code **)(pcStack_440 + -0x75e4))" (( "(") (pointer_expression "**(code **)(pcStack_440 + -0x75e4)" (* "*") (pointer_expression "*(code **)(pcStack_440 + -0x75e4)" (* "*") (cast_expression "(code **)(pcStack_440 + -0x75e4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_440 + -0x75e4)" (( "(") (binary_expression "pcStack_440 + -0x75e4" (identifier "pcStack_440") (+ "+") (number_literal "-0x75e4")) () ")"))))) () ")")) (argument_list "(unaff_s7,aiStack_418)" (( "(") (identifier "unaff_s7") (, ",") (identifier "aiStack_418") () ")"))) (; ";")) (expression_statement "bVar1 = (int)uVar26 <= (int)param_1;" (assignment_expression "bVar1 = (int)uVar26 <= (int)param_1" (identifier "bVar1") (= "=") (binary_expression "(int)uVar26 <= (int)param_1" (cast_expression "(int)uVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar26")) (<= "<=") (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")))) (; ";")) (expression_statement "uVar26 = uStack_434;" (assignment_expression "uVar26 = uStack_434" (identifier "uVar26") (= "=") (identifier "uStack_434")) (; ";")) (if_statement "if (bVar1) {\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n            in_f20_21 = *(double *)(iVar3 + 0x43d0);\n            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));\n            do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);\n          }" ({ "{") (expression_statement "in_f20_21 = *(double *)(iVar3 + 0x43d0);" (assignment_expression "in_f20_21 = *(double *)(iVar3 + 0x43d0)" (identifier "in_f20_21") (= "=") (pointer_expression "*(double *)(iVar3 + 0x43d0)" (* "*") (cast_expression "(double *)(iVar3 + 0x43d0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x43d0)" (( "(") (binary_expression "iVar3 + 0x43d0" (identifier "iVar3") (+ "+") (number_literal "0x43d0")) () ")"))))) (; ";")) (expression_statement "in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));" (assignment_expression "in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8))" (identifier "in_f24_25") (= "=") (cast_expression "(double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8))" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8))" (identifier "CONCAT44") (argument_list "((int)((ulonglong)in_f24_25 >> 0x20),\n                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8))" (( "(") (cast_expression "(int)((ulonglong)in_f24_25 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)in_f24_25 >> 0x20)" (( "(") (binary_expression "(ulonglong)in_f24_25 >> 0x20" (cast_expression "(ulonglong)in_f24_25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "in_f24_25")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (pointer_expression "*(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8)" (* "*") (cast_expression "(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8)" (( "(") (binary_expression "*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8" (pointer_expression "*(int *)(pcStack_440 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_440 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_440 + -0x7fd0)" (( "(") (binary_expression "pcStack_440 + -0x7fd0" (identifier "pcStack_440") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4aa8")) () ")")))) () ")"))))) (; ";")) (do_statement "do {\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            } while ((int)uVar26 <= (int)param_1);" (do "do") (compound_statement "{\n              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);\n              if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }\n              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);\n              uVar26 = uVar26 + 1;\n            }" ({ "{") (expression_statement "dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21)" (identifier "dVar39") (= "=") (cast_expression "(double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21)" (parenthesized_expression "(**(code **)(pcStack_440 + -0x7c78))" (( "(") (pointer_expression "**(code **)(pcStack_440 + -0x7c78)" (* "*") (pointer_expression "*(code **)(pcStack_440 + -0x7c78)" (* "*") (cast_expression "(code **)(pcStack_440 + -0x7c78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_440 + -0x7c78)" (( "(") (binary_expression "pcStack_440 + -0x7c78" (identifier "pcStack_440") (+ "+") (number_literal "-0x7c78")) () ")"))))) () ")")) (argument_list "(*unaff_s6 - in_f20_21)" (( "(") (binary_expression "*unaff_s6 - in_f20_21" (pointer_expression "*unaff_s6" (* "*") (identifier "unaff_s6")) (- "-") (identifier "in_f20_21")) () ")"))))) (; ";")) (if_statement "if (((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)) {\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }" (if "if") (parenthesized_expression "(((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39))" (( "(") (binary_expression "((int)dVar39 == uVar26) &&\n                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)" (parenthesized_expression "((int)dVar39 == uVar26)" (( "(") (binary_expression "(int)dVar39 == uVar26" (cast_expression "(int)dVar39" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar39")) (== "==") (identifier "uVar26")) () ")")) (&& "&&") (parenthesized_expression "(dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39)" (( "(") (comma_expression "dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),\n                 iVar49 == (int)dVar39" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23)" (identifier "dVar39") (= "=") (cast_expression "(double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23)" (parenthesized_expression "(**(code **)(pcStack_440 + -0x7c78))" (( "(") (pointer_expression "**(code **)(pcStack_440 + -0x7c78)" (* "*") (pointer_expression "*(code **)(pcStack_440 + -0x7c78)" (* "*") (cast_expression "(code **)(pcStack_440 + -0x7c78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_440 + -0x7c78)" (( "(") (binary_expression "pcStack_440 + -0x7c78" (identifier "pcStack_440") (+ "+") (number_literal "-0x7c78")) () ")"))))) () ")")) (argument_list "(unaff_s6[1] - in_f22_23)" (( "(") (binary_expression "unaff_s6[1] - in_f22_23" (subscript_expression "unaff_s6[1]" (identifier "unaff_s6") ([ "[") (number_literal "1") (] "]")) (- "-") (identifier "in_f22_23")) () ")"))))) (, ",") (binary_expression "iVar49 == (int)dVar39" (identifier "iVar49") (== "==") (cast_expression "(int)dVar39" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar39")))) () ")"))) () ")")) (compound_statement "{\n                iVar10 = *(int *)(uStack_424 + 0x1a8);\n                if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }\n                iVar10 = *(int *)(unaff_s7 + 0x2d0);\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;\n                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;\n                if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }\n                if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }\n              }" ({ "{") (expression_statement "iVar10 = *(int *)(uStack_424 + 0x1a8);" (assignment_expression "iVar10 = *(int *)(uStack_424 + 0x1a8)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(uStack_424 + 0x1a8)" (* "*") (cast_expression "(int *)(uStack_424 + 0x1a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uStack_424 + 0x1a8)" (( "(") (binary_expression "uStack_424 + 0x1a8" (identifier "uStack_424") (+ "+") (number_literal "0x1a8")) () ")"))))) (; ";")) (if_statement "if (iVar10 == 0) {\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }\n                else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  piVar2 = (int *)(uStack_424 + 0x48);\n                  piVar48 = aiStack_418;\n                  do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));\n                  iVar10 = piVar19[5];\n                  piVar17[4] = *piVar2;\n                  piVar17[5] = iVar10;\n                }" ({ "{") (expression_statement "piVar2 = (int *)(uStack_424 + 0x48);" (assignment_expression "piVar2 = (int *)(uStack_424 + 0x48)" (identifier "piVar2") (= "=") (cast_expression "(int *)(uStack_424 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uStack_424 + 0x48)" (( "(") (binary_expression "uStack_424 + 0x48" (identifier "uStack_424") (+ "+") (number_literal "0x48")) () ")")))) (; ";")) (expression_statement "piVar48 = aiStack_418;" (assignment_expression "piVar48 = aiStack_418" (identifier "piVar48") (= "=") (identifier "aiStack_418")) (; ";")) (do_statement "do {\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  } while (piVar2 != (int *)(uStack_424 + 0x98));" (do "do") (compound_statement "{\n                    piVar17 = piVar48;\n                    piVar19 = piVar2;\n                    iVar50 = piVar19[1];\n                    iVar12 = piVar19[2];\n                    iVar10 = piVar19[3];\n                    *piVar17 = *piVar19;\n                    piVar17[1] = iVar50;\n                    piVar17[2] = iVar12;\n                    piVar17[3] = iVar10;\n                    piVar2 = piVar19 + 4;\n                    piVar48 = piVar17 + 4;\n                  }" ({ "{") (expression_statement "piVar17 = piVar48;" (assignment_expression "piVar17 = piVar48" (identifier "piVar17") (= "=") (identifier "piVar48")) (; ";")) (expression_statement "piVar19 = piVar2;" (assignment_expression "piVar19 = piVar2" (identifier "piVar19") (= "=") (identifier "piVar2")) (; ";")) (expression_statement "iVar50 = piVar19[1];" (assignment_expression "iVar50 = piVar19[1]" (identifier "iVar50") (= "=") (subscript_expression "piVar19[1]" (identifier "piVar19") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iVar12 = piVar19[2];" (assignment_expression "iVar12 = piVar19[2]" (identifier "iVar12") (= "=") (subscript_expression "piVar19[2]" (identifier "piVar19") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar10 = piVar19[3];" (assignment_expression "iVar10 = piVar19[3]" (identifier "iVar10") (= "=") (subscript_expression "piVar19[3]" (identifier "piVar19") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*piVar17 = *piVar19;" (assignment_expression "*piVar17 = *piVar19" (pointer_expression "*piVar17" (* "*") (identifier "piVar17")) (= "=") (pointer_expression "*piVar19" (* "*") (identifier "piVar19"))) (; ";")) (expression_statement "piVar17[1] = iVar50;" (assignment_expression "piVar17[1] = iVar50" (subscript_expression "piVar17[1]" (identifier "piVar17") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar50")) (; ";")) (expression_statement "piVar17[2] = iVar12;" (assignment_expression "piVar17[2] = iVar12" (subscript_expression "piVar17[2]" (identifier "piVar17") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar12")) (; ";")) (expression_statement "piVar17[3] = iVar10;" (assignment_expression "piVar17[3] = iVar10" (subscript_expression "piVar17[3]" (identifier "piVar17") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "iVar10")) (; ";")) (expression_statement "piVar2 = piVar19 + 4;" (assignment_expression "piVar2 = piVar19 + 4" (identifier "piVar2") (= "=") (binary_expression "piVar19 + 4" (identifier "piVar19") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "piVar48 = piVar17 + 4;" (assignment_expression "piVar48 = piVar17 + 4" (identifier "piVar48") (= "=") (binary_expression "piVar17 + 4" (identifier "piVar17") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar2 != (int *)(uStack_424 + 0x98))" (( "(") (binary_expression "piVar2 != (int *)(uStack_424 + 0x98)" (identifier "piVar2") (!= "!=") (cast_expression "(int *)(uStack_424 + 0x98)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uStack_424 + 0x98)" (( "(") (binary_expression "uStack_424 + 0x98" (identifier "uStack_424") (+ "+") (number_literal "0x98")) () ")")))) () ")")) (; ";")) (expression_statement "iVar10 = piVar19[5];" (assignment_expression "iVar10 = piVar19[5]" (identifier "iVar10") (= "=") (subscript_expression "piVar19[5]" (identifier "piVar19") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "piVar17[4] = *piVar2;" (assignment_expression "piVar17[4] = *piVar2" (subscript_expression "piVar17[4]" (identifier "piVar17") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*piVar2" (* "*") (identifier "piVar2"))) (; ";")) (expression_statement "piVar17[5] = iVar10;" (assignment_expression "piVar17[5] = iVar10" (subscript_expression "piVar17[5]" (identifier "piVar17") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "iVar10")) (; ";")) (} "}")) (else_clause "else {\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }" (else "else") (compound_statement "{\n                  uStack_444 = uStack_430;\n                  piStack_448 = aiStack_418;\n                  (**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));\n                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);\n                  pdVar5 = (double *)(uStack_424 + 0x398);\n                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;\n                  if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }\n                }" ({ "{") (expression_statement "uStack_444 = uStack_430;" (assignment_expression "uStack_444 = uStack_430" (identifier "uStack_444") (= "=") (identifier "uStack_430")) (; ";")) (expression_statement "piStack_448 = aiStack_418;" (assignment_expression "piStack_448 = aiStack_418" (identifier "piStack_448") (= "=") (identifier "aiStack_418")) (; ";")) (expression_statement "(**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));" (call_expression "(**(code **)(pcStack_440 + -0x747c))\n                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c))" (parenthesized_expression "(**(code **)(pcStack_440 + -0x747c))" (( "(") (pointer_expression "**(code **)(pcStack_440 + -0x747c)" (* "*") (pointer_expression "*(code **)(pcStack_440 + -0x747c)" (* "*") (cast_expression "(code **)(pcStack_440 + -0x747c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_440 + -0x747c)" (( "(") (binary_expression "pcStack_440 + -0x747c" (identifier "pcStack_440") (+ "+") (number_literal "-0x747c")) () ")"))))) () ")")) (argument_list "(iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),\n                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c))" (( "(") (identifier "iVar10") (, ",") (number_literal "6") (, ",") (binary_expression "(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298)" (parenthesized_expression "(uVar26 - uStack_434)" (( "(") (binary_expression "uVar26 - uStack_434" (identifier "uVar26") (- "-") (identifier "uStack_434")) () ")")) (+ "+") (pointer_expression "*(int *)(iVar10 + 0x298)" (* "*") (cast_expression "(int *)(iVar10 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x298)" (( "(") (binary_expression "iVar10 + 0x298" (identifier "iVar10") (+ "+") (number_literal "0x298")) () ")"))))) (, ",") (binary_expression "(iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c)" (parenthesized_expression "(iVar49 - uStack_428)" (( "(") (binary_expression "iVar49 - uStack_428" (identifier "iVar49") (- "-") (identifier "uStack_428")) () ")")) (+ "+") (pointer_expression "*(int *)(iVar10 + 0x29c)" (* "*") (cast_expression "(int *)(iVar10 + 0x29c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x29c)" (( "(") (binary_expression "iVar10 + 0x29c" (identifier "iVar10") (+ "+") (number_literal "0x29c")) () ")"))))) () ")"))) (; ";")) (expression_statement "uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);" (assignment_expression "uStack_41c = *(undefined4 *)(uStack_424 + 0x39c)" (identifier "uStack_41c") (= "=") (pointer_expression "*(undefined4 *)(uStack_424 + 0x39c)" (* "*") (cast_expression "(undefined4 *)(uStack_424 + 0x39c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uStack_424 + 0x39c)" (( "(") (binary_expression "uStack_424 + 0x39c" (identifier "uStack_424") (+ "+") (number_literal "0x39c")) () ")"))))) (; ";")) (expression_statement "pdVar5 = (double *)(uStack_424 + 0x398);" (assignment_expression "pdVar5 = (double *)(uStack_424 + 0x398)" (identifier "pdVar5") (= "=") (cast_expression "(double *)(uStack_424 + 0x398)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uStack_424 + 0x398)" (( "(") (binary_expression "uStack_424 + 0x398" (identifier "uStack_424") (+ "+") (number_literal "0x398")) () ")")))) (; ";")) (expression_statement "uStack_420 = *(uint *)pdVar5 & 0x7fffffff;" (assignment_expression "uStack_420 = *(uint *)pdVar5 & 0x7fffffff" (identifier "uStack_420") (= "=") (binary_expression "*(uint *)pdVar5 & 0x7fffffff" (pointer_expression "*(uint *)pdVar5" (* "*") (cast_expression "(uint *)pdVar5" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pdVar5"))) (& "&") (number_literal "0x7fffffff"))) (; ";")) (if_statement "if (in_f26_27 <= ABS(*pdVar5)) {\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }" (if "if") (parenthesized_expression "(in_f26_27 <= ABS(*pdVar5))" (( "(") (binary_expression "in_f26_27 <= ABS(*pdVar5)" (identifier "in_f26_27") (<= "<=") (call_expression "ABS(*pdVar5)" (identifier "ABS") (argument_list "(*pdVar5)" (( "(") (pointer_expression "*pdVar5" (* "*") (identifier "pdVar5")) () ")")))) () ")")) (compound_statement "{\n                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;\n                  }" ({ "{") (expression_statement "dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;" (assignment_expression "dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29" (identifier "dStack_3d0") (= "=") (binary_expression "dStack_3d0 * *pdVar5 * in_f28_29" (binary_expression "dStack_3d0 * *pdVar5" (identifier "dStack_3d0") (* "*") (pointer_expression "*pdVar5" (* "*") (identifier "pdVar5"))) (* "*") (identifier "in_f28_29"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar10 = *(int *)(unaff_s7 + 0x2d0);" (assignment_expression "iVar10 = *(int *)(unaff_s7 + 0x2d0)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(unaff_s7 + 0x2d0)" (* "*") (cast_expression "(int *)(unaff_s7 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s7 + 0x2d0)" (( "(") (binary_expression "unaff_s7 + 0x2d0" (identifier "unaff_s7") (+ "+") (number_literal "0x2d0")) () ")"))))) (; ";")) (expression_statement "*(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;" (assignment_expression "*(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0" (pointer_expression "*(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4)" (* "*") (cast_expression "(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar16 + *(int *)(iVar10 + 8) * 4)" (( "(") (binary_expression "(int)pdVar16 + *(int *)(iVar10 + 8) * 4" (cast_expression "(int)pdVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar16")) (+ "+") (binary_expression "*(int *)(iVar10 + 8) * 4" (pointer_expression "*(int *)(iVar10 + 8)" (* "*") (cast_expression "(int *)(iVar10 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (cast_expression "(float)dStack_3f0" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dStack_3f0"))) (; ";")) (expression_statement "*(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;" (assignment_expression "*(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8" (pointer_expression "*(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4)" (* "*") (cast_expression "(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4)" (( "(") (binary_expression "(int)pdVar16 + *(int *)(iVar10 + 0x14) * 4" (cast_expression "(int)pdVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar16")) (+ "+") (binary_expression "*(int *)(iVar10 + 0x14) * 4" (pointer_expression "*(int *)(iVar10 + 0x14)" (* "*") (cast_expression "(int *)(iVar10 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x14)" (( "(") (binary_expression "iVar10 + 0x14" (identifier "iVar10") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (cast_expression "(float)dStack_3e8" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dStack_3e8"))) (; ";")) (expression_statement "*(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;" (assignment_expression "*(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0" (pointer_expression "*(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4)" (* "*") (cast_expression "(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4)" (( "(") (binary_expression "(int)pdVar16 + *(int *)(iVar10 + 0x20) * 4" (cast_expression "(int)pdVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar16")) (+ "+") (binary_expression "*(int *)(iVar10 + 0x20) * 4" (pointer_expression "*(int *)(iVar10 + 0x20)" (* "*") (cast_expression "(int *)(iVar10 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x20)" (( "(") (binary_expression "iVar10 + 0x20" (identifier "iVar10") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (cast_expression "(float)dStack_3e0" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dStack_3e0"))) (; ";")) (if_statement "if (*(int *)(iVar10 + 0x28) != 0) {\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }" (if "if") (parenthesized_expression "(*(int *)(iVar10 + 0x28) != 0)" (( "(") (binary_expression "*(int *)(iVar10 + 0x28) != 0" (pointer_expression "*(int *)(iVar10 + 0x28)" (* "*") (cast_expression "(int *)(iVar10 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x28)" (( "(") (binary_expression "iVar10 + 0x28" (identifier "iVar10") (+ "+") (number_literal "0x28")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;\n                }" ({ "{") (expression_statement "*(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;" (assignment_expression "*(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8" (pointer_expression "*(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4)" (* "*") (cast_expression "(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4)" (( "(") (binary_expression "(int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4" (cast_expression "(int)pdVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar16")) (+ "+") (binary_expression "*(int *)(iVar10 + 0x2c) * 4" (pointer_expression "*(int *)(iVar10 + 0x2c)" (* "*") (cast_expression "(int *)(iVar10 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x2c)" (( "(") (binary_expression "iVar10 + 0x2c" (identifier "iVar10") (+ "+") (number_literal "0x2c")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (cast_expression "(float)dStack_3d8" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dStack_3d8"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar10 + 0x34) != 0) {\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }" (if "if") (parenthesized_expression "(*(int *)(iVar10 + 0x34) != 0)" (( "(") (binary_expression "*(int *)(iVar10 + 0x34) != 0" (pointer_expression "*(int *)(iVar10 + 0x34)" (* "*") (cast_expression "(int *)(iVar10 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x34)" (( "(") (binary_expression "iVar10 + 0x34" (identifier "iVar10") (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }\n                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;\n                }" ({ "{") (if_statement "if (aiStack_418[2] == 0) {\n                    fVar43 = SUB84(in_f24_25,0);\n                  }\n                  else {\n                    fVar43 = (float)dStack_3d0;\n                  }" (if "if") (parenthesized_expression "(aiStack_418[2] == 0)" (( "(") (binary_expression "aiStack_418[2] == 0" (subscript_expression "aiStack_418[2]" (identifier "aiStack_418") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    fVar43 = SUB84(in_f24_25,0);\n                  }" ({ "{") (expression_statement "fVar43 = SUB84(in_f24_25,0);" (assignment_expression "fVar43 = SUB84(in_f24_25,0)" (identifier "fVar43") (= "=") (call_expression "SUB84(in_f24_25,0)" (identifier "SUB84") (argument_list "(in_f24_25,0)" (( "(") (identifier "in_f24_25") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}")) (else_clause "else {\n                    fVar43 = (float)dStack_3d0;\n                  }" (else "else") (compound_statement "{\n                    fVar43 = (float)dStack_3d0;\n                  }" ({ "{") (expression_statement "fVar43 = (float)dStack_3d0;" (assignment_expression "fVar43 = (float)dStack_3d0" (identifier "fVar43") (= "=") (cast_expression "(float)dStack_3d0" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dStack_3d0"))) (; ";")) (} "}")))) (expression_statement "*(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;" (assignment_expression "*(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43" (pointer_expression "*(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4)" (* "*") (cast_expression "(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4)" (( "(") (binary_expression "(int)pdVar16 + *(int *)(iVar10 + 0x38) * 4" (cast_expression "(int)pdVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar16")) (+ "+") (binary_expression "*(int *)(iVar10 + 0x38) * 4" (pointer_expression "*(int *)(iVar10 + 0x38)" (* "*") (cast_expression "(int *)(iVar10 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x38)" (( "(") (binary_expression "iVar10 + 0x38" (identifier "iVar10") (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "fVar43")) (; ";")) (} "}"))) (} "}"))) (expression_statement "pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);" (assignment_expression "pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4)" (identifier "pdVar16") (= "=") (cast_expression "(double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4)" (( "(") (binary_expression "(int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4" (cast_expression "(int)pdVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar16")) (+ "+") (binary_expression "*(int *)(unaff_s7 + 0x2c0) * 4" (pointer_expression "*(int *)(unaff_s7 + 0x2c0)" (* "*") (cast_expression "(int *)(unaff_s7 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s7 + 0x2c0)" (( "(") (binary_expression "unaff_s7 + 0x2c0" (identifier "unaff_s7") (+ "+") (number_literal "0x2c0")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "uVar26 = uVar26 + 1;" (assignment_expression "uVar26 = uVar26 + 1" (identifier "uVar26") (= "=") (binary_expression "uVar26 + 1" (identifier "uVar26") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)uVar26 <= (int)param_1)" (( "(") (binary_expression "(int)uVar26 <= (int)param_1" (cast_expression "(int)uVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar26")) (<= "<=") (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1"))) () ")")) (; ";")) (} "}"))) (expression_statement "pdVar5 = pdStack_42c;" (assignment_expression "pdVar5 = pdStack_42c" (identifier "pdVar5") (= "=") (identifier "pdStack_42c")) (; ";")) (expression_statement "iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);" (assignment_expression "iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430)" (identifier "iVar10") (= "=") (call_expression "(**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430)" (parenthesized_expression "(**(code **)(pcStack_440 + -0x73a0))" (( "(") (pointer_expression "**(code **)(pcStack_440 + -0x73a0)" (* "*") (pointer_expression "*(code **)(pcStack_440 + -0x73a0)" (* "*") (cast_expression "(code **)(pcStack_440 + -0x73a0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_440 + -0x73a0)" (( "(") (binary_expression "pcStack_440 + -0x73a0" (identifier "pcStack_440") (+ "+") (number_literal "-0x73a0")) () ")"))))) () ")")) (argument_list "(pdStack_42c,uStack_430)" (( "(") (identifier "pdStack_42c") (, ",") (identifier "uStack_430") () ")")))) (; ";")) (expression_statement "pcVar37 = pcStack_440;" (assignment_expression "pcVar37 = pcStack_440" (identifier "pcVar37") (= "=") (identifier "pcStack_440")) (; ";")) (if_statement "if (iVar10 == 0) {\n            *(uint *)(pdVar29 + 4) = 0;\n          }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            *(uint *)(pdVar29 + 4) = 0;\n          }" ({ "{") (expression_statement "*(uint *)(pdVar29 + 4) = 0;" (assignment_expression "*(uint *)(pdVar29 + 4) = 0" (pointer_expression "*(uint *)(pdVar29 + 4)" (* "*") (cast_expression "(uint *)(pdVar29 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar29 + 4)" (( "(") (binary_expression "pdVar29 + 4" (identifier "pdVar29") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}")))) (} "}"))) (expression_statement "iVar49 = iVar49 + 1;" (assignment_expression "iVar49 = iVar49 + 1" (identifier "iVar49") (= "=") (binary_expression "iVar49 + 1" (identifier "iVar49") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar49 < iVar28)" (( "(") (binary_expression "iVar49 < iVar28" (identifier "iVar49") (< "<") (identifier "iVar28")) () ")")) (; ";")) (} "}"))) (if_statement "if (iStack_3bc == **(int **)(pcVar37 + -0x7668)) {\n    return **(int **)(pcVar37 + -0x7668);\n  }" (if "if") (parenthesized_expression "(iStack_3bc == **(int **)(pcVar37 + -0x7668))" (( "(") (binary_expression "iStack_3bc == **(int **)(pcVar37 + -0x7668)" (identifier "iStack_3bc") (== "==") (pointer_expression "**(int **)(pcVar37 + -0x7668)" (* "*") (pointer_expression "*(int **)(pcVar37 + -0x7668)" (* "*") (cast_expression "(int **)(pcVar37 + -0x7668)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + -0x7668)" (( "(") (binary_expression "pcVar37 + -0x7668" (identifier "pcVar37") (+ "+") (number_literal "-0x7668")) () ")")))))) () ")")) (compound_statement "{\n    return **(int **)(pcVar37 + -0x7668);\n  }" ({ "{") (return_statement "return **(int **)(pcVar37 + -0x7668);" (return "return") (pointer_expression "**(int **)(pcVar37 + -0x7668)" (* "*") (pointer_expression "*(int **)(pcVar37 + -0x7668)" (* "*") (cast_expression "(int **)(pcVar37 + -0x7668)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + -0x7668)" (( "(") (binary_expression "pcVar37 + -0x7668" (identifier "pcVar37") (+ "+") (number_literal "-0x7668")) () ")"))))) (; ";")) (} "}"))) (expression_statement "pcVar37 = *(code **)(pcVar37 + -0x7834);" (assignment_expression "pcVar37 = *(code **)(pcVar37 + -0x7834)" (identifier "pcVar37") (= "=") (pointer_expression "*(code **)(pcVar37 + -0x7834)" (* "*") (cast_expression "(code **)(pcVar37 + -0x7834)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + -0x7834)" (( "(") (binary_expression "pcVar37 + -0x7834" (identifier "pcVar37") (+ "+") (number_literal "-0x7834")) () ")"))))) (; ";")) (expression_statement "pcVar38 = FUN_000a549c;" (assignment_expression "pcVar38 = FUN_000a549c" (identifier "pcVar38") (= "=") (identifier "FUN_000a549c")) (; ";")) (expression_statement "(*pcVar37)();" (call_expression "(*pcVar37)()" (parenthesized_expression "(*pcVar37)" (( "(") (pointer_expression "*pcVar37" (* "*") (identifier "pcVar37")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcStack_5a8 = pcVar37 + 0x35c414;" (assignment_expression "pcStack_5a8 = pcVar37 + 0x35c414" (identifier "pcStack_5a8") (= "=") (binary_expression "pcVar37 + 0x35c414" (identifier "pcVar37") (+ "+") (number_literal "0x35c414"))) (; ";")) (expression_statement "iStack_4b4 = **(int **)(pcVar37 + 0x354dac);" (assignment_expression "iStack_4b4 = **(int **)(pcVar37 + 0x354dac)" (identifier "iStack_4b4") (= "=") (pointer_expression "**(int **)(pcVar37 + 0x354dac)" (* "*") (pointer_expression "*(int **)(pcVar37 + 0x354dac)" (* "*") (cast_expression "(int **)(pcVar37 + 0x354dac)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x354dac)" (( "(") (binary_expression "pcVar37 + 0x354dac" (identifier "pcVar37") (+ "+") (number_literal "0x354dac")) () ")")))))) (; ";")) (expression_statement "puVar32 = *(uint **)(pdVar5 + 4);" (assignment_expression "puVar32 = *(uint **)(pdVar5 + 4)" (identifier "puVar32") (= "=") (pointer_expression "*(uint **)(pdVar5 + 4)" (* "*") (cast_expression "(uint **)(pdVar5 + 4)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pdVar5 + 4)" (( "(") (binary_expression "pdVar5 + 4" (identifier "pdVar5") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "pdVar30 = (double *)puVar32[3];" (assignment_expression "pdVar30 = (double *)puVar32[3]" (identifier "pdVar30") (= "=") (cast_expression "(double *)puVar32[3]" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar32[3]" (identifier "puVar32") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "pdVar14 = pdVar5;" (assignment_expression "pdVar14 = pdVar5" (identifier "pdVar14") (= "=") (identifier "pdVar5")) (; ";")) (expression_statement "uStack_4b0 = uVar26;" (assignment_expression "uStack_4b0 = uVar26" (identifier "uStack_4b0") (= "=") (identifier "uVar26")) (; ";")) (expression_statement "iStack_4ac = iVar49;" (assignment_expression "iStack_4ac = iVar49" (identifier "iStack_4ac") (= "=") (identifier "iVar49")) (; ";")) (expression_statement "pdStack_4a8 = pdVar16;" (assignment_expression "pdStack_4a8 = pdVar16" (identifier "pdStack_4a8") (= "=") (identifier "pdVar16")) (; ";")) (expression_statement "pdStack_4a4 = pdVar29;" (assignment_expression "pdStack_4a4 = pdVar29" (identifier "pdStack_4a4") (= "=") (identifier "pdVar29")) (; ";")) (expression_statement "iStack_4a0 = iVar28;" (assignment_expression "iStack_4a0 = iVar28" (identifier "iStack_4a0") (= "=") (identifier "iVar28")) (; ";")) (expression_statement "puStack_49c = param_1;" (assignment_expression "puStack_49c = param_1" (identifier "puStack_49c") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pdStack_498 = unaff_s6;" (assignment_expression "pdStack_498 = unaff_s6" (identifier "pdStack_498") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "uStack_494 = unaff_s7;" (assignment_expression "uStack_494 = unaff_s7" (identifier "uStack_494") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "iStack_490 = iVar3;" (assignment_expression "iStack_490 = iVar3" (identifier "iStack_490") (= "=") (identifier "iVar3")) (; ";")) (expression_statement "pcStack_48c = pcVar38;" (assignment_expression "pcStack_48c = pcVar38" (identifier "pcStack_48c") (= "=") (identifier "pcVar38")) (; ";")) (expression_statement "dStack_488 = in_f20_21;" (assignment_expression "dStack_488 = in_f20_21" (identifier "dStack_488") (= "=") (identifier "in_f20_21")) (; ";")) (expression_statement "dStack_480 = in_f22_23;" (assignment_expression "dStack_480 = in_f22_23" (identifier "dStack_480") (= "=") (identifier "in_f22_23")) (; ";")) (expression_statement "dStack_478 = in_f24_25;" (assignment_expression "dStack_478 = in_f24_25" (identifier "dStack_478") (= "=") (identifier "in_f24_25")) (; ";")) (expression_statement "dStack_470 = in_f26_27;" (assignment_expression "dStack_470 = in_f26_27" (identifier "dStack_470") (= "=") (identifier "in_f26_27")) (; ";")) (expression_statement "dStack_468 = in_f28_29;" (assignment_expression "dStack_468 = in_f28_29" (identifier "dStack_468") (= "=") (identifier "in_f28_29")) (; ";")) (expression_statement "dStack_460 = in_f30_31;" (assignment_expression "dStack_460 = in_f30_31" (identifier "dStack_460") (= "=") (identifier "in_f30_31")) (; ";")) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x355488))();" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x355488))()" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar37 + 0x355488))()" (parenthesized_expression "(**(code **)(pcVar37 + 0x355488))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x355488)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x355488)" (* "*") (cast_expression "(code **)(pcVar37 + 0x355488)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x355488)" (( "(") (binary_expression "pcVar37 + 0x355488" (identifier "pcVar37") (+ "+") (number_literal "0x355488")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar10 = (**(code **)(pcStack_5a8 + -0x7390))();" (assignment_expression "iVar10 = (**(code **)(pcStack_5a8 + -0x7390))()" (identifier "iVar10") (= "=") (call_expression "(**(code **)(pcStack_5a8 + -0x7390))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7390))" (( "(") (pointer_expression "**(code **)(pcStack_5a8 + -0x7390)" (* "*") (pointer_expression "*(code **)(pcStack_5a8 + -0x7390)" (* "*") (cast_expression "(code **)(pcStack_5a8 + -0x7390)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7390)" (( "(") (binary_expression "pcStack_5a8 + -0x7390" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7390")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n    trap(7);\n  }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (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 "iVar49 = (int)(puVar32[1] - (int)pdVar30) / iVar3;" (assignment_expression "iVar49 = (int)(puVar32[1] - (int)pdVar30) / iVar3" (identifier "iVar49") (= "=") (binary_expression "(int)(puVar32[1] - (int)pdVar30) / iVar3" (cast_expression "(int)(puVar32[1] - (int)pdVar30)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar32[1] - (int)pdVar30)" (( "(") (binary_expression "puVar32[1] - (int)pdVar30" (subscript_expression "puVar32[1]" (identifier "puVar32") ([ "[") (number_literal "1") (] "]")) (- "-") (cast_expression "(int)pdVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar30"))) () ")"))) (/ "/") (identifier "iVar3"))) (; ";")) (expression_statement "piVar48 = (int *)((int)(puVar32[1] - (int)pdVar30) % iVar3);" (assignment_expression "piVar48 = (int *)((int)(puVar32[1] - (int)pdVar30) % iVar3)" (identifier "piVar48") (= "=") (cast_expression "(int *)((int)(puVar32[1] - (int)pdVar30) % iVar3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)(puVar32[1] - (int)pdVar30) % iVar3)" (( "(") (binary_expression "(int)(puVar32[1] - (int)pdVar30) % iVar3" (cast_expression "(int)(puVar32[1] - (int)pdVar30)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar32[1] - (int)pdVar30)" (( "(") (binary_expression "puVar32[1] - (int)pdVar30" (subscript_expression "puVar32[1]" (identifier "puVar32") ([ "[") (number_literal "1") (] "]")) (- "-") (cast_expression "(int)pdVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar30"))) () ")"))) (% "%") (identifier "iVar3")) () ")")))) (; ";")) (expression_statement "piVar2 = piVar48;" (assignment_expression "piVar2 = piVar48" (identifier "piVar2") (= "=") (identifier "piVar48")) (; ";")) (if_statement "if (iVar10 < (int)piVar48) {\n    iVar49 = iVar49 + 1;\n    piVar2 = (int *)0x0;\n  }" (if "if") (parenthesized_expression "(iVar10 < (int)piVar48)" (( "(") (binary_expression "iVar10 < (int)piVar48" (identifier "iVar10") (< "<") (cast_expression "(int)piVar48" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar48"))) () ")")) (compound_statement "{\n    iVar49 = iVar49 + 1;\n    piVar2 = (int *)0x0;\n  }" ({ "{") (expression_statement "iVar49 = iVar49 + 1;" (assignment_expression "iVar49 = iVar49 + 1" (identifier "iVar49") (= "=") (binary_expression "iVar49 + 1" (identifier "iVar49") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar2 = (int *)0x0;" (assignment_expression "piVar2 = (int *)0x0" (identifier "piVar2") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (expression_statement "piVar2 = (int *)(iVar49 * iVar10 + (int)piVar2);" (assignment_expression "piVar2 = (int *)(iVar49 * iVar10 + (int)piVar2)" (identifier "piVar2") (= "=") (cast_expression "(int *)(iVar49 * iVar10 + (int)piVar2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 * iVar10 + (int)piVar2)" (( "(") (binary_expression "iVar49 * iVar10 + (int)piVar2" (binary_expression "iVar49 * iVar10" (identifier "iVar49") (* "*") (identifier "iVar10")) (+ "+") (cast_expression "(int)piVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar2"))) () ")")))) (; ";")) (expression_statement "puVar35 = (undefined1 *)((int)pdVar30 + (int)piVar2);" (assignment_expression "puVar35 = (undefined1 *)((int)pdVar30 + (int)piVar2)" (identifier "puVar35") (= "=") (cast_expression "(undefined1 *)((int)pdVar30 + (int)piVar2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar30 + (int)piVar2)" (( "(") (binary_expression "(int)pdVar30 + (int)piVar2" (cast_expression "(int)pdVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar30")) (+ "+") (cast_expression "(int)piVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar2"))) () ")")))) (; ";")) (expression_statement "pcVar37 = pcStack_5a8;" (assignment_expression "pcVar37 = pcStack_5a8" (identifier "pcVar37") (= "=") (identifier "pcStack_5a8")) (; ";")) (if_statement "if ((int)piVar2 < iVar49 + (int)piVar2) {\n    dStack_580 = *pdVar5;\n    pdStack_588 = *(double **)(pdVar5 + 3);\n    puVar32 = *(uint **)((int)pdVar5 + 0x14);\n    pdStack_568 = *(double **)(pdVar5 + 2);\n    uStack_564 = *(uint *)((int)pdVar5 + 0xc);\n    piVar48 = *(int **)(pdVar5 + 1);\n    puStack_56c = (undefined1 *)((int)pdVar30 + iVar49 + (int)piVar2);\n    dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n    if (dStack_580 < 0.0) {\n      dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n    }\n    iStack_570 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_598 = *(double *)(iStack_570 + 0x4a48);\n    iStack_584 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_560 = *(double *)(iStack_584 + 0x43d0);\n    unaff_s6 = *(double **)(pcStack_5a8 + -0x7fd0);\n    dStack_548 = unaff_s6[0x879];\n    do {\n      if (*(uint *)((int)pdVar5 + 0x24) != 0) {\n        uStack_5ac = uStack_564;\n        uStack_5b0 = 1;\n        pdVar14 = pdStack_568;\n        pdVar30 = (double *)(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6]);\n        if (pdVar30 == (double *)0x0) {\n          *(uint *)((int)pdVar5 + 0x24) = 0;\n          pcVar37 = pcStack_5a8;\n        }\n        else {\n          piVar17 = *(int **)((int)pdVar5 + 0x1c);\n          piVar2 = piVar17;\n          piVar19 = aiStack_510;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);\n          iVar10 = *piVar2;\n          iVar3 = piVar7[5];\n          *piVar19 = iVar10;\n          piVar11[5] = iVar3;\n          in_f20_21 = *(double *)(piVar17 + 10);\n          in_f22_23 = *(double *)(piVar17 + 0xc);\n          in_f24_25 = *(double *)(piVar17 + 0xe);\n          dStack_590 = *(double *)(piVar17 + 0x10);\n          dVar39 = *(double *)(piVar17 + 0x12);\n          if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];\n          pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }\n          pdVar14 = pdStack_568;\n          iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar37 = pcStack_5a8;\n          if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }\n        }\n      }\n      puVar35 = puVar35 + 1;\n    } while ((int)puVar35 < (int)puStack_56c);\n  }" (if "if") (parenthesized_expression "((int)piVar2 < iVar49 + (int)piVar2)" (( "(") (binary_expression "(int)piVar2 < iVar49 + (int)piVar2" (cast_expression "(int)piVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar2")) (< "<") (binary_expression "iVar49 + (int)piVar2" (identifier "iVar49") (+ "+") (cast_expression "(int)piVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar2")))) () ")")) (compound_statement "{\n    dStack_580 = *pdVar5;\n    pdStack_588 = *(double **)(pdVar5 + 3);\n    puVar32 = *(uint **)((int)pdVar5 + 0x14);\n    pdStack_568 = *(double **)(pdVar5 + 2);\n    uStack_564 = *(uint *)((int)pdVar5 + 0xc);\n    piVar48 = *(int **)(pdVar5 + 1);\n    puStack_56c = (undefined1 *)((int)pdVar30 + iVar49 + (int)piVar2);\n    dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n    if (dStack_580 < 0.0) {\n      dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n    }\n    iStack_570 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_598 = *(double *)(iStack_570 + 0x4a48);\n    iStack_584 = *(int *)(pcStack_5a8 + -0x7fd0);\n    dStack_560 = *(double *)(iStack_584 + 0x43d0);\n    unaff_s6 = *(double **)(pcStack_5a8 + -0x7fd0);\n    dStack_548 = unaff_s6[0x879];\n    do {\n      if (*(uint *)((int)pdVar5 + 0x24) != 0) {\n        uStack_5ac = uStack_564;\n        uStack_5b0 = 1;\n        pdVar14 = pdStack_568;\n        pdVar30 = (double *)(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6]);\n        if (pdVar30 == (double *)0x0) {\n          *(uint *)((int)pdVar5 + 0x24) = 0;\n          pcVar37 = pcStack_5a8;\n        }\n        else {\n          piVar17 = *(int **)((int)pdVar5 + 0x1c);\n          piVar2 = piVar17;\n          piVar19 = aiStack_510;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);\n          iVar10 = *piVar2;\n          iVar3 = piVar7[5];\n          *piVar19 = iVar10;\n          piVar11[5] = iVar3;\n          in_f20_21 = *(double *)(piVar17 + 10);\n          in_f22_23 = *(double *)(piVar17 + 0xc);\n          in_f24_25 = *(double *)(piVar17 + 0xe);\n          dStack_590 = *(double *)(piVar17 + 0x10);\n          dVar39 = *(double *)(piVar17 + 0x12);\n          if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];\n          pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }\n          pdVar14 = pdStack_568;\n          iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar37 = pcStack_5a8;\n          if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }\n        }\n      }\n      puVar35 = puVar35 + 1;\n    } while ((int)puVar35 < (int)puStack_56c);\n  }" ({ "{") (expression_statement "dStack_580 = *pdVar5;" (assignment_expression "dStack_580 = *pdVar5" (identifier "dStack_580") (= "=") (pointer_expression "*pdVar5" (* "*") (identifier "pdVar5"))) (; ";")) (expression_statement "pdStack_588 = *(double **)(pdVar5 + 3);" (assignment_expression "pdStack_588 = *(double **)(pdVar5 + 3)" (identifier "pdStack_588") (= "=") (pointer_expression "*(double **)(pdVar5 + 3)" (* "*") (cast_expression "(double **)(pdVar5 + 3)" (( "(") (type_descriptor "double **" (primitive_type "double") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pdVar5 + 3)" (( "(") (binary_expression "pdVar5 + 3" (identifier "pdVar5") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "puVar32 = *(uint **)((int)pdVar5 + 0x14);" (assignment_expression "puVar32 = *(uint **)((int)pdVar5 + 0x14)" (identifier "puVar32") (= "=") (pointer_expression "*(uint **)((int)pdVar5 + 0x14)" (* "*") (cast_expression "(uint **)((int)pdVar5 + 0x14)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pdVar5 + 0x14)" (( "(") (binary_expression "(int)pdVar5 + 0x14" (cast_expression "(int)pdVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar5")) (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "pdStack_568 = *(double **)(pdVar5 + 2);" (assignment_expression "pdStack_568 = *(double **)(pdVar5 + 2)" (identifier "pdStack_568") (= "=") (pointer_expression "*(double **)(pdVar5 + 2)" (* "*") (cast_expression "(double **)(pdVar5 + 2)" (( "(") (type_descriptor "double **" (primitive_type "double") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pdVar5 + 2)" (( "(") (binary_expression "pdVar5 + 2" (identifier "pdVar5") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "uStack_564 = *(uint *)((int)pdVar5 + 0xc);" (assignment_expression "uStack_564 = *(uint *)((int)pdVar5 + 0xc)" (identifier "uStack_564") (= "=") (pointer_expression "*(uint *)((int)pdVar5 + 0xc)" (* "*") (cast_expression "(uint *)((int)pdVar5 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar5 + 0xc)" (( "(") (binary_expression "(int)pdVar5 + 0xc" (cast_expression "(int)pdVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar5")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "piVar48 = *(int **)(pdVar5 + 1);" (assignment_expression "piVar48 = *(int **)(pdVar5 + 1)" (identifier "piVar48") (= "=") (pointer_expression "*(int **)(pdVar5 + 1)" (* "*") (cast_expression "(int **)(pdVar5 + 1)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pdVar5 + 1)" (( "(") (binary_expression "pdVar5 + 1" (identifier "pdVar5") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "puStack_56c = (undefined1 *)((int)pdVar30 + iVar49 + (int)piVar2);" (assignment_expression "puStack_56c = (undefined1 *)((int)pdVar30 + iVar49 + (int)piVar2)" (identifier "puStack_56c") (= "=") (cast_expression "(undefined1 *)((int)pdVar30 + iVar49 + (int)piVar2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar30 + iVar49 + (int)piVar2)" (( "(") (binary_expression "(int)pdVar30 + iVar49 + (int)piVar2" (binary_expression "(int)pdVar30 + iVar49" (cast_expression "(int)pdVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar30")) (+ "+") (identifier "iVar49")) (+ "+") (cast_expression "(int)piVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar2"))) () ")")))) (; ";")) (expression_statement "dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);" (assignment_expression "dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" (identifier "dStack_578") (= "=") (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" (( "(") (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4408")) () ")"))))) (; ";")) (if_statement "if (dStack_580 < 0.0) {\n      dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n    }" (if "if") (parenthesized_expression "(dStack_580 < 0.0)" (( "(") (binary_expression "dStack_580 < 0.0" (identifier "dStack_580") (< "<") (number_literal "0.0")) () ")")) (compound_statement "{\n      dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n    }" ({ "{") (expression_statement "dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (identifier "dStack_578") (= "=") (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4418")) () ")"))))) (; ";")) (} "}"))) (expression_statement "iStack_570 = *(int *)(pcStack_5a8 + -0x7fd0);" (assignment_expression "iStack_570 = *(int *)(pcStack_5a8 + -0x7fd0)" (identifier "iStack_570") (= "=") (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")"))))) (; ";")) (expression_statement "dStack_598 = *(double *)(iStack_570 + 0x4a48);" (assignment_expression "dStack_598 = *(double *)(iStack_570 + 0x4a48)" (identifier "dStack_598") (= "=") (pointer_expression "*(double *)(iStack_570 + 0x4a48)" (* "*") (cast_expression "(double *)(iStack_570 + 0x4a48)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_570 + 0x4a48)" (( "(") (binary_expression "iStack_570 + 0x4a48" (identifier "iStack_570") (+ "+") (number_literal "0x4a48")) () ")"))))) (; ";")) (expression_statement "iStack_584 = *(int *)(pcStack_5a8 + -0x7fd0);" (assignment_expression "iStack_584 = *(int *)(pcStack_5a8 + -0x7fd0)" (identifier "iStack_584") (= "=") (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")"))))) (; ";")) (expression_statement "dStack_560 = *(double *)(iStack_584 + 0x43d0);" (assignment_expression "dStack_560 = *(double *)(iStack_584 + 0x43d0)" (identifier "dStack_560") (= "=") (pointer_expression "*(double *)(iStack_584 + 0x43d0)" (* "*") (cast_expression "(double *)(iStack_584 + 0x43d0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_584 + 0x43d0)" (( "(") (binary_expression "iStack_584 + 0x43d0" (identifier "iStack_584") (+ "+") (number_literal "0x43d0")) () ")"))))) (; ";")) (expression_statement "unaff_s6 = *(double **)(pcStack_5a8 + -0x7fd0);" (assignment_expression "unaff_s6 = *(double **)(pcStack_5a8 + -0x7fd0)" (identifier "unaff_s6") (= "=") (pointer_expression "*(double **)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(double **)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "double **" (primitive_type "double") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")"))))) (; ";")) (expression_statement "dStack_548 = unaff_s6[0x879];" (assignment_expression "dStack_548 = unaff_s6[0x879]" (identifier "dStack_548") (= "=") (subscript_expression "unaff_s6[0x879]" (identifier "unaff_s6") ([ "[") (number_literal "0x879") (] "]"))) (; ";")) (do_statement "do {\n      if (*(uint *)((int)pdVar5 + 0x24) != 0) {\n        uStack_5ac = uStack_564;\n        uStack_5b0 = 1;\n        pdVar14 = pdStack_568;\n        pdVar30 = (double *)(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6]);\n        if (pdVar30 == (double *)0x0) {\n          *(uint *)((int)pdVar5 + 0x24) = 0;\n          pcVar37 = pcStack_5a8;\n        }\n        else {\n          piVar17 = *(int **)((int)pdVar5 + 0x1c);\n          piVar2 = piVar17;\n          piVar19 = aiStack_510;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);\n          iVar10 = *piVar2;\n          iVar3 = piVar7[5];\n          *piVar19 = iVar10;\n          piVar11[5] = iVar3;\n          in_f20_21 = *(double *)(piVar17 + 10);\n          in_f22_23 = *(double *)(piVar17 + 0xc);\n          in_f24_25 = *(double *)(piVar17 + 0xe);\n          dStack_590 = *(double *)(piVar17 + 0x10);\n          dVar39 = *(double *)(piVar17 + 0x12);\n          if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];\n          pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }\n          pdVar14 = pdStack_568;\n          iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar37 = pcStack_5a8;\n          if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }\n        }\n      }\n      puVar35 = puVar35 + 1;\n    } while ((int)puVar35 < (int)puStack_56c);" (do "do") (compound_statement "{\n      if (*(uint *)((int)pdVar5 + 0x24) != 0) {\n        uStack_5ac = uStack_564;\n        uStack_5b0 = 1;\n        pdVar14 = pdStack_568;\n        pdVar30 = (double *)(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6]);\n        if (pdVar30 == (double *)0x0) {\n          *(uint *)((int)pdVar5 + 0x24) = 0;\n          pcVar37 = pcStack_5a8;\n        }\n        else {\n          piVar17 = *(int **)((int)pdVar5 + 0x1c);\n          piVar2 = piVar17;\n          piVar19 = aiStack_510;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);\n          iVar10 = *piVar2;\n          iVar3 = piVar7[5];\n          *piVar19 = iVar10;\n          piVar11[5] = iVar3;\n          in_f20_21 = *(double *)(piVar17 + 10);\n          in_f22_23 = *(double *)(piVar17 + 0xc);\n          in_f24_25 = *(double *)(piVar17 + 0xe);\n          dStack_590 = *(double *)(piVar17 + 0x10);\n          dVar39 = *(double *)(piVar17 + 0x12);\n          if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];\n          pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }\n          pdVar14 = pdStack_568;\n          iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar37 = pcStack_5a8;\n          if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }\n        }\n      }\n      puVar35 = puVar35 + 1;\n    }" ({ "{") (if_statement "if (*(uint *)((int)pdVar5 + 0x24) != 0) {\n        uStack_5ac = uStack_564;\n        uStack_5b0 = 1;\n        pdVar14 = pdStack_568;\n        pdVar30 = (double *)(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6]);\n        if (pdVar30 == (double *)0x0) {\n          *(uint *)((int)pdVar5 + 0x24) = 0;\n          pcVar37 = pcStack_5a8;\n        }\n        else {\n          piVar17 = *(int **)((int)pdVar5 + 0x1c);\n          piVar2 = piVar17;\n          piVar19 = aiStack_510;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);\n          iVar10 = *piVar2;\n          iVar3 = piVar7[5];\n          *piVar19 = iVar10;\n          piVar11[5] = iVar3;\n          in_f20_21 = *(double *)(piVar17 + 10);\n          in_f22_23 = *(double *)(piVar17 + 0xc);\n          in_f24_25 = *(double *)(piVar17 + 0xe);\n          dStack_590 = *(double *)(piVar17 + 0x10);\n          dVar39 = *(double *)(piVar17 + 0x12);\n          if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];\n          pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }\n          pdVar14 = pdStack_568;\n          iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar37 = pcStack_5a8;\n          if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(*(uint *)((int)pdVar5 + 0x24) != 0)" (( "(") (binary_expression "*(uint *)((int)pdVar5 + 0x24) != 0" (pointer_expression "*(uint *)((int)pdVar5 + 0x24)" (* "*") (cast_expression "(uint *)((int)pdVar5 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar5 + 0x24)" (( "(") (binary_expression "(int)pdVar5 + 0x24" (cast_expression "(int)pdVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar5")) (+ "+") (number_literal "0x24")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uStack_5ac = uStack_564;\n        uStack_5b0 = 1;\n        pdVar14 = pdStack_568;\n        pdVar30 = (double *)(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6]);\n        if (pdVar30 == (double *)0x0) {\n          *(uint *)((int)pdVar5 + 0x24) = 0;\n          pcVar37 = pcStack_5a8;\n        }\n        else {\n          piVar17 = *(int **)((int)pdVar5 + 0x1c);\n          piVar2 = piVar17;\n          piVar19 = aiStack_510;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);\n          iVar10 = *piVar2;\n          iVar3 = piVar7[5];\n          *piVar19 = iVar10;\n          piVar11[5] = iVar3;\n          in_f20_21 = *(double *)(piVar17 + 10);\n          in_f22_23 = *(double *)(piVar17 + 0xc);\n          in_f24_25 = *(double *)(piVar17 + 0xe);\n          dStack_590 = *(double *)(piVar17 + 0x10);\n          dVar39 = *(double *)(piVar17 + 0x12);\n          if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];\n          pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }\n          pdVar14 = pdStack_568;\n          iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar37 = pcStack_5a8;\n          if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }\n        }\n      }" ({ "{") (expression_statement "uStack_5ac = uStack_564;" (assignment_expression "uStack_5ac = uStack_564" (identifier "uStack_5ac") (= "=") (identifier "uStack_564")) (; ";")) (expression_statement "uStack_5b0 = 1;" (assignment_expression "uStack_5b0 = 1" (identifier "uStack_5b0") (= "=") (number_literal "1")) (; ";")) (expression_statement "pdVar14 = pdStack_568;" (assignment_expression "pdVar14 = pdStack_568" (identifier "pdVar14") (= "=") (identifier "pdStack_568")) (; ";")) (expression_statement "pdVar30 = (double *)(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6]);" (assignment_expression "pdVar30 = (double *)(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6])" (identifier "pdVar30") (= "=") (cast_expression "(double *)(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6])" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6])" (parenthesized_expression "(**(code **)(pcVar37 + -0x724c))" (( "(") (pointer_expression "**(code **)(pcVar37 + -0x724c)" (* "*") (pointer_expression "*(code **)(pcVar37 + -0x724c)" (* "*") (cast_expression "(code **)(pcVar37 + -0x724c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + -0x724c)" (( "(") (binary_expression "pcVar37 + -0x724c" (identifier "pcVar37") (+ "+") (number_literal "-0x724c")) () ")"))))) () ")")) (argument_list "(pdStack_568,0,puVar35,piVar48[6])" (( "(") (identifier "pdStack_568") (, ",") (number_literal "0") (, ",") (identifier "puVar35") (, ",") (subscript_expression "piVar48[6]" (identifier "piVar48") ([ "[") (number_literal "6") (] "]")) () ")"))))) (; ";")) (if_statement "if (pdVar30 == (double *)0x0) {\n          *(uint *)((int)pdVar5 + 0x24) = 0;\n          pcVar37 = pcStack_5a8;\n        }\n        else {\n          piVar17 = *(int **)((int)pdVar5 + 0x1c);\n          piVar2 = piVar17;\n          piVar19 = aiStack_510;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);\n          iVar10 = *piVar2;\n          iVar3 = piVar7[5];\n          *piVar19 = iVar10;\n          piVar11[5] = iVar3;\n          in_f20_21 = *(double *)(piVar17 + 10);\n          in_f22_23 = *(double *)(piVar17 + 0xc);\n          in_f24_25 = *(double *)(piVar17 + 0xe);\n          dStack_590 = *(double *)(piVar17 + 0x10);\n          dVar39 = *(double *)(piVar17 + 0x12);\n          if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];\n          pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }\n          pdVar14 = pdStack_568;\n          iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar37 = pcStack_5a8;\n          if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }\n        }" (if "if") (parenthesized_expression "(pdVar30 == (double *)0x0)" (( "(") (binary_expression "pdVar30 == (double *)0x0" (identifier "pdVar30") (== "==") (cast_expression "(double *)0x0" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          *(uint *)((int)pdVar5 + 0x24) = 0;\n          pcVar37 = pcStack_5a8;\n        }" ({ "{") (expression_statement "*(uint *)((int)pdVar5 + 0x24) = 0;" (assignment_expression "*(uint *)((int)pdVar5 + 0x24) = 0" (pointer_expression "*(uint *)((int)pdVar5 + 0x24)" (* "*") (cast_expression "(uint *)((int)pdVar5 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar5 + 0x24)" (( "(") (binary_expression "(int)pdVar5 + 0x24" (cast_expression "(int)pdVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar5")) (+ "+") (number_literal "0x24")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar37 = pcStack_5a8;" (assignment_expression "pcVar37 = pcStack_5a8" (identifier "pcVar37") (= "=") (identifier "pcStack_5a8")) (; ";")) (} "}")) (else_clause "else {\n          piVar17 = *(int **)((int)pdVar5 + 0x1c);\n          piVar2 = piVar17;\n          piVar19 = aiStack_510;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);\n          iVar10 = *piVar2;\n          iVar3 = piVar7[5];\n          *piVar19 = iVar10;\n          piVar11[5] = iVar3;\n          in_f20_21 = *(double *)(piVar17 + 10);\n          in_f22_23 = *(double *)(piVar17 + 0xc);\n          in_f24_25 = *(double *)(piVar17 + 0xe);\n          dStack_590 = *(double *)(piVar17 + 0x10);\n          dVar39 = *(double *)(piVar17 + 0x12);\n          if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];\n          pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }\n          pdVar14 = pdStack_568;\n          iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar37 = pcStack_5a8;\n          if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }\n        }" (else "else") (compound_statement "{\n          piVar17 = *(int **)((int)pdVar5 + 0x1c);\n          piVar2 = piVar17;\n          piVar19 = aiStack_510;\n          do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);\n          iVar10 = *piVar2;\n          iVar3 = piVar7[5];\n          *piVar19 = iVar10;\n          piVar11[5] = iVar3;\n          in_f20_21 = *(double *)(piVar17 + 10);\n          in_f22_23 = *(double *)(piVar17 + 0xc);\n          in_f24_25 = *(double *)(piVar17 + 0xe);\n          dStack_590 = *(double *)(piVar17 + 0x10);\n          dVar39 = *(double *)(piVar17 + 0x12);\n          if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }\nLAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];\n          pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);\n          if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }\n          pdVar14 = pdStack_568;\n          iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);\n          pcVar37 = pcStack_5a8;\n          if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }\n        }" ({ "{") (expression_statement "piVar17 = *(int **)((int)pdVar5 + 0x1c);" (assignment_expression "piVar17 = *(int **)((int)pdVar5 + 0x1c)" (identifier "piVar17") (= "=") (pointer_expression "*(int **)((int)pdVar5 + 0x1c)" (* "*") (cast_expression "(int **)((int)pdVar5 + 0x1c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pdVar5 + 0x1c)" (( "(") (binary_expression "(int)pdVar5 + 0x1c" (cast_expression "(int)pdVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar5")) (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "piVar2 = piVar17;" (assignment_expression "piVar2 = piVar17" (identifier "piVar2") (= "=") (identifier "piVar17")) (; ";")) (expression_statement "piVar19 = aiStack_510;" (assignment_expression "piVar19 = aiStack_510" (identifier "piVar19") (= "=") (identifier "aiStack_510")) (; ";")) (do_statement "do {\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          } while (piVar2 != piVar17 + 0x14);" (do "do") (compound_statement "{\n            piVar11 = piVar19;\n            piVar7 = piVar2;\n            iVar49 = piVar7[1];\n            iVar10 = piVar7[2];\n            iVar3 = piVar7[3];\n            *piVar11 = *piVar7;\n            piVar11[1] = iVar49;\n            piVar11[2] = iVar10;\n            piVar11[3] = iVar3;\n            piVar2 = piVar7 + 4;\n            piVar19 = piVar11 + 4;\n          }" ({ "{") (expression_statement "piVar11 = piVar19;" (assignment_expression "piVar11 = piVar19" (identifier "piVar11") (= "=") (identifier "piVar19")) (; ";")) (expression_statement "piVar7 = piVar2;" (assignment_expression "piVar7 = piVar2" (identifier "piVar7") (= "=") (identifier "piVar2")) (; ";")) (expression_statement "iVar49 = piVar7[1];" (assignment_expression "iVar49 = piVar7[1]" (identifier "iVar49") (= "=") (subscript_expression "piVar7[1]" (identifier "piVar7") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iVar10 = piVar7[2];" (assignment_expression "iVar10 = piVar7[2]" (identifier "iVar10") (= "=") (subscript_expression "piVar7[2]" (identifier "piVar7") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar3 = piVar7[3];" (assignment_expression "iVar3 = piVar7[3]" (identifier "iVar3") (= "=") (subscript_expression "piVar7[3]" (identifier "piVar7") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*piVar11 = *piVar7;" (assignment_expression "*piVar11 = *piVar7" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (= "=") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) (; ";")) (expression_statement "piVar11[1] = iVar49;" (assignment_expression "piVar11[1] = iVar49" (subscript_expression "piVar11[1]" (identifier "piVar11") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar49")) (; ";")) (expression_statement "piVar11[2] = iVar10;" (assignment_expression "piVar11[2] = iVar10" (subscript_expression "piVar11[2]" (identifier "piVar11") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar10")) (; ";")) (expression_statement "piVar11[3] = iVar3;" (assignment_expression "piVar11[3] = iVar3" (subscript_expression "piVar11[3]" (identifier "piVar11") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "piVar2 = piVar7 + 4;" (assignment_expression "piVar2 = piVar7 + 4" (identifier "piVar2") (= "=") (binary_expression "piVar7 + 4" (identifier "piVar7") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "piVar19 = piVar11 + 4;" (assignment_expression "piVar19 = piVar11 + 4" (identifier "piVar19") (= "=") (binary_expression "piVar11 + 4" (identifier "piVar11") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar2 != piVar17 + 0x14)" (( "(") (binary_expression "piVar2 != piVar17 + 0x14" (identifier "piVar2") (!= "!=") (binary_expression "piVar17 + 0x14" (identifier "piVar17") (+ "+") (number_literal "0x14"))) () ")")) (; ";")) (expression_statement "iVar10 = *piVar2;" (assignment_expression "iVar10 = *piVar2" (identifier "iVar10") (= "=") (pointer_expression "*piVar2" (* "*") (identifier "piVar2"))) (; ";")) (expression_statement "iVar3 = piVar7[5];" (assignment_expression "iVar3 = piVar7[5]" (identifier "iVar3") (= "=") (subscript_expression "piVar7[5]" (identifier "piVar7") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "*piVar19 = iVar10;" (assignment_expression "*piVar19 = iVar10" (pointer_expression "*piVar19" (* "*") (identifier "piVar19")) (= "=") (identifier "iVar10")) (; ";")) (expression_statement "piVar11[5] = iVar3;" (assignment_expression "piVar11[5] = iVar3" (subscript_expression "piVar11[5]" (identifier "piVar11") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "in_f20_21 = *(double *)(piVar17 + 10);" (assignment_expression "in_f20_21 = *(double *)(piVar17 + 10)" (identifier "in_f20_21") (= "=") (pointer_expression "*(double *)(piVar17 + 10)" (* "*") (cast_expression "(double *)(piVar17 + 10)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar17 + 10)" (( "(") (binary_expression "piVar17 + 10" (identifier "piVar17") (+ "+") (number_literal "10")) () ")"))))) (; ";")) (expression_statement "in_f22_23 = *(double *)(piVar17 + 0xc);" (assignment_expression "in_f22_23 = *(double *)(piVar17 + 0xc)" (identifier "in_f22_23") (= "=") (pointer_expression "*(double *)(piVar17 + 0xc)" (* "*") (cast_expression "(double *)(piVar17 + 0xc)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar17 + 0xc)" (( "(") (binary_expression "piVar17 + 0xc" (identifier "piVar17") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "in_f24_25 = *(double *)(piVar17 + 0xe);" (assignment_expression "in_f24_25 = *(double *)(piVar17 + 0xe)" (identifier "in_f24_25") (= "=") (pointer_expression "*(double *)(piVar17 + 0xe)" (* "*") (cast_expression "(double *)(piVar17 + 0xe)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar17 + 0xe)" (( "(") (binary_expression "piVar17 + 0xe" (identifier "piVar17") (+ "+") (number_literal "0xe")) () ")"))))) (; ";")) (expression_statement "dStack_590 = *(double *)(piVar17 + 0x10);" (assignment_expression "dStack_590 = *(double *)(piVar17 + 0x10)" (identifier "dStack_590") (= "=") (pointer_expression "*(double *)(piVar17 + 0x10)" (* "*") (cast_expression "(double *)(piVar17 + 0x10)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar17 + 0x10)" (( "(") (binary_expression "piVar17 + 0x10" (identifier "piVar17") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "dVar39 = *(double *)(piVar17 + 0x12);" (assignment_expression "dVar39 = *(double *)(piVar17 + 0x12)" (identifier "dVar39") (= "=") (pointer_expression "*(double *)(piVar17 + 0x12)" (* "*") (cast_expression "(double *)(piVar17 + 0x12)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar17 + 0x12)" (( "(") (binary_expression "piVar17 + 0x12" (identifier "piVar17") (+ "+") (number_literal "0x12")) () ")"))))) (; ";")) (if_statement "if (*puVar32 < 2) {\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }\n          else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }" (if "if") (parenthesized_expression "(*puVar32 < 2)" (( "(") (binary_expression "*puVar32 < 2" (pointer_expression "*puVar32" (* "*") (identifier "puVar32")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n            dStack_540 = 0.0 - *(double *)(puVar32 + 6);\n            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;\n            dStack_558 = SQRT(dVar41);\n            if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }\n            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;\n            in_f26_27 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }\n            in_f26_27 = dStack_558 * in_f26_27;\n            if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }\n            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }\n            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;\nLAB_000a56c0:\n            uVar26 = *puVar32;\nLAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }\n          }" ({ "{") (expression_statement "uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);" (assignment_expression "uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6)" (identifier "uStack_5a0") (= "=") (binary_expression "*(double *)(puVar32 + 10) - *(double *)(puVar32 + 6)" (pointer_expression "*(double *)(puVar32 + 10)" (* "*") (cast_expression "(double *)(puVar32 + 10)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 10)" (( "(") (binary_expression "puVar32 + 10" (identifier "puVar32") (+ "+") (number_literal "10")) () ")")))) (- "-") (pointer_expression "*(double *)(puVar32 + 6)" (* "*") (cast_expression "(double *)(puVar32 + 6)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 6)" (( "(") (binary_expression "puVar32 + 6" (identifier "puVar32") (+ "+") (number_literal "6")) () ")")))))) (; ";")) (expression_statement "dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);" (assignment_expression "dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8)" (identifier "dVar40") (= "=") (binary_expression "*(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8)" (pointer_expression "*(double *)(puVar32 + 0xc)" (* "*") (cast_expression "(double *)(puVar32 + 0xc)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0xc)" (( "(") (binary_expression "puVar32 + 0xc" (identifier "puVar32") (+ "+") (number_literal "0xc")) () ")")))) (- "-") (pointer_expression "*(double *)(puVar32 + 8)" (* "*") (cast_expression "(double *)(puVar32 + 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 8)" (( "(") (binary_expression "puVar32 + 8" (identifier "puVar32") (+ "+") (number_literal "8")) () ")")))))) (; ";")) (expression_statement "dStack_540 = 0.0 - *(double *)(puVar32 + 6);" (assignment_expression "dStack_540 = 0.0 - *(double *)(puVar32 + 6)" (identifier "dStack_540") (= "=") (binary_expression "0.0 - *(double *)(puVar32 + 6)" (number_literal "0.0") (- "-") (pointer_expression "*(double *)(puVar32 + 6)" (* "*") (cast_expression "(double *)(puVar32 + 6)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 6)" (( "(") (binary_expression "puVar32 + 6" (identifier "puVar32") (+ "+") (number_literal "6")) () ")")))))) (; ";")) (expression_statement "dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);" (assignment_expression "dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8)" (identifier "dStack_530") (= "=") (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 8)" (cast_expression "(double)(int)puVar35" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)puVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar35"))) (- "-") (pointer_expression "*(double *)(puVar32 + 8)" (* "*") (cast_expression "(double *)(puVar32 + 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 8)" (( "(") (binary_expression "puVar32 + 8" (identifier "puVar32") (+ "+") (number_literal "8")) () ")")))))) (; ";")) (expression_statement "dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;" (assignment_expression "dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530" (identifier "dVar41") (= "=") (binary_expression "dStack_540 * dStack_540 + dStack_530 * dStack_530" (binary_expression "dStack_540 * dStack_540" (identifier "dStack_540") (* "*") (identifier "dStack_540")) (+ "+") (binary_expression "dStack_530 * dStack_530" (identifier "dStack_530") (* "*") (identifier "dStack_530")))) (; ";")) (expression_statement "dStack_558 = SQRT(dVar41);" (assignment_expression "dStack_558 = SQRT(dVar41)" (identifier "dStack_558") (= "=") (call_expression "SQRT(dVar41)" (identifier "SQRT") (argument_list "(dVar41)" (( "(") (identifier "dVar41") () ")")))) (; ";")) (if_statement "if (0.0 <= dVar41) {\n              dVar41 = dVar40 * dVar40;\n            }\n            else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }" (if "if") (parenthesized_expression "(0.0 <= dVar41)" (( "(") (binary_expression "0.0 <= dVar41" (number_literal "0.0") (<= "<=") (identifier "dVar41")) () ")")) (compound_statement "{\n              dVar41 = dVar40 * dVar40;\n            }" ({ "{") (expression_statement "dVar41 = dVar40 * dVar40;" (assignment_expression "dVar41 = dVar40 * dVar40" (identifier "dVar41") (= "=") (binary_expression "dVar40 * dVar40" (identifier "dVar40") (* "*") (identifier "dVar40"))) (; ";")) (} "}")) (else_clause "else {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }" (else "else") (compound_statement "{\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              dVar41 = dVar40 * dVar40;\n            }" ({ "{") (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" (( "(") (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" (* "*") (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" (* "*") (cast_expression "(code **)(pcStack_5a8 + -0x7418)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7418)" (( "(") (binary_expression "pcStack_5a8 + -0x7418" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7418")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "dVar41 = dVar40 * dVar40;" (assignment_expression "dVar41 = dVar40 * dVar40" (identifier "dVar41") (= "=") (binary_expression "dVar40 * dVar40" (identifier "dVar40") (* "*") (identifier "dVar40"))) (; ";")) (} "}")))) (expression_statement "dVar41 = uStack_5a0 * uStack_5a0 + dVar41;" (assignment_expression "dVar41 = uStack_5a0 * uStack_5a0 + dVar41" (identifier "dVar41") (= "=") (binary_expression "uStack_5a0 * uStack_5a0 + dVar41" (binary_expression "uStack_5a0 * uStack_5a0" (identifier "uStack_5a0") (* "*") (identifier "uStack_5a0")) (+ "+") (identifier "dVar41"))) (; ";")) (expression_statement "in_f26_27 = SQRT(dVar41);" (assignment_expression "in_f26_27 = SQRT(dVar41)" (identifier "in_f26_27") (= "=") (call_expression "SQRT(dVar41)" (identifier "SQRT") (argument_list "(dVar41)" (( "(") (identifier "dVar41") () ")")))) (; ";")) (if_statement "if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }" (if "if") (parenthesized_expression "(dVar41 < 0.0)" (( "(") (binary_expression "dVar41 < 0.0" (identifier "dVar41") (< "<") (number_literal "0.0")) () ")")) (compound_statement "{\n              (**(code **)(pcStack_5a8 + -0x7418))();\n            }" ({ "{") (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" (( "(") (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" (* "*") (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" (* "*") (cast_expression "(code **)(pcStack_5a8 + -0x7418)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7418)" (( "(") (binary_expression "pcStack_5a8 + -0x7418" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7418")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "in_f26_27 = dStack_558 * in_f26_27;" (assignment_expression "in_f26_27 = dStack_558 * in_f26_27" (identifier "in_f26_27") (= "=") (binary_expression "dStack_558 * in_f26_27" (identifier "dStack_558") (* "*") (identifier "in_f26_27"))) (; ";")) (if_statement "if (0.0 <= in_f26_27) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }\n            else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }" (if "if") (parenthesized_expression "(0.0 <= in_f26_27)" (( "(") (binary_expression "0.0 <= in_f26_27" (number_literal "0.0") (<= "<=") (identifier "in_f26_27")) () ")")) (compound_statement "{\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n            }" ({ "{") (expression_statement "dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);" (assignment_expression "dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" (identifier "dVar41") (= "=") (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" (( "(") (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4408")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }" (else "else") (compound_statement "{\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n            }" ({ "{") (expression_statement "dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (identifier "dVar41") (= "=") (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4418")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (unaff_s6[0x879] <= in_f26_27 * dVar41) {\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }\n            else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }" (if "if") (parenthesized_expression "(unaff_s6[0x879] <= in_f26_27 * dVar41)" (( "(") (binary_expression "unaff_s6[0x879] <= in_f26_27 * dVar41" (subscript_expression "unaff_s6[0x879]" (identifier "unaff_s6") ([ "[") (number_literal "0x879") (] "]")) (<= "<=") (binary_expression "in_f26_27 * dVar41" (identifier "in_f26_27") (* "*") (identifier "dVar41"))) () ")")) (compound_statement "{\n              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;\n            }" ({ "{") (expression_statement "dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;" (assignment_expression "dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27" (identifier "dVar41") (= "=") (binary_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27" (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" (( "(") (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4408")) () ")")))) (/ "/") (identifier "in_f26_27"))) (; ";")) (} "}")) (else_clause "else {\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }" (else "else") (compound_statement "{\n              in_f26_27 = unaff_s6[0x879];\n              dVar41 = dVar41 / in_f26_27;\n            }" ({ "{") (expression_statement "in_f26_27 = unaff_s6[0x879];" (assignment_expression "in_f26_27 = unaff_s6[0x879]" (identifier "in_f26_27") (= "=") (subscript_expression "unaff_s6[0x879]" (identifier "unaff_s6") ([ "[") (number_literal "0x879") (] "]"))) (; ";")) (expression_statement "dVar41 = dVar41 / in_f26_27;" (assignment_expression "dVar41 = dVar41 / in_f26_27" (identifier "dVar41") (= "=") (binary_expression "dVar41 / in_f26_27" (identifier "dVar41") (/ "/") (identifier "in_f26_27"))) (; ";")) (} "}")))) (expression_statement "uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;" (assignment_expression "uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558" (identifier "uStack_5a0") (= "=") (binary_expression "(uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558" (binary_expression "(uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41" (parenthesized_expression "(uStack_5a0 * dStack_540 + dVar40 * dStack_530)" (( "(") (binary_expression "uStack_5a0 * dStack_540 + dVar40 * dStack_530" (binary_expression "uStack_5a0 * dStack_540" (identifier "uStack_5a0") (* "*") (identifier "dStack_540")) (+ "+") (binary_expression "dVar40 * dStack_530" (identifier "dVar40") (* "*") (identifier "dStack_530"))) () ")")) (* "*") (identifier "dVar41")) (* "*") (identifier "dStack_558"))) (; ";")) (labeled_statement "LAB_000a56c0:\n            uVar26 = *puVar32;" (statement_identifier "LAB_000a56c0") (: ":") (expression_statement "uVar26 = *puVar32;" (assignment_expression "uVar26 = *puVar32" (identifier "uVar26") (= "=") (pointer_expression "*puVar32" (* "*") (identifier "puVar32"))) (; ";"))) (labeled_statement "LAB_000a56c4:\n            if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }" (statement_identifier "LAB_000a56c4") (: ":") (if_statement "if (uVar26 != 2) {\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }" (if "if") (parenthesized_expression "(uVar26 != 2)" (( "(") (binary_expression "uVar26 != 2" (identifier "uVar26") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }\n              uStack_5a0 = uStack_5a0 * dVar41;\n            }" ({ "{") (if_statement "if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }\n              else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }" (if "if") (parenthesized_expression "(unaff_s6[0x879] <= dStack_580 * dStack_578)" (( "(") (binary_expression "unaff_s6[0x879] <= dStack_580 * dStack_578" (subscript_expression "unaff_s6[0x879]" (identifier "unaff_s6") ([ "[") (number_literal "0x879") (] "]")) (<= "<=") (binary_expression "dStack_580 * dStack_578" (identifier "dStack_580") (* "*") (identifier "dStack_578"))) () ")")) (compound_statement "{\n                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;\n              }" ({ "{") (expression_statement "dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;" (assignment_expression "dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580" (identifier "dVar41") (= "=") (binary_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580" (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" (( "(") (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4408")) () ")")))) (/ "/") (identifier "dStack_580"))) (; ";")) (} "}")) (else_clause "else {\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }" (else "else") (compound_statement "{\n                dVar41 = dStack_578 / unaff_s6[0x879];\n              }" ({ "{") (expression_statement "dVar41 = dStack_578 / unaff_s6[0x879];" (assignment_expression "dVar41 = dStack_578 / unaff_s6[0x879]" (identifier "dVar41") (= "=") (binary_expression "dStack_578 / unaff_s6[0x879]" (identifier "dStack_578") (/ "/") (subscript_expression "unaff_s6[0x879]" (identifier "unaff_s6") ([ "[") (number_literal "0x879") (] "]")))) (; ";")) (} "}")))) (expression_statement "uStack_5a0 = uStack_5a0 * dVar41;" (assignment_expression "uStack_5a0 = uStack_5a0 * dVar41" (identifier "uStack_5a0") (= "=") (binary_expression "uStack_5a0 * dVar41" (identifier "uStack_5a0") (* "*") (identifier "dVar41"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }" (else "else") (compound_statement "{\n            if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }\n            if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n            uStack_5a0 = SQRT(dVar41);\n            if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }\n          }" ({ "{") (if_statement "if (*puVar32 != 2) {\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }" (if "if") (parenthesized_expression "(*puVar32 != 2)" (( "(") (binary_expression "*puVar32 != 2" (pointer_expression "*puVar32" (* "*") (identifier "puVar32")) (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n              uStack_5a0 = 0.0;\n              goto LAB_000a56c0;\n            }" ({ "{") (expression_statement "uStack_5a0 = 0.0;" (assignment_expression "uStack_5a0 = 0.0" (identifier "uStack_5a0") (= "=") (number_literal "0.0")) (; ";")) (goto_statement "goto LAB_000a56c0;" (goto "goto") (statement_identifier "LAB_000a56c0") (; ";")) (} "}"))) (if_statement "if (puVar32[0x10] != 3) {\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }" (if "if") (parenthesized_expression "(puVar32[0x10] != 3)" (( "(") (binary_expression "puVar32[0x10] != 3" (subscript_expression "puVar32[0x10]" (identifier "puVar32") ([ "[") (number_literal "0x10") (] "]")) (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n              in_f26_27 = 0.0;\n              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);\n              (**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);\n              dVar41 = *(double *)(puVar32 + 0x16);\n              if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }\n              dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;\n              dVar41 = *(double *)(puVar32 + 0x18);\n              if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }\n              dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;\n              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;\n              uStack_5a0 = SQRT(dVar41);\n              if (0.0 <= dVar41) goto LAB_000a5700;\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }" ({ "{") (expression_statement "in_f26_27 = 0.0;" (assignment_expression "in_f26_27 = 0.0" (identifier "in_f26_27") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "dVar40 = 0.0 - *(double *)(puVar32 + 0x12);" (assignment_expression "dVar40 = 0.0 - *(double *)(puVar32 + 0x12)" (identifier "dVar40") (= "=") (binary_expression "0.0 - *(double *)(puVar32 + 0x12)" (number_literal "0.0") (- "-") (pointer_expression "*(double *)(puVar32 + 0x12)" (* "*") (cast_expression "(double *)(puVar32 + 0x12)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x12)" (( "(") (binary_expression "puVar32 + 0x12" (identifier "puVar32") (+ "+") (number_literal "0x12")) () ")")))))) (; ";")) (expression_statement "(**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520);" (call_expression "(**(code **)(pcStack_5a8 + -0x78e0))\n                        ((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520)" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x78e0))" (( "(") (pointer_expression "**(code **)(pcStack_5a8 + -0x78e0)" (* "*") (pointer_expression "*(code **)(pcStack_5a8 + -0x78e0)" (* "*") (cast_expression "(code **)(pcStack_5a8 + -0x78e0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x78e0)" (( "(") (binary_expression "pcStack_5a8 + -0x78e0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x78e0")) () ")"))))) () ")")) (argument_list "((*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,\n                         &dStack_518,&dStack_520)" (( "(") (binary_expression "(*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" (parenthesized_expression "(*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88))" (( "(") (binary_expression "*(double *)(puVar32 + 0x1c) *\n                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" (pointer_expression "*(double *)(puVar32 + 0x1c)" (* "*") (cast_expression "(double *)(puVar32 + 0x1c)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x1c)" (( "(") (binary_expression "puVar32 + 0x1c" (identifier "puVar32") (+ "+") (number_literal "0x1c")) () ")")))) (* "*") (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" (( "(") (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4a88")) () ")"))))) () ")")) (/ "/") (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" (( "(") (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4a80")) () ")"))))) (, ",") (identifier "piVar19") (, ",") (identifier "iVar10") (, ",") (pointer_expression "&dStack_518" (& "&") (identifier "dStack_518")) (, ",") (pointer_expression "&dStack_520" (& "&") (identifier "dStack_520")) () ")"))) (; ";")) (expression_statement "dVar41 = *(double *)(puVar32 + 0x16);" (assignment_expression "dVar41 = *(double *)(puVar32 + 0x16)" (identifier "dVar41") (= "=") (pointer_expression "*(double *)(puVar32 + 0x16)" (* "*") (cast_expression "(double *)(puVar32 + 0x16)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x16)" (( "(") (binary_expression "puVar32 + 0x16" (identifier "puVar32") (+ "+") (number_literal "0x16")) () ")"))))) (; ";")) (if_statement "if (in_f26_27 <= dVar41) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }" (if "if") (parenthesized_expression "(in_f26_27 <= dVar41)" (( "(") (binary_expression "in_f26_27 <= dVar41" (identifier "in_f26_27") (<= "<=") (identifier "dVar41")) () ")")) (compound_statement "{\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }" ({ "{") (expression_statement "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);" (assignment_expression "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" (identifier "dVar47") (= "=") (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" (( "(") (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4408")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }" (else "else") (compound_statement "{\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }" ({ "{") (expression_statement "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (identifier "dVar47") (= "=") (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4418")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (unaff_s6[0x879] <= dVar41 * dVar47) {\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }" (if "if") (parenthesized_expression "(unaff_s6[0x879] <= dVar41 * dVar47)" (( "(") (binary_expression "unaff_s6[0x879] <= dVar41 * dVar47" (subscript_expression "unaff_s6[0x879]" (identifier "unaff_s6") ([ "[") (number_literal "0x879") (] "]")) (<= "<=") (binary_expression "dVar41 * dVar47" (identifier "dVar41") (* "*") (identifier "dVar47"))) () ")")) (compound_statement "{\n                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }" ({ "{") (expression_statement "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;" (assignment_expression "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41" (identifier "dVar47") (= "=") (binary_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41" (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" (( "(") (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4408")) () ")")))) (/ "/") (identifier "dVar41"))) (; ";")) (} "}")) (else_clause "else {\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }" (else "else") (compound_statement "{\n                dVar47 = dVar47 / unaff_s6[0x879];\n              }" ({ "{") (expression_statement "dVar47 = dVar47 / unaff_s6[0x879];" (assignment_expression "dVar47 = dVar47 / unaff_s6[0x879]" (identifier "dVar47") (= "=") (binary_expression "dVar47 / unaff_s6[0x879]" (identifier "dVar47") (/ "/") (subscript_expression "unaff_s6[0x879]" (identifier "unaff_s6") ([ "[") (number_literal "0x879") (] "]")))) (; ";")) (} "}")))) (expression_statement "dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;" (assignment_expression "dVar47 = (dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47" (identifier "dVar47") (= "=") (binary_expression "(dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47" (parenthesized_expression "(dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518)" (( "(") (binary_expression "dVar40 * dStack_520 +\n                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518" (binary_expression "dVar40 * dStack_520" (identifier "dVar40") (* "*") (identifier "dStack_520")) (+ "+") (binary_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518" (parenthesized_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (( "(") (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 0x14)" (cast_expression "(double)(int)puVar35" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)puVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar35"))) (- "-") (pointer_expression "*(double *)(puVar32 + 0x14)" (* "*") (cast_expression "(double *)(puVar32 + 0x14)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x14)" (( "(") (binary_expression "puVar32 + 0x14" (identifier "puVar32") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (* "*") (identifier "dStack_518"))) () ")")) (* "*") (identifier "dVar47"))) (; ";")) (expression_statement "dVar41 = *(double *)(puVar32 + 0x18);" (assignment_expression "dVar41 = *(double *)(puVar32 + 0x18)" (identifier "dVar41") (= "=") (pointer_expression "*(double *)(puVar32 + 0x18)" (* "*") (cast_expression "(double *)(puVar32 + 0x18)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x18)" (( "(") (binary_expression "puVar32 + 0x18" (identifier "puVar32") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (0.0 <= dVar41) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }\n              else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }" (if "if") (parenthesized_expression "(0.0 <= dVar41)" (( "(") (binary_expression "0.0 <= dVar41" (number_literal "0.0") (<= "<=") (identifier "dVar41")) () ")")) (compound_statement "{\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);\n              }" ({ "{") (expression_statement "dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);" (assignment_expression "dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" (identifier "dVar44") (= "=") (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" (( "(") (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4408")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }" (else "else") (compound_statement "{\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }" ({ "{") (expression_statement "dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (identifier "dVar44") (= "=") (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4418")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (unaff_s6[0x879] <= dVar41 * dVar44) {\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }\n              else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }" (if "if") (parenthesized_expression "(unaff_s6[0x879] <= dVar41 * dVar44)" (( "(") (binary_expression "unaff_s6[0x879] <= dVar41 * dVar44" (subscript_expression "unaff_s6[0x879]" (identifier "unaff_s6") ([ "[") (number_literal "0x879") (] "]")) (<= "<=") (binary_expression "dVar41 * dVar44" (identifier "dVar41") (* "*") (identifier "dVar44"))) () ")")) (compound_statement "{\n                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;\n              }" ({ "{") (expression_statement "dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;" (assignment_expression "dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41" (identifier "dVar44") (= "=") (binary_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41" (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408)" (( "(") (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4408")) () ")")))) (/ "/") (identifier "dVar41"))) (; ";")) (} "}")) (else_clause "else {\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }" (else "else") (compound_statement "{\n                dVar44 = dVar44 / unaff_s6[0x879];\n              }" ({ "{") (expression_statement "dVar44 = dVar44 / unaff_s6[0x879];" (assignment_expression "dVar44 = dVar44 / unaff_s6[0x879]" (identifier "dVar44") (= "=") (binary_expression "dVar44 / unaff_s6[0x879]" (identifier "dVar44") (/ "/") (subscript_expression "unaff_s6[0x879]" (identifier "unaff_s6") ([ "[") (number_literal "0x879") (] "]")))) (; ";")) (} "}")))) (expression_statement "dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;" (assignment_expression "dVar44 = (dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44" (identifier "dVar44") (= "=") (binary_expression "(dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44" (parenthesized_expression "(dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)))" (( "(") (binary_expression "dVar40 * dStack_518 -\n                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (binary_expression "dVar40 * dStack_518" (identifier "dVar40") (* "*") (identifier "dStack_518")) (- "-") (binary_expression "dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (identifier "dStack_520") (* "*") (parenthesized_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (( "(") (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 0x14)" (cast_expression "(double)(int)puVar35" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)puVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar35"))) (- "-") (pointer_expression "*(double *)(puVar32 + 0x14)" (* "*") (cast_expression "(double *)(puVar32 + 0x14)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x14)" (( "(") (binary_expression "puVar32 + 0x14" (identifier "puVar32") (+ "+") (number_literal "0x14")) () ")"))))) () ")")))) () ")")) (* "*") (identifier "dVar44"))) (; ";")) (expression_statement "dVar41 = dVar47 * dVar47 + dVar44 * dVar44;" (assignment_expression "dVar41 = dVar47 * dVar47 + dVar44 * dVar44" (identifier "dVar41") (= "=") (binary_expression "dVar47 * dVar47 + dVar44 * dVar44" (binary_expression "dVar47 * dVar47" (identifier "dVar47") (* "*") (identifier "dVar47")) (+ "+") (binary_expression "dVar44 * dVar44" (identifier "dVar44") (* "*") (identifier "dVar44")))) (; ";")) (expression_statement "uStack_5a0 = SQRT(dVar41);" (assignment_expression "uStack_5a0 = SQRT(dVar41)" (identifier "uStack_5a0") (= "=") (call_expression "SQRT(dVar41)" (identifier "SQRT") (argument_list "(dVar41)" (( "(") (identifier "dVar41") () ")")))) (; ";")) (if_statement "if (0.0 <= dVar41) goto LAB_000a5700;" (if "if") (parenthesized_expression "(0.0 <= dVar41)" (( "(") (binary_expression "0.0 <= dVar41" (number_literal "0.0") (<= "<=") (identifier "dVar41")) () ")")) (goto_statement "goto LAB_000a5700;" (goto "goto") (statement_identifier "LAB_000a5700") (; ";"))) (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" (( "(") (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" (* "*") (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" (* "*") (cast_expression "(code **)(pcStack_5a8 + -0x7418)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7418)" (( "(") (binary_expression "pcStack_5a8 + -0x7418" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7418")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar26 = *puVar32;" (assignment_expression "uVar26 = *puVar32" (identifier "uVar26") (= "=") (pointer_expression "*puVar32" (* "*") (identifier "puVar32"))) (; ";")) (goto_statement "goto LAB_000a56c4;" (goto "goto") (statement_identifier "LAB_000a56c4") (; ";")) (} "}"))) (expression_statement "dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));" (assignment_expression "dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (identifier "dVar41") (= "=") (binary_expression "(0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (binary_expression "(0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12))" (parenthesized_expression "(0.0 - *(double *)(puVar32 + 0x12))" (( "(") (binary_expression "0.0 - *(double *)(puVar32 + 0x12)" (number_literal "0.0") (- "-") (pointer_expression "*(double *)(puVar32 + 0x12)" (* "*") (cast_expression "(double *)(puVar32 + 0x12)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x12)" (( "(") (binary_expression "puVar32 + 0x12" (identifier "puVar32") (+ "+") (number_literal "0x12")) () ")"))))) () ")")) (* "*") (parenthesized_expression "(0.0 - *(double *)(puVar32 + 0x12))" (( "(") (binary_expression "0.0 - *(double *)(puVar32 + 0x12)" (number_literal "0.0") (- "-") (pointer_expression "*(double *)(puVar32 + 0x12)" (* "*") (cast_expression "(double *)(puVar32 + 0x12)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x12)" (( "(") (binary_expression "puVar32 + 0x12" (identifier "puVar32") (+ "+") (number_literal "0x12")) () ")"))))) () ")"))) (+ "+") (binary_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (parenthesized_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (( "(") (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 0x14)" (cast_expression "(double)(int)puVar35" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)puVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar35"))) (- "-") (pointer_expression "*(double *)(puVar32 + 0x14)" (* "*") (cast_expression "(double *)(puVar32 + 0x14)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x14)" (( "(") (binary_expression "puVar32 + 0x14" (identifier "puVar32") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (* "*") (parenthesized_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (( "(") (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 0x14)" (cast_expression "(double)(int)puVar35" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)puVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar35"))) (- "-") (pointer_expression "*(double *)(puVar32 + 0x14)" (* "*") (cast_expression "(double *)(puVar32 + 0x14)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x14)" (( "(") (binary_expression "puVar32 + 0x14" (identifier "puVar32") (+ "+") (number_literal "0x14")) () ")"))))) () ")"))))) (; ";")) (expression_statement "uStack_5a0 = SQRT(dVar41);" (assignment_expression "uStack_5a0 = SQRT(dVar41)" (identifier "uStack_5a0") (= "=") (call_expression "SQRT(dVar41)" (identifier "SQRT") (argument_list "(dVar41)" (( "(") (identifier "dVar41") () ")")))) (; ";")) (if_statement "if (dVar41 < 0.0) {\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }" (if "if") (parenthesized_expression "(dVar41 < 0.0)" (( "(") (binary_expression "dVar41 < 0.0" (identifier "dVar41") (< "<") (number_literal "0.0")) () ")")) (compound_statement "{\n              (**(code **)(pcStack_5a8 + -0x7418))();\n              uVar26 = *puVar32;\n              goto LAB_000a56c4;\n            }" ({ "{") (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" (( "(") (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" (* "*") (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" (* "*") (cast_expression "(code **)(pcStack_5a8 + -0x7418)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7418)" (( "(") (binary_expression "pcStack_5a8 + -0x7418" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7418")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar26 = *puVar32;" (assignment_expression "uVar26 = *puVar32" (identifier "uVar26") (= "=") (pointer_expression "*puVar32" (* "*") (identifier "puVar32"))) (; ";")) (goto_statement "goto LAB_000a56c4;" (goto "goto") (statement_identifier "LAB_000a56c4") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_000a5700:\n          iVar28 = (*(int **)(pdVar5 + 4))[2];" (statement_identifier "LAB_000a5700") (: ":") (expression_statement "iVar28 = (*(int **)(pdVar5 + 4))[2];" (assignment_expression "iVar28 = (*(int **)(pdVar5 + 4))[2]" (identifier "iVar28") (= "=") (subscript_expression "(*(int **)(pdVar5 + 4))[2]" (parenthesized_expression "(*(int **)(pdVar5 + 4))" (( "(") (pointer_expression "*(int **)(pdVar5 + 4)" (* "*") (cast_expression "(int **)(pdVar5 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pdVar5 + 4)" (( "(") (binary_expression "pdVar5 + 4" (identifier "pdVar5") (+ "+") (number_literal "4")) () ")")))) () ")")) ([ "[") (number_literal "2") (] "]"))) (; ";"))) (expression_statement "pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);" (assignment_expression "pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0)" (identifier "pdVar29") (= "=") (pointer_expression "*(double **)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(double **)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "double **" (primitive_type "double") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")"))))) (; ";")) (if_statement "if (iVar28 < **(int **)(pdVar5 + 4)) {\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }" (if "if") (parenthesized_expression "(iVar28 < **(int **)(pdVar5 + 4))" (( "(") (binary_expression "iVar28 < **(int **)(pdVar5 + 4)" (identifier "iVar28") (< "<") (pointer_expression "**(int **)(pdVar5 + 4)" (* "*") (pointer_expression "*(int **)(pdVar5 + 4)" (* "*") (cast_expression "(int **)(pdVar5 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pdVar5 + 4)" (( "(") (binary_expression "pdVar5 + 4" (identifier "pdVar5") (+ "+") (number_literal "4")) () ")")))))) () ")")) (compound_statement "{\n            dStack_540 = pdVar29[0x881];\n            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);\n            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);\n            do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));\n          }" ({ "{") (expression_statement "dStack_540 = pdVar29[0x881];" (assignment_expression "dStack_540 = pdVar29[0x881]" (identifier "dStack_540") (= "=") (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]"))) (; ";")) (expression_statement "dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);" (assignment_expression "dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_)" (identifier "dStack_558") (= "=") (cast_expression "(double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_)" (identifier "CONCAT44") (argument_list "(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_)" (( "(") (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (, ",") (field_expression "dStack_558._4_4_" (identifier "dStack_558") (. ".") (field_identifier "_4_4_")) () ")"))))) (; ";")) (expression_statement "dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);" (assignment_expression "dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410)" (identifier "dVar41") (= "=") (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410)" (( "(") (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4410")) () ")"))))) (; ";")) (do_statement "do {\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            } while (iVar28 < **(int **)(pdVar5 + 4));" (do "do") (compound_statement "{\n              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);\n              aiStack_510[0] = 1;\n              aiStack_510[1] = 0x17;\n              iStack_4f8 = 0x10;\n              aiStack_510[2] = 0;\n              dStack_4c8 = dStack_598;\n              if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }\n              unaff_s7 = puVar32[0x10];\n              if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\nLAB_000a5af8:\n              dVar44 = dVar39 * dVar41;\n              dVar47 = dStack_4c8 * dVar41;\n              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;\n              if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }\n              if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }\n              dVar40 = pdVar29[0x881] - dVar44;\n              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;\n              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;\n              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;\n              if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }\n              iVar3 = piVar48[0xb4];\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;\n              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;\n              if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }\n              if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }\n              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);\n              iVar28 = iVar28 + 1;\n            }" ({ "{") (expression_statement "(**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);" (call_expression "(**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58)" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x78a4))" (( "(") (pointer_expression "**(code **)(pcStack_5a8 + -0x78a4)" (* "*") (pointer_expression "*(code **)(pcStack_5a8 + -0x78a4)" (* "*") (cast_expression "(code **)(pcStack_5a8 + -0x78a4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x78a4)" (( "(") (binary_expression "pcStack_5a8 + -0x78a4" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x78a4")) () ")"))))) () ")")) (argument_list "(aiStack_510,0,0x58)" (( "(") (identifier "aiStack_510") (, ",") (number_literal "0") (, ",") (number_literal "0x58") () ")"))) (; ";")) (expression_statement "aiStack_510[0] = 1;" (assignment_expression "aiStack_510[0] = 1" (subscript_expression "aiStack_510[0]" (identifier "aiStack_510") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "aiStack_510[1] = 0x17;" (assignment_expression "aiStack_510[1] = 0x17" (subscript_expression "aiStack_510[1]" (identifier "aiStack_510") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0x17")) (; ";")) (expression_statement "iStack_4f8 = 0x10;" (assignment_expression "iStack_4f8 = 0x10" (identifier "iStack_4f8") (= "=") (number_literal "0x10")) (; ";")) (expression_statement "aiStack_510[2] = 0;" (assignment_expression "aiStack_510[2] = 0" (subscript_expression "aiStack_510[2]" (identifier "aiStack_510") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "dStack_4c8 = dStack_598;" (assignment_expression "dStack_4c8 = dStack_598" (identifier "dStack_4c8") (= "=") (identifier "dStack_598")) (; ";")) (if_statement "if (piVar48 != (int *)0x0) {\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }" (if "if") (parenthesized_expression "(piVar48 != (int *)0x0)" (( "(") (binary_expression "piVar48 != (int *)0x0" (identifier "piVar48") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                aiStack_510[0] = *piVar48;\n                aiStack_510[1] = piVar48[1];\n                uStack_500 = *(undefined8 *)(piVar48 + 0x92);\n                iStack_4f8 = piVar48[8];\n                aiStack_510[2] = piVar48[0xaf];\n                if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }\n              }" ({ "{") (expression_statement "aiStack_510[0] = *piVar48;" (assignment_expression "aiStack_510[0] = *piVar48" (subscript_expression "aiStack_510[0]" (identifier "aiStack_510") ([ "[") (number_literal "0") (] "]")) (= "=") (pointer_expression "*piVar48" (* "*") (identifier "piVar48"))) (; ";")) (expression_statement "aiStack_510[1] = piVar48[1];" (assignment_expression "aiStack_510[1] = piVar48[1]" (subscript_expression "aiStack_510[1]" (identifier "aiStack_510") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "piVar48[1]" (identifier "piVar48") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uStack_500 = *(undefined8 *)(piVar48 + 0x92);" (assignment_expression "uStack_500 = *(undefined8 *)(piVar48 + 0x92)" (identifier "uStack_500") (= "=") (pointer_expression "*(undefined8 *)(piVar48 + 0x92)" (* "*") (cast_expression "(undefined8 *)(piVar48 + 0x92)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar48 + 0x92)" (( "(") (binary_expression "piVar48 + 0x92" (identifier "piVar48") (+ "+") (number_literal "0x92")) () ")"))))) (; ";")) (expression_statement "iStack_4f8 = piVar48[8];" (assignment_expression "iStack_4f8 = piVar48[8]" (identifier "iStack_4f8") (= "=") (subscript_expression "piVar48[8]" (identifier "piVar48") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "aiStack_510[2] = piVar48[0xaf];" (assignment_expression "aiStack_510[2] = piVar48[0xaf]" (subscript_expression "aiStack_510[2]" (identifier "aiStack_510") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "piVar48[0xaf]" (identifier "piVar48") ([ "[") (number_literal "0xaf") (] "]"))) (; ";")) (if_statement "if (pdVar30 != (double *)0x0) {\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }" (if "if") (parenthesized_expression "(pdVar30 != (double *)0x0)" (( "(") (binary_expression "pdVar30 != (double *)0x0" (identifier "pdVar30") (!= "!=") (cast_expression "(double *)0x0" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  iVar3 = piVar48[0xb4];\n                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);\n                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);\n                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);\n                  if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }\n                  if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }\n                  if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }\n                }" ({ "{") (expression_statement "iVar3 = piVar48[0xb4];" (assignment_expression "iVar3 = piVar48[0xb4]" (identifier "iVar3") (= "=") (subscript_expression "piVar48[0xb4]" (identifier "piVar48") ([ "[") (number_literal "0xb4") (] "]"))) (; ";")) (expression_statement "dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);" (assignment_expression "dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4)" (identifier "dStack_4e8") (= "=") (cast_expression "(double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4)" (* "*") (cast_expression "(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar30 + *(int *)(iVar3 + 8) * 4)" (( "(") (binary_expression "(int)pdVar30 + *(int *)(iVar3 + 8) * 4" (cast_expression "(int)pdVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar30")) (+ "+") (binary_expression "*(int *)(iVar3 + 8) * 4" (pointer_expression "*(int *)(iVar3 + 8)" (* "*") (cast_expression "(int *)(iVar3 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 8)" (( "(") (binary_expression "iVar3 + 8" (identifier "iVar3") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (expression_statement "dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);" (assignment_expression "dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4)" (identifier "dStack_4e0") (= "=") (cast_expression "(double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4)" (* "*") (cast_expression "(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4)" (( "(") (binary_expression "(int)pdVar30 + *(int *)(iVar3 + 0x14) * 4" (cast_expression "(int)pdVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar30")) (+ "+") (binary_expression "*(int *)(iVar3 + 0x14) * 4" (pointer_expression "*(int *)(iVar3 + 0x14)" (* "*") (cast_expression "(int *)(iVar3 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x14)" (( "(") (binary_expression "iVar3 + 0x14" (identifier "iVar3") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (expression_statement "dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);" (assignment_expression "dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4)" (identifier "dStack_4d8") (= "=") (cast_expression "(double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4)" (* "*") (cast_expression "(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4)" (( "(") (binary_expression "(int)pdVar30 + *(int *)(iVar3 + 0x20) * 4" (cast_expression "(int)pdVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar30")) (+ "+") (binary_expression "*(int *)(iVar3 + 0x20) * 4" (pointer_expression "*(int *)(iVar3 + 0x20)" (* "*") (cast_expression "(int *)(iVar3 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x20)" (( "(") (binary_expression "iVar3 + 0x20" (identifier "iVar3") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (if_statement "if (*(int *)(iVar3 + 0x28) != 0) {\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }" (if "if") (parenthesized_expression "(*(int *)(iVar3 + 0x28) != 0)" (( "(") (binary_expression "*(int *)(iVar3 + 0x28) != 0" (pointer_expression "*(int *)(iVar3 + 0x28)" (* "*") (cast_expression "(int *)(iVar3 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x28)" (( "(") (binary_expression "iVar3 + 0x28" (identifier "iVar3") (+ "+") (number_literal "0x28")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);\n                  }" ({ "{") (expression_statement "dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);" (assignment_expression "dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4)" (identifier "dStack_4d0") (= "=") (cast_expression "(double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4)" (* "*") (cast_expression "(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4)" (( "(") (binary_expression "(int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4" (cast_expression "(int)pdVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar30")) (+ "+") (binary_expression "*(int *)(iVar3 + 0x2c) * 4" (pointer_expression "*(int *)(iVar3 + 0x2c)" (* "*") (cast_expression "(int *)(iVar3 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x2c)" (( "(") (binary_expression "iVar3 + 0x2c" (identifier "iVar3") (+ "+") (number_literal "0x2c")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar3 + 0x34) != 0) {\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }" (if "if") (parenthesized_expression "(*(int *)(iVar3 + 0x34) != 0)" (( "(") (binary_expression "*(int *)(iVar3 + 0x34) != 0" (pointer_expression "*(int *)(iVar3 + 0x34)" (* "*") (cast_expression "(int *)(iVar3 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x34)" (( "(") (binary_expression "iVar3 + 0x34" (identifier "iVar3") (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);\n                    aiStack_510[2] = 4;\n                  }" ({ "{") (expression_statement "dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);" (assignment_expression "dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4)" (identifier "dStack_4c8") (= "=") (cast_expression "(double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4)" (* "*") (cast_expression "(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4)" (( "(") (binary_expression "(int)pdVar30 + *(int *)(iVar3 + 0x38) * 4" (cast_expression "(int)pdVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar30")) (+ "+") (binary_expression "*(int *)(iVar3 + 0x38) * 4" (pointer_expression "*(int *)(iVar3 + 0x38)" (* "*") (cast_expression "(int *)(iVar3 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x38)" (( "(") (binary_expression "iVar3 + 0x38" (identifier "iVar3") (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (expression_statement "aiStack_510[2] = 4;" (assignment_expression "aiStack_510[2] = 4" (subscript_expression "aiStack_510[2]" (identifier "aiStack_510") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "4")) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar3 + 0x40) != 0) {\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }" (if "if") (parenthesized_expression "(*(int *)(iVar3 + 0x40) != 0)" (( "(") (binary_expression "*(int *)(iVar3 + 0x40) != 0" (pointer_expression "*(int *)(iVar3 + 0x40)" (* "*") (cast_expression "(int *)(iVar3 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x40)" (( "(") (binary_expression "iVar3 + 0x40" (identifier "iVar3") (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);\n                  }" ({ "{") (expression_statement "dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);" (assignment_expression "dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4)" (identifier "dStack_4c0") (= "=") (cast_expression "(double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4)" (* "*") (cast_expression "(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4)" (( "(") (binary_expression "(int)pdVar30 + *(int *)(iVar3 + 0x44) * 4" (cast_expression "(int)pdVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar30")) (+ "+") (binary_expression "*(int *)(iVar3 + 0x44) * 4" (pointer_expression "*(int *)(iVar3 + 0x44)" (* "*") (cast_expression "(int *)(iVar3 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x44)" (( "(") (binary_expression "iVar3 + 0x44" (identifier "iVar3") (+ "+") (number_literal "0x44")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "unaff_s7 = puVar32[0x10];" (assignment_expression "unaff_s7 = puVar32[0x10]" (identifier "unaff_s7") (= "=") (subscript_expression "puVar32[0x10]" (identifier "puVar32") ([ "[") (number_literal "0x10") (] "]"))) (; ";")) (if_statement "if (unaff_s7 == 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }" (if "if") (parenthesized_expression "(unaff_s7 == 2)" (( "(") (binary_expression "unaff_s7 == 2" (identifier "unaff_s7") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));\n                if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6248:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }" ({ "{") (expression_statement "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560)" (identifier "dVar39") (= "=") (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560)" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7c78))" (( "(") (pointer_expression "**(code **)(pcStack_5a8 + -0x7c78)" (* "*") (pointer_expression "*(code **)(pcStack_5a8 + -0x7c78)" (* "*") (cast_expression "(code **)(pcStack_5a8 + -0x7c78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7c78)" (( "(") (binary_expression "pcStack_5a8 + -0x7c78" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7c78")) () ")"))))) () ")")) (argument_list "(*pdStack_588 - dStack_560)" (( "(") (binary_expression "*pdStack_588 - dStack_560" (pointer_expression "*pdStack_588" (* "*") (identifier "pdStack_588")) (- "-") (identifier "dStack_560")) () ")"))))) (; ";")) (if_statement "if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }" (if "if") (parenthesized_expression "(((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39))" (( "(") (binary_expression "((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)" (parenthesized_expression "((int)dVar39 == iVar28)" (( "(") (binary_expression "(int)dVar39 == iVar28" (cast_expression "(int)dVar39" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar39")) (== "==") (identifier "iVar28")) () ")")) (&& "&&") (parenthesized_expression "(dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)" (( "(") (comma_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" (identifier "dVar39") (= "=") (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7c78))" (( "(") (pointer_expression "**(code **)(pcStack_5a8 + -0x7c78)" (* "*") (pointer_expression "*(code **)(pcStack_5a8 + -0x7c78)" (* "*") (cast_expression "(code **)(pcStack_5a8 + -0x7c78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7c78)" (( "(") (binary_expression "pcStack_5a8 + -0x7c78" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7c78")) () ")"))))) () ")")) (argument_list "(pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" (( "(") (binary_expression "pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)" (subscript_expression "pdStack_588[1]" (identifier "pdStack_588") ([ "[") (number_literal "1") (] "]")) (- "-") (pointer_expression "*(double *)(iStack_584 + 0x43d0)" (* "*") (cast_expression "(double *)(iStack_584 + 0x43d0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_584 + 0x43d0)" (( "(") (binary_expression "iStack_584 + 0x43d0" (identifier "iStack_584") (+ "+") (number_literal "0x43d0")) () ")"))))) () ")"))))) (, ",") (binary_expression "puVar35 == (undefined1 *)(int)dVar39" (identifier "puVar35") (== "==") (cast_expression "(undefined1 *)(int)dVar39" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)dVar39" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar39"))))) () ")"))) () ")")) (compound_statement "{\nLAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }\nLAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }" ({ "{") (labeled_statement "LAB_000a63a4:\n                  if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }" (statement_identifier "LAB_000a63a4") (: ":") (if_statement "if (uStack_5a0 < 0.0) {\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }" (if "if") (parenthesized_expression "(uStack_5a0 < 0.0)" (( "(") (binary_expression "uStack_5a0 < 0.0" (identifier "uStack_5a0") (< "<") (number_literal "0.0")) () ")")) (compound_statement "{\n                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_54c = uStack_5a0._4_4_;\n                    uStack_5a0 = -uStack_5a0;\n                  }" ({ "{") (expression_statement "uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;" (assignment_expression "uStack_550 = uStack_5a0._0_4_ ^ 0x80000000" (identifier "uStack_550") (= "=") (binary_expression "uStack_5a0._0_4_ ^ 0x80000000" (field_expression "uStack_5a0._0_4_" (identifier "uStack_5a0") (. ".") (field_identifier "_0_4_")) (^ "^") (number_literal "0x80000000"))) (; ";")) (expression_statement "uStack_54c = uStack_5a0._4_4_;" (assignment_expression "uStack_54c = uStack_5a0._4_4_" (identifier "uStack_54c") (= "=") (field_expression "uStack_5a0._4_4_" (identifier "uStack_5a0") (. ".") (field_identifier "_4_4_"))) (; ";")) (expression_statement "uStack_5a0 = -uStack_5a0;" (assignment_expression "uStack_5a0 = -uStack_5a0" (identifier "uStack_5a0") (= "=") (unary_expression "-uStack_5a0" (- "-") (identifier "uStack_5a0"))) (; ";")) (} "}")))) (labeled_statement "LAB_000a63bc:\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);" (statement_identifier "LAB_000a63bc") (: ":") (expression_statement "iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);" (assignment_expression "iVar3 = *(int *)(pcStack_5a8 + -0x7fcc)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(pcStack_5a8 + -0x7fcc)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fcc)" (( "(") (binary_expression "pcStack_5a8 + -0x7fcc" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fcc")) () ")"))))) (; ";"))) (} "}")) (else_clause "else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }" (else "else") (compound_statement "{\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }\n                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                  (**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                  dVar39 = *(double *)(puVar32 + 0x16);\n                  if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }\n                  dVar39 = *(double *)(puVar32 + 0x18);\n                  dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;\n                  if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }\n                  dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;\n                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) goto LAB_000a63bc;\n                  (**(code **)(pcStack_5a8 + -0x7418))();\n                  if (*puVar32 != 2) goto LAB_000a6378;\n                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);\n                }" ({ "{") (if_statement "if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }" (if "if") (parenthesized_expression "(*puVar32 < 2)" (( "(") (binary_expression "*puVar32 < 2" (pointer_expression "*puVar32" (* "*") (identifier "puVar32")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                    uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }\n                    goto LAB_000a63a4;\n                  }" ({ "{") (expression_statement "dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);" (assignment_expression "dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6)" (identifier "dVar44") (= "=") (binary_expression "*(double *)(puVar32 + 10) - *(double *)(puVar32 + 6)" (pointer_expression "*(double *)(puVar32 + 10)" (* "*") (cast_expression "(double *)(puVar32 + 10)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 10)" (( "(") (binary_expression "puVar32 + 10" (identifier "puVar32") (+ "+") (number_literal "10")) () ")")))) (- "-") (pointer_expression "*(double *)(puVar32 + 6)" (* "*") (cast_expression "(double *)(puVar32 + 6)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 6)" (( "(") (binary_expression "puVar32 + 6" (identifier "puVar32") (+ "+") (number_literal "6")) () ")")))))) (; ";")) (expression_statement "dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);" (assignment_expression "dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8)" (identifier "dVar40") (= "=") (binary_expression "*(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8)" (pointer_expression "*(double *)(puVar32 + 0xc)" (* "*") (cast_expression "(double *)(puVar32 + 0xc)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0xc)" (( "(") (binary_expression "puVar32 + 0xc" (identifier "puVar32") (+ "+") (number_literal "0xc")) () ")")))) (- "-") (pointer_expression "*(double *)(puVar32 + 8)" (* "*") (cast_expression "(double *)(puVar32 + 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 8)" (( "(") (binary_expression "puVar32 + 8" (identifier "puVar32") (+ "+") (number_literal "8")) () ")")))))) (; ";")) (expression_statement "dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);" (assignment_expression "dVar45 = (double)iVar28 - *(double *)(puVar32 + 6)" (identifier "dVar45") (= "=") (binary_expression "(double)iVar28 - *(double *)(puVar32 + 6)" (cast_expression "(double)iVar28" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar28")) (- "-") (pointer_expression "*(double *)(puVar32 + 6)" (* "*") (cast_expression "(double *)(puVar32 + 6)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 6)" (( "(") (binary_expression "puVar32 + 6" (identifier "puVar32") (+ "+") (number_literal "6")) () ")")))))) (; ";")) (expression_statement "dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);" (assignment_expression "dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8)" (identifier "dVar47") (= "=") (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 8)" (cast_expression "(double)(int)puVar35" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)puVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar35"))) (- "-") (pointer_expression "*(double *)(puVar32 + 8)" (* "*") (cast_expression "(double *)(puVar32 + 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 8)" (( "(") (binary_expression "puVar32 + 8" (identifier "puVar32") (+ "+") (number_literal "8")) () ")")))))) (; ";")) (expression_statement "dVar39 = dVar45 * dVar45 + dVar47 * dVar47;" (assignment_expression "dVar39 = dVar45 * dVar45 + dVar47 * dVar47" (identifier "dVar39") (= "=") (binary_expression "dVar45 * dVar45 + dVar47 * dVar47" (binary_expression "dVar45 * dVar45" (identifier "dVar45") (* "*") (identifier "dVar45")) (+ "+") (binary_expression "dVar47 * dVar47" (identifier "dVar47") (* "*") (identifier "dVar47")))) (; ";")) (expression_statement "uStack_5a0 = SQRT(dVar39);" (assignment_expression "uStack_5a0 = SQRT(dVar39)" (identifier "uStack_5a0") (= "=") (call_expression "SQRT(dVar39)" (identifier "SQRT") (argument_list "(dVar39)" (( "(") (identifier "dVar39") () ")")))) (; ";")) (if_statement "if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }" (if "if") (parenthesized_expression "(0.0 <= dVar39)" (( "(") (binary_expression "0.0 <= dVar39" (number_literal "0.0") (<= "<=") (identifier "dVar39")) () ")")) (compound_statement "{\n                      dVar39 = dVar40 * dVar40;\n                    }" ({ "{") (expression_statement "dVar39 = dVar40 * dVar40;" (assignment_expression "dVar39 = dVar40 * dVar40" (identifier "dVar39") (= "=") (binary_expression "dVar40 * dVar40" (identifier "dVar40") (* "*") (identifier "dVar40"))) (; ";")) (} "}")) (else_clause "else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }" (else "else") (compound_statement "{\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }" ({ "{") (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" (( "(") (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" (* "*") (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" (* "*") (cast_expression "(code **)(pcStack_5a8 + -0x7418)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7418)" (( "(") (binary_expression "pcStack_5a8 + -0x7418" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7418")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "dVar39 = dVar40 * dVar40;" (assignment_expression "dVar39 = dVar40 * dVar40" (identifier "dVar39") (= "=") (binary_expression "dVar40 * dVar40" (identifier "dVar40") (* "*") (identifier "dVar40"))) (; ";")) (} "}")))) (expression_statement "dVar39 = dVar44 * dVar44 + dVar39;" (assignment_expression "dVar39 = dVar44 * dVar44 + dVar39" (identifier "dVar39") (= "=") (binary_expression "dVar44 * dVar44 + dVar39" (binary_expression "dVar44 * dVar44" (identifier "dVar44") (* "*") (identifier "dVar44")) (+ "+") (identifier "dVar39"))) (; ";")) (expression_statement "dVar42 = SQRT(dVar39);" (assignment_expression "dVar42 = SQRT(dVar39)" (identifier "dVar42") (= "=") (call_expression "SQRT(dVar39)" (identifier "SQRT") (argument_list "(dVar39)" (( "(") (identifier "dVar39") () ")")))) (; ";")) (if_statement "if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }" (if "if") (parenthesized_expression "(dVar39 < 0.0)" (( "(") (binary_expression "dVar39 < 0.0" (identifier "dVar39") (< "<") (number_literal "0.0")) () ")")) (compound_statement "{\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }" ({ "{") (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" (( "(") (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" (* "*") (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" (* "*") (cast_expression "(code **)(pcStack_5a8 + -0x7418)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7418)" (( "(") (binary_expression "pcStack_5a8 + -0x7418" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7418")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "dVar42 = uStack_5a0 * dVar42;" (assignment_expression "dVar42 = uStack_5a0 * dVar42" (identifier "dVar42") (= "=") (binary_expression "uStack_5a0 * dVar42" (identifier "uStack_5a0") (* "*") (identifier "dVar42"))) (; ";")) (if_statement "if (0.0 <= dVar42) {\n                      in_f26_27 = pdVar29[0x881];\n                    }\n                    else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" (if "if") (parenthesized_expression "(0.0 <= dVar42)" (( "(") (binary_expression "0.0 <= dVar42" (number_literal "0.0") (<= "<=") (identifier "dVar42")) () ")")) (compound_statement "{\n                      in_f26_27 = pdVar29[0x881];\n                    }" ({ "{") (expression_statement "in_f26_27 = pdVar29[0x881];" (assignment_expression "in_f26_27 = pdVar29[0x881]" (identifier "in_f26_27") (= "=") (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" (else "else") (compound_statement "{\n                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" ({ "{") (expression_statement "in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (identifier "in_f26_27") (= "=") (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4418")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }" (if "if") (parenthesized_expression "(unaff_s6[0x879] <= dVar42 * in_f26_27)" (( "(") (binary_expression "unaff_s6[0x879] <= dVar42 * in_f26_27" (subscript_expression "unaff_s6[0x879]" (identifier "unaff_s6") ([ "[") (number_literal "0x879") (] "]")) (<= "<=") (binary_expression "dVar42 * in_f26_27" (identifier "dVar42") (* "*") (identifier "in_f26_27"))) () ")")) (compound_statement "{\n                      in_f26_27 = pdVar29[0x881] / dVar42;\n                    }" ({ "{") (expression_statement "in_f26_27 = pdVar29[0x881] / dVar42;" (assignment_expression "in_f26_27 = pdVar29[0x881] / dVar42" (identifier "in_f26_27") (= "=") (binary_expression "pdVar29[0x881] / dVar42" (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]")) (/ "/") (identifier "dVar42"))) (; ";")) (} "}")) (else_clause "else {\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }" (else "else") (compound_statement "{\n                      in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                    }" ({ "{") (expression_statement "in_f26_27 = in_f26_27 / unaff_s6[0x879];" (assignment_expression "in_f26_27 = in_f26_27 / unaff_s6[0x879]" (identifier "in_f26_27") (= "=") (binary_expression "in_f26_27 / unaff_s6[0x879]" (identifier "in_f26_27") (/ "/") (subscript_expression "unaff_s6[0x879]" (identifier "unaff_s6") ([ "[") (number_literal "0x879") (] "]")))) (; ";")) (} "}")))) (expression_statement "in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;" (assignment_expression "in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27" (identifier "in_f26_27") (= "=") (binary_expression "(dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27" (parenthesized_expression "(dVar44 * dVar45 + dVar40 * dVar47)" (( "(") (binary_expression "dVar44 * dVar45 + dVar40 * dVar47" (binary_expression "dVar44 * dVar45" (identifier "dVar44") (* "*") (identifier "dVar45")) (+ "+") (binary_expression "dVar40 * dVar47" (identifier "dVar40") (* "*") (identifier "dVar47"))) () ")")) (* "*") (identifier "in_f26_27"))) (; ";")) (expression_statement "uStack_5a0 = in_f26_27 * uStack_5a0;" (assignment_expression "uStack_5a0 = in_f26_27 * uStack_5a0" (identifier "uStack_5a0") (= "=") (binary_expression "in_f26_27 * uStack_5a0" (identifier "in_f26_27") (* "*") (identifier "uStack_5a0"))) (; ";")) (labeled_statement "LAB_000a6368:\n                    if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }" (statement_identifier "LAB_000a6368") (: ":") (if_statement "if (*puVar32 != 2) {\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }" (if "if") (parenthesized_expression "(*puVar32 != 2)" (( "(") (binary_expression "*puVar32 != 2" (pointer_expression "*puVar32" (* "*") (identifier "puVar32")) (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\nLAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = uStack_5a0 * dVar39;\n                    }" ({ "{") (labeled_statement "LAB_000a6378:\n                      if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }" (statement_identifier "LAB_000a6378") (: ":") (if_statement "if (dStack_548 <= dStack_580 * dStack_578) {\n                        dVar39 = dStack_540 / dStack_580;\n                      }\n                      else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }" (if "if") (parenthesized_expression "(dStack_548 <= dStack_580 * dStack_578)" (( "(") (binary_expression "dStack_548 <= dStack_580 * dStack_578" (identifier "dStack_548") (<= "<=") (binary_expression "dStack_580 * dStack_578" (identifier "dStack_580") (* "*") (identifier "dStack_578"))) () ")")) (compound_statement "{\n                        dVar39 = dStack_540 / dStack_580;\n                      }" ({ "{") (expression_statement "dVar39 = dStack_540 / dStack_580;" (assignment_expression "dVar39 = dStack_540 / dStack_580" (identifier "dVar39") (= "=") (binary_expression "dStack_540 / dStack_580" (identifier "dStack_540") (/ "/") (identifier "dStack_580"))) (; ";")) (} "}")) (else_clause "else {\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }" (else "else") (compound_statement "{\n                        dVar39 = dStack_578 / unaff_s6[0x879];\n                      }" ({ "{") (expression_statement "dVar39 = dStack_578 / unaff_s6[0x879];" (assignment_expression "dVar39 = dStack_578 / unaff_s6[0x879]" (identifier "dVar39") (= "=") (binary_expression "dStack_578 / unaff_s6[0x879]" (identifier "dStack_578") (/ "/") (subscript_expression "unaff_s6[0x879]" (identifier "unaff_s6") ([ "[") (number_literal "0x879") (] "]")))) (; ";")) (} "}"))))) (expression_statement "uStack_5a0 = uStack_5a0 * dVar39;" (assignment_expression "uStack_5a0 = uStack_5a0 * dVar39" (identifier "uStack_5a0") (= "=") (binary_expression "uStack_5a0 * dVar39" (identifier "uStack_5a0") (* "*") (identifier "dVar39"))) (; ";")) (} "}")))) (goto_statement "goto LAB_000a63a4;" (goto "goto") (statement_identifier "LAB_000a63a4") (; ";")) (} "}"))) (if_statement "if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }" (if "if") (parenthesized_expression "(*puVar32 != 2)" (( "(") (binary_expression "*puVar32 != 2" (pointer_expression "*puVar32" (* "*") (identifier "puVar32")) (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6368;\n                  }" ({ "{") (expression_statement "uStack_5a0 = 0.0;" (assignment_expression "uStack_5a0 = 0.0" (identifier "uStack_5a0") (= "=") (number_literal "0.0")) (; ";")) (goto_statement "goto LAB_000a6368;" (goto "goto") (statement_identifier "LAB_000a6368") (; ";")) (} "}"))) (expression_statement "dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);" (assignment_expression "dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12)" (identifier "dVar40") (= "=") (binary_expression "(double)iVar28 - *(double *)(puVar32 + 0x12)" (cast_expression "(double)iVar28" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar28")) (- "-") (pointer_expression "*(double *)(puVar32 + 0x12)" (* "*") (cast_expression "(double *)(puVar32 + 0x12)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x12)" (( "(") (binary_expression "puVar32 + 0x12" (identifier "puVar32") (+ "+") (number_literal "0x12")) () ")")))))) (; ";")) (expression_statement "(**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));" (call_expression "(**(code **)(pcStack_5a8 + -0x78e0))\n                            ((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x78e0))" (( "(") (pointer_expression "**(code **)(pcStack_5a8 + -0x78e0)" (* "*") (pointer_expression "*(code **)(pcStack_5a8 + -0x78e0)" (* "*") (cast_expression "(code **)(pcStack_5a8 + -0x78e0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x78e0)" (( "(") (binary_expression "pcStack_5a8 + -0x78e0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x78e0")) () ")"))))) () ")")) (argument_list "((*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80))" (( "(") (binary_expression "(*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" (parenthesized_expression "(*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88))" (( "(") (binary_expression "*(double *)(puVar32 + 0x1c) *\n                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" (pointer_expression "*(double *)(puVar32 + 0x1c)" (* "*") (cast_expression "(double *)(puVar32 + 0x1c)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x1c)" (( "(") (binary_expression "puVar32 + 0x1c" (identifier "puVar32") (+ "+") (number_literal "0x1c")) () ")")))) (* "*") (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" (( "(") (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4a88")) () ")"))))) () ")")) (/ "/") (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" (( "(") (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4a80")) () ")"))))) () ")"))) (; ";")) (expression_statement "dVar39 = *(double *)(puVar32 + 0x16);" (assignment_expression "dVar39 = *(double *)(puVar32 + 0x16)" (identifier "dVar39") (= "=") (pointer_expression "*(double *)(puVar32 + 0x16)" (* "*") (cast_expression "(double *)(puVar32 + 0x16)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x16)" (( "(") (binary_expression "puVar32 + 0x16" (identifier "puVar32") (+ "+") (number_literal "0x16")) () ")"))))) (; ";")) (if_statement "if (0.0 <= dVar39) {\n                    dVar47 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }" (if "if") (parenthesized_expression "(0.0 <= dVar39)" (( "(") (binary_expression "0.0 <= dVar39" (number_literal "0.0") (<= "<=") (identifier "dVar39")) () ")")) (compound_statement "{\n                    dVar47 = pdVar29[0x881];\n                  }" ({ "{") (expression_statement "dVar47 = pdVar29[0x881];" (assignment_expression "dVar47 = pdVar29[0x881]" (identifier "dVar47") (= "=") (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }" (else "else") (compound_statement "{\n                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }" ({ "{") (expression_statement "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (identifier "dVar47") (= "=") (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4418")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }" (if "if") (parenthesized_expression "(unaff_s6[0x879] <= dVar39 * dVar47)" (( "(") (binary_expression "unaff_s6[0x879] <= dVar39 * dVar47" (subscript_expression "unaff_s6[0x879]" (identifier "unaff_s6") ([ "[") (number_literal "0x879") (] "]")) (<= "<=") (binary_expression "dVar39 * dVar47" (identifier "dVar39") (* "*") (identifier "dVar47"))) () ")")) (compound_statement "{\n                    dVar47 = pdVar29[0x881] / dVar39;\n                  }" ({ "{") (expression_statement "dVar47 = pdVar29[0x881] / dVar39;" (assignment_expression "dVar47 = pdVar29[0x881] / dVar39" (identifier "dVar47") (= "=") (binary_expression "pdVar29[0x881] / dVar39" (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]")) (/ "/") (identifier "dVar39"))) (; ";")) (} "}")) (else_clause "else {\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }" (else "else") (compound_statement "{\n                    dVar47 = dVar47 / unaff_s6[0x879];\n                  }" ({ "{") (expression_statement "dVar47 = dVar47 / unaff_s6[0x879];" (assignment_expression "dVar47 = dVar47 / unaff_s6[0x879]" (identifier "dVar47") (= "=") (binary_expression "dVar47 / unaff_s6[0x879]" (identifier "dVar47") (/ "/") (subscript_expression "unaff_s6[0x879]" (identifier "unaff_s6") ([ "[") (number_literal "0x879") (] "]")))) (; ";")) (} "}")))) (expression_statement "dVar39 = *(double *)(puVar32 + 0x18);" (assignment_expression "dVar39 = *(double *)(puVar32 + 0x18)" (identifier "dVar39") (= "=") (pointer_expression "*(double *)(puVar32 + 0x18)" (* "*") (cast_expression "(double *)(puVar32 + 0x18)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x18)" (( "(") (binary_expression "puVar32 + 0x18" (identifier "puVar32") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47;" (assignment_expression "dVar47 = (dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47" (identifier "dVar47") (= "=") (binary_expression "(dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                           dVar47" (parenthesized_expression "(dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518)" (( "(") (binary_expression "dVar40 * dStack_520 +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518" (binary_expression "dVar40 * dStack_520" (identifier "dVar40") (* "*") (identifier "dStack_520")) (+ "+") (binary_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518" (parenthesized_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (( "(") (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 0x14)" (cast_expression "(double)(int)puVar35" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)puVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar35"))) (- "-") (pointer_expression "*(double *)(puVar32 + 0x14)" (* "*") (cast_expression "(double *)(puVar32 + 0x14)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x14)" (( "(") (binary_expression "puVar32 + 0x14" (identifier "puVar32") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (* "*") (identifier "dStack_518"))) () ")")) (* "*") (identifier "dVar47"))) (; ";")) (if_statement "if (0.0 <= dVar39) {\n                    dVar44 = pdVar29[0x881];\n                  }\n                  else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }" (if "if") (parenthesized_expression "(0.0 <= dVar39)" (( "(") (binary_expression "0.0 <= dVar39" (number_literal "0.0") (<= "<=") (identifier "dVar39")) () ")")) (compound_statement "{\n                    dVar44 = pdVar29[0x881];\n                  }" ({ "{") (expression_statement "dVar44 = pdVar29[0x881];" (assignment_expression "dVar44 = pdVar29[0x881]" (identifier "dVar44") (= "=") (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }" (else "else") (compound_statement "{\n                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }" ({ "{") (expression_statement "dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (identifier "dVar44") (= "=") (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4418")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }\n                  else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }" (if "if") (parenthesized_expression "(unaff_s6[0x879] <= dVar39 * dVar44)" (( "(") (binary_expression "unaff_s6[0x879] <= dVar39 * dVar44" (subscript_expression "unaff_s6[0x879]" (identifier "unaff_s6") ([ "[") (number_literal "0x879") (] "]")) (<= "<=") (binary_expression "dVar39 * dVar44" (identifier "dVar39") (* "*") (identifier "dVar44"))) () ")")) (compound_statement "{\n                    dVar44 = pdVar29[0x881] / dVar39;\n                  }" ({ "{") (expression_statement "dVar44 = pdVar29[0x881] / dVar39;" (assignment_expression "dVar44 = pdVar29[0x881] / dVar39" (identifier "dVar44") (= "=") (binary_expression "pdVar29[0x881] / dVar39" (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]")) (/ "/") (identifier "dVar39"))) (; ";")) (} "}")) (else_clause "else {\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }" (else "else") (compound_statement "{\n                    dVar44 = dVar44 / unaff_s6[0x879];\n                  }" ({ "{") (expression_statement "dVar44 = dVar44 / unaff_s6[0x879];" (assignment_expression "dVar44 = dVar44 / unaff_s6[0x879]" (identifier "dVar44") (= "=") (binary_expression "dVar44 / unaff_s6[0x879]" (identifier "dVar44") (/ "/") (subscript_expression "unaff_s6[0x879]" (identifier "unaff_s6") ([ "[") (number_literal "0x879") (] "]")))) (; ";")) (} "}")))) (expression_statement "dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44;" (assignment_expression "dVar44 = (dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44" (identifier "dVar44") (= "=") (binary_expression "(dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                           dVar44" (parenthesized_expression "(dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)))" (( "(") (binary_expression "dVar40 * dStack_518 -\n                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (binary_expression "dVar40 * dStack_518" (identifier "dVar40") (* "*") (identifier "dStack_518")) (- "-") (binary_expression "dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (identifier "dStack_520") (* "*") (parenthesized_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (( "(") (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 0x14)" (cast_expression "(double)(int)puVar35" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)puVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar35"))) (- "-") (pointer_expression "*(double *)(puVar32 + 0x14)" (* "*") (cast_expression "(double *)(puVar32 + 0x14)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x14)" (( "(") (binary_expression "puVar32 + 0x14" (identifier "puVar32") (+ "+") (number_literal "0x14")) () ")"))))) () ")")))) () ")")) (* "*") (identifier "dVar44"))) (; ";")) (expression_statement "dVar39 = dVar47 * dVar47 + dVar44 * dVar44;" (assignment_expression "dVar39 = dVar47 * dVar47 + dVar44 * dVar44" (identifier "dVar39") (= "=") (binary_expression "dVar47 * dVar47 + dVar44 * dVar44" (binary_expression "dVar47 * dVar47" (identifier "dVar47") (* "*") (identifier "dVar47")) (+ "+") (binary_expression "dVar44 * dVar44" (identifier "dVar44") (* "*") (identifier "dVar44")))) (; ";")) (expression_statement "uStack_5a0 = SQRT(dVar39);" (assignment_expression "uStack_5a0 = SQRT(dVar39)" (identifier "uStack_5a0") (= "=") (call_expression "SQRT(dVar39)" (identifier "SQRT") (argument_list "(dVar39)" (( "(") (identifier "dVar39") () ")")))) (; ";")) (if_statement "if (0.0 <= dVar39) goto LAB_000a63bc;" (if "if") (parenthesized_expression "(0.0 <= dVar39)" (( "(") (binary_expression "0.0 <= dVar39" (number_literal "0.0") (<= "<=") (identifier "dVar39")) () ")")) (goto_statement "goto LAB_000a63bc;" (goto "goto") (statement_identifier "LAB_000a63bc") (; ";"))) (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" (( "(") (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" (* "*") (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" (* "*") (cast_expression "(code **)(pcStack_5a8 + -0x7418)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7418)" (( "(") (binary_expression "pcStack_5a8 + -0x7418" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7418")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (*puVar32 != 2) goto LAB_000a6378;" (if "if") (parenthesized_expression "(*puVar32 != 2)" (( "(") (binary_expression "*puVar32 != 2" (pointer_expression "*puVar32" (* "*") (identifier "puVar32")) (!= "!=") (number_literal "2")) () ")")) (goto_statement "goto LAB_000a6378;" (goto "goto") (statement_identifier "LAB_000a6378") (; ";"))) (expression_statement "iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);" (assignment_expression "iVar3 = *(int *)(pcStack_5a8 + -0x7fcc)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(pcStack_5a8 + -0x7fcc)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fcc)" (( "(") (binary_expression "pcStack_5a8 + -0x7fcc" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fcc")) () ")"))))) (; ";")) (} "}")))) (expression_statement "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298))" (identifier "dVar39") (= "=") (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298))" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(pcStack_5a8 + -0x6ee0))\n                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x6ee0))" (( "(") (pointer_expression "**(code **)(pcStack_5a8 + -0x6ee0)" (* "*") (pointer_expression "*(code **)(pcStack_5a8 + -0x6ee0)" (* "*") (cast_expression "(code **)(pcStack_5a8 + -0x6ee0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x6ee0)" (( "(") (binary_expression "pcStack_5a8 + -0x6ee0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x6ee0")) () ")"))))) () ")")) (argument_list "(uStack_5a0,*(undefined8 *)(iVar3 + 0x298))" (( "(") (identifier "uStack_5a0") (, ",") (pointer_expression "*(undefined8 *)(iVar3 + 0x298)" (* "*") (cast_expression "(undefined8 *)(iVar3 + 0x298)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x298)" (( "(") (binary_expression "iVar3 + 0x298" (identifier "iVar3") (+ "+") (number_literal "0x298")) () ")")))) () ")"))))) (; ";")) (if_statement "if ((int)dVar39 == 0) {\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }\n                else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }" (if "if") (parenthesized_expression "((int)dVar39 == 0)" (( "(") (binary_expression "(int)dVar39 == 0" (cast_expression "(int)dVar39" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar39")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);\n                }" ({ "{") (expression_statement "uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881]);" (assignment_expression "uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881])" (identifier "uStack_5a0") (= "=") (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881])" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(pcStack_5a8 + -0x6ee0))\n                                                 (uStack_5a0,pdVar29[0x881])" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x6ee0))" (( "(") (pointer_expression "**(code **)(pcStack_5a8 + -0x6ee0)" (* "*") (pointer_expression "*(code **)(pcStack_5a8 + -0x6ee0)" (* "*") (cast_expression "(code **)(pcStack_5a8 + -0x6ee0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x6ee0)" (( "(") (binary_expression "pcStack_5a8 + -0x6ee0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x6ee0")) () ")"))))) () ")")) (argument_list "(uStack_5a0,pdVar29[0x881])" (( "(") (identifier "uStack_5a0") (, ",") (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }" (else "else") (compound_statement "{\n                  dVar39 = pdVar29[0x881];\n                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);\n                  uStack_5a0 = dVar39 - uStack_5a0;\n                }" ({ "{") (expression_statement "dVar39 = pdVar29[0x881];" (assignment_expression "dVar39 = pdVar29[0x881]" (identifier "dVar39") (= "=") (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]"))) (; ";")) (expression_statement "uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);" (assignment_expression "uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39)" (identifier "uStack_5a0") (= "=") (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39)" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x6ee0))" (( "(") (pointer_expression "**(code **)(pcStack_5a8 + -0x6ee0)" (* "*") (pointer_expression "*(code **)(pcStack_5a8 + -0x6ee0)" (* "*") (cast_expression "(code **)(pcStack_5a8 + -0x6ee0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x6ee0)" (( "(") (binary_expression "pcStack_5a8 + -0x6ee0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x6ee0")) () ")"))))) () ")")) (argument_list "(uStack_5a0,dVar39)" (( "(") (identifier "uStack_5a0") (, ",") (identifier "dVar39") () ")"))))) (; ";")) (expression_statement "uStack_5a0 = dVar39 - uStack_5a0;" (assignment_expression "uStack_5a0 = dVar39 - uStack_5a0" (identifier "uStack_5a0") (= "=") (binary_expression "dVar39 - uStack_5a0" (identifier "dVar39") (- "-") (identifier "uStack_5a0"))) (; ";")) (} "}")))) (expression_statement "uVar26 = puVar32[0xf];" (assignment_expression "uVar26 = puVar32[0xf]" (identifier "uVar26") (= "=") (subscript_expression "puVar32[0xf]" (identifier "puVar32") ([ "[") (number_literal "0xf") (] "]"))) (; ";")) (if_statement "if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }" (if "if") (parenthesized_expression "(0 < (int)uVar26)" (( "(") (binary_expression "0 < (int)uVar26" (number_literal "0") (< "<") (cast_expression "(int)uVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar26"))) () ")")) (compound_statement "{\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }" ({ "{") (expression_statement "uVar8 = puVar32[0xe];" (assignment_expression "uVar8 = puVar32[0xe]" (identifier "uVar8") (= "=") (subscript_expression "puVar32[0xe]" (identifier "puVar32") ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (if_statement "if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }" (if "if") (parenthesized_expression "(*(double *)(uVar8 + 0x58) <= uStack_5a0)" (( "(") (binary_expression "*(double *)(uVar8 + 0x58) <= uStack_5a0" (pointer_expression "*(double *)(uVar8 + 0x58)" (* "*") (cast_expression "(double *)(uVar8 + 0x58)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar8 + 0x58)" (( "(") (binary_expression "uVar8 + 0x58" (identifier "uVar8") (+ "+") (number_literal "0x58")) () ")")))) (<= "<=") (identifier "uStack_5a0")) () ")")) (compound_statement "{\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }" ({ "{") (expression_statement "pdVar16 = (double *)(uVar8 + 0xb8);" (assignment_expression "pdVar16 = (double *)(uVar8 + 0xb8)" (identifier "pdVar16") (= "=") (cast_expression "(double *)(uVar8 + 0xb8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar8 + 0xb8)" (( "(") (binary_expression "uVar8 + 0xb8" (identifier "uVar8") (+ "+") (number_literal "0xb8")) () ")")))) (; ";")) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" (identifier "uVar18") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);" (do "do") (compound_statement "{\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    }" ({ "{") (expression_statement "uVar22 = uVar18;" (assignment_expression "uVar22 = uVar18" (identifier "uVar22") (= "=") (identifier "uVar18")) (; ";")) (expression_statement "uVar18 = uVar22 + 1;" (assignment_expression "uVar18 = uVar22 + 1" (identifier "uVar18") (= "=") (binary_expression "uVar22 + 1" (identifier "uVar22") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }" (if "if") (parenthesized_expression "(uVar18 == uVar26)" (( "(") (binary_expression "uVar18 == uVar26" (identifier "uVar18") (== "==") (identifier "uVar26")) () ")")) (compound_statement "{\n                        if (uVar18 == 0) goto LAB_000a6248;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }" ({ "{") (if_statement "if (uVar18 == 0) goto LAB_000a6248;" (if "if") (parenthesized_expression "(uVar18 == 0)" (( "(") (binary_expression "uVar18 == 0" (identifier "uVar18") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000a6248;" (goto "goto") (statement_identifier "LAB_000a6248") (; ";"))) (expression_statement "iVar3 = uVar8 + uVar26 * 0x60 + -0x60;" (assignment_expression "iVar3 = uVar8 + uVar26 * 0x60 + -0x60" (identifier "iVar3") (= "=") (binary_expression "uVar8 + uVar26 * 0x60 + -0x60" (binary_expression "uVar8 + uVar26 * 0x60" (identifier "uVar8") (+ "+") (binary_expression "uVar26 * 0x60" (identifier "uVar26") (* "*") (number_literal "0x60"))) (+ "+") (number_literal "-0x60"))) (; ";")) (expression_statement "in_f20_21 = *(double *)(iVar3 + 0x28);" (assignment_expression "in_f20_21 = *(double *)(iVar3 + 0x28)" (identifier "in_f20_21") (= "=") (pointer_expression "*(double *)(iVar3 + 0x28)" (* "*") (cast_expression "(double *)(iVar3 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x28)" (( "(") (binary_expression "iVar3 + 0x28" (identifier "iVar3") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "in_f22_23 = *(double *)(iVar3 + 0x30);" (assignment_expression "in_f22_23 = *(double *)(iVar3 + 0x30)" (identifier "in_f22_23") (= "=") (pointer_expression "*(double *)(iVar3 + 0x30)" (* "*") (cast_expression "(double *)(iVar3 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x30)" (( "(") (binary_expression "iVar3 + 0x30" (identifier "iVar3") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "in_f24_25 = *(double *)(iVar3 + 0x38);" (assignment_expression "in_f24_25 = *(double *)(iVar3 + 0x38)" (identifier "in_f24_25") (= "=") (pointer_expression "*(double *)(iVar3 + 0x38)" (* "*") (cast_expression "(double *)(iVar3 + 0x38)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x38)" (( "(") (binary_expression "iVar3 + 0x38" (identifier "iVar3") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "dStack_590 = *(double *)(iVar3 + 0x40);" (assignment_expression "dStack_590 = *(double *)(iVar3 + 0x40)" (identifier "dStack_590") (= "=") (pointer_expression "*(double *)(iVar3 + 0x40)" (* "*") (cast_expression "(double *)(iVar3 + 0x40)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x40)" (( "(") (binary_expression "iVar3 + 0x40" (identifier "iVar3") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "dVar39 = *(double *)(iVar3 + 0x48);" (assignment_expression "dVar39 = *(double *)(iVar3 + 0x48)" (identifier "dVar39") (= "=") (pointer_expression "*(double *)(iVar3 + 0x48)" (* "*") (cast_expression "(double *)(iVar3 + 0x48)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x48)" (( "(") (binary_expression "iVar3 + 0x48" (identifier "iVar3") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (goto_statement "goto LAB_000a5af8;" (goto "goto") (statement_identifier "LAB_000a5af8") (; ";")) (} "}"))) (expression_statement "dVar39 = *pdVar16;" (assignment_expression "dVar39 = *pdVar16" (identifier "dVar39") (= "=") (pointer_expression "*pdVar16" (* "*") (identifier "pdVar16"))) (; ";")) (expression_statement "pdVar16 = pdVar16 + 0xc;" (assignment_expression "pdVar16 = pdVar16 + 0xc" (identifier "pdVar16") (= "=") (binary_expression "pdVar16 + 0xc" (identifier "pdVar16") (+ "+") (number_literal "0xc"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(dVar39 <= uStack_5a0)" (( "(") (binary_expression "dVar39 <= uStack_5a0" (identifier "dVar39") (<= "<=") (identifier "uStack_5a0")) () ")")) (; ";")) (if_statement "if (uVar18 != 0) {\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }" (if "if") (parenthesized_expression "(uVar18 != 0)" (( "(") (binary_expression "uVar18 != 0" (identifier "uVar18") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }" ({ "{") (expression_statement "iVar10 = uVar8 + uVar22 * 0x60;" (assignment_expression "iVar10 = uVar8 + uVar22 * 0x60" (identifier "iVar10") (= "=") (binary_expression "uVar8 + uVar22 * 0x60" (identifier "uVar8") (+ "+") (binary_expression "uVar22 * 0x60" (identifier "uVar22") (* "*") (number_literal "0x60")))) (; ";")) (expression_statement "iVar3 = uVar8 + uVar18 * 0x60;" (assignment_expression "iVar3 = uVar8 + uVar18 * 0x60" (identifier "iVar3") (= "=") (binary_expression "uVar8 + uVar18 * 0x60" (identifier "uVar8") (+ "+") (binary_expression "uVar18 * 0x60" (identifier "uVar18") (* "*") (number_literal "0x60")))) (; ";")) (expression_statement "dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));" (assignment_expression "dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58))" (identifier "dVar39") (= "=") (binary_expression "(uStack_5a0 - *(double *)(iVar10 + 0x58)) /\n                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58))" (parenthesized_expression "(uStack_5a0 - *(double *)(iVar10 + 0x58))" (( "(") (binary_expression "uStack_5a0 - *(double *)(iVar10 + 0x58)" (identifier "uStack_5a0") (- "-") (pointer_expression "*(double *)(iVar10 + 0x58)" (* "*") (cast_expression "(double *)(iVar10 + 0x58)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x58)" (( "(") (binary_expression "iVar10 + 0x58" (identifier "iVar10") (+ "+") (number_literal "0x58")) () ")"))))) () ")")) (/ "/") (parenthesized_expression "(*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58))" (( "(") (binary_expression "*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58)" (pointer_expression "*(double *)(iVar3 + 0x58)" (* "*") (cast_expression "(double *)(iVar3 + 0x58)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x58)" (( "(") (binary_expression "iVar3 + 0x58" (identifier "iVar3") (+ "+") (number_literal "0x58")) () ")")))) (- "-") (pointer_expression "*(double *)(iVar10 + 0x58)" (* "*") (cast_expression "(double *)(iVar10 + 0x58)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x58)" (( "(") (binary_expression "iVar10 + 0x58" (identifier "iVar10") (+ "+") (number_literal "0x58")) () ")"))))) () ")")))) (; ";")) (expression_statement "dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);" (assignment_expression "dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" (identifier "dVar47") (= "=") (binary_expression "(pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" (binary_expression "(pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48)" (parenthesized_expression "(pdVar29[0x881] - dVar39)" (( "(") (binary_expression "pdVar29[0x881] - dVar39" (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]")) (- "-") (identifier "dVar39")) () ")")) (* "*") (pointer_expression "*(double *)(iVar10 + 0x48)" (* "*") (cast_expression "(double *)(iVar10 + 0x48)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x48)" (( "(") (binary_expression "iVar10 + 0x48" (identifier "iVar10") (+ "+") (number_literal "0x48")) () ")"))))) (* "*") (pointer_expression "*(double *)(dStack_558._0_4_ + 0x4410)" (* "*") (cast_expression "(double *)(dStack_558._0_4_ + 0x4410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(dStack_558._0_4_ + 0x4410)" (( "(") (binary_expression "dStack_558._0_4_ + 0x4410" (field_expression "dStack_558._0_4_" (identifier "dStack_558") (. ".") (field_identifier "_0_4_")) (+ "+") (number_literal "0x4410")) () ")")))))) (; ";")) (expression_statement "dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);" (assignment_expression "dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" (identifier "dVar40") (= "=") (binary_expression "dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" (binary_expression "dVar39 * *(double *)(iVar3 + 0x48)" (identifier "dVar39") (* "*") (pointer_expression "*(double *)(iVar3 + 0x48)" (* "*") (cast_expression "(double *)(iVar3 + 0x48)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x48)" (( "(") (binary_expression "iVar3 + 0x48" (identifier "iVar3") (+ "+") (number_literal "0x48")) () ")"))))) (* "*") (pointer_expression "*(double *)(dStack_558._0_4_ + 0x4410)" (* "*") (cast_expression "(double *)(dStack_558._0_4_ + 0x4410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(dStack_558._0_4_ + 0x4410)" (( "(") (binary_expression "dStack_558._0_4_ + 0x4410" (field_expression "dStack_558._0_4_" (identifier "dStack_558") (. ".") (field_identifier "_0_4_")) (+ "+") (number_literal "0x4410")) () ")")))))) (; ";")) (expression_statement "dVar44 = dVar47 + dVar40;" (assignment_expression "dVar44 = dVar47 + dVar40" (identifier "dVar44") (= "=") (binary_expression "dVar47 + dVar40" (identifier "dVar47") (+ "+") (identifier "dVar40"))) (; ";")) (if_statement "if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }" (if "if") (parenthesized_expression "(0.0 <= dVar44)" (( "(") (binary_expression "0.0 <= dVar44" (number_literal "0.0") (<= "<=") (identifier "dVar44")) () ")")) (compound_statement "{\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }" ({ "{") (if_statement "if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }" (if "if") (parenthesized_expression "(pdVar29[0x881] < dVar44)" (( "(") (binary_expression "pdVar29[0x881] < dVar44" (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]")) (< "<") (identifier "dVar44")) () ")")) (compound_statement "{\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6e58;\n                        }" ({ "{") (expression_statement "dVar44 = pdVar29[0x881];" (assignment_expression "dVar44 = pdVar29[0x881]" (identifier "dVar44") (= "=") (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]"))) (; ";")) (goto_statement "goto LAB_000a6e58;" (goto "goto") (statement_identifier "LAB_000a6e58") (; ";")) (} "}"))) (if_statement "if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }" (if "if") (parenthesized_expression "(0.0 <= dVar44)" (( "(") (binary_expression "0.0 <= dVar44" (number_literal "0.0") (<= "<=") (identifier "dVar44")) () ")")) (compound_statement "{\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }" ({ "{") (expression_statement "dVar39 = dVar44;" (assignment_expression "dVar39 = dVar44" (identifier "dVar39") (= "=") (identifier "dVar44")) (; ";")) (if_statement "if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }" (if "if") (parenthesized_expression "(pdVar29[0x881] < dVar44)" (( "(") (binary_expression "pdVar29[0x881] < dVar44" (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]")) (< "<") (identifier "dVar44")) () ")")) (compound_statement "{\n                            dVar39 = pdVar29[0x881];\n                          }" ({ "{") (expression_statement "dVar39 = pdVar29[0x881];" (assignment_expression "dVar39 = pdVar29[0x881]" (identifier "dVar39") (= "=") (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]"))) (; ";")) (} "}"))) (expression_statement "dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);" (assignment_expression "dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48)" (identifier "dVar39") (= "=") (binary_expression "dVar39 * *(double *)(iStack_570 + 0x4a48)" (identifier "dVar39") (* "*") (pointer_expression "*(double *)(iStack_570 + 0x4a48)" (* "*") (cast_expression "(double *)(iStack_570 + 0x4a48)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_570 + 0x4a48)" (( "(") (binary_expression "iStack_570 + 0x4a48" (identifier "iStack_570") (+ "+") (number_literal "0x4a48")) () ")")))))) (; ";")) (if_statement "if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }" (if "if") (parenthesized_expression "(dVar44 < 0.0)" (( "(") (binary_expression "dVar44 < 0.0" (identifier "dVar44") (< "<") (number_literal "0.0")) () ")")) (compound_statement "{\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }" ({ "{") (expression_statement "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (identifier "dVar45") (= "=") (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4418")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                            dVar45 = pdVar29[0x881];\n                          }" (else "else") (compound_statement "{\n                            dVar45 = pdVar29[0x881];\n                          }" ({ "{") (expression_statement "dVar45 = pdVar29[0x881];" (assignment_expression "dVar45 = pdVar29[0x881]" (identifier "dVar45") (= "=") (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }" (else "else") (compound_statement "{\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }" ({ "{") (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" (identifier "dVar39") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (identifier "dVar45") (= "=") (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4418")) () ")"))))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }" (else "else") (compound_statement "{\n                        dVar44 = 0.0;\nLAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }" ({ "{") (expression_statement "dVar44 = 0.0;" (assignment_expression "dVar44 = 0.0" (identifier "dVar44") (= "=") (number_literal "0.0")) (; ";")) (labeled_statement "LAB_000a6e58:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);" (statement_identifier "LAB_000a6e58") (: ":") (expression_statement "dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);" (assignment_expression "dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48)" (identifier "dVar39") (= "=") (binary_expression "dVar44 * *(double *)(iStack_570 + 0x4a48)" (identifier "dVar44") (* "*") (pointer_expression "*(double *)(iStack_570 + 0x4a48)" (* "*") (cast_expression "(double *)(iStack_570 + 0x4a48)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_570 + 0x4a48)" (( "(") (binary_expression "iStack_570 + 0x4a48" (identifier "iStack_570") (+ "+") (number_literal "0x4a48")) () ")")))))) (; ";"))) (expression_statement "dVar45 = pdVar29[0x881];" (assignment_expression "dVar45 = pdVar29[0x881]" (identifier "dVar45") (= "=") (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]"))) (; ";")) (} "}")))) (if_statement "if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }" (if "if") (parenthesized_expression "(unaff_s6[0x879] <= dVar45 * dVar44)" (( "(") (binary_expression "unaff_s6[0x879] <= dVar45 * dVar44" (subscript_expression "unaff_s6[0x879]" (identifier "unaff_s6") ([ "[") (number_literal "0x879") (] "]")) (<= "<=") (binary_expression "dVar45 * dVar44" (identifier "dVar45") (* "*") (identifier "dVar44"))) () ")")) (compound_statement "{\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }" ({ "{") (expression_statement "dVar45 = pdVar29[0x881] / dVar44;" (assignment_expression "dVar45 = pdVar29[0x881] / dVar44" (identifier "dVar45") (= "=") (binary_expression "pdVar29[0x881] / dVar44" (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]")) (/ "/") (identifier "dVar44"))) (; ";")) (} "}")) (else_clause "else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }" (else "else") (compound_statement "{\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }" ({ "{") (expression_statement "dVar45 = dVar45 / unaff_s6[0x879];" (assignment_expression "dVar45 = dVar45 / unaff_s6[0x879]" (identifier "dVar45") (= "=") (binary_expression "dVar45 / unaff_s6[0x879]" (identifier "dVar45") (/ "/") (subscript_expression "unaff_s6[0x879]" (identifier "unaff_s6") ([ "[") (number_literal "0x879") (] "]")))) (; ";")) (} "}")))) (expression_statement "in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;" (assignment_expression "in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45" (identifier "in_f20_21") (= "=") (binary_expression "(dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45" (parenthesized_expression "(dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28))" (( "(") (binary_expression "dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)" (binary_expression "dVar47 * *(double *)(iVar10 + 0x28)" (identifier "dVar47") (* "*") (pointer_expression "*(double *)(iVar10 + 0x28)" (* "*") (cast_expression "(double *)(iVar10 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x28)" (( "(") (binary_expression "iVar10 + 0x28" (identifier "iVar10") (+ "+") (number_literal "0x28")) () ")"))))) (+ "+") (binary_expression "dVar40 * *(double *)(iVar3 + 0x28)" (identifier "dVar40") (* "*") (pointer_expression "*(double *)(iVar3 + 0x28)" (* "*") (cast_expression "(double *)(iVar3 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x28)" (( "(") (binary_expression "iVar3 + 0x28" (identifier "iVar3") (+ "+") (number_literal "0x28")) () ")")))))) () ")")) (* "*") (identifier "dVar45"))) (; ";")) (expression_statement "in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;" (assignment_expression "in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45" (identifier "in_f22_23") (= "=") (binary_expression "(dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45" (parenthesized_expression "(dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30))" (( "(") (binary_expression "dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)" (binary_expression "dVar47 * *(double *)(iVar10 + 0x30)" (identifier "dVar47") (* "*") (pointer_expression "*(double *)(iVar10 + 0x30)" (* "*") (cast_expression "(double *)(iVar10 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x30)" (( "(") (binary_expression "iVar10 + 0x30" (identifier "iVar10") (+ "+") (number_literal "0x30")) () ")"))))) (+ "+") (binary_expression "dVar40 * *(double *)(iVar3 + 0x30)" (identifier "dVar40") (* "*") (pointer_expression "*(double *)(iVar3 + 0x30)" (* "*") (cast_expression "(double *)(iVar3 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x30)" (( "(") (binary_expression "iVar3 + 0x30" (identifier "iVar3") (+ "+") (number_literal "0x30")) () ")")))))) () ")")) (* "*") (identifier "dVar45"))) (; ";")) (expression_statement "in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;" (assignment_expression "in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45" (identifier "in_f24_25") (= "=") (binary_expression "(dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45" (parenthesized_expression "(dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38))" (( "(") (binary_expression "dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)" (binary_expression "dVar47 * *(double *)(iVar10 + 0x38)" (identifier "dVar47") (* "*") (pointer_expression "*(double *)(iVar10 + 0x38)" (* "*") (cast_expression "(double *)(iVar10 + 0x38)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x38)" (( "(") (binary_expression "iVar10 + 0x38" (identifier "iVar10") (+ "+") (number_literal "0x38")) () ")"))))) (+ "+") (binary_expression "dVar40 * *(double *)(iVar3 + 0x38)" (identifier "dVar40") (* "*") (pointer_expression "*(double *)(iVar3 + 0x38)" (* "*") (cast_expression "(double *)(iVar3 + 0x38)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x38)" (( "(") (binary_expression "iVar3 + 0x38" (identifier "iVar3") (+ "+") (number_literal "0x38")) () ")")))))) () ")")) (* "*") (identifier "dVar45"))) (; ";")) (if_statement "if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }" (if "if") (parenthesized_expression "(*(int *)(iVar3 + 4) == 2)" (( "(") (binary_expression "*(int *)(iVar3 + 4) == 2" (pointer_expression "*(int *)(iVar3 + 4)" (* "*") (cast_expression "(int *)(iVar3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }" ({ "{") (expression_statement "dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;" (assignment_expression "dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45" (identifier "dStack_590") (= "=") (binary_expression "(dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45" (parenthesized_expression "(dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40))" (( "(") (binary_expression "dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)" (binary_expression "dVar47 * *(double *)(iVar10 + 0x40)" (identifier "dVar47") (* "*") (pointer_expression "*(double *)(iVar10 + 0x40)" (* "*") (cast_expression "(double *)(iVar10 + 0x40)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x40)" (( "(") (binary_expression "iVar10 + 0x40" (identifier "iVar10") (+ "+") (number_literal "0x40")) () ")"))))) (+ "+") (binary_expression "dVar40 * *(double *)(iVar3 + 0x40)" (identifier "dVar40") (* "*") (pointer_expression "*(double *)(iVar3 + 0x40)" (* "*") (cast_expression "(double *)(iVar3 + 0x40)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x40)" (( "(") (binary_expression "iVar3 + 0x40" (identifier "iVar3") (+ "+") (number_literal "0x40")) () ")")))))) () ")")) (* "*") (identifier "dVar45"))) (; ";")) (} "}"))) (goto_statement "goto LAB_000a5af8;" (goto "goto") (statement_identifier "LAB_000a5af8") (; ";")) (} "}"))) (} "}"))) (} "}"))) (labeled_statement "LAB_000a6248:\n                uVar26 = puVar32[0xe];" (statement_identifier "LAB_000a6248") (: ":") (expression_statement "uVar26 = puVar32[0xe];" (assignment_expression "uVar26 = puVar32[0xe]" (identifier "uVar26") (= "=") (subscript_expression "puVar32[0xe]" (identifier "puVar32") ([ "[") (number_literal "0xe") (] "]"))) (; ";"))) (expression_statement "in_f20_21 = *(double *)(uVar26 + 0x28);" (assignment_expression "in_f20_21 = *(double *)(uVar26 + 0x28)" (identifier "in_f20_21") (= "=") (pointer_expression "*(double *)(uVar26 + 0x28)" (* "*") (cast_expression "(double *)(uVar26 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar26 + 0x28)" (( "(") (binary_expression "uVar26 + 0x28" (identifier "uVar26") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "in_f22_23 = *(double *)(uVar26 + 0x30);" (assignment_expression "in_f22_23 = *(double *)(uVar26 + 0x30)" (identifier "in_f22_23") (= "=") (pointer_expression "*(double *)(uVar26 + 0x30)" (* "*") (cast_expression "(double *)(uVar26 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar26 + 0x30)" (( "(") (binary_expression "uVar26 + 0x30" (identifier "uVar26") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "in_f24_25 = *(double *)(uVar26 + 0x38);" (assignment_expression "in_f24_25 = *(double *)(uVar26 + 0x38)" (identifier "in_f24_25") (= "=") (pointer_expression "*(double *)(uVar26 + 0x38)" (* "*") (cast_expression "(double *)(uVar26 + 0x38)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar26 + 0x38)" (( "(") (binary_expression "uVar26 + 0x38" (identifier "uVar26") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "dStack_590 = *(double *)(uVar26 + 0x40);" (assignment_expression "dStack_590 = *(double *)(uVar26 + 0x40)" (identifier "dStack_590") (= "=") (pointer_expression "*(double *)(uVar26 + 0x40)" (* "*") (cast_expression "(double *)(uVar26 + 0x40)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar26 + 0x40)" (( "(") (binary_expression "uVar26 + 0x40" (identifier "uVar26") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "dVar39 = *(double *)(uVar26 + 0x48);" (assignment_expression "dVar39 = *(double *)(uVar26 + 0x48)" (identifier "dVar39") (= "=") (pointer_expression "*(double *)(uVar26 + 0x48)" (* "*") (cast_expression "(double *)(uVar26 + 0x48)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar26 + 0x48)" (( "(") (binary_expression "uVar26 + 0x48" (identifier "uVar26") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (} "}")) (else_clause "else if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }" (else "else") (if_statement "if (unaff_s7 < 2) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }\n              else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }" (if "if") (parenthesized_expression "(unaff_s7 < 2)" (( "(") (binary_expression "unaff_s7 < 2" (identifier "unaff_s7") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;\n                if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }\nLAB_000a6944:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a6694:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }" ({ "{") (expression_statement "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0))" (identifier "dVar39") (= "=") (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0))" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7c78))" (( "(") (pointer_expression "**(code **)(pcStack_5a8 + -0x7c78)" (* "*") (pointer_expression "*(code **)(pcStack_5a8 + -0x7c78)" (* "*") (cast_expression "(code **)(pcStack_5a8 + -0x7c78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7c78)" (( "(") (binary_expression "pcStack_5a8 + -0x7c78" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7c78")) () ")"))))) () ")")) (argument_list "(*pdStack_588 - *(double *)(iStack_584 + 0x43d0))" (( "(") (binary_expression "*pdStack_588 - *(double *)(iStack_584 + 0x43d0)" (pointer_expression "*pdStack_588" (* "*") (identifier "pdStack_588")) (- "-") (pointer_expression "*(double *)(iStack_584 + 0x43d0)" (* "*") (cast_expression "(double *)(iStack_584 + 0x43d0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_584 + 0x43d0)" (( "(") (binary_expression "iStack_584 + 0x43d0" (identifier "iStack_584") (+ "+") (number_literal "0x43d0")) () ")"))))) () ")"))))) (; ";")) (if_statement "if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;" (if "if") (parenthesized_expression "(((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39))" (( "(") (binary_expression "((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)" (parenthesized_expression "((int)dVar39 == iVar28)" (( "(") (binary_expression "(int)dVar39 == iVar28" (cast_expression "(int)dVar39" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar39")) (== "==") (identifier "iVar28")) () ")")) (&& "&&") (parenthesized_expression "(dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)" (( "(") (comma_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" (identifier "dVar39") (= "=") (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7c78))" (( "(") (pointer_expression "**(code **)(pcStack_5a8 + -0x7c78)" (* "*") (pointer_expression "*(code **)(pcStack_5a8 + -0x7c78)" (* "*") (cast_expression "(code **)(pcStack_5a8 + -0x7c78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7c78)" (( "(") (binary_expression "pcStack_5a8 + -0x7c78" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7c78")) () ")"))))) () ")")) (argument_list "(pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" (( "(") (binary_expression "pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)" (subscript_expression "pdStack_588[1]" (identifier "pdStack_588") ([ "[") (number_literal "1") (] "]")) (- "-") (pointer_expression "*(double *)(iStack_584 + 0x43d0)" (* "*") (cast_expression "(double *)(iStack_584 + 0x43d0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_584 + 0x43d0)" (( "(") (binary_expression "iStack_584 + 0x43d0" (identifier "iStack_584") (+ "+") (number_literal "0x43d0")) () ")"))))) () ")"))))) (, ",") (binary_expression "puVar35 == (undefined1 *)(int)dVar39" (identifier "puVar35") (== "==") (cast_expression "(undefined1 *)(int)dVar39" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)dVar39" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar39"))))) () ")"))) () ")")) (goto_statement "goto LAB_000a6944;" (goto "goto") (statement_identifier "LAB_000a6944") (; ";"))) (if_statement "if (*puVar32 < 2) {\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }\n                else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }" (if "if") (parenthesized_expression "(*puVar32 < 2)" (( "(") (binary_expression "*puVar32 < 2" (pointer_expression "*puVar32" (* "*") (identifier "puVar32")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                  uStack_5a0 = SQRT(dVar39);\n                  if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  dVar39 = dVar44 * dVar44 + dVar39;\n                  dVar42 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }\n                  dVar42 = uStack_5a0 * dVar42;\n                  if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }\n                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }\n                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;\n                  uStack_5a0 = in_f26_27 * uStack_5a0;\nLAB_000a6908:\n                  uVar26 = *puVar32;\nLAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }\n                }" ({ "{") (expression_statement "dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);" (assignment_expression "dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6)" (identifier "dVar44") (= "=") (binary_expression "*(double *)(puVar32 + 10) - *(double *)(puVar32 + 6)" (pointer_expression "*(double *)(puVar32 + 10)" (* "*") (cast_expression "(double *)(puVar32 + 10)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 10)" (( "(") (binary_expression "puVar32 + 10" (identifier "puVar32") (+ "+") (number_literal "10")) () ")")))) (- "-") (pointer_expression "*(double *)(puVar32 + 6)" (* "*") (cast_expression "(double *)(puVar32 + 6)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 6)" (( "(") (binary_expression "puVar32 + 6" (identifier "puVar32") (+ "+") (number_literal "6")) () ")")))))) (; ";")) (expression_statement "dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);" (assignment_expression "dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8)" (identifier "dVar40") (= "=") (binary_expression "*(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8)" (pointer_expression "*(double *)(puVar32 + 0xc)" (* "*") (cast_expression "(double *)(puVar32 + 0xc)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0xc)" (( "(") (binary_expression "puVar32 + 0xc" (identifier "puVar32") (+ "+") (number_literal "0xc")) () ")")))) (- "-") (pointer_expression "*(double *)(puVar32 + 8)" (* "*") (cast_expression "(double *)(puVar32 + 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 8)" (( "(") (binary_expression "puVar32 + 8" (identifier "puVar32") (+ "+") (number_literal "8")) () ")")))))) (; ";")) (expression_statement "dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);" (assignment_expression "dVar45 = (double)iVar28 - *(double *)(puVar32 + 6)" (identifier "dVar45") (= "=") (binary_expression "(double)iVar28 - *(double *)(puVar32 + 6)" (cast_expression "(double)iVar28" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar28")) (- "-") (pointer_expression "*(double *)(puVar32 + 6)" (* "*") (cast_expression "(double *)(puVar32 + 6)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 6)" (( "(") (binary_expression "puVar32 + 6" (identifier "puVar32") (+ "+") (number_literal "6")) () ")")))))) (; ";")) (expression_statement "dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);" (assignment_expression "dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8)" (identifier "dVar47") (= "=") (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 8)" (cast_expression "(double)(int)puVar35" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)puVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar35"))) (- "-") (pointer_expression "*(double *)(puVar32 + 8)" (* "*") (cast_expression "(double *)(puVar32 + 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 8)" (( "(") (binary_expression "puVar32 + 8" (identifier "puVar32") (+ "+") (number_literal "8")) () ")")))))) (; ";")) (expression_statement "dVar39 = dVar45 * dVar45 + dVar47 * dVar47;" (assignment_expression "dVar39 = dVar45 * dVar45 + dVar47 * dVar47" (identifier "dVar39") (= "=") (binary_expression "dVar45 * dVar45 + dVar47 * dVar47" (binary_expression "dVar45 * dVar45" (identifier "dVar45") (* "*") (identifier "dVar45")) (+ "+") (binary_expression "dVar47 * dVar47" (identifier "dVar47") (* "*") (identifier "dVar47")))) (; ";")) (expression_statement "uStack_5a0 = SQRT(dVar39);" (assignment_expression "uStack_5a0 = SQRT(dVar39)" (identifier "uStack_5a0") (= "=") (call_expression "SQRT(dVar39)" (identifier "SQRT") (argument_list "(dVar39)" (( "(") (identifier "dVar39") () ")")))) (; ";")) (if_statement "if (0.0 <= dVar39) {\n                    dVar39 = dVar40 * dVar40;\n                  }\n                  else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }" (if "if") (parenthesized_expression "(0.0 <= dVar39)" (( "(") (binary_expression "0.0 <= dVar39" (number_literal "0.0") (<= "<=") (identifier "dVar39")) () ")")) (compound_statement "{\n                    dVar39 = dVar40 * dVar40;\n                  }" ({ "{") (expression_statement "dVar39 = dVar40 * dVar40;" (assignment_expression "dVar39 = dVar40 * dVar40" (identifier "dVar39") (= "=") (binary_expression "dVar40 * dVar40" (identifier "dVar40") (* "*") (identifier "dVar40"))) (; ";")) (} "}")) (else_clause "else {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }" (else "else") (compound_statement "{\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    dVar39 = dVar40 * dVar40;\n                  }" ({ "{") (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" (( "(") (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" (* "*") (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" (* "*") (cast_expression "(code **)(pcStack_5a8 + -0x7418)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7418)" (( "(") (binary_expression "pcStack_5a8 + -0x7418" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7418")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "dVar39 = dVar40 * dVar40;" (assignment_expression "dVar39 = dVar40 * dVar40" (identifier "dVar39") (= "=") (binary_expression "dVar40 * dVar40" (identifier "dVar40") (* "*") (identifier "dVar40"))) (; ";")) (} "}")))) (expression_statement "dVar39 = dVar44 * dVar44 + dVar39;" (assignment_expression "dVar39 = dVar44 * dVar44 + dVar39" (identifier "dVar39") (= "=") (binary_expression "dVar44 * dVar44 + dVar39" (binary_expression "dVar44 * dVar44" (identifier "dVar44") (* "*") (identifier "dVar44")) (+ "+") (identifier "dVar39"))) (; ";")) (expression_statement "dVar42 = SQRT(dVar39);" (assignment_expression "dVar42 = SQRT(dVar39)" (identifier "dVar42") (= "=") (call_expression "SQRT(dVar39)" (identifier "SQRT") (argument_list "(dVar39)" (( "(") (identifier "dVar39") () ")")))) (; ";")) (if_statement "if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }" (if "if") (parenthesized_expression "(dVar39 < 0.0)" (( "(") (binary_expression "dVar39 < 0.0" (identifier "dVar39") (< "<") (number_literal "0.0")) () ")")) (compound_statement "{\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                  }" ({ "{") (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" (( "(") (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" (* "*") (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" (* "*") (cast_expression "(code **)(pcStack_5a8 + -0x7418)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7418)" (( "(") (binary_expression "pcStack_5a8 + -0x7418" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7418")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "dVar42 = uStack_5a0 * dVar42;" (assignment_expression "dVar42 = uStack_5a0 * dVar42" (identifier "dVar42") (= "=") (binary_expression "uStack_5a0 * dVar42" (identifier "uStack_5a0") (* "*") (identifier "dVar42"))) (; ";")) (if_statement "if (0.0 <= dVar42) {\n                    in_f26_27 = pdVar29[0x881];\n                  }\n                  else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }" (if "if") (parenthesized_expression "(0.0 <= dVar42)" (( "(") (binary_expression "0.0 <= dVar42" (number_literal "0.0") (<= "<=") (identifier "dVar42")) () ")")) (compound_statement "{\n                    in_f26_27 = pdVar29[0x881];\n                  }" ({ "{") (expression_statement "in_f26_27 = pdVar29[0x881];" (assignment_expression "in_f26_27 = pdVar29[0x881]" (identifier "in_f26_27") (= "=") (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }" (else "else") (compound_statement "{\n                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                  }" ({ "{") (expression_statement "in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (identifier "in_f26_27") (= "=") (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4418")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (unaff_s6[0x879] <= dVar42 * in_f26_27) {\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }\n                  else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }" (if "if") (parenthesized_expression "(unaff_s6[0x879] <= dVar42 * in_f26_27)" (( "(") (binary_expression "unaff_s6[0x879] <= dVar42 * in_f26_27" (subscript_expression "unaff_s6[0x879]" (identifier "unaff_s6") ([ "[") (number_literal "0x879") (] "]")) (<= "<=") (binary_expression "dVar42 * in_f26_27" (identifier "dVar42") (* "*") (identifier "in_f26_27"))) () ")")) (compound_statement "{\n                    in_f26_27 = pdVar29[0x881] / dVar42;\n                  }" ({ "{") (expression_statement "in_f26_27 = pdVar29[0x881] / dVar42;" (assignment_expression "in_f26_27 = pdVar29[0x881] / dVar42" (identifier "in_f26_27") (= "=") (binary_expression "pdVar29[0x881] / dVar42" (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]")) (/ "/") (identifier "dVar42"))) (; ";")) (} "}")) (else_clause "else {\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }" (else "else") (compound_statement "{\n                    in_f26_27 = in_f26_27 / unaff_s6[0x879];\n                  }" ({ "{") (expression_statement "in_f26_27 = in_f26_27 / unaff_s6[0x879];" (assignment_expression "in_f26_27 = in_f26_27 / unaff_s6[0x879]" (identifier "in_f26_27") (= "=") (binary_expression "in_f26_27 / unaff_s6[0x879]" (identifier "in_f26_27") (/ "/") (subscript_expression "unaff_s6[0x879]" (identifier "unaff_s6") ([ "[") (number_literal "0x879") (] "]")))) (; ";")) (} "}")))) (expression_statement "in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;" (assignment_expression "in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27" (identifier "in_f26_27") (= "=") (binary_expression "(dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27" (parenthesized_expression "(dVar44 * dVar45 + dVar40 * dVar47)" (( "(") (binary_expression "dVar44 * dVar45 + dVar40 * dVar47" (binary_expression "dVar44 * dVar45" (identifier "dVar44") (* "*") (identifier "dVar45")) (+ "+") (binary_expression "dVar40 * dVar47" (identifier "dVar40") (* "*") (identifier "dVar47"))) () ")")) (* "*") (identifier "in_f26_27"))) (; ";")) (expression_statement "uStack_5a0 = in_f26_27 * uStack_5a0;" (assignment_expression "uStack_5a0 = in_f26_27 * uStack_5a0" (identifier "uStack_5a0") (= "=") (binary_expression "in_f26_27 * uStack_5a0" (identifier "in_f26_27") (* "*") (identifier "uStack_5a0"))) (; ";")) (labeled_statement "LAB_000a6908:\n                  uVar26 = *puVar32;" (statement_identifier "LAB_000a6908") (: ":") (expression_statement "uVar26 = *puVar32;" (assignment_expression "uVar26 = *puVar32" (identifier "uVar26") (= "=") (pointer_expression "*puVar32" (* "*") (identifier "puVar32"))) (; ";"))) (labeled_statement "LAB_000a690c:\n                  if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }" (statement_identifier "LAB_000a690c") (: ":") (if_statement "if (uVar26 != 2) {\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }" (if "if") (parenthesized_expression "(uVar26 != 2)" (( "(") (binary_expression "uVar26 != 2" (identifier "uVar26") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }\n                    uStack_5a0 = uStack_5a0 * dVar39;\n                  }" ({ "{") (if_statement "if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }\n                    else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }" (if "if") (parenthesized_expression "(unaff_s6[0x879] <= dStack_580 * dStack_578)" (( "(") (binary_expression "unaff_s6[0x879] <= dStack_580 * dStack_578" (subscript_expression "unaff_s6[0x879]" (identifier "unaff_s6") ([ "[") (number_literal "0x879") (] "]")) (<= "<=") (binary_expression "dStack_580 * dStack_578" (identifier "dStack_580") (* "*") (identifier "dStack_578"))) () ")")) (compound_statement "{\n                      dVar39 = pdVar29[0x881] / dStack_580;\n                    }" ({ "{") (expression_statement "dVar39 = pdVar29[0x881] / dStack_580;" (assignment_expression "dVar39 = pdVar29[0x881] / dStack_580" (identifier "dVar39") (= "=") (binary_expression "pdVar29[0x881] / dStack_580" (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]")) (/ "/") (identifier "dStack_580"))) (; ";")) (} "}")) (else_clause "else {\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }" (else "else") (compound_statement "{\n                      dVar39 = dStack_578 / unaff_s6[0x879];\n                    }" ({ "{") (expression_statement "dVar39 = dStack_578 / unaff_s6[0x879];" (assignment_expression "dVar39 = dStack_578 / unaff_s6[0x879]" (identifier "dVar39") (= "=") (binary_expression "dStack_578 / unaff_s6[0x879]" (identifier "dStack_578") (/ "/") (subscript_expression "unaff_s6[0x879]" (identifier "unaff_s6") ([ "[") (number_literal "0x879") (] "]")))) (; ";")) (} "}")))) (expression_statement "uStack_5a0 = uStack_5a0 * dVar39;" (assignment_expression "uStack_5a0 = uStack_5a0 * dVar39" (identifier "uStack_5a0") (= "=") (binary_expression "uStack_5a0 * dVar39" (identifier "uStack_5a0") (* "*") (identifier "dVar39"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }" (else "else") (compound_statement "{\n                  if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }\n                  if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                  uStack_5a0 = SQRT(dVar39);\n                  if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }\n                }" ({ "{") (if_statement "if (*puVar32 != 2) {\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }" (if "if") (parenthesized_expression "(*puVar32 != 2)" (( "(") (binary_expression "*puVar32 != 2" (pointer_expression "*puVar32" (* "*") (identifier "puVar32")) (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n                    uStack_5a0 = 0.0;\n                    goto LAB_000a6908;\n                  }" ({ "{") (expression_statement "uStack_5a0 = 0.0;" (assignment_expression "uStack_5a0 = 0.0" (identifier "uStack_5a0") (= "=") (number_literal "0.0")) (; ";")) (goto_statement "goto LAB_000a6908;" (goto "goto") (statement_identifier "LAB_000a6908") (; ";")) (} "}"))) (if_statement "if (unaff_s7 != 3) {\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }" (if "if") (parenthesized_expression "(unaff_s7 != 3)" (( "(") (binary_expression "unaff_s7 != 3" (identifier "unaff_s7") (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);\n                    (**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));\n                    dVar39 = *(double *)(puVar32 + 0x16);\n                    if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }\n                    dVar39 = *(double *)(puVar32 + 0x18);\n                    dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;\n                    if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }\n                    dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;\n                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) goto LAB_000a6944;\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }" ({ "{") (expression_statement "dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);" (assignment_expression "dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12)" (identifier "dVar40") (= "=") (binary_expression "(double)iVar28 - *(double *)(puVar32 + 0x12)" (cast_expression "(double)iVar28" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar28")) (- "-") (pointer_expression "*(double *)(puVar32 + 0x12)" (* "*") (cast_expression "(double *)(puVar32 + 0x12)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x12)" (( "(") (binary_expression "puVar32 + 0x12" (identifier "puVar32") (+ "+") (number_literal "0x12")) () ")")))))) (; ";")) (expression_statement "(**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));" (call_expression "(**(code **)(pcStack_5a8 + -0x78e0))\n                              ((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x78e0))" (( "(") (pointer_expression "**(code **)(pcStack_5a8 + -0x78e0)" (* "*") (pointer_expression "*(code **)(pcStack_5a8 + -0x78e0)" (* "*") (cast_expression "(code **)(pcStack_5a8 + -0x78e0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x78e0)" (( "(") (binary_expression "pcStack_5a8 + -0x78e0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x78e0")) () ")"))))) () ")")) (argument_list "((*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80))" (( "(") (binary_expression "(*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" (parenthesized_expression "(*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88))" (( "(") (binary_expression "*(double *)(puVar32 + 0x1c) *\n                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" (pointer_expression "*(double *)(puVar32 + 0x1c)" (* "*") (cast_expression "(double *)(puVar32 + 0x1c)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x1c)" (( "(") (binary_expression "puVar32 + 0x1c" (identifier "puVar32") (+ "+") (number_literal "0x1c")) () ")")))) (* "*") (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)" (( "(") (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4a88")) () ")"))))) () ")")) (/ "/") (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80)" (( "(") (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4a80")) () ")"))))) () ")"))) (; ";")) (expression_statement "dVar39 = *(double *)(puVar32 + 0x16);" (assignment_expression "dVar39 = *(double *)(puVar32 + 0x16)" (identifier "dVar39") (= "=") (pointer_expression "*(double *)(puVar32 + 0x16)" (* "*") (cast_expression "(double *)(puVar32 + 0x16)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x16)" (( "(") (binary_expression "puVar32 + 0x16" (identifier "puVar32") (+ "+") (number_literal "0x16")) () ")"))))) (; ";")) (if_statement "if (0.0 <= dVar39) {\n                      dVar47 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" (if "if") (parenthesized_expression "(0.0 <= dVar39)" (( "(") (binary_expression "0.0 <= dVar39" (number_literal "0.0") (<= "<=") (identifier "dVar39")) () ")")) (compound_statement "{\n                      dVar47 = pdVar29[0x881];\n                    }" ({ "{") (expression_statement "dVar47 = pdVar29[0x881];" (assignment_expression "dVar47 = pdVar29[0x881]" (identifier "dVar47") (= "=") (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" (else "else") (compound_statement "{\n                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" ({ "{") (expression_statement "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (identifier "dVar47") (= "=") (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4418")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (unaff_s6[0x879] <= dVar39 * dVar47) {\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }" (if "if") (parenthesized_expression "(unaff_s6[0x879] <= dVar39 * dVar47)" (( "(") (binary_expression "unaff_s6[0x879] <= dVar39 * dVar47" (subscript_expression "unaff_s6[0x879]" (identifier "unaff_s6") ([ "[") (number_literal "0x879") (] "]")) (<= "<=") (binary_expression "dVar39 * dVar47" (identifier "dVar39") (* "*") (identifier "dVar47"))) () ")")) (compound_statement "{\n                      dVar47 = pdVar29[0x881] / dVar39;\n                    }" ({ "{") (expression_statement "dVar47 = pdVar29[0x881] / dVar39;" (assignment_expression "dVar47 = pdVar29[0x881] / dVar39" (identifier "dVar47") (= "=") (binary_expression "pdVar29[0x881] / dVar39" (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]")) (/ "/") (identifier "dVar39"))) (; ";")) (} "}")) (else_clause "else {\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }" (else "else") (compound_statement "{\n                      dVar47 = dVar47 / unaff_s6[0x879];\n                    }" ({ "{") (expression_statement "dVar47 = dVar47 / unaff_s6[0x879];" (assignment_expression "dVar47 = dVar47 / unaff_s6[0x879]" (identifier "dVar47") (= "=") (binary_expression "dVar47 / unaff_s6[0x879]" (identifier "dVar47") (/ "/") (subscript_expression "unaff_s6[0x879]" (identifier "unaff_s6") ([ "[") (number_literal "0x879") (] "]")))) (; ";")) (} "}")))) (expression_statement "dVar39 = *(double *)(puVar32 + 0x18);" (assignment_expression "dVar39 = *(double *)(puVar32 + 0x18)" (identifier "dVar39") (= "=") (pointer_expression "*(double *)(puVar32 + 0x18)" (* "*") (cast_expression "(double *)(puVar32 + 0x18)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x18)" (( "(") (binary_expression "puVar32 + 0x18" (identifier "puVar32") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47;" (assignment_expression "dVar47 = (dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47" (identifier "dVar47") (= "=") (binary_expression "(dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *\n                             dVar47" (parenthesized_expression "(dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518)" (( "(") (binary_expression "dVar40 * dStack_520 +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518" (binary_expression "dVar40 * dStack_520" (identifier "dVar40") (* "*") (identifier "dStack_520")) (+ "+") (binary_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518" (parenthesized_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (( "(") (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 0x14)" (cast_expression "(double)(int)puVar35" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)puVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar35"))) (- "-") (pointer_expression "*(double *)(puVar32 + 0x14)" (* "*") (cast_expression "(double *)(puVar32 + 0x14)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x14)" (( "(") (binary_expression "puVar32 + 0x14" (identifier "puVar32") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (* "*") (identifier "dStack_518"))) () ")")) (* "*") (identifier "dVar47"))) (; ";")) (if_statement "if (0.0 <= dVar39) {\n                      dVar44 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" (if "if") (parenthesized_expression "(0.0 <= dVar39)" (( "(") (binary_expression "0.0 <= dVar39" (number_literal "0.0") (<= "<=") (identifier "dVar39")) () ")")) (compound_statement "{\n                      dVar44 = pdVar29[0x881];\n                    }" ({ "{") (expression_statement "dVar44 = pdVar29[0x881];" (assignment_expression "dVar44 = pdVar29[0x881]" (identifier "dVar44") (= "=") (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" (else "else") (compound_statement "{\n                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" ({ "{") (expression_statement "dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (identifier "dVar44") (= "=") (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4418")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (unaff_s6[0x879] <= dVar39 * dVar44) {\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }\n                    else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }" (if "if") (parenthesized_expression "(unaff_s6[0x879] <= dVar39 * dVar44)" (( "(") (binary_expression "unaff_s6[0x879] <= dVar39 * dVar44" (subscript_expression "unaff_s6[0x879]" (identifier "unaff_s6") ([ "[") (number_literal "0x879") (] "]")) (<= "<=") (binary_expression "dVar39 * dVar44" (identifier "dVar39") (* "*") (identifier "dVar44"))) () ")")) (compound_statement "{\n                      dVar44 = pdVar29[0x881] / dVar39;\n                    }" ({ "{") (expression_statement "dVar44 = pdVar29[0x881] / dVar39;" (assignment_expression "dVar44 = pdVar29[0x881] / dVar39" (identifier "dVar44") (= "=") (binary_expression "pdVar29[0x881] / dVar39" (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]")) (/ "/") (identifier "dVar39"))) (; ";")) (} "}")) (else_clause "else {\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }" (else "else") (compound_statement "{\n                      dVar44 = dVar44 / unaff_s6[0x879];\n                    }" ({ "{") (expression_statement "dVar44 = dVar44 / unaff_s6[0x879];" (assignment_expression "dVar44 = dVar44 / unaff_s6[0x879]" (identifier "dVar44") (= "=") (binary_expression "dVar44 / unaff_s6[0x879]" (identifier "dVar44") (/ "/") (subscript_expression "unaff_s6[0x879]" (identifier "unaff_s6") ([ "[") (number_literal "0x879") (] "]")))) (; ";")) (} "}")))) (expression_statement "dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44;" (assignment_expression "dVar44 = (dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44" (identifier "dVar44") (= "=") (binary_expression "(dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *\n                             dVar44" (parenthesized_expression "(dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)))" (( "(") (binary_expression "dVar40 * dStack_518 -\n                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (binary_expression "dVar40 * dStack_518" (identifier "dVar40") (* "*") (identifier "dStack_518")) (- "-") (binary_expression "dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (identifier "dStack_520") (* "*") (parenthesized_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (( "(") (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 0x14)" (cast_expression "(double)(int)puVar35" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)puVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar35"))) (- "-") (pointer_expression "*(double *)(puVar32 + 0x14)" (* "*") (cast_expression "(double *)(puVar32 + 0x14)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x14)" (( "(") (binary_expression "puVar32 + 0x14" (identifier "puVar32") (+ "+") (number_literal "0x14")) () ")"))))) () ")")))) () ")")) (* "*") (identifier "dVar44"))) (; ";")) (expression_statement "dVar39 = dVar47 * dVar47 + dVar44 * dVar44;" (assignment_expression "dVar39 = dVar47 * dVar47 + dVar44 * dVar44" (identifier "dVar39") (= "=") (binary_expression "dVar47 * dVar47 + dVar44 * dVar44" (binary_expression "dVar47 * dVar47" (identifier "dVar47") (* "*") (identifier "dVar47")) (+ "+") (binary_expression "dVar44 * dVar44" (identifier "dVar44") (* "*") (identifier "dVar44")))) (; ";")) (expression_statement "uStack_5a0 = SQRT(dVar39);" (assignment_expression "uStack_5a0 = SQRT(dVar39)" (identifier "uStack_5a0") (= "=") (call_expression "SQRT(dVar39)" (identifier "SQRT") (argument_list "(dVar39)" (( "(") (identifier "dVar39") () ")")))) (; ";")) (if_statement "if (0.0 <= dVar39) goto LAB_000a6944;" (if "if") (parenthesized_expression "(0.0 <= dVar39)" (( "(") (binary_expression "0.0 <= dVar39" (number_literal "0.0") (<= "<=") (identifier "dVar39")) () ")")) (goto_statement "goto LAB_000a6944;" (goto "goto") (statement_identifier "LAB_000a6944") (; ";"))) (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" (( "(") (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" (* "*") (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" (* "*") (cast_expression "(code **)(pcStack_5a8 + -0x7418)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7418)" (( "(") (binary_expression "pcStack_5a8 + -0x7418" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7418")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar26 = *puVar32;" (assignment_expression "uVar26 = *puVar32" (identifier "uVar26") (= "=") (pointer_expression "*puVar32" (* "*") (identifier "puVar32"))) (; ";")) (goto_statement "goto LAB_000a690c;" (goto "goto") (statement_identifier "LAB_000a690c") (; ";")) (} "}"))) (expression_statement "dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));" (assignment_expression "dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (identifier "dVar39") (= "=") (binary_expression "((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (binary_expression "((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                           ((double)iVar28 - *(double *)(puVar32 + 0x12))" (parenthesized_expression "((double)iVar28 - *(double *)(puVar32 + 0x12))" (( "(") (binary_expression "(double)iVar28 - *(double *)(puVar32 + 0x12)" (cast_expression "(double)iVar28" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar28")) (- "-") (pointer_expression "*(double *)(puVar32 + 0x12)" (* "*") (cast_expression "(double *)(puVar32 + 0x12)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x12)" (( "(") (binary_expression "puVar32 + 0x12" (identifier "puVar32") (+ "+") (number_literal "0x12")) () ")"))))) () ")")) (* "*") (parenthesized_expression "((double)iVar28 - *(double *)(puVar32 + 0x12))" (( "(") (binary_expression "(double)iVar28 - *(double *)(puVar32 + 0x12)" (cast_expression "(double)iVar28" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar28")) (- "-") (pointer_expression "*(double *)(puVar32 + 0x12)" (* "*") (cast_expression "(double *)(puVar32 + 0x12)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x12)" (( "(") (binary_expression "puVar32 + 0x12" (identifier "puVar32") (+ "+") (number_literal "0x12")) () ")"))))) () ")"))) (+ "+") (binary_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (parenthesized_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (( "(") (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 0x14)" (cast_expression "(double)(int)puVar35" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)puVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar35"))) (- "-") (pointer_expression "*(double *)(puVar32 + 0x14)" (* "*") (cast_expression "(double *)(puVar32 + 0x14)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x14)" (( "(") (binary_expression "puVar32 + 0x14" (identifier "puVar32") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (* "*") (parenthesized_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (( "(") (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 0x14)" (cast_expression "(double)(int)puVar35" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)puVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar35"))) (- "-") (pointer_expression "*(double *)(puVar32 + 0x14)" (* "*") (cast_expression "(double *)(puVar32 + 0x14)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x14)" (( "(") (binary_expression "puVar32 + 0x14" (identifier "puVar32") (+ "+") (number_literal "0x14")) () ")"))))) () ")"))))) (; ";")) (expression_statement "uStack_5a0 = SQRT(dVar39);" (assignment_expression "uStack_5a0 = SQRT(dVar39)" (identifier "uStack_5a0") (= "=") (call_expression "SQRT(dVar39)" (identifier "SQRT") (argument_list "(dVar39)" (( "(") (identifier "dVar39") () ")")))) (; ";")) (if_statement "if (dVar39 < 0.0) {\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }" (if "if") (parenthesized_expression "(dVar39 < 0.0)" (( "(") (binary_expression "dVar39 < 0.0" (identifier "dVar39") (< "<") (number_literal "0.0")) () ")")) (compound_statement "{\n                    (**(code **)(pcStack_5a8 + -0x7418))();\n                    uVar26 = *puVar32;\n                    goto LAB_000a690c;\n                  }" ({ "{") (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" (( "(") (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" (* "*") (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" (* "*") (cast_expression "(code **)(pcStack_5a8 + -0x7418)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7418)" (( "(") (binary_expression "pcStack_5a8 + -0x7418" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7418")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar26 = *puVar32;" (assignment_expression "uVar26 = *puVar32" (identifier "uVar26") (= "=") (pointer_expression "*puVar32" (* "*") (identifier "puVar32"))) (; ";")) (goto_statement "goto LAB_000a690c;" (goto "goto") (statement_identifier "LAB_000a690c") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_000a6944:\n                uVar26 = puVar32[0xf];" (statement_identifier "LAB_000a6944") (: ":") (expression_statement "uVar26 = puVar32[0xf];" (assignment_expression "uVar26 = puVar32[0xf]" (identifier "uVar26") (= "=") (subscript_expression "puVar32[0xf]" (identifier "puVar32") ([ "[") (number_literal "0xf") (] "]"))) (; ";"))) (if_statement "if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }" (if "if") (parenthesized_expression "(0 < (int)uVar26)" (( "(") (binary_expression "0 < (int)uVar26" (number_literal "0") (< "<") (cast_expression "(int)uVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar26"))) () ")")) (compound_statement "{\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }" ({ "{") (expression_statement "uVar8 = puVar32[0xe];" (assignment_expression "uVar8 = puVar32[0xe]" (identifier "uVar8") (= "=") (subscript_expression "puVar32[0xe]" (identifier "puVar32") ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (if_statement "if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }" (if "if") (parenthesized_expression "(*(double *)(uVar8 + 0x58) <= uStack_5a0)" (( "(") (binary_expression "*(double *)(uVar8 + 0x58) <= uStack_5a0" (pointer_expression "*(double *)(uVar8 + 0x58)" (* "*") (cast_expression "(double *)(uVar8 + 0x58)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar8 + 0x58)" (( "(") (binary_expression "uVar8 + 0x58" (identifier "uVar8") (+ "+") (number_literal "0x58")) () ")")))) (<= "<=") (identifier "uStack_5a0")) () ")")) (compound_statement "{\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }" ({ "{") (expression_statement "pdVar16 = (double *)(uVar8 + 0xb8);" (assignment_expression "pdVar16 = (double *)(uVar8 + 0xb8)" (identifier "pdVar16") (= "=") (cast_expression "(double *)(uVar8 + 0xb8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar8 + 0xb8)" (( "(") (binary_expression "uVar8 + 0xb8" (identifier "uVar8") (+ "+") (number_literal "0xb8")) () ")")))) (; ";")) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" (identifier "uVar18") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);" (do "do") (compound_statement "{\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    }" ({ "{") (expression_statement "uVar22 = uVar18;" (assignment_expression "uVar22 = uVar18" (identifier "uVar22") (= "=") (identifier "uVar18")) (; ";")) (expression_statement "uVar18 = uVar22 + 1;" (assignment_expression "uVar18 = uVar22 + 1" (identifier "uVar18") (= "=") (binary_expression "uVar22 + 1" (identifier "uVar22") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar18 == uVar26) {\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }" (if "if") (parenthesized_expression "(uVar18 == uVar26)" (( "(") (binary_expression "uVar18 == uVar26" (identifier "uVar18") (== "==") (identifier "uVar26")) () ")")) (compound_statement "{\n                        if (uStack_5a0 < 0.0) goto LAB_000a6694;\n                        dVar39 = pdVar29[0x881];\n                        uVar18 = uVar26;\n                        goto LAB_000a6f20;\n                      }" ({ "{") (if_statement "if (uStack_5a0 < 0.0) goto LAB_000a6694;" (if "if") (parenthesized_expression "(uStack_5a0 < 0.0)" (( "(") (binary_expression "uStack_5a0 < 0.0" (identifier "uStack_5a0") (< "<") (number_literal "0.0")) () ")")) (goto_statement "goto LAB_000a6694;" (goto "goto") (statement_identifier "LAB_000a6694") (; ";"))) (expression_statement "dVar39 = pdVar29[0x881];" (assignment_expression "dVar39 = pdVar29[0x881]" (identifier "dVar39") (= "=") (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]"))) (; ";")) (expression_statement "uVar18 = uVar26;" (assignment_expression "uVar18 = uVar26" (identifier "uVar18") (= "=") (identifier "uVar26")) (; ";")) (goto_statement "goto LAB_000a6f20;" (goto "goto") (statement_identifier "LAB_000a6f20") (; ";")) (} "}"))) (expression_statement "dVar39 = *pdVar16;" (assignment_expression "dVar39 = *pdVar16" (identifier "dVar39") (= "=") (pointer_expression "*pdVar16" (* "*") (identifier "pdVar16"))) (; ";")) (expression_statement "pdVar16 = pdVar16 + 0xc;" (assignment_expression "pdVar16 = pdVar16 + 0xc" (identifier "pdVar16") (= "=") (binary_expression "pdVar16 + 0xc" (identifier "pdVar16") (+ "+") (number_literal "0xc"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(dVar39 <= uStack_5a0)" (( "(") (binary_expression "dVar39 <= uStack_5a0" (identifier "dVar39") (<= "<=") (identifier "uStack_5a0")) () ")")) (; ";")) (if_statement "if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }" (if "if") (parenthesized_expression "((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0))" (( "(") (binary_expression "(0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)" (parenthesized_expression "(0.0 <= uStack_5a0)" (( "(") (binary_expression "0.0 <= uStack_5a0" (number_literal "0.0") (<= "<=") (identifier "uStack_5a0")) () ")")) (&& "&&") (parenthesized_expression "(dVar39 = pdVar29[0x881], uVar18 != 0)" (( "(") (comma_expression "dVar39 = pdVar29[0x881], uVar18 != 0" (assignment_expression "dVar39 = pdVar29[0x881]" (identifier "dVar39") (= "=") (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]"))) (, ",") (binary_expression "uVar18 != 0" (identifier "uVar18") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\nLAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      iVar3 = uVar8 + uVar22 * 0x60;\n                      iVar10 = uVar8 + uVar18 * 0x60;\n                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;\n                      if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }" ({ "{") (labeled_statement "LAB_000a6f20:\n                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }" (statement_identifier "LAB_000a6f20") (: ":") (if_statement "if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }" (if "if") (parenthesized_expression "((dVar39 < uStack_5a0) || (uVar26 == uVar18))" (( "(") (binary_expression "(dVar39 < uStack_5a0) || (uVar26 == uVar18)" (parenthesized_expression "(dVar39 < uStack_5a0)" (( "(") (binary_expression "dVar39 < uStack_5a0" (identifier "dVar39") (< "<") (identifier "uStack_5a0")) () ")")) (|| "||") (parenthesized_expression "(uVar26 == uVar18)" (( "(") (binary_expression "uVar26 == uVar18" (identifier "uVar26") (== "==") (identifier "uVar18")) () ")"))) () ")")) (compound_statement "{\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }" ({ "{") (expression_statement "iVar3 = uVar8 + uVar26 * 0x60 + -0x60;" (assignment_expression "iVar3 = uVar8 + uVar26 * 0x60 + -0x60" (identifier "iVar3") (= "=") (binary_expression "uVar8 + uVar26 * 0x60 + -0x60" (binary_expression "uVar8 + uVar26 * 0x60" (identifier "uVar8") (+ "+") (binary_expression "uVar26 * 0x60" (identifier "uVar26") (* "*") (number_literal "0x60"))) (+ "+") (number_literal "-0x60"))) (; ";")) (expression_statement "in_f20_21 = *(double *)(iVar3 + 0x28);" (assignment_expression "in_f20_21 = *(double *)(iVar3 + 0x28)" (identifier "in_f20_21") (= "=") (pointer_expression "*(double *)(iVar3 + 0x28)" (* "*") (cast_expression "(double *)(iVar3 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x28)" (( "(") (binary_expression "iVar3 + 0x28" (identifier "iVar3") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "in_f22_23 = *(double *)(iVar3 + 0x30);" (assignment_expression "in_f22_23 = *(double *)(iVar3 + 0x30)" (identifier "in_f22_23") (= "=") (pointer_expression "*(double *)(iVar3 + 0x30)" (* "*") (cast_expression "(double *)(iVar3 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x30)" (( "(") (binary_expression "iVar3 + 0x30" (identifier "iVar3") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "in_f24_25 = *(double *)(iVar3 + 0x38);" (assignment_expression "in_f24_25 = *(double *)(iVar3 + 0x38)" (identifier "in_f24_25") (= "=") (pointer_expression "*(double *)(iVar3 + 0x38)" (* "*") (cast_expression "(double *)(iVar3 + 0x38)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x38)" (( "(") (binary_expression "iVar3 + 0x38" (identifier "iVar3") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "dStack_590 = *(double *)(iVar3 + 0x40);" (assignment_expression "dStack_590 = *(double *)(iVar3 + 0x40)" (identifier "dStack_590") (= "=") (pointer_expression "*(double *)(iVar3 + 0x40)" (* "*") (cast_expression "(double *)(iVar3 + 0x40)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x40)" (( "(") (binary_expression "iVar3 + 0x40" (identifier "iVar3") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "dVar39 = *(double *)(iVar3 + 0x48);" (assignment_expression "dVar39 = *(double *)(iVar3 + 0x48)" (identifier "dVar39") (= "=") (pointer_expression "*(double *)(iVar3 + 0x48)" (* "*") (cast_expression "(double *)(iVar3 + 0x48)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x48)" (( "(") (binary_expression "iVar3 + 0x48" (identifier "iVar3") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (goto_statement "goto LAB_000a5af8;" (goto "goto") (statement_identifier "LAB_000a5af8") (; ";")) (} "}")))) (expression_statement "iVar3 = uVar8 + uVar22 * 0x60;" (assignment_expression "iVar3 = uVar8 + uVar22 * 0x60" (identifier "iVar3") (= "=") (binary_expression "uVar8 + uVar22 * 0x60" (identifier "uVar8") (+ "+") (binary_expression "uVar22 * 0x60" (identifier "uVar22") (* "*") (number_literal "0x60")))) (; ";")) (expression_statement "iVar10 = uVar8 + uVar18 * 0x60;" (assignment_expression "iVar10 = uVar8 + uVar18 * 0x60" (identifier "iVar10") (= "=") (binary_expression "uVar8 + uVar18 * 0x60" (identifier "uVar8") (+ "+") (binary_expression "uVar18 * 0x60" (identifier "uVar18") (* "*") (number_literal "0x60")))) (; ";")) (expression_statement "dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));" (assignment_expression "dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58))" (identifier "dVar39") (= "=") (binary_expression "(uStack_5a0 - *(double *)(iVar3 + 0x58)) /\n                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58))" (parenthesized_expression "(uStack_5a0 - *(double *)(iVar3 + 0x58))" (( "(") (binary_expression "uStack_5a0 - *(double *)(iVar3 + 0x58)" (identifier "uStack_5a0") (- "-") (pointer_expression "*(double *)(iVar3 + 0x58)" (* "*") (cast_expression "(double *)(iVar3 + 0x58)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x58)" (( "(") (binary_expression "iVar3 + 0x58" (identifier "iVar3") (+ "+") (number_literal "0x58")) () ")"))))) () ")")) (/ "/") (parenthesized_expression "(*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58))" (( "(") (binary_expression "*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58)" (pointer_expression "*(double *)(iVar10 + 0x58)" (* "*") (cast_expression "(double *)(iVar10 + 0x58)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x58)" (( "(") (binary_expression "iVar10 + 0x58" (identifier "iVar10") (+ "+") (number_literal "0x58")) () ")")))) (- "-") (pointer_expression "*(double *)(iVar3 + 0x58)" (* "*") (cast_expression "(double *)(iVar3 + 0x58)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x58)" (( "(") (binary_expression "iVar3 + 0x58" (identifier "iVar3") (+ "+") (number_literal "0x58")) () ")"))))) () ")")))) (; ";")) (expression_statement "dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);" (assignment_expression "dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" (identifier "dVar47") (= "=") (binary_expression "(pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" (binary_expression "(pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48)" (parenthesized_expression "(pdVar29[0x881] - dVar39)" (( "(") (binary_expression "pdVar29[0x881] - dVar39" (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]")) (- "-") (identifier "dVar39")) () ")")) (* "*") (pointer_expression "*(double *)(iVar3 + 0x48)" (* "*") (cast_expression "(double *)(iVar3 + 0x48)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x48)" (( "(") (binary_expression "iVar3 + 0x48" (identifier "iVar3") (+ "+") (number_literal "0x48")) () ")"))))) (* "*") (pointer_expression "*(double *)(dStack_558._0_4_ + 0x4410)" (* "*") (cast_expression "(double *)(dStack_558._0_4_ + 0x4410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(dStack_558._0_4_ + 0x4410)" (( "(") (binary_expression "dStack_558._0_4_ + 0x4410" (field_expression "dStack_558._0_4_" (identifier "dStack_558") (. ".") (field_identifier "_0_4_")) (+ "+") (number_literal "0x4410")) () ")")))))) (; ";")) (expression_statement "dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);" (assignment_expression "dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" (identifier "dVar40") (= "=") (binary_expression "dVar39 * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" (binary_expression "dVar39 * *(double *)(iVar10 + 0x48)" (identifier "dVar39") (* "*") (pointer_expression "*(double *)(iVar10 + 0x48)" (* "*") (cast_expression "(double *)(iVar10 + 0x48)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x48)" (( "(") (binary_expression "iVar10 + 0x48" (identifier "iVar10") (+ "+") (number_literal "0x48")) () ")"))))) (* "*") (pointer_expression "*(double *)(dStack_558._0_4_ + 0x4410)" (* "*") (cast_expression "(double *)(dStack_558._0_4_ + 0x4410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(dStack_558._0_4_ + 0x4410)" (( "(") (binary_expression "dStack_558._0_4_ + 0x4410" (field_expression "dStack_558._0_4_" (identifier "dStack_558") (. ".") (field_identifier "_0_4_")) (+ "+") (number_literal "0x4410")) () ")")))))) (; ";")) (expression_statement "dVar44 = dVar47 + dVar40;" (assignment_expression "dVar44 = dVar47 + dVar40" (identifier "dVar44") (= "=") (binary_expression "dVar47 + dVar40" (identifier "dVar47") (+ "+") (identifier "dVar40"))) (; ";")) (if_statement "if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }" (if "if") (parenthesized_expression "(0.0 <= dVar44)" (( "(") (binary_expression "0.0 <= dVar44" (number_literal "0.0") (<= "<=") (identifier "dVar44")) () ")")) (compound_statement "{\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }" ({ "{") (if_statement "if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }" (if "if") (parenthesized_expression "(pdVar29[0x881] < dVar44)" (( "(") (binary_expression "pdVar29[0x881] < dVar44" (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]")) (< "<") (identifier "dVar44")) () ")")) (compound_statement "{\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6740;\n                        }" ({ "{") (expression_statement "dVar44 = pdVar29[0x881];" (assignment_expression "dVar44 = pdVar29[0x881]" (identifier "dVar44") (= "=") (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]"))) (; ";")) (goto_statement "goto LAB_000a6740;" (goto "goto") (statement_identifier "LAB_000a6740") (; ";")) (} "}"))) (if_statement "if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }" (if "if") (parenthesized_expression "(0.0 <= dVar44)" (( "(") (binary_expression "0.0 <= dVar44" (number_literal "0.0") (<= "<=") (identifier "dVar44")) () ")")) (compound_statement "{\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }" ({ "{") (expression_statement "dVar39 = dVar44;" (assignment_expression "dVar39 = dVar44" (identifier "dVar39") (= "=") (identifier "dVar44")) (; ";")) (if_statement "if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }" (if "if") (parenthesized_expression "(pdVar29[0x881] < dVar44)" (( "(") (binary_expression "pdVar29[0x881] < dVar44" (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]")) (< "<") (identifier "dVar44")) () ")")) (compound_statement "{\n                            dVar39 = pdVar29[0x881];\n                          }" ({ "{") (expression_statement "dVar39 = pdVar29[0x881];" (assignment_expression "dVar39 = pdVar29[0x881]" (identifier "dVar39") (= "=") (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]"))) (; ";")) (} "}"))) (expression_statement "dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);" (assignment_expression "dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48)" (identifier "dVar39") (= "=") (binary_expression "dVar39 * *(double *)(iStack_570 + 0x4a48)" (identifier "dVar39") (* "*") (pointer_expression "*(double *)(iStack_570 + 0x4a48)" (* "*") (cast_expression "(double *)(iStack_570 + 0x4a48)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_570 + 0x4a48)" (( "(") (binary_expression "iStack_570 + 0x4a48" (identifier "iStack_570") (+ "+") (number_literal "0x4a48")) () ")")))))) (; ";")) (if_statement "if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }" (if "if") (parenthesized_expression "(dVar44 < 0.0)" (( "(") (binary_expression "dVar44 < 0.0" (identifier "dVar44") (< "<") (number_literal "0.0")) () ")")) (compound_statement "{\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }" ({ "{") (expression_statement "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (identifier "dVar45") (= "=") (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4418")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                            dVar45 = pdVar29[0x881];\n                          }" (else "else") (compound_statement "{\n                            dVar45 = pdVar29[0x881];\n                          }" ({ "{") (expression_statement "dVar45 = pdVar29[0x881];" (assignment_expression "dVar45 = pdVar29[0x881]" (identifier "dVar45") (= "=") (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }" (else "else") (compound_statement "{\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }" ({ "{") (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" (identifier "dVar39") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (identifier "dVar45") (= "=") (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4418")) () ")"))))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }" (else "else") (compound_statement "{\n                        dVar44 = 0.0;\nLAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }" ({ "{") (expression_statement "dVar44 = 0.0;" (assignment_expression "dVar44 = 0.0" (identifier "dVar44") (= "=") (number_literal "0.0")) (; ";")) (labeled_statement "LAB_000a6740:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);" (statement_identifier "LAB_000a6740") (: ":") (expression_statement "dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);" (assignment_expression "dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48)" (identifier "dVar39") (= "=") (binary_expression "dVar44 * *(double *)(iStack_570 + 0x4a48)" (identifier "dVar44") (* "*") (pointer_expression "*(double *)(iStack_570 + 0x4a48)" (* "*") (cast_expression "(double *)(iStack_570 + 0x4a48)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_570 + 0x4a48)" (( "(") (binary_expression "iStack_570 + 0x4a48" (identifier "iStack_570") (+ "+") (number_literal "0x4a48")) () ")")))))) (; ";"))) (expression_statement "dVar45 = pdVar29[0x881];" (assignment_expression "dVar45 = pdVar29[0x881]" (identifier "dVar45") (= "=") (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]"))) (; ";")) (} "}")))) (if_statement "if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }" (if "if") (parenthesized_expression "(unaff_s6[0x879] <= dVar45 * dVar44)" (( "(") (binary_expression "unaff_s6[0x879] <= dVar45 * dVar44" (subscript_expression "unaff_s6[0x879]" (identifier "unaff_s6") ([ "[") (number_literal "0x879") (] "]")) (<= "<=") (binary_expression "dVar45 * dVar44" (identifier "dVar45") (* "*") (identifier "dVar44"))) () ")")) (compound_statement "{\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }" ({ "{") (expression_statement "dVar45 = pdVar29[0x881] / dVar44;" (assignment_expression "dVar45 = pdVar29[0x881] / dVar44" (identifier "dVar45") (= "=") (binary_expression "pdVar29[0x881] / dVar44" (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]")) (/ "/") (identifier "dVar44"))) (; ";")) (} "}")) (else_clause "else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }" (else "else") (compound_statement "{\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }" ({ "{") (expression_statement "dVar45 = dVar45 / unaff_s6[0x879];" (assignment_expression "dVar45 = dVar45 / unaff_s6[0x879]" (identifier "dVar45") (= "=") (binary_expression "dVar45 / unaff_s6[0x879]" (identifier "dVar45") (/ "/") (subscript_expression "unaff_s6[0x879]" (identifier "unaff_s6") ([ "[") (number_literal "0x879") (] "]")))) (; ";")) (} "}")))) (expression_statement "in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;" (assignment_expression "in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45" (identifier "in_f20_21") (= "=") (binary_expression "(dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45" (parenthesized_expression "(dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28))" (( "(") (binary_expression "dVar47 * *(double *)(iVar3 + 0x28) +\n                                  dVar40 * *(double *)(iVar10 + 0x28)" (binary_expression "dVar47 * *(double *)(iVar3 + 0x28)" (identifier "dVar47") (* "*") (pointer_expression "*(double *)(iVar3 + 0x28)" (* "*") (cast_expression "(double *)(iVar3 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x28)" (( "(") (binary_expression "iVar3 + 0x28" (identifier "iVar3") (+ "+") (number_literal "0x28")) () ")"))))) (+ "+") (binary_expression "dVar40 * *(double *)(iVar10 + 0x28)" (identifier "dVar40") (* "*") (pointer_expression "*(double *)(iVar10 + 0x28)" (* "*") (cast_expression "(double *)(iVar10 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x28)" (( "(") (binary_expression "iVar10 + 0x28" (identifier "iVar10") (+ "+") (number_literal "0x28")) () ")")))))) () ")")) (* "*") (identifier "dVar45"))) (; ";")) (expression_statement "in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;" (assignment_expression "in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45" (identifier "in_f22_23") (= "=") (binary_expression "(dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45" (parenthesized_expression "(dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30))" (( "(") (binary_expression "dVar47 * *(double *)(iVar3 + 0x30) +\n                                  dVar40 * *(double *)(iVar10 + 0x30)" (binary_expression "dVar47 * *(double *)(iVar3 + 0x30)" (identifier "dVar47") (* "*") (pointer_expression "*(double *)(iVar3 + 0x30)" (* "*") (cast_expression "(double *)(iVar3 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x30)" (( "(") (binary_expression "iVar3 + 0x30" (identifier "iVar3") (+ "+") (number_literal "0x30")) () ")"))))) (+ "+") (binary_expression "dVar40 * *(double *)(iVar10 + 0x30)" (identifier "dVar40") (* "*") (pointer_expression "*(double *)(iVar10 + 0x30)" (* "*") (cast_expression "(double *)(iVar10 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x30)" (( "(") (binary_expression "iVar10 + 0x30" (identifier "iVar10") (+ "+") (number_literal "0x30")) () ")")))))) () ")")) (* "*") (identifier "dVar45"))) (; ";")) (expression_statement "in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;" (assignment_expression "in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45" (identifier "in_f24_25") (= "=") (binary_expression "(dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45" (parenthesized_expression "(dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38))" (( "(") (binary_expression "dVar47 * *(double *)(iVar3 + 0x38) +\n                                  dVar40 * *(double *)(iVar10 + 0x38)" (binary_expression "dVar47 * *(double *)(iVar3 + 0x38)" (identifier "dVar47") (* "*") (pointer_expression "*(double *)(iVar3 + 0x38)" (* "*") (cast_expression "(double *)(iVar3 + 0x38)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x38)" (( "(") (binary_expression "iVar3 + 0x38" (identifier "iVar3") (+ "+") (number_literal "0x38")) () ")"))))) (+ "+") (binary_expression "dVar40 * *(double *)(iVar10 + 0x38)" (identifier "dVar40") (* "*") (pointer_expression "*(double *)(iVar10 + 0x38)" (* "*") (cast_expression "(double *)(iVar10 + 0x38)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x38)" (( "(") (binary_expression "iVar10 + 0x38" (identifier "iVar10") (+ "+") (number_literal "0x38")) () ")")))))) () ")")) (* "*") (identifier "dVar45"))) (; ";")) (if_statement "if (*(int *)(iVar10 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }" (if "if") (parenthesized_expression "(*(int *)(iVar10 + 4) == 2)" (( "(") (binary_expression "*(int *)(iVar10 + 4) == 2" (pointer_expression "*(int *)(iVar10 + 4)" (* "*") (cast_expression "(int *)(iVar10 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 4)" (( "(") (binary_expression "iVar10 + 4" (identifier "iVar10") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;\n                      }" ({ "{") (expression_statement "dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;" (assignment_expression "dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45" (identifier "dStack_590") (= "=") (binary_expression "(dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45" (parenthesized_expression "(dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40))" (( "(") (binary_expression "dVar47 * *(double *)(iVar3 + 0x40) +\n                                     dVar40 * *(double *)(iVar10 + 0x40)" (binary_expression "dVar47 * *(double *)(iVar3 + 0x40)" (identifier "dVar47") (* "*") (pointer_expression "*(double *)(iVar3 + 0x40)" (* "*") (cast_expression "(double *)(iVar3 + 0x40)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x40)" (( "(") (binary_expression "iVar3 + 0x40" (identifier "iVar3") (+ "+") (number_literal "0x40")) () ")"))))) (+ "+") (binary_expression "dVar40 * *(double *)(iVar10 + 0x40)" (identifier "dVar40") (* "*") (pointer_expression "*(double *)(iVar10 + 0x40)" (* "*") (cast_expression "(double *)(iVar10 + 0x40)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x40)" (( "(") (binary_expression "iVar10 + 0x40" (identifier "iVar10") (+ "+") (number_literal "0x40")) () ")")))))) () ")")) (* "*") (identifier "dVar45"))) (; ";")) (} "}"))) (goto_statement "goto LAB_000a5af8;" (goto "goto") (statement_identifier "LAB_000a5af8") (; ";")) (} "}"))) (} "}"))) (} "}"))) (labeled_statement "LAB_000a6694:\n                uVar26 = puVar32[0xe];" (statement_identifier "LAB_000a6694") (: ":") (expression_statement "uVar26 = puVar32[0xe];" (assignment_expression "uVar26 = puVar32[0xe]" (identifier "uVar26") (= "=") (subscript_expression "puVar32[0xe]" (identifier "puVar32") ([ "[") (number_literal "0xe") (] "]"))) (; ";"))) (expression_statement "in_f20_21 = *(double *)(uVar26 + 0x28);" (assignment_expression "in_f20_21 = *(double *)(uVar26 + 0x28)" (identifier "in_f20_21") (= "=") (pointer_expression "*(double *)(uVar26 + 0x28)" (* "*") (cast_expression "(double *)(uVar26 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar26 + 0x28)" (( "(") (binary_expression "uVar26 + 0x28" (identifier "uVar26") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "in_f22_23 = *(double *)(uVar26 + 0x30);" (assignment_expression "in_f22_23 = *(double *)(uVar26 + 0x30)" (identifier "in_f22_23") (= "=") (pointer_expression "*(double *)(uVar26 + 0x30)" (* "*") (cast_expression "(double *)(uVar26 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar26 + 0x30)" (( "(") (binary_expression "uVar26 + 0x30" (identifier "uVar26") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "in_f24_25 = *(double *)(uVar26 + 0x38);" (assignment_expression "in_f24_25 = *(double *)(uVar26 + 0x38)" (identifier "in_f24_25") (= "=") (pointer_expression "*(double *)(uVar26 + 0x38)" (* "*") (cast_expression "(double *)(uVar26 + 0x38)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar26 + 0x38)" (( "(") (binary_expression "uVar26 + 0x38" (identifier "uVar26") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "dStack_590 = *(double *)(uVar26 + 0x40);" (assignment_expression "dStack_590 = *(double *)(uVar26 + 0x40)" (identifier "dStack_590") (= "=") (pointer_expression "*(double *)(uVar26 + 0x40)" (* "*") (cast_expression "(double *)(uVar26 + 0x40)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar26 + 0x40)" (( "(") (binary_expression "uVar26 + 0x40" (identifier "uVar26") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "dVar39 = *(double *)(uVar26 + 0x48);" (assignment_expression "dVar39 = *(double *)(uVar26 + 0x48)" (identifier "dVar39") (= "=") (pointer_expression "*(double *)(uVar26 + 0x48)" (* "*") (cast_expression "(double *)(uVar26 + 0x48)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar26 + 0x48)" (( "(") (binary_expression "uVar26 + 0x48" (identifier "uVar26") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (} "}")) (else_clause "else if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }" (else "else") (if_statement "if (unaff_s7 == 3) {\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }" (if "if") (parenthesized_expression "(unaff_s7 == 3)" (( "(") (binary_expression "unaff_s7 == 3" (identifier "unaff_s7") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));\n                if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }\nLAB_000a5f08:\n                uVar26 = puVar32[0xf];\n                if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }\nLAB_000a5db0:\n                uVar26 = puVar32[0xe];\n                in_f20_21 = *(double *)(uVar26 + 0x28);\n                in_f22_23 = *(double *)(uVar26 + 0x30);\n                in_f24_25 = *(double *)(uVar26 + 0x38);\n                dStack_590 = *(double *)(uVar26 + 0x40);\n                dVar39 = *(double *)(uVar26 + 0x48);\n              }" ({ "{") (expression_statement "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0))" (identifier "dVar39") (= "=") (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0))" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(pcStack_5a8 + -0x7c78))\n                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7c78))" (( "(") (pointer_expression "**(code **)(pcStack_5a8 + -0x7c78)" (* "*") (pointer_expression "*(code **)(pcStack_5a8 + -0x7c78)" (* "*") (cast_expression "(code **)(pcStack_5a8 + -0x7c78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7c78)" (( "(") (binary_expression "pcStack_5a8 + -0x7c78" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7c78")) () ")"))))) () ")")) (argument_list "(*pdStack_588 - *(double *)(iStack_584 + 0x43d0))" (( "(") (binary_expression "*pdStack_588 - *(double *)(iStack_584 + 0x43d0)" (pointer_expression "*pdStack_588" (* "*") (identifier "pdStack_588")) (- "-") (pointer_expression "*(double *)(iStack_584 + 0x43d0)" (* "*") (cast_expression "(double *)(iStack_584 + 0x43d0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_584 + 0x43d0)" (( "(") (binary_expression "iStack_584 + 0x43d0" (identifier "iStack_584") (+ "+") (number_literal "0x43d0")) () ")"))))) () ")"))))) (; ";")) (if_statement "if (((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)) {\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }\n                else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }" (if "if") (parenthesized_expression "(((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39))" (( "(") (binary_expression "((int)dVar39 == iVar28) &&\n                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)" (parenthesized_expression "((int)dVar39 == iVar28)" (( "(") (binary_expression "(int)dVar39 == iVar28" (cast_expression "(int)dVar39" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar39")) (== "==") (identifier "iVar28")) () ")")) (&& "&&") (parenthesized_expression "(dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39)" (( "(") (comma_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),\n                   puVar35 == (undefined1 *)(int)dVar39" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" (identifier "dVar39") (= "=") (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(pcStack_5a8 + -0x7c78))\n                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7c78))" (( "(") (pointer_expression "**(code **)(pcStack_5a8 + -0x7c78)" (* "*") (pointer_expression "*(code **)(pcStack_5a8 + -0x7c78)" (* "*") (cast_expression "(code **)(pcStack_5a8 + -0x7c78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7c78)" (( "(") (binary_expression "pcStack_5a8 + -0x7c78" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7c78")) () ")"))))) () ")")) (argument_list "(pdStack_588[1] - *(double *)(iStack_584 + 0x43d0))" (( "(") (binary_expression "pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)" (subscript_expression "pdStack_588[1]" (identifier "pdStack_588") ([ "[") (number_literal "1") (] "]")) (- "-") (pointer_expression "*(double *)(iStack_584 + 0x43d0)" (* "*") (cast_expression "(double *)(iStack_584 + 0x43d0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_584 + 0x43d0)" (( "(") (binary_expression "iStack_584 + 0x43d0" (identifier "iStack_584") (+ "+") (number_literal "0x43d0")) () ")"))))) () ")"))))) (, ",") (binary_expression "puVar35 == (undefined1 *)(int)dVar39" (identifier "puVar35") (== "==") (cast_expression "(undefined1 *)(int)dVar39" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)dVar39" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar39"))))) () ")"))) () ")")) (compound_statement "{\n                  dVar40 = 0.0;\n                  bVar1 = false;\n                }" ({ "{") (expression_statement "dVar40 = 0.0;" (assignment_expression "dVar40 = 0.0" (identifier "dVar40") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (} "}")) (else_clause "else {\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }" (else "else") (compound_statement "{\n                  if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }\n                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  uStack_5a0 = dVar39;\n                  if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }\n                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];\n                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);\n                }" ({ "{") (if_statement "if (*puVar32 < 2) {\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }\n                  else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }" (if "if") (parenthesized_expression "(*puVar32 < 2)" (( "(") (binary_expression "*puVar32 < 2" (pointer_expression "*puVar32" (* "*") (identifier "puVar32")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);\n                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);\n                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);\n                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);\n                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;\n                    uStack_5a0 = SQRT(dVar39);\n                    if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    dVar39 = dVar44 * dVar44 + dVar39;\n                    dVar42 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }\n                    dVar42 = uStack_5a0 * dVar42;\n                    if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }\n                    if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }\n                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;\nLAB_000a5e90:\n                    uVar26 = *puVar32;\nLAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }\n                  }" ({ "{") (expression_statement "dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);" (assignment_expression "dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6)" (identifier "dVar44") (= "=") (binary_expression "*(double *)(puVar32 + 10) - *(double *)(puVar32 + 6)" (pointer_expression "*(double *)(puVar32 + 10)" (* "*") (cast_expression "(double *)(puVar32 + 10)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 10)" (( "(") (binary_expression "puVar32 + 10" (identifier "puVar32") (+ "+") (number_literal "10")) () ")")))) (- "-") (pointer_expression "*(double *)(puVar32 + 6)" (* "*") (cast_expression "(double *)(puVar32 + 6)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 6)" (( "(") (binary_expression "puVar32 + 6" (identifier "puVar32") (+ "+") (number_literal "6")) () ")")))))) (; ";")) (expression_statement "dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);" (assignment_expression "dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8)" (identifier "dVar40") (= "=") (binary_expression "*(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8)" (pointer_expression "*(double *)(puVar32 + 0xc)" (* "*") (cast_expression "(double *)(puVar32 + 0xc)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0xc)" (( "(") (binary_expression "puVar32 + 0xc" (identifier "puVar32") (+ "+") (number_literal "0xc")) () ")")))) (- "-") (pointer_expression "*(double *)(puVar32 + 8)" (* "*") (cast_expression "(double *)(puVar32 + 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 8)" (( "(") (binary_expression "puVar32 + 8" (identifier "puVar32") (+ "+") (number_literal "8")) () ")")))))) (; ";")) (expression_statement "dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);" (assignment_expression "dVar45 = (double)iVar28 - *(double *)(puVar32 + 6)" (identifier "dVar45") (= "=") (binary_expression "(double)iVar28 - *(double *)(puVar32 + 6)" (cast_expression "(double)iVar28" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar28")) (- "-") (pointer_expression "*(double *)(puVar32 + 6)" (* "*") (cast_expression "(double *)(puVar32 + 6)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 6)" (( "(") (binary_expression "puVar32 + 6" (identifier "puVar32") (+ "+") (number_literal "6")) () ")")))))) (; ";")) (expression_statement "dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);" (assignment_expression "dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8)" (identifier "dVar47") (= "=") (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 8)" (cast_expression "(double)(int)puVar35" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)puVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar35"))) (- "-") (pointer_expression "*(double *)(puVar32 + 8)" (* "*") (cast_expression "(double *)(puVar32 + 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 8)" (( "(") (binary_expression "puVar32 + 8" (identifier "puVar32") (+ "+") (number_literal "8")) () ")")))))) (; ";")) (expression_statement "dVar39 = dVar45 * dVar45 + dVar47 * dVar47;" (assignment_expression "dVar39 = dVar45 * dVar45 + dVar47 * dVar47" (identifier "dVar39") (= "=") (binary_expression "dVar45 * dVar45 + dVar47 * dVar47" (binary_expression "dVar45 * dVar45" (identifier "dVar45") (* "*") (identifier "dVar45")) (+ "+") (binary_expression "dVar47 * dVar47" (identifier "dVar47") (* "*") (identifier "dVar47")))) (; ";")) (expression_statement "uStack_5a0 = SQRT(dVar39);" (assignment_expression "uStack_5a0 = SQRT(dVar39)" (identifier "uStack_5a0") (= "=") (call_expression "SQRT(dVar39)" (identifier "SQRT") (argument_list "(dVar39)" (( "(") (identifier "dVar39") () ")")))) (; ";")) (if_statement "if (0.0 <= dVar39) {\n                      dVar39 = dVar40 * dVar40;\n                    }\n                    else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }" (if "if") (parenthesized_expression "(0.0 <= dVar39)" (( "(") (binary_expression "0.0 <= dVar39" (number_literal "0.0") (<= "<=") (identifier "dVar39")) () ")")) (compound_statement "{\n                      dVar39 = dVar40 * dVar40;\n                    }" ({ "{") (expression_statement "dVar39 = dVar40 * dVar40;" (assignment_expression "dVar39 = dVar40 * dVar40" (identifier "dVar39") (= "=") (binary_expression "dVar40 * dVar40" (identifier "dVar40") (* "*") (identifier "dVar40"))) (; ";")) (} "}")) (else_clause "else {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }" (else "else") (compound_statement "{\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      dVar39 = dVar40 * dVar40;\n                    }" ({ "{") (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" (( "(") (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" (* "*") (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" (* "*") (cast_expression "(code **)(pcStack_5a8 + -0x7418)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7418)" (( "(") (binary_expression "pcStack_5a8 + -0x7418" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7418")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "dVar39 = dVar40 * dVar40;" (assignment_expression "dVar39 = dVar40 * dVar40" (identifier "dVar39") (= "=") (binary_expression "dVar40 * dVar40" (identifier "dVar40") (* "*") (identifier "dVar40"))) (; ";")) (} "}")))) (expression_statement "dVar39 = dVar44 * dVar44 + dVar39;" (assignment_expression "dVar39 = dVar44 * dVar44 + dVar39" (identifier "dVar39") (= "=") (binary_expression "dVar44 * dVar44 + dVar39" (binary_expression "dVar44 * dVar44" (identifier "dVar44") (* "*") (identifier "dVar44")) (+ "+") (identifier "dVar39"))) (; ";")) (expression_statement "dVar42 = SQRT(dVar39);" (assignment_expression "dVar42 = SQRT(dVar39)" (identifier "dVar42") (= "=") (call_expression "SQRT(dVar39)" (identifier "SQRT") (argument_list "(dVar39)" (( "(") (identifier "dVar39") () ")")))) (; ";")) (if_statement "if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }" (if "if") (parenthesized_expression "(dVar39 < 0.0)" (( "(") (binary_expression "dVar39 < 0.0" (identifier "dVar39") (< "<") (number_literal "0.0")) () ")")) (compound_statement "{\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                    }" ({ "{") (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" (( "(") (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" (* "*") (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" (* "*") (cast_expression "(code **)(pcStack_5a8 + -0x7418)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7418)" (( "(") (binary_expression "pcStack_5a8 + -0x7418" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7418")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "dVar42 = uStack_5a0 * dVar42;" (assignment_expression "dVar42 = uStack_5a0 * dVar42" (identifier "dVar42") (= "=") (binary_expression "uStack_5a0 * dVar42" (identifier "uStack_5a0") (* "*") (identifier "dVar42"))) (; ";")) (if_statement "if (0.0 <= dVar42) {\n                      dVar39 = pdVar29[0x881];\n                    }\n                    else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" (if "if") (parenthesized_expression "(0.0 <= dVar42)" (( "(") (binary_expression "0.0 <= dVar42" (number_literal "0.0") (<= "<=") (identifier "dVar42")) () ")")) (compound_statement "{\n                      dVar39 = pdVar29[0x881];\n                    }" ({ "{") (expression_statement "dVar39 = pdVar29[0x881];" (assignment_expression "dVar39 = pdVar29[0x881]" (identifier "dVar39") (= "=") (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" (else "else") (compound_statement "{\n                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                    }" ({ "{") (expression_statement "dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (identifier "dVar39") (= "=") (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4418")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (unaff_s6[0x879] <= dVar42 * dVar39) {\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }\n                    else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }" (if "if") (parenthesized_expression "(unaff_s6[0x879] <= dVar42 * dVar39)" (( "(") (binary_expression "unaff_s6[0x879] <= dVar42 * dVar39" (subscript_expression "unaff_s6[0x879]" (identifier "unaff_s6") ([ "[") (number_literal "0x879") (] "]")) (<= "<=") (binary_expression "dVar42 * dVar39" (identifier "dVar42") (* "*") (identifier "dVar39"))) () ")")) (compound_statement "{\n                      dVar39 = pdVar29[0x881] / dVar42;\n                    }" ({ "{") (expression_statement "dVar39 = pdVar29[0x881] / dVar42;" (assignment_expression "dVar39 = pdVar29[0x881] / dVar42" (identifier "dVar39") (= "=") (binary_expression "pdVar29[0x881] / dVar42" (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]")) (/ "/") (identifier "dVar42"))) (; ";")) (} "}")) (else_clause "else {\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }" (else "else") (compound_statement "{\n                      dVar39 = dVar39 / unaff_s6[0x879];\n                    }" ({ "{") (expression_statement "dVar39 = dVar39 / unaff_s6[0x879];" (assignment_expression "dVar39 = dVar39 / unaff_s6[0x879]" (identifier "dVar39") (= "=") (binary_expression "dVar39 / unaff_s6[0x879]" (identifier "dVar39") (/ "/") (subscript_expression "unaff_s6[0x879]" (identifier "unaff_s6") ([ "[") (number_literal "0x879") (] "]")))) (; ";")) (} "}")))) (expression_statement "in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;" (assignment_expression "in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0" (identifier "in_f26_27") (= "=") (binary_expression "(dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0" (binary_expression "(dVar44 * dVar45 + dVar40 * dVar47) * dVar39" (parenthesized_expression "(dVar44 * dVar45 + dVar40 * dVar47)" (( "(") (binary_expression "dVar44 * dVar45 + dVar40 * dVar47" (binary_expression "dVar44 * dVar45" (identifier "dVar44") (* "*") (identifier "dVar45")) (+ "+") (binary_expression "dVar40 * dVar47" (identifier "dVar40") (* "*") (identifier "dVar47"))) () ")")) (* "*") (identifier "dVar39")) (* "*") (identifier "uStack_5a0"))) (; ";")) (labeled_statement "LAB_000a5e90:\n                    uVar26 = *puVar32;" (statement_identifier "LAB_000a5e90") (: ":") (expression_statement "uVar26 = *puVar32;" (assignment_expression "uVar26 = *puVar32" (identifier "uVar26") (= "=") (pointer_expression "*puVar32" (* "*") (identifier "puVar32"))) (; ";"))) (labeled_statement "LAB_000a5e94:\n                    if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }" (statement_identifier "LAB_000a5e94") (: ":") (if_statement "if (uVar26 == 1) {\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }" (if "if") (parenthesized_expression "(uVar26 == 1)" (( "(") (binary_expression "uVar26 == 1" (identifier "uVar26") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      uStack_5a0 = dVar39;\n                      if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }\n                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];\n                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }\n                      uStack_5a0 = dVar40 * uStack_5a0;\n                      goto LAB_000a5f08;\n                    }" ({ "{") (expression_statement "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580)" (identifier "dVar39") (= "=") (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580)" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x6ee0))" (( "(") (pointer_expression "**(code **)(pcStack_5a8 + -0x6ee0)" (* "*") (pointer_expression "*(code **)(pcStack_5a8 + -0x6ee0)" (* "*") (cast_expression "(code **)(pcStack_5a8 + -0x6ee0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x6ee0)" (( "(") (binary_expression "pcStack_5a8 + -0x6ee0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x6ee0")) () ")"))))) () ")")) (argument_list "(in_f26_27,dStack_580)" (( "(") (identifier "in_f26_27") (, ",") (identifier "dStack_580") () ")"))))) (; ";")) (expression_statement "uStack_5a0 = dVar39;" (assignment_expression "uStack_5a0 = dVar39" (identifier "uStack_5a0") (= "=") (identifier "dVar39")) (; ";")) (if_statement "if (0.0 <= dVar39) {\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }\n                      else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }" (if "if") (parenthesized_expression "(0.0 <= dVar39)" (( "(") (binary_expression "0.0 <= dVar39" (number_literal "0.0") (<= "<=") (identifier "dVar39")) () ")")) (compound_statement "{\n                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);\n                      }" ({ "{") (expression_statement "dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);" (assignment_expression "dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580)" (identifier "dVar40") (= "=") (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580)" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x6ee0))" (( "(") (pointer_expression "**(code **)(pcStack_5a8 + -0x6ee0)" (* "*") (pointer_expression "*(code **)(pcStack_5a8 + -0x6ee0)" (* "*") (cast_expression "(code **)(pcStack_5a8 + -0x6ee0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x6ee0)" (( "(") (binary_expression "pcStack_5a8 + -0x6ee0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x6ee0")) () ")"))))) () ")")) (argument_list "(in_f26_27,dStack_580)" (( "(") (identifier "in_f26_27") (, ",") (identifier "dStack_580") () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }" (else "else") (compound_statement "{\n                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;\n                        uStack_5a0._4_4_ = SUB84(dVar39,0);\n                        uStack_524 = uStack_5a0._4_4_;\n                        dVar40 = dStack_580;\n                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);\n                        dVar40 = dVar40 - dVar39;\n                      }" ({ "{") (expression_statement "uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);" (assignment_expression "uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20)" (field_expression "uStack_5a0._0_4_" (identifier "uStack_5a0") (. ".") (field_identifier "_0_4_")) (= "=") (call_expression "(uint)((ulonglong)dVar39 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)dVar39 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar39 >> 0x20" (cast_expression "(ulonglong)dVar39" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar39")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;" (assignment_expression "uStack_528 = uStack_5a0._0_4_ ^ 0x80000000" (identifier "uStack_528") (= "=") (binary_expression "uStack_5a0._0_4_ ^ 0x80000000" (field_expression "uStack_5a0._0_4_" (identifier "uStack_5a0") (. ".") (field_identifier "_0_4_")) (^ "^") (number_literal "0x80000000"))) (; ";")) (expression_statement "uStack_5a0._4_4_ = SUB84(dVar39,0);" (assignment_expression "uStack_5a0._4_4_ = SUB84(dVar39,0)" (field_expression "uStack_5a0._4_4_" (identifier "uStack_5a0") (. ".") (field_identifier "_4_4_")) (= "=") (call_expression "SUB84(dVar39,0)" (identifier "SUB84") (argument_list "(dVar39,0)" (( "(") (identifier "dVar39") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "uStack_524 = uStack_5a0._4_4_;" (assignment_expression "uStack_524 = uStack_5a0._4_4_" (identifier "uStack_524") (= "=") (field_expression "uStack_5a0._4_4_" (identifier "uStack_5a0") (. ".") (field_identifier "_4_4_"))) (; ";")) (expression_statement "dVar40 = dStack_580;" (assignment_expression "dVar40 = dStack_580" (identifier "dVar40") (= "=") (identifier "dStack_580")) (; ";")) (expression_statement "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580)" (identifier "dVar39") (= "=") (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580)" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x6ee0))" (( "(") (pointer_expression "**(code **)(pcStack_5a8 + -0x6ee0)" (* "*") (pointer_expression "*(code **)(pcStack_5a8 + -0x6ee0)" (* "*") (cast_expression "(code **)(pcStack_5a8 + -0x6ee0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x6ee0)" (( "(") (binary_expression "pcStack_5a8 + -0x6ee0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x6ee0")) () ")"))))) () ")")) (argument_list "(-dVar39,dStack_580)" (( "(") (unary_expression "-dVar39" (- "-") (identifier "dVar39")) (, ",") (identifier "dStack_580") () ")"))))) (; ";")) (expression_statement "dVar40 = dVar40 - dVar39;" (assignment_expression "dVar40 = dVar40 - dVar39" (identifier "dVar40") (= "=") (binary_expression "dVar40 - dVar39" (identifier "dVar40") (- "-") (identifier "dVar39"))) (; ";")) (} "}")))) (expression_statement "bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];" (assignment_expression "bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881]" (identifier "bVar1") (= "=") (binary_expression "dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881]" (binary_expression "dVar40 < dStack_580" (identifier "dVar40") (< "<") (identifier "dStack_580")) (&& "&&") (binary_expression "dStack_580 < dVar40 + pdVar29[0x881]" (identifier "dStack_580") (< "<") (binary_expression "dVar40 + pdVar29[0x881]" (identifier "dVar40") (+ "+") (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]")))))) (; ";")) (if_statement "if (unaff_s6[0x879] <= dStack_580 * dStack_578) {\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }\n                      else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }" (if "if") (parenthesized_expression "(unaff_s6[0x879] <= dStack_580 * dStack_578)" (( "(") (binary_expression "unaff_s6[0x879] <= dStack_580 * dStack_578" (subscript_expression "unaff_s6[0x879]" (identifier "unaff_s6") ([ "[") (number_literal "0x879") (] "]")) (<= "<=") (binary_expression "dStack_580 * dStack_578" (identifier "dStack_580") (* "*") (identifier "dStack_578"))) () ")")) (compound_statement "{\n                        uStack_5a0 = pdVar29[0x881] / dStack_580;\n                      }" ({ "{") (expression_statement "uStack_5a0 = pdVar29[0x881] / dStack_580;" (assignment_expression "uStack_5a0 = pdVar29[0x881] / dStack_580" (identifier "uStack_5a0") (= "=") (binary_expression "pdVar29[0x881] / dStack_580" (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]")) (/ "/") (identifier "dStack_580"))) (; ";")) (} "}")) (else_clause "else {\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }" (else "else") (compound_statement "{\n                        uStack_5a0 = dStack_578 / unaff_s6[0x879];\n                      }" ({ "{") (expression_statement "uStack_5a0 = dStack_578 / unaff_s6[0x879];" (assignment_expression "uStack_5a0 = dStack_578 / unaff_s6[0x879]" (identifier "uStack_5a0") (= "=") (binary_expression "dStack_578 / unaff_s6[0x879]" (identifier "dStack_578") (/ "/") (subscript_expression "unaff_s6[0x879]" (identifier "unaff_s6") ([ "[") (number_literal "0x879") (] "]")))) (; ";")) (} "}")))) (expression_statement "uStack_5a0 = dVar40 * uStack_5a0;" (assignment_expression "uStack_5a0 = dVar40 * uStack_5a0" (identifier "uStack_5a0") (= "=") (binary_expression "dVar40 * uStack_5a0" (identifier "dVar40") (* "*") (identifier "uStack_5a0"))) (; ";")) (goto_statement "goto LAB_000a5f08;" (goto "goto") (statement_identifier "LAB_000a5f08") (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }" (else "else") (compound_statement "{\n                    if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }\n                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));\n                    in_f26_27 = SQRT(dVar39);\n                    if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }\n                  }" ({ "{") (if_statement "if (*puVar32 != 2) {\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }" (if "if") (parenthesized_expression "(*puVar32 != 2)" (( "(") (binary_expression "*puVar32 != 2" (pointer_expression "*puVar32" (* "*") (identifier "puVar32")) (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n                      in_f26_27 = 0.0;\n                      goto LAB_000a5e90;\n                    }" ({ "{") (expression_statement "in_f26_27 = 0.0;" (assignment_expression "in_f26_27 = 0.0" (identifier "in_f26_27") (= "=") (number_literal "0.0")) (; ";")) (goto_statement "goto LAB_000a5e90;" (goto "goto") (statement_identifier "LAB_000a5e90") (; ";")) (} "}"))) (expression_statement "dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));" (assignment_expression "dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (identifier "dVar39") (= "=") (binary_expression "((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (binary_expression "((double)iVar28 - *(double *)(puVar32 + 0x12)) *\n                             ((double)iVar28 - *(double *)(puVar32 + 0x12))" (parenthesized_expression "((double)iVar28 - *(double *)(puVar32 + 0x12))" (( "(") (binary_expression "(double)iVar28 - *(double *)(puVar32 + 0x12)" (cast_expression "(double)iVar28" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar28")) (- "-") (pointer_expression "*(double *)(puVar32 + 0x12)" (* "*") (cast_expression "(double *)(puVar32 + 0x12)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x12)" (( "(") (binary_expression "puVar32 + 0x12" (identifier "puVar32") (+ "+") (number_literal "0x12")) () ")"))))) () ")")) (* "*") (parenthesized_expression "((double)iVar28 - *(double *)(puVar32 + 0x12))" (( "(") (binary_expression "(double)iVar28 - *(double *)(puVar32 + 0x12)" (cast_expression "(double)iVar28" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar28")) (- "-") (pointer_expression "*(double *)(puVar32 + 0x12)" (* "*") (cast_expression "(double *)(puVar32 + 0x12)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x12)" (( "(") (binary_expression "puVar32 + 0x12" (identifier "puVar32") (+ "+") (number_literal "0x12")) () ")"))))) () ")"))) (+ "+") (binary_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *\n                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (parenthesized_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (( "(") (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 0x14)" (cast_expression "(double)(int)puVar35" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)puVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar35"))) (- "-") (pointer_expression "*(double *)(puVar32 + 0x14)" (* "*") (cast_expression "(double *)(puVar32 + 0x14)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x14)" (( "(") (binary_expression "puVar32 + 0x14" (identifier "puVar32") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (* "*") (parenthesized_expression "((double)(int)puVar35 - *(double *)(puVar32 + 0x14))" (( "(") (binary_expression "(double)(int)puVar35 - *(double *)(puVar32 + 0x14)" (cast_expression "(double)(int)puVar35" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)puVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar35"))) (- "-") (pointer_expression "*(double *)(puVar32 + 0x14)" (* "*") (cast_expression "(double *)(puVar32 + 0x14)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x14)" (( "(") (binary_expression "puVar32 + 0x14" (identifier "puVar32") (+ "+") (number_literal "0x14")) () ")"))))) () ")"))))) (; ";")) (expression_statement "in_f26_27 = SQRT(dVar39);" (assignment_expression "in_f26_27 = SQRT(dVar39)" (identifier "in_f26_27") (= "=") (call_expression "SQRT(dVar39)" (identifier "SQRT") (argument_list "(dVar39)" (( "(") (identifier "dVar39") () ")")))) (; ";")) (if_statement "if (dVar39 < 0.0) {\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }" (if "if") (parenthesized_expression "(dVar39 < 0.0)" (( "(") (binary_expression "dVar39 < 0.0" (identifier "dVar39") (< "<") (number_literal "0.0")) () ")")) (compound_statement "{\n                      (**(code **)(pcStack_5a8 + -0x7418))();\n                      uVar26 = *puVar32;\n                      goto LAB_000a5e94;\n                    }" ({ "{") (expression_statement "(**(code **)(pcStack_5a8 + -0x7418))();" (call_expression "(**(code **)(pcStack_5a8 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x7418))" (( "(") (pointer_expression "**(code **)(pcStack_5a8 + -0x7418)" (* "*") (pointer_expression "*(code **)(pcStack_5a8 + -0x7418)" (* "*") (cast_expression "(code **)(pcStack_5a8 + -0x7418)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7418)" (( "(") (binary_expression "pcStack_5a8 + -0x7418" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7418")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar26 = *puVar32;" (assignment_expression "uVar26 = *puVar32" (identifier "uVar26") (= "=") (pointer_expression "*puVar32" (* "*") (identifier "puVar32"))) (; ";")) (goto_statement "goto LAB_000a5e94;" (goto "goto") (statement_identifier "LAB_000a5e94") (; ";")) (} "}"))) (} "}")))) (expression_statement "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a))" (identifier "dVar39") (= "=") (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a))" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(pcStack_5a8 + -0x6ee0))\n                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x6ee0))" (( "(") (pointer_expression "**(code **)(pcStack_5a8 + -0x6ee0)" (* "*") (pointer_expression "*(code **)(pcStack_5a8 + -0x6ee0)" (* "*") (cast_expression "(code **)(pcStack_5a8 + -0x6ee0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x6ee0)" (( "(") (binary_expression "pcStack_5a8 + -0x6ee0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x6ee0")) () ")"))))) () ")")) (argument_list "(in_f26_27,*(undefined8 *)(puVar32 + 0x1a))" (( "(") (identifier "in_f26_27") (, ",") (pointer_expression "*(undefined8 *)(puVar32 + 0x1a)" (* "*") (cast_expression "(undefined8 *)(puVar32 + 0x1a)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x1a)" (( "(") (binary_expression "puVar32 + 0x1a" (identifier "puVar32") (+ "+") (number_literal "0x1a")) () ")")))) () ")"))))) (; ";")) (expression_statement "uStack_5a0 = dVar39;" (assignment_expression "uStack_5a0 = dVar39" (identifier "uStack_5a0") (= "=") (identifier "dVar39")) (; ";")) (if_statement "if (0.0 <= dVar39) {\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }\n                  else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }" (if "if") (parenthesized_expression "(0.0 <= dVar39)" (( "(") (binary_expression "0.0 <= dVar39" (number_literal "0.0") (<= "<=") (identifier "dVar39")) () ")")) (compound_statement "{\n                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));\n                  }" ({ "{") (expression_statement "dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));" (assignment_expression "dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a))" (identifier "dVar40") (= "=") (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a))" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(pcStack_5a8 + -0x6ee0))\n                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a))" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x6ee0))" (( "(") (pointer_expression "**(code **)(pcStack_5a8 + -0x6ee0)" (* "*") (pointer_expression "*(code **)(pcStack_5a8 + -0x6ee0)" (* "*") (cast_expression "(code **)(pcStack_5a8 + -0x6ee0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x6ee0)" (( "(") (binary_expression "pcStack_5a8 + -0x6ee0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x6ee0")) () ")"))))) () ")")) (argument_list "(in_f26_27,*(undefined8 *)(puVar32 + 0x1a))" (( "(") (identifier "in_f26_27") (, ",") (pointer_expression "*(undefined8 *)(puVar32 + 0x1a)" (* "*") (cast_expression "(undefined8 *)(puVar32 + 0x1a)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x1a)" (( "(") (binary_expression "puVar32 + 0x1a" (identifier "puVar32") (+ "+") (number_literal "0x1a")) () ")")))) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }" (else "else") (compound_statement "{\n                    dVar40 = *(double *)(puVar32 + 0x1a);\n                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);\n                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;\n                    uStack_5a0._4_4_ = SUB84(dVar39,0);\n                    uStack_534 = uStack_5a0._4_4_;\n                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);\n                    dVar40 = dVar40 - dVar39;\n                  }" ({ "{") (expression_statement "dVar40 = *(double *)(puVar32 + 0x1a);" (assignment_expression "dVar40 = *(double *)(puVar32 + 0x1a)" (identifier "dVar40") (= "=") (pointer_expression "*(double *)(puVar32 + 0x1a)" (* "*") (cast_expression "(double *)(puVar32 + 0x1a)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x1a)" (( "(") (binary_expression "puVar32 + 0x1a" (identifier "puVar32") (+ "+") (number_literal "0x1a")) () ")"))))) (; ";")) (expression_statement "uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);" (assignment_expression "uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20)" (field_expression "uStack_5a0._0_4_" (identifier "uStack_5a0") (. ".") (field_identifier "_0_4_")) (= "=") (call_expression "(uint)((ulonglong)dVar39 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)dVar39 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar39 >> 0x20" (cast_expression "(ulonglong)dVar39" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar39")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;" (assignment_expression "uStack_538 = uStack_5a0._0_4_ ^ 0x80000000" (identifier "uStack_538") (= "=") (binary_expression "uStack_5a0._0_4_ ^ 0x80000000" (field_expression "uStack_5a0._0_4_" (identifier "uStack_5a0") (. ".") (field_identifier "_0_4_")) (^ "^") (number_literal "0x80000000"))) (; ";")) (expression_statement "uStack_5a0._4_4_ = SUB84(dVar39,0);" (assignment_expression "uStack_5a0._4_4_ = SUB84(dVar39,0)" (field_expression "uStack_5a0._4_4_" (identifier "uStack_5a0") (. ".") (field_identifier "_4_4_")) (= "=") (call_expression "SUB84(dVar39,0)" (identifier "SUB84") (argument_list "(dVar39,0)" (( "(") (identifier "dVar39") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "uStack_534 = uStack_5a0._4_4_;" (assignment_expression "uStack_534 = uStack_5a0._4_4_" (identifier "uStack_534") (= "=") (field_expression "uStack_5a0._4_4_" (identifier "uStack_5a0") (. ".") (field_identifier "_4_4_"))) (; ";")) (expression_statement "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40)" (identifier "dVar39") (= "=") (cast_expression "(double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40)" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x6ee0))" (( "(") (pointer_expression "**(code **)(pcStack_5a8 + -0x6ee0)" (* "*") (pointer_expression "*(code **)(pcStack_5a8 + -0x6ee0)" (* "*") (cast_expression "(code **)(pcStack_5a8 + -0x6ee0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x6ee0)" (( "(") (binary_expression "pcStack_5a8 + -0x6ee0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x6ee0")) () ")"))))) () ")")) (argument_list "(-dVar39,dVar40)" (( "(") (unary_expression "-dVar39" (- "-") (identifier "dVar39")) (, ",") (identifier "dVar40") () ")"))))) (; ";")) (expression_statement "dVar40 = dVar40 - dVar39;" (assignment_expression "dVar40 = dVar40 - dVar39" (identifier "dVar40") (= "=") (binary_expression "dVar40 - dVar39" (identifier "dVar40") (- "-") (identifier "dVar39"))) (; ";")) (} "}")))) (expression_statement "bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];" (assignment_expression "bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881]" (identifier "bVar1") (= "=") (binary_expression "*(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881]" (pointer_expression "*(double *)(puVar32 + 0x1a)" (* "*") (cast_expression "(double *)(puVar32 + 0x1a)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x1a)" (( "(") (binary_expression "puVar32 + 0x1a" (identifier "puVar32") (+ "+") (number_literal "0x1a")) () ")")))) (< "<") (binary_expression "dVar40 + pdVar29[0x881]" (identifier "dVar40") (+ "+") (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]"))))) (; ";")) (expression_statement "uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);" (assignment_expression "uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a)" (identifier "uStack_5a0") (= "=") (binary_expression "dVar40 / *(double *)(puVar32 + 0x1a)" (identifier "dVar40") (/ "/") (pointer_expression "*(double *)(puVar32 + 0x1a)" (* "*") (cast_expression "(double *)(puVar32 + 0x1a)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x1a)" (( "(") (binary_expression "puVar32 + 0x1a" (identifier "puVar32") (+ "+") (number_literal "0x1a")) () ")")))))) (; ";")) (} "}")))) (labeled_statement "LAB_000a5f08:\n                uVar26 = puVar32[0xf];" (statement_identifier "LAB_000a5f08") (: ":") (expression_statement "uVar26 = puVar32[0xf];" (assignment_expression "uVar26 = puVar32[0xf]" (identifier "uVar26") (= "=") (subscript_expression "puVar32[0xf]" (identifier "puVar32") ([ "[") (number_literal "0xf") (] "]"))) (; ";"))) (if_statement "if (0 < (int)uVar26) {\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }" (if "if") (parenthesized_expression "(0 < (int)uVar26)" (( "(") (binary_expression "0 < (int)uVar26" (number_literal "0") (< "<") (cast_expression "(int)uVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar26"))) () ")")) (compound_statement "{\n                  uVar8 = puVar32[0xe];\n                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }\n                }" ({ "{") (expression_statement "uVar8 = puVar32[0xe];" (assignment_expression "uVar8 = puVar32[0xe]" (identifier "uVar8") (= "=") (subscript_expression "puVar32[0xe]" (identifier "puVar32") ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (if_statement "if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }" (if "if") (parenthesized_expression "(*(double *)(uVar8 + 0x58) <= uStack_5a0)" (( "(") (binary_expression "*(double *)(uVar8 + 0x58) <= uStack_5a0" (pointer_expression "*(double *)(uVar8 + 0x58)" (* "*") (cast_expression "(double *)(uVar8 + 0x58)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar8 + 0x58)" (( "(") (binary_expression "uVar8 + 0x58" (identifier "uVar8") (+ "+") (number_literal "0x58")) () ")")))) (<= "<=") (identifier "uStack_5a0")) () ")")) (compound_statement "{\n                    pdVar16 = (double *)(uVar8 + 0xb8);\n                    uVar18 = 0;\n                    do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);\n                    if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }\n                  }" ({ "{") (expression_statement "pdVar16 = (double *)(uVar8 + 0xb8);" (assignment_expression "pdVar16 = (double *)(uVar8 + 0xb8)" (identifier "pdVar16") (= "=") (cast_expression "(double *)(uVar8 + 0xb8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar8 + 0xb8)" (( "(") (binary_expression "uVar8 + 0xb8" (identifier "uVar8") (+ "+") (number_literal "0xb8")) () ")")))) (; ";")) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" (identifier "uVar18") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    } while (dVar39 <= uStack_5a0);" (do "do") (compound_statement "{\n                      uVar22 = uVar18;\n                      uVar18 = uVar22 + 1;\n                      if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }\n                      dVar39 = *pdVar16;\n                      pdVar16 = pdVar16 + 0xc;\n                    }" ({ "{") (expression_statement "uVar22 = uVar18;" (assignment_expression "uVar22 = uVar18" (identifier "uVar22") (= "=") (identifier "uVar18")) (; ";")) (expression_statement "uVar18 = uVar22 + 1;" (assignment_expression "uVar18 = uVar22 + 1" (identifier "uVar18") (= "=") (binary_expression "uVar22 + 1" (identifier "uVar22") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar18 == uVar26) {\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }" (if "if") (parenthesized_expression "(uVar18 == uVar26)" (( "(") (binary_expression "uVar18 == uVar26" (identifier "uVar18") (== "==") (identifier "uVar26")) () ")")) (compound_statement "{\n                        if (uVar18 == 0) goto LAB_000a5db0;\n                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;\n                        in_f20_21 = *(double *)(iVar3 + 0x28);\n                        in_f22_23 = *(double *)(iVar3 + 0x30);\n                        in_f24_25 = *(double *)(iVar3 + 0x38);\n                        dStack_590 = *(double *)(iVar3 + 0x40);\n                        dVar39 = *(double *)(iVar3 + 0x48);\n                        goto LAB_000a5af8;\n                      }" ({ "{") (if_statement "if (uVar18 == 0) goto LAB_000a5db0;" (if "if") (parenthesized_expression "(uVar18 == 0)" (( "(") (binary_expression "uVar18 == 0" (identifier "uVar18") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000a5db0;" (goto "goto") (statement_identifier "LAB_000a5db0") (; ";"))) (expression_statement "iVar3 = uVar8 + uVar26 * 0x60 + -0x60;" (assignment_expression "iVar3 = uVar8 + uVar26 * 0x60 + -0x60" (identifier "iVar3") (= "=") (binary_expression "uVar8 + uVar26 * 0x60 + -0x60" (binary_expression "uVar8 + uVar26 * 0x60" (identifier "uVar8") (+ "+") (binary_expression "uVar26 * 0x60" (identifier "uVar26") (* "*") (number_literal "0x60"))) (+ "+") (number_literal "-0x60"))) (; ";")) (expression_statement "in_f20_21 = *(double *)(iVar3 + 0x28);" (assignment_expression "in_f20_21 = *(double *)(iVar3 + 0x28)" (identifier "in_f20_21") (= "=") (pointer_expression "*(double *)(iVar3 + 0x28)" (* "*") (cast_expression "(double *)(iVar3 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x28)" (( "(") (binary_expression "iVar3 + 0x28" (identifier "iVar3") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "in_f22_23 = *(double *)(iVar3 + 0x30);" (assignment_expression "in_f22_23 = *(double *)(iVar3 + 0x30)" (identifier "in_f22_23") (= "=") (pointer_expression "*(double *)(iVar3 + 0x30)" (* "*") (cast_expression "(double *)(iVar3 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x30)" (( "(") (binary_expression "iVar3 + 0x30" (identifier "iVar3") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "in_f24_25 = *(double *)(iVar3 + 0x38);" (assignment_expression "in_f24_25 = *(double *)(iVar3 + 0x38)" (identifier "in_f24_25") (= "=") (pointer_expression "*(double *)(iVar3 + 0x38)" (* "*") (cast_expression "(double *)(iVar3 + 0x38)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x38)" (( "(") (binary_expression "iVar3 + 0x38" (identifier "iVar3") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "dStack_590 = *(double *)(iVar3 + 0x40);" (assignment_expression "dStack_590 = *(double *)(iVar3 + 0x40)" (identifier "dStack_590") (= "=") (pointer_expression "*(double *)(iVar3 + 0x40)" (* "*") (cast_expression "(double *)(iVar3 + 0x40)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x40)" (( "(") (binary_expression "iVar3 + 0x40" (identifier "iVar3") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "dVar39 = *(double *)(iVar3 + 0x48);" (assignment_expression "dVar39 = *(double *)(iVar3 + 0x48)" (identifier "dVar39") (= "=") (pointer_expression "*(double *)(iVar3 + 0x48)" (* "*") (cast_expression "(double *)(iVar3 + 0x48)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x48)" (( "(") (binary_expression "iVar3 + 0x48" (identifier "iVar3") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (goto_statement "goto LAB_000a5af8;" (goto "goto") (statement_identifier "LAB_000a5af8") (; ";")) (} "}"))) (expression_statement "dVar39 = *pdVar16;" (assignment_expression "dVar39 = *pdVar16" (identifier "dVar39") (= "=") (pointer_expression "*pdVar16" (* "*") (identifier "pdVar16"))) (; ";")) (expression_statement "pdVar16 = pdVar16 + 0xc;" (assignment_expression "pdVar16 = pdVar16 + 0xc" (identifier "pdVar16") (= "=") (binary_expression "pdVar16 + 0xc" (identifier "pdVar16") (+ "+") (number_literal "0xc"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(dVar39 <= uStack_5a0)" (( "(") (binary_expression "dVar39 <= uStack_5a0" (identifier "dVar39") (<= "<=") (identifier "uStack_5a0")) () ")")) (; ";")) (if_statement "if (uVar18 != 0) {\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }" (if "if") (parenthesized_expression "(uVar18 != 0)" (( "(") (binary_expression "uVar18 != 0" (identifier "uVar18") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);\n                      if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }\n                      iVar10 = uVar8 + uVar22 * 0x60;\n                      iVar3 = uVar8 + uVar18 * 0x60;\n                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);\n                      dVar44 = dVar47 + dVar40;\n                      if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }\n                      if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }\n                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;\n                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;\n                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;\n                      if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }\n                      goto LAB_000a5af8;\n                    }" ({ "{") (expression_statement "dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);" (assignment_expression "dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58)" (identifier "dVar39") (= "=") (pointer_expression "*(double *)(uVar8 + uVar22 * 0x60 + 0x58)" (* "*") (cast_expression "(double *)(uVar8 + uVar22 * 0x60 + 0x58)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar8 + uVar22 * 0x60 + 0x58)" (( "(") (binary_expression "uVar8 + uVar22 * 0x60 + 0x58" (binary_expression "uVar8 + uVar22 * 0x60" (identifier "uVar8") (+ "+") (binary_expression "uVar22 * 0x60" (identifier "uVar22") (* "*") (number_literal "0x60"))) (+ "+") (number_literal "0x58")) () ")"))))) (; ";")) (if_statement "if (bVar1) {\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }\n                      else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n                        dVar39 = dStack_580;\n                        if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }\n                        dVar39 = dVar39 - dVar40;\n                        uVar18 = uVar26 - 1;\n                        uVar22 = 0;\n                      }" ({ "{") (expression_statement "dVar39 = dStack_580;" (assignment_expression "dVar39 = dStack_580" (identifier "dVar39") (= "=") (identifier "dStack_580")) (; ";")) (if_statement "if (*puVar32 != 1) {\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }" (if "if") (parenthesized_expression "(*puVar32 != 1)" (( "(") (binary_expression "*puVar32 != 1" (pointer_expression "*puVar32" (* "*") (identifier "puVar32")) (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n                          dVar39 = *(double *)(puVar32 + 0x1a);\n                        }" ({ "{") (expression_statement "dVar39 = *(double *)(puVar32 + 0x1a);" (assignment_expression "dVar39 = *(double *)(puVar32 + 0x1a)" (identifier "dVar39") (= "=") (pointer_expression "*(double *)(puVar32 + 0x1a)" (* "*") (cast_expression "(double *)(puVar32 + 0x1a)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar32 + 0x1a)" (( "(") (binary_expression "puVar32 + 0x1a" (identifier "puVar32") (+ "+") (number_literal "0x1a")) () ")"))))) (; ";")) (} "}"))) (expression_statement "dVar39 = dVar39 - dVar40;" (assignment_expression "dVar39 = dVar39 - dVar40" (identifier "dVar39") (= "=") (binary_expression "dVar39 - dVar40" (identifier "dVar39") (- "-") (identifier "dVar40"))) (; ";")) (expression_statement "uVar18 = uVar26 - 1;" (assignment_expression "uVar18 = uVar26 - 1" (identifier "uVar18") (= "=") (binary_expression "uVar26 - 1" (identifier "uVar26") (- "-") (number_literal "1"))) (; ";")) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" (identifier "uVar22") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }" (else "else") (compound_statement "{\n                        dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);\n                      }" ({ "{") (expression_statement "dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);" (assignment_expression "dVar39 = (uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39)" (identifier "dVar39") (= "=") (binary_expression "(uStack_5a0 - dVar39) /\n                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39)" (parenthesized_expression "(uStack_5a0 - dVar39)" (( "(") (binary_expression "uStack_5a0 - dVar39" (identifier "uStack_5a0") (- "-") (identifier "dVar39")) () ")")) (/ "/") (parenthesized_expression "(*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39)" (( "(") (binary_expression "*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39" (pointer_expression "*(double *)(uVar8 + uVar18 * 0x60 + 0x58)" (* "*") (cast_expression "(double *)(uVar8 + uVar18 * 0x60 + 0x58)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar8 + uVar18 * 0x60 + 0x58)" (( "(") (binary_expression "uVar8 + uVar18 * 0x60 + 0x58" (binary_expression "uVar8 + uVar18 * 0x60" (identifier "uVar8") (+ "+") (binary_expression "uVar18 * 0x60" (identifier "uVar18") (* "*") (number_literal "0x60"))) (+ "+") (number_literal "0x58")) () ")")))) (- "-") (identifier "dVar39")) () ")")))) (; ";")) (} "}")))) (expression_statement "iVar10 = uVar8 + uVar22 * 0x60;" (assignment_expression "iVar10 = uVar8 + uVar22 * 0x60" (identifier "iVar10") (= "=") (binary_expression "uVar8 + uVar22 * 0x60" (identifier "uVar8") (+ "+") (binary_expression "uVar22 * 0x60" (identifier "uVar22") (* "*") (number_literal "0x60")))) (; ";")) (expression_statement "iVar3 = uVar8 + uVar18 * 0x60;" (assignment_expression "iVar3 = uVar8 + uVar18 * 0x60" (identifier "iVar3") (= "=") (binary_expression "uVar8 + uVar18 * 0x60" (identifier "uVar8") (+ "+") (binary_expression "uVar18 * 0x60" (identifier "uVar18") (* "*") (number_literal "0x60")))) (; ";")) (expression_statement "dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);" (assignment_expression "dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" (identifier "dVar47") (= "=") (binary_expression "(pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" (binary_expression "(pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48)" (parenthesized_expression "(pdVar29[0x881] - dVar39)" (( "(") (binary_expression "pdVar29[0x881] - dVar39" (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]")) (- "-") (identifier "dVar39")) () ")")) (* "*") (pointer_expression "*(double *)(iVar10 + 0x48)" (* "*") (cast_expression "(double *)(iVar10 + 0x48)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x48)" (( "(") (binary_expression "iVar10 + 0x48" (identifier "iVar10") (+ "+") (number_literal "0x48")) () ")"))))) (* "*") (pointer_expression "*(double *)(dStack_558._0_4_ + 0x4410)" (* "*") (cast_expression "(double *)(dStack_558._0_4_ + 0x4410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(dStack_558._0_4_ + 0x4410)" (( "(") (binary_expression "dStack_558._0_4_ + 0x4410" (field_expression "dStack_558._0_4_" (identifier "dStack_558") (. ".") (field_identifier "_0_4_")) (+ "+") (number_literal "0x4410")) () ")")))))) (; ";")) (expression_statement "dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410);" (assignment_expression "dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" (identifier "dVar40") (= "=") (binary_expression "dVar39 * *(double *)(iVar3 + 0x48) *\n                               *(double *)(dStack_558._0_4_ + 0x4410)" (binary_expression "dVar39 * *(double *)(iVar3 + 0x48)" (identifier "dVar39") (* "*") (pointer_expression "*(double *)(iVar3 + 0x48)" (* "*") (cast_expression "(double *)(iVar3 + 0x48)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x48)" (( "(") (binary_expression "iVar3 + 0x48" (identifier "iVar3") (+ "+") (number_literal "0x48")) () ")"))))) (* "*") (pointer_expression "*(double *)(dStack_558._0_4_ + 0x4410)" (* "*") (cast_expression "(double *)(dStack_558._0_4_ + 0x4410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(dStack_558._0_4_ + 0x4410)" (( "(") (binary_expression "dStack_558._0_4_ + 0x4410" (field_expression "dStack_558._0_4_" (identifier "dStack_558") (. ".") (field_identifier "_0_4_")) (+ "+") (number_literal "0x4410")) () ")")))))) (; ";")) (expression_statement "dVar44 = dVar47 + dVar40;" (assignment_expression "dVar44 = dVar47 + dVar40" (identifier "dVar44") (= "=") (binary_expression "dVar47 + dVar40" (identifier "dVar47") (+ "+") (identifier "dVar40"))) (; ";")) (if_statement "if (0.0 <= dVar44) {\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }\n                      else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }" (if "if") (parenthesized_expression "(0.0 <= dVar44)" (( "(") (binary_expression "0.0 <= dVar44" (number_literal "0.0") (<= "<=") (identifier "dVar44")) () ")")) (compound_statement "{\n                        if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }\n                        if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }\n                      }" ({ "{") (if_statement "if (pdVar29[0x881] < dVar44) {\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }" (if "if") (parenthesized_expression "(pdVar29[0x881] < dVar44)" (( "(") (binary_expression "pdVar29[0x881] < dVar44" (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]")) (< "<") (identifier "dVar44")) () ")")) (compound_statement "{\n                          dVar44 = pdVar29[0x881];\n                          goto LAB_000a6d30;\n                        }" ({ "{") (expression_statement "dVar44 = pdVar29[0x881];" (assignment_expression "dVar44 = pdVar29[0x881]" (identifier "dVar44") (= "=") (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]"))) (; ";")) (goto_statement "goto LAB_000a6d30;" (goto "goto") (statement_identifier "LAB_000a6d30") (; ";")) (} "}"))) (if_statement "if (0.0 <= dVar44) {\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }\n                        else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }" (if "if") (parenthesized_expression "(0.0 <= dVar44)" (( "(") (binary_expression "0.0 <= dVar44" (number_literal "0.0") (<= "<=") (identifier "dVar44")) () ")")) (compound_statement "{\n                          dVar39 = dVar44;\n                          if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }\n                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);\n                          if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }\n                        }" ({ "{") (expression_statement "dVar39 = dVar44;" (assignment_expression "dVar39 = dVar44" (identifier "dVar39") (= "=") (identifier "dVar44")) (; ";")) (if_statement "if (pdVar29[0x881] < dVar44) {\n                            dVar39 = pdVar29[0x881];\n                          }" (if "if") (parenthesized_expression "(pdVar29[0x881] < dVar44)" (( "(") (binary_expression "pdVar29[0x881] < dVar44" (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]")) (< "<") (identifier "dVar44")) () ")")) (compound_statement "{\n                            dVar39 = pdVar29[0x881];\n                          }" ({ "{") (expression_statement "dVar39 = pdVar29[0x881];" (assignment_expression "dVar39 = pdVar29[0x881]" (identifier "dVar39") (= "=") (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]"))) (; ";")) (} "}"))) (expression_statement "dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);" (assignment_expression "dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48)" (identifier "dVar39") (= "=") (binary_expression "dVar39 * *(double *)(iStack_570 + 0x4a48)" (identifier "dVar39") (* "*") (pointer_expression "*(double *)(iStack_570 + 0x4a48)" (* "*") (cast_expression "(double *)(iStack_570 + 0x4a48)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_570 + 0x4a48)" (( "(") (binary_expression "iStack_570 + 0x4a48" (identifier "iStack_570") (+ "+") (number_literal "0x4a48")) () ")")))))) (; ";")) (if_statement "if (dVar44 < 0.0) {\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }\n                          else {\n                            dVar45 = pdVar29[0x881];\n                          }" (if "if") (parenthesized_expression "(dVar44 < 0.0)" (( "(") (binary_expression "dVar44 < 0.0" (identifier "dVar44") (< "<") (number_literal "0.0")) () ")")) (compound_statement "{\n                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                          }" ({ "{") (expression_statement "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (identifier "dVar45") (= "=") (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4418")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                            dVar45 = pdVar29[0x881];\n                          }" (else "else") (compound_statement "{\n                            dVar45 = pdVar29[0x881];\n                          }" ({ "{") (expression_statement "dVar45 = pdVar29[0x881];" (assignment_expression "dVar45 = pdVar29[0x881]" (identifier "dVar45") (= "=") (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }" (else "else") (compound_statement "{\n                          dVar39 = 0.0;\n                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                        }" ({ "{") (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" (identifier "dVar39") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (identifier "dVar45") (= "=") (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4418")) () ")"))))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }" (else "else") (compound_statement "{\n                        dVar44 = 0.0;\nLAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);\n                        dVar45 = pdVar29[0x881];\n                      }" ({ "{") (expression_statement "dVar44 = 0.0;" (assignment_expression "dVar44 = 0.0" (identifier "dVar44") (= "=") (number_literal "0.0")) (; ";")) (labeled_statement "LAB_000a6d30:\n                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);" (statement_identifier "LAB_000a6d30") (: ":") (expression_statement "dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);" (assignment_expression "dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48)" (identifier "dVar39") (= "=") (binary_expression "dVar44 * *(double *)(iStack_570 + 0x4a48)" (identifier "dVar44") (* "*") (pointer_expression "*(double *)(iStack_570 + 0x4a48)" (* "*") (cast_expression "(double *)(iStack_570 + 0x4a48)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_570 + 0x4a48)" (( "(") (binary_expression "iStack_570 + 0x4a48" (identifier "iStack_570") (+ "+") (number_literal "0x4a48")) () ")")))))) (; ";"))) (expression_statement "dVar45 = pdVar29[0x881];" (assignment_expression "dVar45 = pdVar29[0x881]" (identifier "dVar45") (= "=") (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]"))) (; ";")) (} "}")))) (if_statement "if (unaff_s6[0x879] <= dVar45 * dVar44) {\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }\n                      else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }" (if "if") (parenthesized_expression "(unaff_s6[0x879] <= dVar45 * dVar44)" (( "(") (binary_expression "unaff_s6[0x879] <= dVar45 * dVar44" (subscript_expression "unaff_s6[0x879]" (identifier "unaff_s6") ([ "[") (number_literal "0x879") (] "]")) (<= "<=") (binary_expression "dVar45 * dVar44" (identifier "dVar45") (* "*") (identifier "dVar44"))) () ")")) (compound_statement "{\n                        dVar45 = pdVar29[0x881] / dVar44;\n                      }" ({ "{") (expression_statement "dVar45 = pdVar29[0x881] / dVar44;" (assignment_expression "dVar45 = pdVar29[0x881] / dVar44" (identifier "dVar45") (= "=") (binary_expression "pdVar29[0x881] / dVar44" (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]")) (/ "/") (identifier "dVar44"))) (; ";")) (} "}")) (else_clause "else {\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }" (else "else") (compound_statement "{\n                        dVar45 = dVar45 / unaff_s6[0x879];\n                      }" ({ "{") (expression_statement "dVar45 = dVar45 / unaff_s6[0x879];" (assignment_expression "dVar45 = dVar45 / unaff_s6[0x879]" (identifier "dVar45") (= "=") (binary_expression "dVar45 / unaff_s6[0x879]" (identifier "dVar45") (/ "/") (subscript_expression "unaff_s6[0x879]" (identifier "unaff_s6") ([ "[") (number_literal "0x879") (] "]")))) (; ";")) (} "}")))) (expression_statement "in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;" (assignment_expression "in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45" (identifier "in_f20_21") (= "=") (binary_expression "(dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45" (parenthesized_expression "(dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28))" (( "(") (binary_expression "dVar47 * *(double *)(iVar10 + 0x28) +\n                                  dVar40 * *(double *)(iVar3 + 0x28)" (binary_expression "dVar47 * *(double *)(iVar10 + 0x28)" (identifier "dVar47") (* "*") (pointer_expression "*(double *)(iVar10 + 0x28)" (* "*") (cast_expression "(double *)(iVar10 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x28)" (( "(") (binary_expression "iVar10 + 0x28" (identifier "iVar10") (+ "+") (number_literal "0x28")) () ")"))))) (+ "+") (binary_expression "dVar40 * *(double *)(iVar3 + 0x28)" (identifier "dVar40") (* "*") (pointer_expression "*(double *)(iVar3 + 0x28)" (* "*") (cast_expression "(double *)(iVar3 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x28)" (( "(") (binary_expression "iVar3 + 0x28" (identifier "iVar3") (+ "+") (number_literal "0x28")) () ")")))))) () ")")) (* "*") (identifier "dVar45"))) (; ";")) (expression_statement "in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;" (assignment_expression "in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45" (identifier "in_f22_23") (= "=") (binary_expression "(dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45" (parenthesized_expression "(dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30))" (( "(") (binary_expression "dVar47 * *(double *)(iVar10 + 0x30) +\n                                  dVar40 * *(double *)(iVar3 + 0x30)" (binary_expression "dVar47 * *(double *)(iVar10 + 0x30)" (identifier "dVar47") (* "*") (pointer_expression "*(double *)(iVar10 + 0x30)" (* "*") (cast_expression "(double *)(iVar10 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x30)" (( "(") (binary_expression "iVar10 + 0x30" (identifier "iVar10") (+ "+") (number_literal "0x30")) () ")"))))) (+ "+") (binary_expression "dVar40 * *(double *)(iVar3 + 0x30)" (identifier "dVar40") (* "*") (pointer_expression "*(double *)(iVar3 + 0x30)" (* "*") (cast_expression "(double *)(iVar3 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x30)" (( "(") (binary_expression "iVar3 + 0x30" (identifier "iVar3") (+ "+") (number_literal "0x30")) () ")")))))) () ")")) (* "*") (identifier "dVar45"))) (; ";")) (expression_statement "in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;" (assignment_expression "in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45" (identifier "in_f24_25") (= "=") (binary_expression "(dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45" (parenthesized_expression "(dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38))" (( "(") (binary_expression "dVar47 * *(double *)(iVar10 + 0x38) +\n                                  dVar40 * *(double *)(iVar3 + 0x38)" (binary_expression "dVar47 * *(double *)(iVar10 + 0x38)" (identifier "dVar47") (* "*") (pointer_expression "*(double *)(iVar10 + 0x38)" (* "*") (cast_expression "(double *)(iVar10 + 0x38)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x38)" (( "(") (binary_expression "iVar10 + 0x38" (identifier "iVar10") (+ "+") (number_literal "0x38")) () ")"))))) (+ "+") (binary_expression "dVar40 * *(double *)(iVar3 + 0x38)" (identifier "dVar40") (* "*") (pointer_expression "*(double *)(iVar3 + 0x38)" (* "*") (cast_expression "(double *)(iVar3 + 0x38)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x38)" (( "(") (binary_expression "iVar3 + 0x38" (identifier "iVar3") (+ "+") (number_literal "0x38")) () ")")))))) () ")")) (* "*") (identifier "dVar45"))) (; ";")) (if_statement "if (*(int *)(iVar3 + 4) == 2) {\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }" (if "if") (parenthesized_expression "(*(int *)(iVar3 + 4) == 2)" (( "(") (binary_expression "*(int *)(iVar3 + 4) == 2" (pointer_expression "*(int *)(iVar3 + 4)" (* "*") (cast_expression "(int *)(iVar3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;\n                      }" ({ "{") (expression_statement "dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;" (assignment_expression "dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45" (identifier "dStack_590") (= "=") (binary_expression "(dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45" (parenthesized_expression "(dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40))" (( "(") (binary_expression "dVar47 * *(double *)(iVar10 + 0x40) +\n                                     dVar40 * *(double *)(iVar3 + 0x40)" (binary_expression "dVar47 * *(double *)(iVar10 + 0x40)" (identifier "dVar47") (* "*") (pointer_expression "*(double *)(iVar10 + 0x40)" (* "*") (cast_expression "(double *)(iVar10 + 0x40)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x40)" (( "(") (binary_expression "iVar10 + 0x40" (identifier "iVar10") (+ "+") (number_literal "0x40")) () ")"))))) (+ "+") (binary_expression "dVar40 * *(double *)(iVar3 + 0x40)" (identifier "dVar40") (* "*") (pointer_expression "*(double *)(iVar3 + 0x40)" (* "*") (cast_expression "(double *)(iVar3 + 0x40)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x40)" (( "(") (binary_expression "iVar3 + 0x40" (identifier "iVar3") (+ "+") (number_literal "0x40")) () ")")))))) () ")")) (* "*") (identifier "dVar45"))) (; ";")) (} "}"))) (goto_statement "goto LAB_000a5af8;" (goto "goto") (statement_identifier "LAB_000a5af8") (; ";")) (} "}"))) (} "}"))) (} "}"))) (labeled_statement "LAB_000a5db0:\n                uVar26 = puVar32[0xe];" (statement_identifier "LAB_000a5db0") (: ":") (expression_statement "uVar26 = puVar32[0xe];" (assignment_expression "uVar26 = puVar32[0xe]" (identifier "uVar26") (= "=") (subscript_expression "puVar32[0xe]" (identifier "puVar32") ([ "[") (number_literal "0xe") (] "]"))) (; ";"))) (expression_statement "in_f20_21 = *(double *)(uVar26 + 0x28);" (assignment_expression "in_f20_21 = *(double *)(uVar26 + 0x28)" (identifier "in_f20_21") (= "=") (pointer_expression "*(double *)(uVar26 + 0x28)" (* "*") (cast_expression "(double *)(uVar26 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar26 + 0x28)" (( "(") (binary_expression "uVar26 + 0x28" (identifier "uVar26") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "in_f22_23 = *(double *)(uVar26 + 0x30);" (assignment_expression "in_f22_23 = *(double *)(uVar26 + 0x30)" (identifier "in_f22_23") (= "=") (pointer_expression "*(double *)(uVar26 + 0x30)" (* "*") (cast_expression "(double *)(uVar26 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar26 + 0x30)" (( "(") (binary_expression "uVar26 + 0x30" (identifier "uVar26") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "in_f24_25 = *(double *)(uVar26 + 0x38);" (assignment_expression "in_f24_25 = *(double *)(uVar26 + 0x38)" (identifier "in_f24_25") (= "=") (pointer_expression "*(double *)(uVar26 + 0x38)" (* "*") (cast_expression "(double *)(uVar26 + 0x38)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar26 + 0x38)" (( "(") (binary_expression "uVar26 + 0x38" (identifier "uVar26") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "dStack_590 = *(double *)(uVar26 + 0x40);" (assignment_expression "dStack_590 = *(double *)(uVar26 + 0x40)" (identifier "dStack_590") (= "=") (pointer_expression "*(double *)(uVar26 + 0x40)" (* "*") (cast_expression "(double *)(uVar26 + 0x40)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar26 + 0x40)" (( "(") (binary_expression "uVar26 + 0x40" (identifier "uVar26") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "dVar39 = *(double *)(uVar26 + 0x48);" (assignment_expression "dVar39 = *(double *)(uVar26 + 0x48)" (identifier "dVar39") (= "=") (pointer_expression "*(double *)(uVar26 + 0x48)" (* "*") (cast_expression "(double *)(uVar26 + 0x48)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar26 + 0x48)" (( "(") (binary_expression "uVar26 + 0x48" (identifier "uVar26") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (} "}"))))))) (labeled_statement "LAB_000a5af8:\n              dVar44 = dVar39 * dVar41;" (statement_identifier "LAB_000a5af8") (: ":") (expression_statement "dVar44 = dVar39 * dVar41;" (assignment_expression "dVar44 = dVar39 * dVar41" (identifier "dVar44") (= "=") (binary_expression "dVar39 * dVar41" (identifier "dVar39") (* "*") (identifier "dVar41"))) (; ";"))) (expression_statement "dVar47 = dStack_4c8 * dVar41;" (assignment_expression "dVar47 = dStack_4c8 * dVar41" (identifier "dVar47") (= "=") (binary_expression "dStack_4c8 * dVar41" (identifier "dStack_4c8") (* "*") (identifier "dVar41"))) (; ";")) (expression_statement "dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;" (assignment_expression "dVar40 = (dVar44 + dVar47) - dVar44 * dVar47" (identifier "dVar40") (= "=") (binary_expression "(dVar44 + dVar47) - dVar44 * dVar47" (parenthesized_expression "(dVar44 + dVar47)" (( "(") (binary_expression "dVar44 + dVar47" (identifier "dVar44") (+ "+") (identifier "dVar47")) () ")")) (- "-") (binary_expression "dVar44 * dVar47" (identifier "dVar44") (* "*") (identifier "dVar47")))) (; ";")) (if_statement "if (0.0 <= dVar40) {\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }\n              else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }" (if "if") (parenthesized_expression "(0.0 <= dVar40)" (( "(") (binary_expression "0.0 <= dVar40" (number_literal "0.0") (<= "<=") (identifier "dVar40")) () ")")) (compound_statement "{\n                dStack_4c8 = pdVar29[0x881];\n                if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }\n                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);\n                if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }\n              }" ({ "{") (expression_statement "dStack_4c8 = pdVar29[0x881];" (assignment_expression "dStack_4c8 = pdVar29[0x881]" (identifier "dStack_4c8") (= "=") (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]"))) (; ";")) (if_statement "if (dVar40 <= pdVar29[0x881]) {\n                  dStack_4c8 = dVar40;\n                }" (if "if") (parenthesized_expression "(dVar40 <= pdVar29[0x881])" (( "(") (binary_expression "dVar40 <= pdVar29[0x881]" (identifier "dVar40") (<= "<=") (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]"))) () ")")) (compound_statement "{\n                  dStack_4c8 = dVar40;\n                }" ({ "{") (expression_statement "dStack_4c8 = dVar40;" (assignment_expression "dStack_4c8 = dVar40" (identifier "dStack_4c8") (= "=") (identifier "dVar40")) (; ";")) (} "}"))) (expression_statement "dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);" (assignment_expression "dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48)" (identifier "dStack_4c8") (= "=") (binary_expression "dStack_4c8 * *(double *)(iStack_570 + 0x4a48)" (identifier "dStack_4c8") (* "*") (pointer_expression "*(double *)(iStack_570 + 0x4a48)" (* "*") (cast_expression "(double *)(iStack_570 + 0x4a48)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_570 + 0x4a48)" (( "(") (binary_expression "iStack_570 + 0x4a48" (identifier "iStack_570") (+ "+") (number_literal "0x4a48")) () ")")))))) (; ";")) (if_statement "if (0.0 <= dVar40) {\n                  dVar45 = pdVar29[0x881];\n                }\n                else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }" (if "if") (parenthesized_expression "(0.0 <= dVar40)" (( "(") (binary_expression "0.0 <= dVar40" (number_literal "0.0") (<= "<=") (identifier "dVar40")) () ")")) (compound_statement "{\n                  dVar45 = pdVar29[0x881];\n                }" ({ "{") (expression_statement "dVar45 = pdVar29[0x881];" (assignment_expression "dVar45 = pdVar29[0x881]" (identifier "dVar45") (= "=") (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }" (else "else") (compound_statement "{\n                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n                }" ({ "{") (expression_statement "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (identifier "dVar45") (= "=") (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4418")) () ")"))))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }" (else "else") (compound_statement "{\n                dStack_4c8 = 0.0;\n                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);\n              }" ({ "{") (expression_statement "dStack_4c8 = 0.0;" (assignment_expression "dStack_4c8 = 0.0" (identifier "dStack_4c8") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);" (assignment_expression "dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (identifier "dVar45") (= "=") (pointer_expression "*(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418)" (( "(") (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4418")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (unaff_s6[0x879] <= dVar40 * dVar45) {\n                dVar45 = pdVar29[0x881] / dVar40;\n              }\n              else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }" (if "if") (parenthesized_expression "(unaff_s6[0x879] <= dVar40 * dVar45)" (( "(") (binary_expression "unaff_s6[0x879] <= dVar40 * dVar45" (subscript_expression "unaff_s6[0x879]" (identifier "unaff_s6") ([ "[") (number_literal "0x879") (] "]")) (<= "<=") (binary_expression "dVar40 * dVar45" (identifier "dVar40") (* "*") (identifier "dVar45"))) () ")")) (compound_statement "{\n                dVar45 = pdVar29[0x881] / dVar40;\n              }" ({ "{") (expression_statement "dVar45 = pdVar29[0x881] / dVar40;" (assignment_expression "dVar45 = pdVar29[0x881] / dVar40" (identifier "dVar45") (= "=") (binary_expression "pdVar29[0x881] / dVar40" (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]")) (/ "/") (identifier "dVar40"))) (; ";")) (} "}")) (else_clause "else {\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }" (else "else") (compound_statement "{\n                dVar45 = dVar45 / unaff_s6[0x879];\n              }" ({ "{") (expression_statement "dVar45 = dVar45 / unaff_s6[0x879];" (assignment_expression "dVar45 = dVar45 / unaff_s6[0x879]" (identifier "dVar45") (= "=") (binary_expression "dVar45 / unaff_s6[0x879]" (identifier "dVar45") (/ "/") (subscript_expression "unaff_s6[0x879]" (identifier "unaff_s6") ([ "[") (number_literal "0x879") (] "]")))) (; ";")) (} "}")))) (expression_statement "dVar40 = pdVar29[0x881] - dVar44;" (assignment_expression "dVar40 = pdVar29[0x881] - dVar44" (identifier "dVar40") (= "=") (binary_expression "pdVar29[0x881] - dVar44" (subscript_expression "pdVar29[0x881]" (identifier "pdVar29") ([ "[") (number_literal "0x881") (] "]")) (- "-") (identifier "dVar44"))) (; ";")) (expression_statement "dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;" (assignment_expression "dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45" (identifier "dStack_4e8") (= "=") (binary_expression "(dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45" (parenthesized_expression "(dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21)" (( "(") (binary_expression "dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21" (binary_expression "dVar47 * dStack_4e8 * dVar40" (binary_expression "dVar47 * dStack_4e8" (identifier "dVar47") (* "*") (identifier "dStack_4e8")) (* "*") (identifier "dVar40")) (+ "+") (binary_expression "dVar44 * in_f20_21" (identifier "dVar44") (* "*") (identifier "in_f20_21"))) () ")")) (* "*") (identifier "dVar45"))) (; ";")) (expression_statement "dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;" (assignment_expression "dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45" (identifier "dStack_4e0") (= "=") (binary_expression "(dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45" (parenthesized_expression "(dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44)" (( "(") (binary_expression "dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44" (binary_expression "dVar47 * dStack_4e0 * dVar40" (binary_expression "dVar47 * dStack_4e0" (identifier "dVar47") (* "*") (identifier "dStack_4e0")) (* "*") (identifier "dVar40")) (+ "+") (binary_expression "in_f22_23 * dVar44" (identifier "in_f22_23") (* "*") (identifier "dVar44"))) () ")")) (* "*") (identifier "dVar45"))) (; ";")) (expression_statement "dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;" (assignment_expression "dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45" (identifier "dStack_4d8") (= "=") (binary_expression "(dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45" (parenthesized_expression "(dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25)" (( "(") (binary_expression "dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25" (binary_expression "dVar47 * dStack_4d8 * dVar40" (binary_expression "dVar47 * dStack_4d8" (identifier "dVar47") (* "*") (identifier "dStack_4d8")) (* "*") (identifier "dVar40")) (+ "+") (binary_expression "dVar44 * in_f24_25" (identifier "dVar44") (* "*") (identifier "in_f24_25"))) () ")")) (* "*") (identifier "dVar45"))) (; ";")) (if_statement "if (aiStack_510[1] == 2) {\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }" (if "if") (parenthesized_expression "(aiStack_510[1] == 2)" (( "(") (binary_expression "aiStack_510[1] == 2" (subscript_expression "aiStack_510[1]" (identifier "aiStack_510") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;\n              }" ({ "{") (expression_statement "dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;" (assignment_expression "dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45" (identifier "dStack_4d0") (= "=") (binary_expression "(dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45" (parenthesized_expression "(dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44)" (( "(") (binary_expression "dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44" (binary_expression "dVar47 * dStack_4d0 * dVar40" (binary_expression "dVar47 * dStack_4d0" (identifier "dVar47") (* "*") (identifier "dStack_4d0")) (* "*") (identifier "dVar40")) (+ "+") (binary_expression "dStack_590 * dVar44" (identifier "dStack_590") (* "*") (identifier "dVar44"))) () ")")) (* "*") (identifier "dVar45"))) (; ";")) (} "}"))) (expression_statement "iVar3 = piVar48[0xb4];" (assignment_expression "iVar3 = piVar48[0xb4]" (identifier "iVar3") (= "=") (subscript_expression "piVar48[0xb4]" (identifier "piVar48") ([ "[") (number_literal "0xb4") (] "]"))) (; ";")) (expression_statement "*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;" (assignment_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8" (pointer_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4)" (* "*") (cast_expression "(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar30 + *(int *)(iVar3 + 8) * 4)" (( "(") (binary_expression "(int)pdVar30 + *(int *)(iVar3 + 8) * 4" (cast_expression "(int)pdVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar30")) (+ "+") (binary_expression "*(int *)(iVar3 + 8) * 4" (pointer_expression "*(int *)(iVar3 + 8)" (* "*") (cast_expression "(int *)(iVar3 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 8)" (( "(") (binary_expression "iVar3 + 8" (identifier "iVar3") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (cast_expression "(float)dStack_4e8" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dStack_4e8"))) (; ";")) (expression_statement "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;" (assignment_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0" (pointer_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4)" (* "*") (cast_expression "(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4)" (( "(") (binary_expression "(int)pdVar30 + *(int *)(iVar3 + 0x14) * 4" (cast_expression "(int)pdVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar30")) (+ "+") (binary_expression "*(int *)(iVar3 + 0x14) * 4" (pointer_expression "*(int *)(iVar3 + 0x14)" (* "*") (cast_expression "(int *)(iVar3 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x14)" (( "(") (binary_expression "iVar3 + 0x14" (identifier "iVar3") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (cast_expression "(float)dStack_4e0" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dStack_4e0"))) (; ";")) (expression_statement "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;" (assignment_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8" (pointer_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4)" (* "*") (cast_expression "(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4)" (( "(") (binary_expression "(int)pdVar30 + *(int *)(iVar3 + 0x20) * 4" (cast_expression "(int)pdVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar30")) (+ "+") (binary_expression "*(int *)(iVar3 + 0x20) * 4" (pointer_expression "*(int *)(iVar3 + 0x20)" (* "*") (cast_expression "(int *)(iVar3 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x20)" (( "(") (binary_expression "iVar3 + 0x20" (identifier "iVar3") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (cast_expression "(float)dStack_4d8" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dStack_4d8"))) (; ";")) (if_statement "if (*(int *)(iVar3 + 0x28) != 0) {\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }" (if "if") (parenthesized_expression "(*(int *)(iVar3 + 0x28) != 0)" (( "(") (binary_expression "*(int *)(iVar3 + 0x28) != 0" (pointer_expression "*(int *)(iVar3 + 0x28)" (* "*") (cast_expression "(int *)(iVar3 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x28)" (( "(") (binary_expression "iVar3 + 0x28" (identifier "iVar3") (+ "+") (number_literal "0x28")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;\n              }" ({ "{") (expression_statement "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;" (assignment_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0" (pointer_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4)" (* "*") (cast_expression "(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4)" (( "(") (binary_expression "(int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4" (cast_expression "(int)pdVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar30")) (+ "+") (binary_expression "*(int *)(iVar3 + 0x2c) * 4" (pointer_expression "*(int *)(iVar3 + 0x2c)" (* "*") (cast_expression "(int *)(iVar3 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x2c)" (( "(") (binary_expression "iVar3 + 0x2c" (identifier "iVar3") (+ "+") (number_literal "0x2c")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (cast_expression "(float)dStack_4d0" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dStack_4d0"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar3 + 0x34) != 0) {\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }" (if "if") (parenthesized_expression "(*(int *)(iVar3 + 0x34) != 0)" (( "(") (binary_expression "*(int *)(iVar3 + 0x34) != 0" (pointer_expression "*(int *)(iVar3 + 0x34)" (* "*") (cast_expression "(int *)(iVar3 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x34)" (( "(") (binary_expression "iVar3 + 0x34" (identifier "iVar3") (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }\n                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;\n              }" ({ "{") (if_statement "if (aiStack_510[2] == 0) {\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }\n                else {\n                  fVar43 = (float)dStack_4c8;\n                }" (if "if") (parenthesized_expression "(aiStack_510[2] == 0)" (( "(") (binary_expression "aiStack_510[2] == 0" (subscript_expression "aiStack_510[2]" (identifier "aiStack_510") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);\n                }" ({ "{") (expression_statement "fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);" (assignment_expression "fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8)" (identifier "fVar43") (= "=") (pointer_expression "*(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8)" (* "*") (cast_expression "(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8)" (( "(") (binary_expression "*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8" (pointer_expression "*(int *)(pcStack_5a8 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5a8 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x7fd0)" (( "(") (binary_expression "pcStack_5a8 + -0x7fd0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4aa8")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                  fVar43 = (float)dStack_4c8;\n                }" (else "else") (compound_statement "{\n                  fVar43 = (float)dStack_4c8;\n                }" ({ "{") (expression_statement "fVar43 = (float)dStack_4c8;" (assignment_expression "fVar43 = (float)dStack_4c8" (identifier "fVar43") (= "=") (cast_expression "(float)dStack_4c8" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dStack_4c8"))) (; ";")) (} "}")))) (expression_statement "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;" (assignment_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43" (pointer_expression "*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4)" (* "*") (cast_expression "(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4)" (( "(") (binary_expression "(int)pdVar30 + *(int *)(iVar3 + 0x38) * 4" (cast_expression "(int)pdVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar30")) (+ "+") (binary_expression "*(int *)(iVar3 + 0x38) * 4" (pointer_expression "*(int *)(iVar3 + 0x38)" (* "*") (cast_expression "(int *)(iVar3 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x38)" (( "(") (binary_expression "iVar3 + 0x38" (identifier "iVar3") (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "fVar43")) (; ";")) (} "}"))) (expression_statement "pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);" (assignment_expression "pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4)" (identifier "pdVar30") (= "=") (cast_expression "(double *)((int)pdVar30 + piVar48[0xb0] * 4)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar30 + piVar48[0xb0] * 4)" (( "(") (binary_expression "(int)pdVar30 + piVar48[0xb0] * 4" (cast_expression "(int)pdVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar30")) (+ "+") (binary_expression "piVar48[0xb0] * 4" (subscript_expression "piVar48[0xb0]" (identifier "piVar48") ([ "[") (number_literal "0xb0") (] "]")) (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "iVar28 = iVar28 + 1;" (assignment_expression "iVar28 = iVar28 + 1" (identifier "iVar28") (= "=") (binary_expression "iVar28 + 1" (identifier "iVar28") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar28 < **(int **)(pdVar5 + 4))" (( "(") (binary_expression "iVar28 < **(int **)(pdVar5 + 4)" (identifier "iVar28") (< "<") (pointer_expression "**(int **)(pdVar5 + 4)" (* "*") (pointer_expression "*(int **)(pdVar5 + 4)" (* "*") (cast_expression "(int **)(pdVar5 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pdVar5 + 4)" (( "(") (binary_expression "pdVar5 + 4" (identifier "pdVar5") (+ "+") (number_literal "4")) () ")")))))) () ")")) (; ";")) (} "}"))) (expression_statement "pdVar14 = pdStack_568;" (assignment_expression "pdVar14 = pdStack_568" (identifier "pdVar14") (= "=") (identifier "pdStack_568")) (; ";")) (expression_statement "iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);" (assignment_expression "iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564)" (parenthesized_expression "(**(code **)(pcStack_5a8 + -0x73a0))" (( "(") (pointer_expression "**(code **)(pcStack_5a8 + -0x73a0)" (* "*") (pointer_expression "*(code **)(pcStack_5a8 + -0x73a0)" (* "*") (cast_expression "(code **)(pcStack_5a8 + -0x73a0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5a8 + -0x73a0)" (( "(") (binary_expression "pcStack_5a8 + -0x73a0" (identifier "pcStack_5a8") (+ "+") (number_literal "-0x73a0")) () ")"))))) () ")")) (argument_list "(pdStack_568,uStack_564)" (( "(") (identifier "pdStack_568") (, ",") (identifier "uStack_564") () ")")))) (; ";")) (expression_statement "pcVar37 = pcStack_5a8;" (assignment_expression "pcVar37 = pcStack_5a8" (identifier "pcVar37") (= "=") (identifier "pcStack_5a8")) (; ";")) (if_statement "if (iVar3 == 0) {\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            *(uint *)((int)pdVar5 + 0x24) = 0;\n          }" ({ "{") (expression_statement "*(uint *)((int)pdVar5 + 0x24) = 0;" (assignment_expression "*(uint *)((int)pdVar5 + 0x24) = 0" (pointer_expression "*(uint *)((int)pdVar5 + 0x24)" (* "*") (cast_expression "(uint *)((int)pdVar5 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar5 + 0x24)" (( "(") (binary_expression "(int)pdVar5 + 0x24" (cast_expression "(int)pdVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar5")) (+ "+") (number_literal "0x24")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}")))) (} "}"))) (expression_statement "puVar35 = puVar35 + 1;" (assignment_expression "puVar35 = puVar35 + 1" (identifier "puVar35") (= "=") (binary_expression "puVar35 + 1" (identifier "puVar35") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)puVar35 < (int)puStack_56c)" (( "(") (binary_expression "(int)puVar35 < (int)puStack_56c" (cast_expression "(int)puVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar35")) (< "<") (cast_expression "(int)puStack_56c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_56c"))) () ")")) (; ";")) (} "}"))) (if_statement "if (iStack_4b4 == **(int **)(pcVar37 + -0x7668)) {\n    return **(int **)(pcVar37 + -0x7668);\n  }" (if "if") (parenthesized_expression "(iStack_4b4 == **(int **)(pcVar37 + -0x7668))" (( "(") (binary_expression "iStack_4b4 == **(int **)(pcVar37 + -0x7668)" (identifier "iStack_4b4") (== "==") (pointer_expression "**(int **)(pcVar37 + -0x7668)" (* "*") (pointer_expression "*(int **)(pcVar37 + -0x7668)" (* "*") (cast_expression "(int **)(pcVar37 + -0x7668)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + -0x7668)" (( "(") (binary_expression "pcVar37 + -0x7668" (identifier "pcVar37") (+ "+") (number_literal "-0x7668")) () ")")))))) () ")")) (compound_statement "{\n    return **(int **)(pcVar37 + -0x7668);\n  }" ({ "{") (return_statement "return **(int **)(pcVar37 + -0x7668);" (return "return") (pointer_expression "**(int **)(pcVar37 + -0x7668)" (* "*") (pointer_expression "*(int **)(pcVar37 + -0x7668)" (* "*") (cast_expression "(int **)(pcVar37 + -0x7668)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + -0x7668)" (( "(") (binary_expression "pcVar37 + -0x7668" (identifier "pcVar37") (+ "+") (number_literal "-0x7668")) () ")"))))) (; ";")) (} "}"))) (expression_statement "pcVar37 = *(code **)(pcVar37 + -0x7834);" (assignment_expression "pcVar37 = *(code **)(pcVar37 + -0x7834)" (identifier "pcVar37") (= "=") (pointer_expression "*(code **)(pcVar37 + -0x7834)" (* "*") (cast_expression "(code **)(pcVar37 + -0x7834)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + -0x7834)" (( "(") (binary_expression "pcVar37 + -0x7834" (identifier "pcVar37") (+ "+") (number_literal "-0x7834")) () ")"))))) (; ";")) (expression_statement "pcVar38 = DestroyDrawInfo;" (assignment_expression "pcVar38 = DestroyDrawInfo" (identifier "pcVar38") (= "=") (identifier "DestroyDrawInfo")) (; ";")) (expression_statement "(*pcVar37)();" (call_expression "(*pcVar37)()" (parenthesized_expression "(*pcVar37)" (( "(") (pointer_expression "*pcVar37" (* "*") (identifier "pcVar37")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcStack_5d0 = pcVar37 + 0x35a8f0;" (assignment_expression "pcStack_5d0 = pcVar37 + 0x35a8f0" (identifier "pcStack_5d0") (= "=") (binary_expression "pcVar37 + 0x35a8f0" (identifier "pcVar37") (+ "+") (number_literal "0x35a8f0"))) (; ";")) (expression_statement "pdStack_5c8 = pdVar30;" (assignment_expression "pdStack_5c8 = pdVar30" (identifier "pdStack_5c8") (= "=") (identifier "pdVar30")) (; ";")) (expression_statement "pcStack_5c4 = pcVar38;" (assignment_expression "pcStack_5c4 = pcVar38" (identifier "pcStack_5c4") (= "=") (identifier "pcVar38")) (; ";")) (if_statement "if (pdVar14 == (double *)0x0) {\n    (**(code **)(pcVar37 + 0x353660))\n              (*(int *)(pcVar37 + 0x352920) + 0x40e4,*(int *)(pcVar37 + 0x352924) + 0x69c0,0x39a,\n               *(int *)(pcVar37 + 0x352924) + 0x7914);\n    pdVar14 = pdVar30;\nLAB_000a7234:\n    iStack_5d8 = *(int *)(pcVar37 + 0x352924) + 0x10f4;\n    (**(code **)(pcVar37 + 0x353238))\n              (0x8000,*(int *)(pcVar37 + 0x352924) + 0x69c0,*(int *)(pcVar37 + 0x352924) + 0x7904,\n               0x39c);\n    uVar26 = *(uint *)(pdVar14 + 0x72);\n  }\n  else {\n    if (*(uint *)((int)pdVar14 + 0x38c) != 0) goto LAB_000a7234;\n    uVar26 = *(uint *)(pdVar14 + 0x72);\n  }" (if "if") (parenthesized_expression "(pdVar14 == (double *)0x0)" (( "(") (binary_expression "pdVar14 == (double *)0x0" (identifier "pdVar14") (== "==") (cast_expression "(double *)0x0" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    (**(code **)(pcVar37 + 0x353660))\n              (*(int *)(pcVar37 + 0x352920) + 0x40e4,*(int *)(pcVar37 + 0x352924) + 0x69c0,0x39a,\n               *(int *)(pcVar37 + 0x352924) + 0x7914);\n    pdVar14 = pdVar30;\nLAB_000a7234:\n    iStack_5d8 = *(int *)(pcVar37 + 0x352924) + 0x10f4;\n    (**(code **)(pcVar37 + 0x353238))\n              (0x8000,*(int *)(pcVar37 + 0x352924) + 0x69c0,*(int *)(pcVar37 + 0x352924) + 0x7904,\n               0x39c);\n    uVar26 = *(uint *)(pdVar14 + 0x72);\n  }" ({ "{") (expression_statement "(**(code **)(pcVar37 + 0x353660))\n              (*(int *)(pcVar37 + 0x352920) + 0x40e4,*(int *)(pcVar37 + 0x352924) + 0x69c0,0x39a,\n               *(int *)(pcVar37 + 0x352924) + 0x7914);" (call_expression "(**(code **)(pcVar37 + 0x353660))\n              (*(int *)(pcVar37 + 0x352920) + 0x40e4,*(int *)(pcVar37 + 0x352924) + 0x69c0,0x39a,\n               *(int *)(pcVar37 + 0x352924) + 0x7914)" (parenthesized_expression "(**(code **)(pcVar37 + 0x353660))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x353660)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x353660)" (* "*") (cast_expression "(code **)(pcVar37 + 0x353660)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x353660)" (( "(") (binary_expression "pcVar37 + 0x353660" (identifier "pcVar37") (+ "+") (number_literal "0x353660")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar37 + 0x352920) + 0x40e4,*(int *)(pcVar37 + 0x352924) + 0x69c0,0x39a,\n               *(int *)(pcVar37 + 0x352924) + 0x7914)" (( "(") (binary_expression "*(int *)(pcVar37 + 0x352920) + 0x40e4" (pointer_expression "*(int *)(pcVar37 + 0x352920)" (* "*") (cast_expression "(int *)(pcVar37 + 0x352920)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x352920)" (( "(") (binary_expression "pcVar37 + 0x352920" (identifier "pcVar37") (+ "+") (number_literal "0x352920")) () ")")))) (+ "+") (number_literal "0x40e4")) (, ",") (binary_expression "*(int *)(pcVar37 + 0x352924) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + 0x352924)" (* "*") (cast_expression "(int *)(pcVar37 + 0x352924)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x352924)" (( "(") (binary_expression "pcVar37 + 0x352924" (identifier "pcVar37") (+ "+") (number_literal "0x352924")) () ")")))) (+ "+") (number_literal "0x69c0")) (, ",") (number_literal "0x39a") (, ",") (binary_expression "*(int *)(pcVar37 + 0x352924) + 0x7914" (pointer_expression "*(int *)(pcVar37 + 0x352924)" (* "*") (cast_expression "(int *)(pcVar37 + 0x352924)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x352924)" (( "(") (binary_expression "pcVar37 + 0x352924" (identifier "pcVar37") (+ "+") (number_literal "0x352924")) () ")")))) (+ "+") (number_literal "0x7914")) () ")"))) (; ";")) (expression_statement "pdVar14 = pdVar30;" (assignment_expression "pdVar14 = pdVar30" (identifier "pdVar14") (= "=") (identifier "pdVar30")) (; ";")) (labeled_statement "LAB_000a7234:\n    iStack_5d8 = *(int *)(pcVar37 + 0x352924) + 0x10f4;" (statement_identifier "LAB_000a7234") (: ":") (expression_statement "iStack_5d8 = *(int *)(pcVar37 + 0x352924) + 0x10f4;" (assignment_expression "iStack_5d8 = *(int *)(pcVar37 + 0x352924) + 0x10f4" (identifier "iStack_5d8") (= "=") (binary_expression "*(int *)(pcVar37 + 0x352924) + 0x10f4" (pointer_expression "*(int *)(pcVar37 + 0x352924)" (* "*") (cast_expression "(int *)(pcVar37 + 0x352924)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x352924)" (( "(") (binary_expression "pcVar37 + 0x352924" (identifier "pcVar37") (+ "+") (number_literal "0x352924")) () ")")))) (+ "+") (number_literal "0x10f4"))) (; ";"))) (expression_statement "(**(code **)(pcVar37 + 0x353238))\n              (0x8000,*(int *)(pcVar37 + 0x352924) + 0x69c0,*(int *)(pcVar37 + 0x352924) + 0x7904,\n               0x39c);" (call_expression "(**(code **)(pcVar37 + 0x353238))\n              (0x8000,*(int *)(pcVar37 + 0x352924) + 0x69c0,*(int *)(pcVar37 + 0x352924) + 0x7904,\n               0x39c)" (parenthesized_expression "(**(code **)(pcVar37 + 0x353238))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x353238)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x353238)" (* "*") (cast_expression "(code **)(pcVar37 + 0x353238)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x353238)" (( "(") (binary_expression "pcVar37 + 0x353238" (identifier "pcVar37") (+ "+") (number_literal "0x353238")) () ")"))))) () ")")) (argument_list "(0x8000,*(int *)(pcVar37 + 0x352924) + 0x69c0,*(int *)(pcVar37 + 0x352924) + 0x7904,\n               0x39c)" (( "(") (number_literal "0x8000") (, ",") (binary_expression "*(int *)(pcVar37 + 0x352924) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + 0x352924)" (* "*") (cast_expression "(int *)(pcVar37 + 0x352924)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x352924)" (( "(") (binary_expression "pcVar37 + 0x352924" (identifier "pcVar37") (+ "+") (number_literal "0x352924")) () ")")))) (+ "+") (number_literal "0x69c0")) (, ",") (binary_expression "*(int *)(pcVar37 + 0x352924) + 0x7904" (pointer_expression "*(int *)(pcVar37 + 0x352924)" (* "*") (cast_expression "(int *)(pcVar37 + 0x352924)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x352924)" (( "(") (binary_expression "pcVar37 + 0x352924" (identifier "pcVar37") (+ "+") (number_literal "0x352924")) () ")")))) (+ "+") (number_literal "0x7904")) (, ",") (number_literal "0x39c") () ")"))) (; ";")) (expression_statement "uVar26 = *(uint *)(pdVar14 + 0x72);" (assignment_expression "uVar26 = *(uint *)(pdVar14 + 0x72)" (identifier "uVar26") (= "=") (pointer_expression "*(uint *)(pdVar14 + 0x72)" (* "*") (cast_expression "(uint *)(pdVar14 + 0x72)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar14 + 0x72)" (( "(") (binary_expression "pdVar14 + 0x72" (identifier "pdVar14") (+ "+") (number_literal "0x72")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    if (*(uint *)((int)pdVar14 + 0x38c) != 0) goto LAB_000a7234;\n    uVar26 = *(uint *)(pdVar14 + 0x72);\n  }" (else "else") (compound_statement "{\n    if (*(uint *)((int)pdVar14 + 0x38c) != 0) goto LAB_000a7234;\n    uVar26 = *(uint *)(pdVar14 + 0x72);\n  }" ({ "{") (if_statement "if (*(uint *)((int)pdVar14 + 0x38c) != 0) goto LAB_000a7234;" (if "if") (parenthesized_expression "(*(uint *)((int)pdVar14 + 0x38c) != 0)" (( "(") (binary_expression "*(uint *)((int)pdVar14 + 0x38c) != 0" (pointer_expression "*(uint *)((int)pdVar14 + 0x38c)" (* "*") (cast_expression "(uint *)((int)pdVar14 + 0x38c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar14 + 0x38c)" (( "(") (binary_expression "(int)pdVar14 + 0x38c" (cast_expression "(int)pdVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar14")) (+ "+") (number_literal "0x38c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000a7234;" (goto "goto") (statement_identifier "LAB_000a7234") (; ";"))) (expression_statement "uVar26 = *(uint *)(pdVar14 + 0x72);" (assignment_expression "uVar26 = *(uint *)(pdVar14 + 0x72)" (identifier "uVar26") (= "=") (pointer_expression "*(uint *)(pdVar14 + 0x72)" (* "*") (cast_expression "(uint *)(pdVar14 + 0x72)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar14 + 0x72)" (( "(") (binary_expression "pdVar14 + 0x72" (identifier "pdVar14") (+ "+") (number_literal "0x72")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (uVar26 == 0xabacadab) {\n    if (*(uint *)(pdVar14 + 0x77) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x77) = uVar26;\n    }\n    if (*(uint *)pdVar14 != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)pdVar14 = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x4c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4c) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 4) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x35) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)(pdVar14 + 0x35) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x1ac) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x1ac) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x264) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x264) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x4d) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4d) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x26c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x26c) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x50) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x50) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x52) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x52) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x29c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)((int)pdVar14 + 0x29c) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x54) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x54) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x3e) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x3e) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x2a4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x2a4) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x3ac) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3ac) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x3b4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3b4) = uVar26;\n    }\n    *(uint *)(pdVar14 + 0x72) = 0x54535254;\n    iVar3 = (**(code **)(pcStack_5d0 + -0x78d8))(pdVar14);\n    return iVar3;\n  }" (if "if") (parenthesized_expression "(uVar26 == 0xabacadab)" (( "(") (binary_expression "uVar26 == 0xabacadab" (identifier "uVar26") (== "==") (number_literal "0xabacadab")) () ")")) (compound_statement "{\n    if (*(uint *)(pdVar14 + 0x77) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x77) = uVar26;\n    }\n    if (*(uint *)pdVar14 != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)pdVar14 = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x4c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4c) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 4) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x35) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)(pdVar14 + 0x35) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x1ac) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x1ac) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x264) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x264) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x4d) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4d) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x26c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x26c) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x50) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x50) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x52) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x52) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x29c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)((int)pdVar14 + 0x29c) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x54) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x54) = uVar26;\n    }\n    if (*(uint *)(pdVar14 + 0x3e) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x3e) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x2a4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x2a4) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x3ac) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3ac) = uVar26;\n    }\n    if (*(uint *)((int)pdVar14 + 0x3b4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3b4) = uVar26;\n    }\n    *(uint *)(pdVar14 + 0x72) = 0x54535254;\n    iVar3 = (**(code **)(pcStack_5d0 + -0x78d8))(pdVar14);\n    return iVar3;\n  }" ({ "{") (if_statement "if (*(uint *)(pdVar14 + 0x77) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x77) = uVar26;\n    }" (if "if") (parenthesized_expression "(*(uint *)(pdVar14 + 0x77) != 0)" (( "(") (binary_expression "*(uint *)(pdVar14 + 0x77) != 0" (pointer_expression "*(uint *)(pdVar14 + 0x77)" (* "*") (cast_expression "(uint *)(pdVar14 + 0x77)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar14 + 0x77)" (( "(") (binary_expression "pdVar14 + 0x77" (identifier "pdVar14") (+ "+") (number_literal "0x77")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x77) = uVar26;\n    }" ({ "{") (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))()" (identifier "uVar26") (= "=") (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" (( "(") (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" (* "*") (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" (* "*") (cast_expression "(code **)(pcStack_5d0 + -0x7824)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5d0 + -0x7824)" (( "(") (binary_expression "pcStack_5d0 + -0x7824" (identifier "pcStack_5d0") (+ "+") (number_literal "-0x7824")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(uint *)(pdVar14 + 0x77) = uVar26;" (assignment_expression "*(uint *)(pdVar14 + 0x77) = uVar26" (pointer_expression "*(uint *)(pdVar14 + 0x77)" (* "*") (cast_expression "(uint *)(pdVar14 + 0x77)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar14 + 0x77)" (( "(") (binary_expression "pdVar14 + 0x77" (identifier "pdVar14") (+ "+") (number_literal "0x77")) () ")")))) (= "=") (identifier "uVar26")) (; ";")) (} "}"))) (if_statement "if (*(uint *)pdVar14 != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)pdVar14 = uVar26;\n    }" (if "if") (parenthesized_expression "(*(uint *)pdVar14 != 0)" (( "(") (binary_expression "*(uint *)pdVar14 != 0" (pointer_expression "*(uint *)pdVar14" (* "*") (cast_expression "(uint *)pdVar14" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pdVar14"))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)pdVar14 = uVar26;\n    }" ({ "{") (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))()" (identifier "uVar26") (= "=") (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" (( "(") (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" (* "*") (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" (* "*") (cast_expression "(code **)(pcStack_5d0 + -0x7824)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5d0 + -0x7824)" (( "(") (binary_expression "pcStack_5d0 + -0x7824" (identifier "pcStack_5d0") (+ "+") (number_literal "-0x7824")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(uint *)pdVar14 = uVar26;" (assignment_expression "*(uint *)pdVar14 = uVar26" (pointer_expression "*(uint *)pdVar14" (* "*") (cast_expression "(uint *)pdVar14" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pdVar14"))) (= "=") (identifier "uVar26")) (; ";")) (} "}"))) (if_statement "if (*(uint *)(pdVar14 + 0x4c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4c) = uVar26;\n    }" (if "if") (parenthesized_expression "(*(uint *)(pdVar14 + 0x4c) != 0)" (( "(") (binary_expression "*(uint *)(pdVar14 + 0x4c) != 0" (pointer_expression "*(uint *)(pdVar14 + 0x4c)" (* "*") (cast_expression "(uint *)(pdVar14 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar14 + 0x4c)" (( "(") (binary_expression "pdVar14 + 0x4c" (identifier "pdVar14") (+ "+") (number_literal "0x4c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4c) = uVar26;\n    }" ({ "{") (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))()" (identifier "uVar26") (= "=") (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" (( "(") (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" (* "*") (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" (* "*") (cast_expression "(code **)(pcStack_5d0 + -0x7824)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5d0 + -0x7824)" (( "(") (binary_expression "pcStack_5d0 + -0x7824" (identifier "pcStack_5d0") (+ "+") (number_literal "-0x7824")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(uint *)(pdVar14 + 0x4c) = uVar26;" (assignment_expression "*(uint *)(pdVar14 + 0x4c) = uVar26" (pointer_expression "*(uint *)(pdVar14 + 0x4c)" (* "*") (cast_expression "(uint *)(pdVar14 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar14 + 0x4c)" (( "(") (binary_expression "pdVar14 + 0x4c" (identifier "pdVar14") (+ "+") (number_literal "0x4c")) () ")")))) (= "=") (identifier "uVar26")) (; ";")) (} "}"))) (if_statement "if (*(uint *)((int)pdVar14 + 4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 4) = uVar26;\n    }" (if "if") (parenthesized_expression "(*(uint *)((int)pdVar14 + 4) != 0)" (( "(") (binary_expression "*(uint *)((int)pdVar14 + 4) != 0" (pointer_expression "*(uint *)((int)pdVar14 + 4)" (* "*") (cast_expression "(uint *)((int)pdVar14 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar14 + 4)" (( "(") (binary_expression "(int)pdVar14 + 4" (cast_expression "(int)pdVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar14")) (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 4) = uVar26;\n    }" ({ "{") (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))()" (identifier "uVar26") (= "=") (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" (( "(") (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" (* "*") (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" (* "*") (cast_expression "(code **)(pcStack_5d0 + -0x7824)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5d0 + -0x7824)" (( "(") (binary_expression "pcStack_5d0 + -0x7824" (identifier "pcStack_5d0") (+ "+") (number_literal "-0x7824")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(uint *)((int)pdVar14 + 4) = uVar26;" (assignment_expression "*(uint *)((int)pdVar14 + 4) = uVar26" (pointer_expression "*(uint *)((int)pdVar14 + 4)" (* "*") (cast_expression "(uint *)((int)pdVar14 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar14 + 4)" (( "(") (binary_expression "(int)pdVar14 + 4" (cast_expression "(int)pdVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar14")) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar26")) (; ";")) (} "}"))) (if_statement "if (*(uint *)(pdVar14 + 0x35) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)(pdVar14 + 0x35) = uVar26;\n    }" (if "if") (parenthesized_expression "(*(uint *)(pdVar14 + 0x35) != 0)" (( "(") (binary_expression "*(uint *)(pdVar14 + 0x35) != 0" (pointer_expression "*(uint *)(pdVar14 + 0x35)" (* "*") (cast_expression "(uint *)(pdVar14 + 0x35)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar14 + 0x35)" (( "(") (binary_expression "pdVar14 + 0x35" (identifier "pdVar14") (+ "+") (number_literal "0x35")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)(pdVar14 + 0x35) = uVar26;\n    }" ({ "{") (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x794c))()" (identifier "uVar26") (= "=") (call_expression "(**(code **)(pcStack_5d0 + -0x794c))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x794c))" (( "(") (pointer_expression "**(code **)(pcStack_5d0 + -0x794c)" (* "*") (pointer_expression "*(code **)(pcStack_5d0 + -0x794c)" (* "*") (cast_expression "(code **)(pcStack_5d0 + -0x794c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5d0 + -0x794c)" (( "(") (binary_expression "pcStack_5d0 + -0x794c" (identifier "pcStack_5d0") (+ "+") (number_literal "-0x794c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(uint *)(pdVar14 + 0x35) = uVar26;" (assignment_expression "*(uint *)(pdVar14 + 0x35) = uVar26" (pointer_expression "*(uint *)(pdVar14 + 0x35)" (* "*") (cast_expression "(uint *)(pdVar14 + 0x35)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar14 + 0x35)" (( "(") (binary_expression "pdVar14 + 0x35" (identifier "pdVar14") (+ "+") (number_literal "0x35")) () ")")))) (= "=") (identifier "uVar26")) (; ";")) (} "}"))) (if_statement "if (*(uint *)((int)pdVar14 + 0x1ac) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x1ac) = uVar26;\n    }" (if "if") (parenthesized_expression "(*(uint *)((int)pdVar14 + 0x1ac) != 0)" (( "(") (binary_expression "*(uint *)((int)pdVar14 + 0x1ac) != 0" (pointer_expression "*(uint *)((int)pdVar14 + 0x1ac)" (* "*") (cast_expression "(uint *)((int)pdVar14 + 0x1ac)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar14 + 0x1ac)" (( "(") (binary_expression "(int)pdVar14 + 0x1ac" (cast_expression "(int)pdVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar14")) (+ "+") (number_literal "0x1ac")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x1ac) = uVar26;\n    }" ({ "{") (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x794c))()" (identifier "uVar26") (= "=") (call_expression "(**(code **)(pcStack_5d0 + -0x794c))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x794c))" (( "(") (pointer_expression "**(code **)(pcStack_5d0 + -0x794c)" (* "*") (pointer_expression "*(code **)(pcStack_5d0 + -0x794c)" (* "*") (cast_expression "(code **)(pcStack_5d0 + -0x794c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5d0 + -0x794c)" (( "(") (binary_expression "pcStack_5d0 + -0x794c" (identifier "pcStack_5d0") (+ "+") (number_literal "-0x794c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(uint *)((int)pdVar14 + 0x1ac) = uVar26;" (assignment_expression "*(uint *)((int)pdVar14 + 0x1ac) = uVar26" (pointer_expression "*(uint *)((int)pdVar14 + 0x1ac)" (* "*") (cast_expression "(uint *)((int)pdVar14 + 0x1ac)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar14 + 0x1ac)" (( "(") (binary_expression "(int)pdVar14 + 0x1ac" (cast_expression "(int)pdVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar14")) (+ "+") (number_literal "0x1ac")) () ")")))) (= "=") (identifier "uVar26")) (; ";")) (} "}"))) (if_statement "if (*(uint *)((int)pdVar14 + 0x264) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x264) = uVar26;\n    }" (if "if") (parenthesized_expression "(*(uint *)((int)pdVar14 + 0x264) != 0)" (( "(") (binary_expression "*(uint *)((int)pdVar14 + 0x264) != 0" (pointer_expression "*(uint *)((int)pdVar14 + 0x264)" (* "*") (cast_expression "(uint *)((int)pdVar14 + 0x264)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar14 + 0x264)" (( "(") (binary_expression "(int)pdVar14 + 0x264" (cast_expression "(int)pdVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar14")) (+ "+") (number_literal "0x264")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x264) = uVar26;\n    }" ({ "{") (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))()" (identifier "uVar26") (= "=") (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" (( "(") (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" (* "*") (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" (* "*") (cast_expression "(code **)(pcStack_5d0 + -0x7824)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5d0 + -0x7824)" (( "(") (binary_expression "pcStack_5d0 + -0x7824" (identifier "pcStack_5d0") (+ "+") (number_literal "-0x7824")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(uint *)((int)pdVar14 + 0x264) = uVar26;" (assignment_expression "*(uint *)((int)pdVar14 + 0x264) = uVar26" (pointer_expression "*(uint *)((int)pdVar14 + 0x264)" (* "*") (cast_expression "(uint *)((int)pdVar14 + 0x264)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar14 + 0x264)" (( "(") (binary_expression "(int)pdVar14 + 0x264" (cast_expression "(int)pdVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar14")) (+ "+") (number_literal "0x264")) () ")")))) (= "=") (identifier "uVar26")) (; ";")) (} "}"))) (if_statement "if (*(uint *)(pdVar14 + 0x4d) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4d) = uVar26;\n    }" (if "if") (parenthesized_expression "(*(uint *)(pdVar14 + 0x4d) != 0)" (( "(") (binary_expression "*(uint *)(pdVar14 + 0x4d) != 0" (pointer_expression "*(uint *)(pdVar14 + 0x4d)" (* "*") (cast_expression "(uint *)(pdVar14 + 0x4d)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar14 + 0x4d)" (( "(") (binary_expression "pdVar14 + 0x4d" (identifier "pdVar14") (+ "+") (number_literal "0x4d")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x4d) = uVar26;\n    }" ({ "{") (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))()" (identifier "uVar26") (= "=") (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" (( "(") (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" (* "*") (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" (* "*") (cast_expression "(code **)(pcStack_5d0 + -0x7824)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5d0 + -0x7824)" (( "(") (binary_expression "pcStack_5d0 + -0x7824" (identifier "pcStack_5d0") (+ "+") (number_literal "-0x7824")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(uint *)(pdVar14 + 0x4d) = uVar26;" (assignment_expression "*(uint *)(pdVar14 + 0x4d) = uVar26" (pointer_expression "*(uint *)(pdVar14 + 0x4d)" (* "*") (cast_expression "(uint *)(pdVar14 + 0x4d)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar14 + 0x4d)" (( "(") (binary_expression "pdVar14 + 0x4d" (identifier "pdVar14") (+ "+") (number_literal "0x4d")) () ")")))) (= "=") (identifier "uVar26")) (; ";")) (} "}"))) (if_statement "if (*(uint *)((int)pdVar14 + 0x26c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x26c) = uVar26;\n    }" (if "if") (parenthesized_expression "(*(uint *)((int)pdVar14 + 0x26c) != 0)" (( "(") (binary_expression "*(uint *)((int)pdVar14 + 0x26c) != 0" (pointer_expression "*(uint *)((int)pdVar14 + 0x26c)" (* "*") (cast_expression "(uint *)((int)pdVar14 + 0x26c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar14 + 0x26c)" (( "(") (binary_expression "(int)pdVar14 + 0x26c" (cast_expression "(int)pdVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar14")) (+ "+") (number_literal "0x26c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x26c) = uVar26;\n    }" ({ "{") (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))()" (identifier "uVar26") (= "=") (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" (( "(") (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" (* "*") (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" (* "*") (cast_expression "(code **)(pcStack_5d0 + -0x7824)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5d0 + -0x7824)" (( "(") (binary_expression "pcStack_5d0 + -0x7824" (identifier "pcStack_5d0") (+ "+") (number_literal "-0x7824")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(uint *)((int)pdVar14 + 0x26c) = uVar26;" (assignment_expression "*(uint *)((int)pdVar14 + 0x26c) = uVar26" (pointer_expression "*(uint *)((int)pdVar14 + 0x26c)" (* "*") (cast_expression "(uint *)((int)pdVar14 + 0x26c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar14 + 0x26c)" (( "(") (binary_expression "(int)pdVar14 + 0x26c" (cast_expression "(int)pdVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar14")) (+ "+") (number_literal "0x26c")) () ")")))) (= "=") (identifier "uVar26")) (; ";")) (} "}"))) (if_statement "if (*(uint *)(pdVar14 + 0x50) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x50) = uVar26;\n    }" (if "if") (parenthesized_expression "(*(uint *)(pdVar14 + 0x50) != 0)" (( "(") (binary_expression "*(uint *)(pdVar14 + 0x50) != 0" (pointer_expression "*(uint *)(pdVar14 + 0x50)" (* "*") (cast_expression "(uint *)(pdVar14 + 0x50)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar14 + 0x50)" (( "(") (binary_expression "pdVar14 + 0x50" (identifier "pdVar14") (+ "+") (number_literal "0x50")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x50) = uVar26;\n    }" ({ "{") (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))()" (identifier "uVar26") (= "=") (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" (( "(") (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" (* "*") (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" (* "*") (cast_expression "(code **)(pcStack_5d0 + -0x7824)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5d0 + -0x7824)" (( "(") (binary_expression "pcStack_5d0 + -0x7824" (identifier "pcStack_5d0") (+ "+") (number_literal "-0x7824")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(uint *)(pdVar14 + 0x50) = uVar26;" (assignment_expression "*(uint *)(pdVar14 + 0x50) = uVar26" (pointer_expression "*(uint *)(pdVar14 + 0x50)" (* "*") (cast_expression "(uint *)(pdVar14 + 0x50)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar14 + 0x50)" (( "(") (binary_expression "pdVar14 + 0x50" (identifier "pdVar14") (+ "+") (number_literal "0x50")) () ")")))) (= "=") (identifier "uVar26")) (; ";")) (} "}"))) (if_statement "if (*(uint *)(pdVar14 + 0x52) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x52) = uVar26;\n    }" (if "if") (parenthesized_expression "(*(uint *)(pdVar14 + 0x52) != 0)" (( "(") (binary_expression "*(uint *)(pdVar14 + 0x52) != 0" (pointer_expression "*(uint *)(pdVar14 + 0x52)" (* "*") (cast_expression "(uint *)(pdVar14 + 0x52)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar14 + 0x52)" (( "(") (binary_expression "pdVar14 + 0x52" (identifier "pdVar14") (+ "+") (number_literal "0x52")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)(pdVar14 + 0x52) = uVar26;\n    }" ({ "{") (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))()" (identifier "uVar26") (= "=") (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" (( "(") (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" (* "*") (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" (* "*") (cast_expression "(code **)(pcStack_5d0 + -0x7824)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5d0 + -0x7824)" (( "(") (binary_expression "pcStack_5d0 + -0x7824" (identifier "pcStack_5d0") (+ "+") (number_literal "-0x7824")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(uint *)(pdVar14 + 0x52) = uVar26;" (assignment_expression "*(uint *)(pdVar14 + 0x52) = uVar26" (pointer_expression "*(uint *)(pdVar14 + 0x52)" (* "*") (cast_expression "(uint *)(pdVar14 + 0x52)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar14 + 0x52)" (( "(") (binary_expression "pdVar14 + 0x52" (identifier "pdVar14") (+ "+") (number_literal "0x52")) () ")")))) (= "=") (identifier "uVar26")) (; ";")) (} "}"))) (if_statement "if (*(uint *)((int)pdVar14 + 0x29c) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)((int)pdVar14 + 0x29c) = uVar26;\n    }" (if "if") (parenthesized_expression "(*(uint *)((int)pdVar14 + 0x29c) != 0)" (( "(") (binary_expression "*(uint *)((int)pdVar14 + 0x29c) != 0" (pointer_expression "*(uint *)((int)pdVar14 + 0x29c)" (* "*") (cast_expression "(uint *)((int)pdVar14 + 0x29c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar14 + 0x29c)" (( "(") (binary_expression "(int)pdVar14 + 0x29c" (cast_expression "(int)pdVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar14")) (+ "+") (number_literal "0x29c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)((int)pdVar14 + 0x29c) = uVar26;\n    }" ({ "{") (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))()" (identifier "uVar26") (= "=") (call_expression "(**(code **)(pcStack_5d0 + -0x78d8))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x78d8))" (( "(") (pointer_expression "**(code **)(pcStack_5d0 + -0x78d8)" (* "*") (pointer_expression "*(code **)(pcStack_5d0 + -0x78d8)" (* "*") (cast_expression "(code **)(pcStack_5d0 + -0x78d8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5d0 + -0x78d8)" (( "(") (binary_expression "pcStack_5d0 + -0x78d8" (identifier "pcStack_5d0") (+ "+") (number_literal "-0x78d8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(uint *)((int)pdVar14 + 0x29c) = uVar26;" (assignment_expression "*(uint *)((int)pdVar14 + 0x29c) = uVar26" (pointer_expression "*(uint *)((int)pdVar14 + 0x29c)" (* "*") (cast_expression "(uint *)((int)pdVar14 + 0x29c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar14 + 0x29c)" (( "(") (binary_expression "(int)pdVar14 + 0x29c" (cast_expression "(int)pdVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar14")) (+ "+") (number_literal "0x29c")) () ")")))) (= "=") (identifier "uVar26")) (; ";")) (} "}"))) (if_statement "if (*(uint *)(pdVar14 + 0x54) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x54) = uVar26;\n    }" (if "if") (parenthesized_expression "(*(uint *)(pdVar14 + 0x54) != 0)" (( "(") (binary_expression "*(uint *)(pdVar14 + 0x54) != 0" (pointer_expression "*(uint *)(pdVar14 + 0x54)" (* "*") (cast_expression "(uint *)(pdVar14 + 0x54)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar14 + 0x54)" (( "(") (binary_expression "pdVar14 + 0x54" (identifier "pdVar14") (+ "+") (number_literal "0x54")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x54) = uVar26;\n    }" ({ "{") (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))()" (identifier "uVar26") (= "=") (call_expression "(**(code **)(pcStack_5d0 + -0x78d8))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x78d8))" (( "(") (pointer_expression "**(code **)(pcStack_5d0 + -0x78d8)" (* "*") (pointer_expression "*(code **)(pcStack_5d0 + -0x78d8)" (* "*") (cast_expression "(code **)(pcStack_5d0 + -0x78d8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5d0 + -0x78d8)" (( "(") (binary_expression "pcStack_5d0 + -0x78d8" (identifier "pcStack_5d0") (+ "+") (number_literal "-0x78d8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(uint *)(pdVar14 + 0x54) = uVar26;" (assignment_expression "*(uint *)(pdVar14 + 0x54) = uVar26" (pointer_expression "*(uint *)(pdVar14 + 0x54)" (* "*") (cast_expression "(uint *)(pdVar14 + 0x54)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar14 + 0x54)" (( "(") (binary_expression "pdVar14 + 0x54" (identifier "pdVar14") (+ "+") (number_literal "0x54")) () ")")))) (= "=") (identifier "uVar26")) (; ";")) (} "}"))) (if_statement "if (*(uint *)(pdVar14 + 0x3e) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x3e) = uVar26;\n    }" (if "if") (parenthesized_expression "(*(uint *)(pdVar14 + 0x3e) != 0)" (( "(") (binary_expression "*(uint *)(pdVar14 + 0x3e) != 0" (pointer_expression "*(uint *)(pdVar14 + 0x3e)" (* "*") (cast_expression "(uint *)(pdVar14 + 0x3e)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar14 + 0x3e)" (( "(") (binary_expression "pdVar14 + 0x3e" (identifier "pdVar14") (+ "+") (number_literal "0x3e")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();\n      *(uint *)(pdVar14 + 0x3e) = uVar26;\n    }" ({ "{") (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))()" (identifier "uVar26") (= "=") (call_expression "(**(code **)(pcStack_5d0 + -0x78d8))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x78d8))" (( "(") (pointer_expression "**(code **)(pcStack_5d0 + -0x78d8)" (* "*") (pointer_expression "*(code **)(pcStack_5d0 + -0x78d8)" (* "*") (cast_expression "(code **)(pcStack_5d0 + -0x78d8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5d0 + -0x78d8)" (( "(") (binary_expression "pcStack_5d0 + -0x78d8" (identifier "pcStack_5d0") (+ "+") (number_literal "-0x78d8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(uint *)(pdVar14 + 0x3e) = uVar26;" (assignment_expression "*(uint *)(pdVar14 + 0x3e) = uVar26" (pointer_expression "*(uint *)(pdVar14 + 0x3e)" (* "*") (cast_expression "(uint *)(pdVar14 + 0x3e)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar14 + 0x3e)" (( "(") (binary_expression "pdVar14 + 0x3e" (identifier "pdVar14") (+ "+") (number_literal "0x3e")) () ")")))) (= "=") (identifier "uVar26")) (; ";")) (} "}"))) (if_statement "if (*(uint *)((int)pdVar14 + 0x2a4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x2a4) = uVar26;\n    }" (if "if") (parenthesized_expression "(*(uint *)((int)pdVar14 + 0x2a4) != 0)" (( "(") (binary_expression "*(uint *)((int)pdVar14 + 0x2a4) != 0" (pointer_expression "*(uint *)((int)pdVar14 + 0x2a4)" (* "*") (cast_expression "(uint *)((int)pdVar14 + 0x2a4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar14 + 0x2a4)" (( "(") (binary_expression "(int)pdVar14 + 0x2a4" (cast_expression "(int)pdVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar14")) (+ "+") (number_literal "0x2a4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();\n      *(uint *)((int)pdVar14 + 0x2a4) = uVar26;\n    }" ({ "{") (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x7824))()" (identifier "uVar26") (= "=") (call_expression "(**(code **)(pcStack_5d0 + -0x7824))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x7824))" (( "(") (pointer_expression "**(code **)(pcStack_5d0 + -0x7824)" (* "*") (pointer_expression "*(code **)(pcStack_5d0 + -0x7824)" (* "*") (cast_expression "(code **)(pcStack_5d0 + -0x7824)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5d0 + -0x7824)" (( "(") (binary_expression "pcStack_5d0 + -0x7824" (identifier "pcStack_5d0") (+ "+") (number_literal "-0x7824")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(uint *)((int)pdVar14 + 0x2a4) = uVar26;" (assignment_expression "*(uint *)((int)pdVar14 + 0x2a4) = uVar26" (pointer_expression "*(uint *)((int)pdVar14 + 0x2a4)" (* "*") (cast_expression "(uint *)((int)pdVar14 + 0x2a4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar14 + 0x2a4)" (( "(") (binary_expression "(int)pdVar14 + 0x2a4" (cast_expression "(int)pdVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar14")) (+ "+") (number_literal "0x2a4")) () ")")))) (= "=") (identifier "uVar26")) (; ";")) (} "}"))) (if_statement "if (*(uint *)((int)pdVar14 + 0x3ac) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3ac) = uVar26;\n    }" (if "if") (parenthesized_expression "(*(uint *)((int)pdVar14 + 0x3ac) != 0)" (( "(") (binary_expression "*(uint *)((int)pdVar14 + 0x3ac) != 0" (pointer_expression "*(uint *)((int)pdVar14 + 0x3ac)" (* "*") (cast_expression "(uint *)((int)pdVar14 + 0x3ac)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar14 + 0x3ac)" (( "(") (binary_expression "(int)pdVar14 + 0x3ac" (cast_expression "(int)pdVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar14")) (+ "+") (number_literal "0x3ac")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3ac) = uVar26;\n    }" ({ "{") (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x794c))()" (identifier "uVar26") (= "=") (call_expression "(**(code **)(pcStack_5d0 + -0x794c))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x794c))" (( "(") (pointer_expression "**(code **)(pcStack_5d0 + -0x794c)" (* "*") (pointer_expression "*(code **)(pcStack_5d0 + -0x794c)" (* "*") (cast_expression "(code **)(pcStack_5d0 + -0x794c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5d0 + -0x794c)" (( "(") (binary_expression "pcStack_5d0 + -0x794c" (identifier "pcStack_5d0") (+ "+") (number_literal "-0x794c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(uint *)((int)pdVar14 + 0x3ac) = uVar26;" (assignment_expression "*(uint *)((int)pdVar14 + 0x3ac) = uVar26" (pointer_expression "*(uint *)((int)pdVar14 + 0x3ac)" (* "*") (cast_expression "(uint *)((int)pdVar14 + 0x3ac)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar14 + 0x3ac)" (( "(") (binary_expression "(int)pdVar14 + 0x3ac" (cast_expression "(int)pdVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar14")) (+ "+") (number_literal "0x3ac")) () ")")))) (= "=") (identifier "uVar26")) (; ";")) (} "}"))) (if_statement "if (*(uint *)((int)pdVar14 + 0x3b4) != 0) {\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3b4) = uVar26;\n    }" (if "if") (parenthesized_expression "(*(uint *)((int)pdVar14 + 0x3b4) != 0)" (( "(") (binary_expression "*(uint *)((int)pdVar14 + 0x3b4) != 0" (pointer_expression "*(uint *)((int)pdVar14 + 0x3b4)" (* "*") (cast_expression "(uint *)((int)pdVar14 + 0x3b4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar14 + 0x3b4)" (( "(") (binary_expression "(int)pdVar14 + 0x3b4" (cast_expression "(int)pdVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar14")) (+ "+") (number_literal "0x3b4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();\n      *(uint *)((int)pdVar14 + 0x3b4) = uVar26;\n    }" ({ "{") (expression_statement "uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();" (assignment_expression "uVar26 = (**(code **)(pcStack_5d0 + -0x794c))()" (identifier "uVar26") (= "=") (call_expression "(**(code **)(pcStack_5d0 + -0x794c))()" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x794c))" (( "(") (pointer_expression "**(code **)(pcStack_5d0 + -0x794c)" (* "*") (pointer_expression "*(code **)(pcStack_5d0 + -0x794c)" (* "*") (cast_expression "(code **)(pcStack_5d0 + -0x794c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5d0 + -0x794c)" (( "(") (binary_expression "pcStack_5d0 + -0x794c" (identifier "pcStack_5d0") (+ "+") (number_literal "-0x794c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(uint *)((int)pdVar14 + 0x3b4) = uVar26;" (assignment_expression "*(uint *)((int)pdVar14 + 0x3b4) = uVar26" (pointer_expression "*(uint *)((int)pdVar14 + 0x3b4)" (* "*") (cast_expression "(uint *)((int)pdVar14 + 0x3b4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar14 + 0x3b4)" (( "(") (binary_expression "(int)pdVar14 + 0x3b4" (cast_expression "(int)pdVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar14")) (+ "+") (number_literal "0x3b4")) () ")")))) (= "=") (identifier "uVar26")) (; ";")) (} "}"))) (expression_statement "*(uint *)(pdVar14 + 0x72) = 0x54535254;" (assignment_expression "*(uint *)(pdVar14 + 0x72) = 0x54535254" (pointer_expression "*(uint *)(pdVar14 + 0x72)" (* "*") (cast_expression "(uint *)(pdVar14 + 0x72)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar14 + 0x72)" (( "(") (binary_expression "pdVar14 + 0x72" (identifier "pdVar14") (+ "+") (number_literal "0x72")) () ")")))) (= "=") (number_literal "0x54535254")) (; ";")) (expression_statement "iVar3 = (**(code **)(pcStack_5d0 + -0x78d8))(pdVar14);" (assignment_expression "iVar3 = (**(code **)(pcStack_5d0 + -0x78d8))(pdVar14)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcStack_5d0 + -0x78d8))(pdVar14)" (parenthesized_expression "(**(code **)(pcStack_5d0 + -0x78d8))" (( "(") (pointer_expression "**(code **)(pcStack_5d0 + -0x78d8)" (* "*") (pointer_expression "*(code **)(pcStack_5d0 + -0x78d8)" (* "*") (cast_expression "(code **)(pcStack_5d0 + -0x78d8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5d0 + -0x78d8)" (( "(") (binary_expression "pcStack_5d0 + -0x78d8" (identifier "pcStack_5d0") (+ "+") (number_literal "-0x78d8")) () ")"))))) () ")")) (argument_list "(pdVar14)" (( "(") (identifier "pdVar14") () ")")))) (; ";")) (return_statement "return iVar3;" (return "return") (identifier "iVar3") (; ";")) (} "}"))) (expression_statement "pdVar5 = (double *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x7914);" (assignment_expression "pdVar5 = (double *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x7914)" (identifier "pdVar5") (= "=") (cast_expression "(double *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x7914)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5d0 + -0x7fcc) + 0x7914)" (( "(") (binary_expression "*(int *)(pcStack_5d0 + -0x7fcc) + 0x7914" (pointer_expression "*(int *)(pcStack_5d0 + -0x7fcc)" (* "*") (cast_expression "(int *)(pcStack_5d0 + -0x7fcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5d0 + -0x7fcc)" (( "(") (binary_expression "pcStack_5d0 + -0x7fcc" (identifier "pcStack_5d0") (+ "+") (number_literal "-0x7fcc")) () ")")))) (+ "+") (number_literal "0x7914")) () ")")))) (; ";")) (expression_statement "pdVar16 = (double *)&DAT_0000039d;" (assignment_expression "pdVar16 = (double *)&DAT_0000039d" (identifier "pdVar16") (= "=") (cast_expression "(double *)&DAT_0000039d" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_0000039d" (& "&") (identifier "DAT_0000039d")))) (; ";")) (expression_statement "puVar23 = (uint *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x69c0);" (assignment_expression "puVar23 = (uint *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x69c0)" (identifier "puVar23") (= "=") (cast_expression "(uint *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x69c0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5d0 + -0x7fcc) + 0x69c0)" (( "(") (binary_expression "*(int *)(pcStack_5d0 + -0x7fcc) + 0x69c0" (pointer_expression "*(int *)(pcStack_5d0 + -0x7fcc)" (* "*") (cast_expression "(int *)(pcStack_5d0 + -0x7fcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5d0 + -0x7fcc)" (( "(") (binary_expression "pcStack_5d0 + -0x7fcc" (identifier "pcStack_5d0") (+ "+") (number_literal "-0x7fcc")) () ")")))) (+ "+") (number_literal "0x69c0")) () ")")))) (; ";")) (expression_statement "piVar2 = (int *)(*(int *)(pcStack_5d0 + -0x7fd0) + 0x4128);" (assignment_expression "piVar2 = (int *)(*(int *)(pcStack_5d0 + -0x7fd0) + 0x4128)" (identifier "piVar2") (= "=") (cast_expression "(int *)(*(int *)(pcStack_5d0 + -0x7fd0) + 0x4128)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_5d0 + -0x7fd0) + 0x4128)" (( "(") (binary_expression "*(int *)(pcStack_5d0 + -0x7fd0) + 0x4128" (pointer_expression "*(int *)(pcStack_5d0 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_5d0 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_5d0 + -0x7fd0)" (( "(") (binary_expression "pcStack_5d0 + -0x7fd0" (identifier "pcStack_5d0") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4128")) () ")")))) (; ";")) (expression_statement "pcVar37 = *(code **)(pcStack_5d0 + -0x7290);" (assignment_expression "pcVar37 = *(code **)(pcStack_5d0 + -0x7290)" (identifier "pcVar37") (= "=") (pointer_expression "*(code **)(pcStack_5d0 + -0x7290)" (* "*") (cast_expression "(code **)(pcStack_5d0 + -0x7290)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_5d0 + -0x7290)" (( "(") (binary_expression "pcStack_5d0 + -0x7290" (identifier "pcStack_5d0") (+ "+") (number_literal "-0x7290")) () ")"))))) (; ";")) (expression_statement "pcVar38 = DrawAffineImage;" (assignment_expression "pcVar38 = DrawAffineImage" (identifier "pcVar38") (= "=") (identifier "DrawAffineImage")) (; ";")) (expression_statement "(*pcVar37)();" (call_expression "(*pcVar37)()" (parenthesized_expression "(*pcVar37)" (( "(") (pointer_expression "*pcVar37" (* "*") (identifier "pcVar37")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcStack_758 = pcVar37 + 0x35a61c;" (assignment_expression "pcStack_758 = pcVar37 + 0x35a61c" (identifier "pcStack_758") (= "=") (binary_expression "pcVar37 + 0x35a61c" (identifier "pcVar37") (+ "+") (number_literal "0x35a61c"))) (; ";")) (expression_statement "uStack_638._4_4_ = **(int **)(pcVar37 + 0x352fb4);" (assignment_expression "uStack_638._4_4_ = **(int **)(pcVar37 + 0x352fb4)" (field_expression "uStack_638._4_4_" (identifier "uStack_638") (. ".") (field_identifier "_4_4_")) (= "=") (pointer_expression "**(int **)(pcVar37 + 0x352fb4)" (* "*") (pointer_expression "*(int **)(pcVar37 + 0x352fb4)" (* "*") (cast_expression "(int **)(pcVar37 + 0x352fb4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x352fb4)" (( "(") (binary_expression "pcVar37 + 0x352fb4" (identifier "pcVar37") (+ "+") (number_literal "0x352fb4")) () ")")))))) (; ";")) (expression_statement "pdStack_62c = pdVar14;" (assignment_expression "pdStack_62c = pdVar14" (identifier "pdStack_62c") (= "=") (identifier "pdVar14")) (; ";")) (expression_statement "piStack_628 = piVar48;" (assignment_expression "piStack_628 = piVar48" (identifier "piStack_628") (= "=") (identifier "piVar48")) (; ";")) (expression_statement "puStack_624 = puVar32;" (assignment_expression "puStack_624 = puVar32" (identifier "puStack_624") (= "=") (identifier "puVar32")) (; ";")) (expression_statement "pdStack_620 = pdVar29;" (assignment_expression "pdStack_620 = pdVar29" (identifier "pdStack_620") (= "=") (identifier "pdVar29")) (; ";")) (expression_statement "iStack_61c = iVar28;" (assignment_expression "iStack_61c = iVar28" (identifier "iStack_61c") (= "=") (identifier "iVar28")) (; ";")) (expression_statement "puStack_618 = puVar35;" (assignment_expression "puStack_618 = puVar35" (identifier "puStack_618") (= "=") (identifier "puVar35")) (; ";")) (expression_statement "pdStack_614 = unaff_s6;" (assignment_expression "pdStack_614 = unaff_s6" (identifier "pdStack_614") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "uStack_610 = unaff_s7;" (assignment_expression "uStack_610 = unaff_s7" (identifier "uStack_610") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "pcStack_60c = pcVar38;" (assignment_expression "pcStack_60c = pcVar38" (identifier "pcStack_60c") (= "=") (identifier "pcVar38")) (; ";")) (expression_statement "dStack_608 = in_f20_21;" (assignment_expression "dStack_608 = in_f20_21" (identifier "dStack_608") (= "=") (identifier "in_f20_21")) (; ";")) (expression_statement "dStack_600 = in_f22_23;" (assignment_expression "dStack_600 = in_f22_23" (identifier "dStack_600") (= "=") (identifier "in_f22_23")) (; ";")) (expression_statement "dStack_5f8 = in_f24_25;" (assignment_expression "dStack_5f8 = in_f24_25" (identifier "dStack_5f8") (= "=") (identifier "in_f24_25")) (; ";")) (expression_statement "dStack_5f0 = in_f26_27;" (assignment_expression "dStack_5f0 = in_f26_27" (identifier "dStack_5f0") (= "=") (identifier "in_f26_27")) (; ";")) (if_statement "if (piVar2 == (int *)0x0) {\n    (**(code **)(pcVar37 + 0x35338c))\n              (*(int *)(pcVar37 + 0x35264c) + 0x3da0,*(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c0,\n               *(int *)(pcVar37 + 0x352650) + 0x78f4);\n    pdVar16 = pdVar14;\n    piVar2 = piVar48;\n    puVar23 = puVar32;\n    pdVar5 = pdVar29;\nLAB_000a7434:\n    piVar48 = (int *)(**(code **)(pcVar37 + 0x35338c))\n                               (*(int *)(pcVar37 + 0x352650) + -0x784,\n                                *(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar37 + 0x352650) + 0x78f4);\nLAB_000a745c:\n    iStack_760 = *(int *)(pcVar37 + 0x352654) + -0x2f6c;\n    piStack_75c = piVar48;\n    (**(code **)(pcVar37 + 0x352f64))\n              (0x8000,*(int *)(pcVar37 + 0x352650) + 0x69c0,*(int *)(pcVar37 + 0x352650) + 0x78e4,\n               0x4c3);\n  }\n  else {\n    if (piVar2[0xcdb] != -0x54535255) goto LAB_000a7434;\n    piVar48 = piVar2 + 0xd0;\n    if (piVar2[0xcd4] != 0) goto LAB_000a745c;\n  }" (if "if") (parenthesized_expression "(piVar2 == (int *)0x0)" (( "(") (binary_expression "piVar2 == (int *)0x0" (identifier "piVar2") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    (**(code **)(pcVar37 + 0x35338c))\n              (*(int *)(pcVar37 + 0x35264c) + 0x3da0,*(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c0,\n               *(int *)(pcVar37 + 0x352650) + 0x78f4);\n    pdVar16 = pdVar14;\n    piVar2 = piVar48;\n    puVar23 = puVar32;\n    pdVar5 = pdVar29;\nLAB_000a7434:\n    piVar48 = (int *)(**(code **)(pcVar37 + 0x35338c))\n                               (*(int *)(pcVar37 + 0x352650) + -0x784,\n                                *(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar37 + 0x352650) + 0x78f4);\nLAB_000a745c:\n    iStack_760 = *(int *)(pcVar37 + 0x352654) + -0x2f6c;\n    piStack_75c = piVar48;\n    (**(code **)(pcVar37 + 0x352f64))\n              (0x8000,*(int *)(pcVar37 + 0x352650) + 0x69c0,*(int *)(pcVar37 + 0x352650) + 0x78e4,\n               0x4c3);\n  }" ({ "{") (expression_statement "(**(code **)(pcVar37 + 0x35338c))\n              (*(int *)(pcVar37 + 0x35264c) + 0x3da0,*(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c0,\n               *(int *)(pcVar37 + 0x352650) + 0x78f4);" (call_expression "(**(code **)(pcVar37 + 0x35338c))\n              (*(int *)(pcVar37 + 0x35264c) + 0x3da0,*(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c0,\n               *(int *)(pcVar37 + 0x352650) + 0x78f4)" (parenthesized_expression "(**(code **)(pcVar37 + 0x35338c))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x35338c)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x35338c)" (* "*") (cast_expression "(code **)(pcVar37 + 0x35338c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x35338c)" (( "(") (binary_expression "pcVar37 + 0x35338c" (identifier "pcVar37") (+ "+") (number_literal "0x35338c")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar37 + 0x35264c) + 0x3da0,*(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c0,\n               *(int *)(pcVar37 + 0x352650) + 0x78f4)" (( "(") (binary_expression "*(int *)(pcVar37 + 0x35264c) + 0x3da0" (pointer_expression "*(int *)(pcVar37 + 0x35264c)" (* "*") (cast_expression "(int *)(pcVar37 + 0x35264c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x35264c)" (( "(") (binary_expression "pcVar37 + 0x35264c" (identifier "pcVar37") (+ "+") (number_literal "0x35264c")) () ")")))) (+ "+") (number_literal "0x3da0")) (, ",") (binary_expression "*(int *)(pcVar37 + 0x352650) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + 0x352650)" (* "*") (cast_expression "(int *)(pcVar37 + 0x352650)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x352650)" (( "(") (binary_expression "pcVar37 + 0x352650" (identifier "pcVar37") (+ "+") (number_literal "0x352650")) () ")")))) (+ "+") (number_literal "0x69c0")) (, ",") (number_literal "0x4c0") (, ",") (binary_expression "*(int *)(pcVar37 + 0x352650) + 0x78f4" (pointer_expression "*(int *)(pcVar37 + 0x352650)" (* "*") (cast_expression "(int *)(pcVar37 + 0x352650)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x352650)" (( "(") (binary_expression "pcVar37 + 0x352650" (identifier "pcVar37") (+ "+") (number_literal "0x352650")) () ")")))) (+ "+") (number_literal "0x78f4")) () ")"))) (; ";")) (expression_statement "pdVar16 = pdVar14;" (assignment_expression "pdVar16 = pdVar14" (identifier "pdVar16") (= "=") (identifier "pdVar14")) (; ";")) (expression_statement "piVar2 = piVar48;" (assignment_expression "piVar2 = piVar48" (identifier "piVar2") (= "=") (identifier "piVar48")) (; ";")) (expression_statement "puVar23 = puVar32;" (assignment_expression "puVar23 = puVar32" (identifier "puVar23") (= "=") (identifier "puVar32")) (; ";")) (expression_statement "pdVar5 = pdVar29;" (assignment_expression "pdVar5 = pdVar29" (identifier "pdVar5") (= "=") (identifier "pdVar29")) (; ";")) (labeled_statement "LAB_000a7434:\n    piVar48 = (int *)(**(code **)(pcVar37 + 0x35338c))\n                               (*(int *)(pcVar37 + 0x352650) + -0x784,\n                                *(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar37 + 0x352650) + 0x78f4);" (statement_identifier "LAB_000a7434") (: ":") (expression_statement "piVar48 = (int *)(**(code **)(pcVar37 + 0x35338c))\n                               (*(int *)(pcVar37 + 0x352650) + -0x784,\n                                *(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar37 + 0x352650) + 0x78f4);" (assignment_expression "piVar48 = (int *)(**(code **)(pcVar37 + 0x35338c))\n                               (*(int *)(pcVar37 + 0x352650) + -0x784,\n                                *(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar37 + 0x352650) + 0x78f4)" (identifier "piVar48") (= "=") (cast_expression "(int *)(**(code **)(pcVar37 + 0x35338c))\n                               (*(int *)(pcVar37 + 0x352650) + -0x784,\n                                *(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar37 + 0x352650) + 0x78f4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar37 + 0x35338c))\n                               (*(int *)(pcVar37 + 0x352650) + -0x784,\n                                *(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar37 + 0x352650) + 0x78f4)" (parenthesized_expression "(**(code **)(pcVar37 + 0x35338c))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x35338c)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x35338c)" (* "*") (cast_expression "(code **)(pcVar37 + 0x35338c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x35338c)" (( "(") (binary_expression "pcVar37 + 0x35338c" (identifier "pcVar37") (+ "+") (number_literal "0x35338c")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar37 + 0x352650) + -0x784,\n                                *(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c1,\n                                *(int *)(pcVar37 + 0x352650) + 0x78f4)" (( "(") (binary_expression "*(int *)(pcVar37 + 0x352650) + -0x784" (pointer_expression "*(int *)(pcVar37 + 0x352650)" (* "*") (cast_expression "(int *)(pcVar37 + 0x352650)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x352650)" (( "(") (binary_expression "pcVar37 + 0x352650" (identifier "pcVar37") (+ "+") (number_literal "0x352650")) () ")")))) (+ "+") (number_literal "-0x784")) (, ",") (binary_expression "*(int *)(pcVar37 + 0x352650) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + 0x352650)" (* "*") (cast_expression "(int *)(pcVar37 + 0x352650)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x352650)" (( "(") (binary_expression "pcVar37 + 0x352650" (identifier "pcVar37") (+ "+") (number_literal "0x352650")) () ")")))) (+ "+") (number_literal "0x69c0")) (, ",") (number_literal "0x4c1") (, ",") (binary_expression "*(int *)(pcVar37 + 0x352650) + 0x78f4" (pointer_expression "*(int *)(pcVar37 + 0x352650)" (* "*") (cast_expression "(int *)(pcVar37 + 0x352650)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x352650)" (( "(") (binary_expression "pcVar37 + 0x352650" (identifier "pcVar37") (+ "+") (number_literal "0x352650")) () ")")))) (+ "+") (number_literal "0x78f4")) () ")"))))) (; ";"))) (labeled_statement "LAB_000a745c:\n    iStack_760 = *(int *)(pcVar37 + 0x352654) + -0x2f6c;" (statement_identifier "LAB_000a745c") (: ":") (expression_statement "iStack_760 = *(int *)(pcVar37 + 0x352654) + -0x2f6c;" (assignment_expression "iStack_760 = *(int *)(pcVar37 + 0x352654) + -0x2f6c" (identifier "iStack_760") (= "=") (binary_expression "*(int *)(pcVar37 + 0x352654) + -0x2f6c" (pointer_expression "*(int *)(pcVar37 + 0x352654)" (* "*") (cast_expression "(int *)(pcVar37 + 0x352654)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x352654)" (( "(") (binary_expression "pcVar37 + 0x352654" (identifier "pcVar37") (+ "+") (number_literal "0x352654")) () ")")))) (+ "+") (number_literal "-0x2f6c"))) (; ";"))) (expression_statement "piStack_75c = piVar48;" (assignment_expression "piStack_75c = piVar48" (identifier "piStack_75c") (= "=") (identifier "piVar48")) (; ";")) (expression_statement "(**(code **)(pcVar37 + 0x352f64))\n              (0x8000,*(int *)(pcVar37 + 0x352650) + 0x69c0,*(int *)(pcVar37 + 0x352650) + 0x78e4,\n               0x4c3);" (call_expression "(**(code **)(pcVar37 + 0x352f64))\n              (0x8000,*(int *)(pcVar37 + 0x352650) + 0x69c0,*(int *)(pcVar37 + 0x352650) + 0x78e4,\n               0x4c3)" (parenthesized_expression "(**(code **)(pcVar37 + 0x352f64))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x352f64)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x352f64)" (* "*") (cast_expression "(code **)(pcVar37 + 0x352f64)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x352f64)" (( "(") (binary_expression "pcVar37 + 0x352f64" (identifier "pcVar37") (+ "+") (number_literal "0x352f64")) () ")"))))) () ")")) (argument_list "(0x8000,*(int *)(pcVar37 + 0x352650) + 0x69c0,*(int *)(pcVar37 + 0x352650) + 0x78e4,\n               0x4c3)" (( "(") (number_literal "0x8000") (, ",") (binary_expression "*(int *)(pcVar37 + 0x352650) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + 0x352650)" (* "*") (cast_expression "(int *)(pcVar37 + 0x352650)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x352650)" (( "(") (binary_expression "pcVar37 + 0x352650" (identifier "pcVar37") (+ "+") (number_literal "0x352650")) () ")")))) (+ "+") (number_literal "0x69c0")) (, ",") (binary_expression "*(int *)(pcVar37 + 0x352650) + 0x78e4" (pointer_expression "*(int *)(pcVar37 + 0x352650)" (* "*") (cast_expression "(int *)(pcVar37 + 0x352650)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x352650)" (( "(") (binary_expression "pcVar37 + 0x352650" (identifier "pcVar37") (+ "+") (number_literal "0x352650")) () ")")))) (+ "+") (number_literal "0x78e4")) (, ",") (number_literal "0x4c3") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    if (piVar2[0xcdb] != -0x54535255) goto LAB_000a7434;\n    piVar48 = piVar2 + 0xd0;\n    if (piVar2[0xcd4] != 0) goto LAB_000a745c;\n  }" (else "else") (compound_statement "{\n    if (piVar2[0xcdb] != -0x54535255) goto LAB_000a7434;\n    piVar48 = piVar2 + 0xd0;\n    if (piVar2[0xcd4] != 0) goto LAB_000a745c;\n  }" ({ "{") (if_statement "if (piVar2[0xcdb] != -0x54535255) goto LAB_000a7434;" (if "if") (parenthesized_expression "(piVar2[0xcdb] != -0x54535255)" (( "(") (binary_expression "piVar2[0xcdb] != -0x54535255" (subscript_expression "piVar2[0xcdb]" (identifier "piVar2") ([ "[") (number_literal "0xcdb") (] "]")) (!= "!=") (number_literal "-0x54535255")) () ")")) (goto_statement "goto LAB_000a7434;" (goto "goto") (statement_identifier "LAB_000a7434") (; ";"))) (expression_statement "piVar48 = piVar2 + 0xd0;" (assignment_expression "piVar48 = piVar2 + 0xd0" (identifier "piVar48") (= "=") (binary_expression "piVar2 + 0xd0" (identifier "piVar2") (+ "+") (number_literal "0xd0"))) (; ";")) (if_statement "if (piVar2[0xcd4] != 0) goto LAB_000a745c;" (if "if") (parenthesized_expression "(piVar2[0xcd4] != 0)" (( "(") (binary_expression "piVar2[0xcd4] != 0" (subscript_expression "piVar2[0xcd4]" (identifier "piVar2") ([ "[") (number_literal "0xcd4") (] "]")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000a745c;" (goto "goto") (statement_identifier "LAB_000a745c") (; ";"))) (} "}")))) (expression_statement "pcVar37 = pcStack_758;" (assignment_expression "pcVar37 = pcStack_758" (identifier "pcVar37") (= "=") (identifier "pcStack_758")) (; ";")) (if_statement "if (puVar23 == (uint *)0x0) {\n    (**(code **)(pcStack_758 + -0x7290))\n              (*(int *)(pcStack_758 + -0x7fcc) + 0x6a20,*(int *)(pcStack_758 + -0x7fcc) + 0x69c0,\n               0x4c4,*(int *)(pcStack_758 + -0x7fcc) + 0x78f4);\nLAB_000a74c4:\n    (**(code **)(pcVar37 + -0x7290))\n              (*(int *)(pcVar37 + -0x7fcc) + 0x6a40,*(int *)(pcVar37 + -0x7fcc) + 0x69c0);\nLAB_000a74e8:\n    dStack_668 = (double)(**(code **)(pcVar37 + -0x7290))\n                                   (*(int *)(pcVar37 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar37 + -0x7fcc) + 0x69c0);\nLAB_000a750c:\n    dStack_668 = dStack_668 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);\n  }\n  else {\n    if (puVar23[0xcdb] != 0xabacadab) goto LAB_000a74c4;\n    if (pdVar16 == (double *)0x0) goto LAB_000a74e8;\n    uStack_678._4_4_ = 0;\n    uStack_678._0_4_ = 0;\n    uStack_66c = 0;\n    uStack_670 = 0;\n    dStack_668 = (double)(int)puVar23[6];\n    if ((int)puVar23[6] < 0) goto LAB_000a750c;\n  }" (if "if") (parenthesized_expression "(puVar23 == (uint *)0x0)" (( "(") (binary_expression "puVar23 == (uint *)0x0" (identifier "puVar23") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    (**(code **)(pcStack_758 + -0x7290))\n              (*(int *)(pcStack_758 + -0x7fcc) + 0x6a20,*(int *)(pcStack_758 + -0x7fcc) + 0x69c0,\n               0x4c4,*(int *)(pcStack_758 + -0x7fcc) + 0x78f4);\nLAB_000a74c4:\n    (**(code **)(pcVar37 + -0x7290))\n              (*(int *)(pcVar37 + -0x7fcc) + 0x6a40,*(int *)(pcVar37 + -0x7fcc) + 0x69c0);\nLAB_000a74e8:\n    dStack_668 = (double)(**(code **)(pcVar37 + -0x7290))\n                                   (*(int *)(pcVar37 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar37 + -0x7fcc) + 0x69c0);\nLAB_000a750c:\n    dStack_668 = dStack_668 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);\n  }" ({ "{") (expression_statement "(**(code **)(pcStack_758 + -0x7290))\n              (*(int *)(pcStack_758 + -0x7fcc) + 0x6a20,*(int *)(pcStack_758 + -0x7fcc) + 0x69c0,\n               0x4c4,*(int *)(pcStack_758 + -0x7fcc) + 0x78f4);" (call_expression "(**(code **)(pcStack_758 + -0x7290))\n              (*(int *)(pcStack_758 + -0x7fcc) + 0x6a20,*(int *)(pcStack_758 + -0x7fcc) + 0x69c0,\n               0x4c4,*(int *)(pcStack_758 + -0x7fcc) + 0x78f4)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x7290))" (( "(") (pointer_expression "**(code **)(pcStack_758 + -0x7290)" (* "*") (pointer_expression "*(code **)(pcStack_758 + -0x7290)" (* "*") (cast_expression "(code **)(pcStack_758 + -0x7290)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_758 + -0x7290)" (( "(") (binary_expression "pcStack_758 + -0x7290" (identifier "pcStack_758") (+ "+") (number_literal "-0x7290")) () ")"))))) () ")")) (argument_list "(*(int *)(pcStack_758 + -0x7fcc) + 0x6a20,*(int *)(pcStack_758 + -0x7fcc) + 0x69c0,\n               0x4c4,*(int *)(pcStack_758 + -0x7fcc) + 0x78f4)" (( "(") (binary_expression "*(int *)(pcStack_758 + -0x7fcc) + 0x6a20" (pointer_expression "*(int *)(pcStack_758 + -0x7fcc)" (* "*") (cast_expression "(int *)(pcStack_758 + -0x7fcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_758 + -0x7fcc)" (( "(") (binary_expression "pcStack_758 + -0x7fcc" (identifier "pcStack_758") (+ "+") (number_literal "-0x7fcc")) () ")")))) (+ "+") (number_literal "0x6a20")) (, ",") (binary_expression "*(int *)(pcStack_758 + -0x7fcc) + 0x69c0" (pointer_expression "*(int *)(pcStack_758 + -0x7fcc)" (* "*") (cast_expression "(int *)(pcStack_758 + -0x7fcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_758 + -0x7fcc)" (( "(") (binary_expression "pcStack_758 + -0x7fcc" (identifier "pcStack_758") (+ "+") (number_literal "-0x7fcc")) () ")")))) (+ "+") (number_literal "0x69c0")) (, ",") (number_literal "0x4c4") (, ",") (binary_expression "*(int *)(pcStack_758 + -0x7fcc) + 0x78f4" (pointer_expression "*(int *)(pcStack_758 + -0x7fcc)" (* "*") (cast_expression "(int *)(pcStack_758 + -0x7fcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_758 + -0x7fcc)" (( "(") (binary_expression "pcStack_758 + -0x7fcc" (identifier "pcStack_758") (+ "+") (number_literal "-0x7fcc")) () ")")))) (+ "+") (number_literal "0x78f4")) () ")"))) (; ";")) (labeled_statement "LAB_000a74c4:\n    (**(code **)(pcVar37 + -0x7290))\n              (*(int *)(pcVar37 + -0x7fcc) + 0x6a40,*(int *)(pcVar37 + -0x7fcc) + 0x69c0);" (statement_identifier "LAB_000a74c4") (: ":") (expression_statement "(**(code **)(pcVar37 + -0x7290))\n              (*(int *)(pcVar37 + -0x7fcc) + 0x6a40,*(int *)(pcVar37 + -0x7fcc) + 0x69c0);" (call_expression "(**(code **)(pcVar37 + -0x7290))\n              (*(int *)(pcVar37 + -0x7fcc) + 0x6a40,*(int *)(pcVar37 + -0x7fcc) + 0x69c0)" (parenthesized_expression "(**(code **)(pcVar37 + -0x7290))" (( "(") (pointer_expression "**(code **)(pcVar37 + -0x7290)" (* "*") (pointer_expression "*(code **)(pcVar37 + -0x7290)" (* "*") (cast_expression "(code **)(pcVar37 + -0x7290)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + -0x7290)" (( "(") (binary_expression "pcVar37 + -0x7290" (identifier "pcVar37") (+ "+") (number_literal "-0x7290")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar37 + -0x7fcc) + 0x6a40,*(int *)(pcVar37 + -0x7fcc) + 0x69c0)" (( "(") (binary_expression "*(int *)(pcVar37 + -0x7fcc) + 0x6a40" (pointer_expression "*(int *)(pcVar37 + -0x7fcc)" (* "*") (cast_expression "(int *)(pcVar37 + -0x7fcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + -0x7fcc)" (( "(") (binary_expression "pcVar37 + -0x7fcc" (identifier "pcVar37") (+ "+") (number_literal "-0x7fcc")) () ")")))) (+ "+") (number_literal "0x6a40")) (, ",") (binary_expression "*(int *)(pcVar37 + -0x7fcc) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + -0x7fcc)" (* "*") (cast_expression "(int *)(pcVar37 + -0x7fcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + -0x7fcc)" (( "(") (binary_expression "pcVar37 + -0x7fcc" (identifier "pcVar37") (+ "+") (number_literal "-0x7fcc")) () ")")))) (+ "+") (number_literal "0x69c0")) () ")"))) (; ";"))) (labeled_statement "LAB_000a74e8:\n    dStack_668 = (double)(**(code **)(pcVar37 + -0x7290))\n                                   (*(int *)(pcVar37 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar37 + -0x7fcc) + 0x69c0);" (statement_identifier "LAB_000a74e8") (: ":") (expression_statement "dStack_668 = (double)(**(code **)(pcVar37 + -0x7290))\n                                   (*(int *)(pcVar37 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar37 + -0x7fcc) + 0x69c0);" (assignment_expression "dStack_668 = (double)(**(code **)(pcVar37 + -0x7290))\n                                   (*(int *)(pcVar37 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar37 + -0x7fcc) + 0x69c0)" (identifier "dStack_668") (= "=") (cast_expression "(double)(**(code **)(pcVar37 + -0x7290))\n                                   (*(int *)(pcVar37 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar37 + -0x7fcc) + 0x69c0)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(pcVar37 + -0x7290))\n                                   (*(int *)(pcVar37 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar37 + -0x7fcc) + 0x69c0)" (parenthesized_expression "(**(code **)(pcVar37 + -0x7290))" (( "(") (pointer_expression "**(code **)(pcVar37 + -0x7290)" (* "*") (pointer_expression "*(code **)(pcVar37 + -0x7290)" (* "*") (cast_expression "(code **)(pcVar37 + -0x7290)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + -0x7290)" (( "(") (binary_expression "pcVar37 + -0x7290" (identifier "pcVar37") (+ "+") (number_literal "-0x7290")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar37 + -0x7fcc) + 0x6a6c,\n                                    *(int *)(pcVar37 + -0x7fcc) + 0x69c0)" (( "(") (binary_expression "*(int *)(pcVar37 + -0x7fcc) + 0x6a6c" (pointer_expression "*(int *)(pcVar37 + -0x7fcc)" (* "*") (cast_expression "(int *)(pcVar37 + -0x7fcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + -0x7fcc)" (( "(") (binary_expression "pcVar37 + -0x7fcc" (identifier "pcVar37") (+ "+") (number_literal "-0x7fcc")) () ")")))) (+ "+") (number_literal "0x6a6c")) (, ",") (binary_expression "*(int *)(pcVar37 + -0x7fcc) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + -0x7fcc)" (* "*") (cast_expression "(int *)(pcVar37 + -0x7fcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + -0x7fcc)" (( "(") (binary_expression "pcVar37 + -0x7fcc" (identifier "pcVar37") (+ "+") (number_literal "-0x7fcc")) () ")")))) (+ "+") (number_literal "0x69c0")) () ")"))))) (; ";"))) (labeled_statement "LAB_000a750c:\n    dStack_668 = dStack_668 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);" (statement_identifier "LAB_000a750c") (: ":") (expression_statement "dStack_668 = dStack_668 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);" (assignment_expression "dStack_668 = dStack_668 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8)" (identifier "dStack_668") (= "=") (binary_expression "dStack_668 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8)" (identifier "dStack_668") (+ "+") (pointer_expression "*(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8)" (* "*") (cast_expression "(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar37 + -0x7fd0) + 0x43e8)" (( "(") (binary_expression "*(int *)(pcVar37 + -0x7fd0) + 0x43e8" (pointer_expression "*(int *)(pcVar37 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcVar37 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + -0x7fd0)" (( "(") (binary_expression "pcVar37 + -0x7fd0" (identifier "pcVar37") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x43e8")) () ")")))))) (; ";"))) (} "}")) (else_clause "else {\n    if (puVar23[0xcdb] != 0xabacadab) goto LAB_000a74c4;\n    if (pdVar16 == (double *)0x0) goto LAB_000a74e8;\n    uStack_678._4_4_ = 0;\n    uStack_678._0_4_ = 0;\n    uStack_66c = 0;\n    uStack_670 = 0;\n    dStack_668 = (double)(int)puVar23[6];\n    if ((int)puVar23[6] < 0) goto LAB_000a750c;\n  }" (else "else") (compound_statement "{\n    if (puVar23[0xcdb] != 0xabacadab) goto LAB_000a74c4;\n    if (pdVar16 == (double *)0x0) goto LAB_000a74e8;\n    uStack_678._4_4_ = 0;\n    uStack_678._0_4_ = 0;\n    uStack_66c = 0;\n    uStack_670 = 0;\n    dStack_668 = (double)(int)puVar23[6];\n    if ((int)puVar23[6] < 0) goto LAB_000a750c;\n  }" ({ "{") (if_statement "if (puVar23[0xcdb] != 0xabacadab) goto LAB_000a74c4;" (if "if") (parenthesized_expression "(puVar23[0xcdb] != 0xabacadab)" (( "(") (binary_expression "puVar23[0xcdb] != 0xabacadab" (subscript_expression "puVar23[0xcdb]" (identifier "puVar23") ([ "[") (number_literal "0xcdb") (] "]")) (!= "!=") (number_literal "0xabacadab")) () ")")) (goto_statement "goto LAB_000a74c4;" (goto "goto") (statement_identifier "LAB_000a74c4") (; ";"))) (if_statement "if (pdVar16 == (double *)0x0) goto LAB_000a74e8;" (if "if") (parenthesized_expression "(pdVar16 == (double *)0x0)" (( "(") (binary_expression "pdVar16 == (double *)0x0" (identifier "pdVar16") (== "==") (cast_expression "(double *)0x0" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000a74e8;" (goto "goto") (statement_identifier "LAB_000a74e8") (; ";"))) (expression_statement "uStack_678._4_4_ = 0;" (assignment_expression "uStack_678._4_4_ = 0" (field_expression "uStack_678._4_4_" (identifier "uStack_678") (. ".") (field_identifier "_4_4_")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_678._0_4_ = 0;" (assignment_expression "uStack_678._0_4_ = 0" (field_expression "uStack_678._0_4_" (identifier "uStack_678") (. ".") (field_identifier "_0_4_")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_66c = 0;" (assignment_expression "uStack_66c = 0" (identifier "uStack_66c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_670 = 0;" (assignment_expression "uStack_670 = 0" (identifier "uStack_670") (= "=") (number_literal "0")) (; ";")) (expression_statement "dStack_668 = (double)(int)puVar23[6];" (assignment_expression "dStack_668 = (double)(int)puVar23[6]" (identifier "dStack_668") (= "=") (cast_expression "(double)(int)puVar23[6]" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)puVar23[6]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "puVar23[6]" (identifier "puVar23") ([ "[") (number_literal "6") (] "]"))))) (; ";")) (if_statement "if ((int)puVar23[6] < 0) goto LAB_000a750c;" (if "if") (parenthesized_expression "((int)puVar23[6] < 0)" (( "(") (binary_expression "(int)puVar23[6] < 0" (cast_expression "(int)puVar23[6]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "puVar23[6]" (identifier "puVar23") ([ "[") (number_literal "6") (] "]"))) (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_000a750c;" (goto "goto") (statement_identifier "LAB_000a750c") (; ";"))) (} "}")))) (expression_statement "dStack_668 = dStack_668 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408);" (assignment_expression "dStack_668 = dStack_668 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408)" (identifier "dStack_668") (= "=") (binary_expression "dStack_668 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408)" (identifier "dStack_668") (- "-") (pointer_expression "*(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408)" (* "*") (cast_expression "(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar37 + -0x7fd0) + 0x4408)" (( "(") (binary_expression "*(int *)(pcVar37 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcVar37 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcVar37 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + -0x7fd0)" (( "(") (binary_expression "pcVar37 + -0x7fd0" (identifier "pcVar37") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4408")) () ")")))))) (; ";")) (expression_statement "uStack_65c = 0;" (assignment_expression "uStack_65c = 0" (identifier "uStack_65c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_660 = 0;" (assignment_expression "uStack_660 = 0" (identifier "uStack_660") (= "=") (number_literal "0")) (; ";")) (expression_statement "dStack_658 = dStack_668;" (assignment_expression "dStack_658 = dStack_668" (identifier "dStack_658") (= "=") (identifier "dStack_668")) (; ";")) (expression_statement "dStack_650 = (double)(int)puVar23[7];" (assignment_expression "dStack_650 = (double)(int)puVar23[7]" (identifier "dStack_650") (= "=") (cast_expression "(double)(int)puVar23[7]" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)puVar23[7]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "puVar23[7]" (identifier "puVar23") ([ "[") (number_literal "7") (] "]"))))) (; ";")) (if_statement "if ((int)puVar23[7] < 0) {\n    dStack_650 = dStack_650 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);\n  }" (if "if") (parenthesized_expression "((int)puVar23[7] < 0)" (( "(") (binary_expression "(int)puVar23[7] < 0" (cast_expression "(int)puVar23[7]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "puVar23[7]" (identifier "puVar23") ([ "[") (number_literal "7") (] "]"))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    dStack_650 = dStack_650 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);\n  }" ({ "{") (expression_statement "dStack_650 = dStack_650 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);" (assignment_expression "dStack_650 = dStack_650 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8)" (identifier "dStack_650") (= "=") (binary_expression "dStack_650 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8)" (identifier "dStack_650") (+ "+") (pointer_expression "*(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8)" (* "*") (cast_expression "(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar37 + -0x7fd0) + 0x43e8)" (( "(") (binary_expression "*(int *)(pcVar37 + -0x7fd0) + 0x43e8" (pointer_expression "*(int *)(pcVar37 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcVar37 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + -0x7fd0)" (( "(") (binary_expression "pcVar37 + -0x7fd0" (identifier "pcVar37") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x43e8")) () ")")))))) (; ";")) (} "}"))) (expression_statement "dStack_650 = dStack_650 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408);" (assignment_expression "dStack_650 = dStack_650 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408)" (identifier "dStack_650") (= "=") (binary_expression "dStack_650 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408)" (identifier "dStack_650") (- "-") (pointer_expression "*(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408)" (* "*") (cast_expression "(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar37 + -0x7fd0) + 0x4408)" (( "(") (binary_expression "*(int *)(pcVar37 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcVar37 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcVar37 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + -0x7fd0)" (( "(") (binary_expression "pcVar37 + -0x7fd0" (identifier "pcVar37") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4408")) () ")")))))) (; ";")) (expression_statement "uStack_644 = 0;" (assignment_expression "uStack_644 = 0" (identifier "uStack_644") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_648 = 0;" (assignment_expression "uStack_648 = 0" (identifier "uStack_648") (= "=") (number_literal "0")) (; ";")) (expression_statement "dStack_640 = dStack_650;" (assignment_expression "dStack_640 = dStack_650" (identifier "dStack_640") (= "=") (identifier "dStack_650")) (; ";")) (expression_statement "dVar45 = *pdVar16;" (assignment_expression "dVar45 = *pdVar16" (identifier "dVar45") (= "=") (pointer_expression "*pdVar16" (* "*") (identifier "pdVar16"))) (; ";")) (expression_statement "dVar44 = pdVar16[2];" (assignment_expression "dVar44 = pdVar16[2]" (identifier "dVar44") (= "=") (subscript_expression "pdVar16[2]" (identifier "pdVar16") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "dVar47 = pdVar16[4];" (assignment_expression "dVar47 = pdVar16[4]" (identifier "dVar47") (= "=") (subscript_expression "pdVar16[4]" (identifier "pdVar16") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "dVar40 = pdVar16[1];" (assignment_expression "dVar40 = pdVar16[1]" (identifier "dVar40") (= "=") (subscript_expression "pdVar16[1]" (identifier "pdVar16") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "dVar41 = pdVar16[3];" (assignment_expression "dVar41 = pdVar16[3]" (identifier "dVar41") (= "=") (subscript_expression "pdVar16[3]" (identifier "pdVar16") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "dVar39 = pdVar16[5];" (assignment_expression "dVar39 = pdVar16[5]" (identifier "dVar39") (= "=") (subscript_expression "pdVar16[5]" (identifier "pdVar16") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "pdVar14 = (double *)&uStack_678;" (assignment_expression "pdVar14 = (double *)&uStack_678" (identifier "pdVar14") (= "=") (cast_expression "(double *)&uStack_678" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&uStack_678" (& "&") (identifier "uStack_678")))) (; ";")) (expression_statement "pdVar29 = pdVar14;" (assignment_expression "pdVar29 = pdVar14" (identifier "pdVar29") (= "=") (identifier "pdVar14")) (; ";")) (do_statement "do {\n    dVar42 = *pdVar29;\n    *pdVar29 = dVar45 * dVar42 + dVar44 * pdVar29[1] + dVar47;\n    pdVar29[1] = dVar40 * dVar42 + dVar41 * pdVar29[1] + dVar39;\n    pdVar29 = pdVar29 + 2;\n  } while (pdVar29 != (double *)&uStack_638);" (do "do") (compound_statement "{\n    dVar42 = *pdVar29;\n    *pdVar29 = dVar45 * dVar42 + dVar44 * pdVar29[1] + dVar47;\n    pdVar29[1] = dVar40 * dVar42 + dVar41 * pdVar29[1] + dVar39;\n    pdVar29 = pdVar29 + 2;\n  }" ({ "{") (expression_statement "dVar42 = *pdVar29;" (assignment_expression "dVar42 = *pdVar29" (identifier "dVar42") (= "=") (pointer_expression "*pdVar29" (* "*") (identifier "pdVar29"))) (; ";")) (expression_statement "*pdVar29 = dVar45 * dVar42 + dVar44 * pdVar29[1] + dVar47;" (assignment_expression "*pdVar29 = dVar45 * dVar42 + dVar44 * pdVar29[1] + dVar47" (pointer_expression "*pdVar29" (* "*") (identifier "pdVar29")) (= "=") (binary_expression "dVar45 * dVar42 + dVar44 * pdVar29[1] + dVar47" (binary_expression "dVar45 * dVar42 + dVar44 * pdVar29[1]" (binary_expression "dVar45 * dVar42" (identifier "dVar45") (* "*") (identifier "dVar42")) (+ "+") (binary_expression "dVar44 * pdVar29[1]" (identifier "dVar44") (* "*") (subscript_expression "pdVar29[1]" (identifier "pdVar29") ([ "[") (number_literal "1") (] "]")))) (+ "+") (identifier "dVar47"))) (; ";")) (expression_statement "pdVar29[1] = dVar40 * dVar42 + dVar41 * pdVar29[1] + dVar39;" (assignment_expression "pdVar29[1] = dVar40 * dVar42 + dVar41 * pdVar29[1] + dVar39" (subscript_expression "pdVar29[1]" (identifier "pdVar29") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "dVar40 * dVar42 + dVar41 * pdVar29[1] + dVar39" (binary_expression "dVar40 * dVar42 + dVar41 * pdVar29[1]" (binary_expression "dVar40 * dVar42" (identifier "dVar40") (* "*") (identifier "dVar42")) (+ "+") (binary_expression "dVar41 * pdVar29[1]" (identifier "dVar41") (* "*") (subscript_expression "pdVar29[1]" (identifier "pdVar29") ([ "[") (number_literal "1") (] "]")))) (+ "+") (identifier "dVar39"))) (; ";")) (expression_statement "pdVar29 = pdVar29 + 2;" (assignment_expression "pdVar29 = pdVar29 + 2" (identifier "pdVar29") (= "=") (binary_expression "pdVar29 + 2" (identifier "pdVar29") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pdVar29 != (double *)&uStack_638)" (( "(") (binary_expression "pdVar29 != (double *)&uStack_638" (identifier "pdVar29") (!= "!=") (cast_expression "(double *)&uStack_638" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&uStack_638" (& "&") (identifier "uStack_638")))) () ")")) (; ";")) (expression_statement "dVar39 = (double)CONCAT44(uStack_670,uStack_66c);" (assignment_expression "dVar39 = (double)CONCAT44(uStack_670,uStack_66c)" (identifier "dVar39") (= "=") (cast_expression "(double)CONCAT44(uStack_670,uStack_66c)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(uStack_670,uStack_66c)" (identifier "CONCAT44") (argument_list "(uStack_670,uStack_66c)" (( "(") (identifier "uStack_670") (, ",") (identifier "uStack_66c") () ")"))))) (; ";")) (expression_statement "dVar41 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_);" (assignment_expression "dVar41 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_)" (identifier "dVar41") (= "=") (cast_expression "(double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(uStack_678._0_4_,uStack_678._4_4_)" (identifier "CONCAT44") (argument_list "(uStack_678._0_4_,uStack_678._4_4_)" (( "(") (field_expression "uStack_678._0_4_" (identifier "uStack_678") (. ".") (field_identifier "_0_4_")) (, ",") (field_expression "uStack_678._4_4_" (identifier "uStack_678") (. ".") (field_identifier "_4_4_")) () ")"))))) (; ";")) (expression_statement "dVar40 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_);" (assignment_expression "dVar40 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_)" (identifier "dVar40") (= "=") (cast_expression "(double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(uStack_678._0_4_,uStack_678._4_4_)" (identifier "CONCAT44") (argument_list "(uStack_678._0_4_,uStack_678._4_4_)" (( "(") (field_expression "uStack_678._0_4_" (identifier "uStack_678") (. ".") (field_identifier "_0_4_")) (, ",") (field_expression "uStack_678._4_4_" (identifier "uStack_678") (. ".") (field_identifier "_4_4_")) () ")"))))) (; ";")) (expression_statement "dVar47 = (double)CONCAT44(uStack_670,uStack_66c);" (assignment_expression "dVar47 = (double)CONCAT44(uStack_670,uStack_66c)" (identifier "dVar47") (= "=") (cast_expression "(double)CONCAT44(uStack_670,uStack_66c)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "CONCAT44(uStack_670,uStack_66c)" (identifier "CONCAT44") (argument_list "(uStack_670,uStack_66c)" (( "(") (identifier "uStack_670") (, ",") (identifier "uStack_66c") () ")"))))) (; ";")) (do_statement "do {\n    dVar45 = pdVar14[2];\n    dVar44 = dVar45;\n    if (dVar41 <= dVar45) {\n      dVar44 = dVar41;\n    }\n    dVar42 = pdVar14[3];\n    dVar46 = dVar42;\n    if (dVar47 <= dVar42) {\n      dVar46 = dVar47;\n    }\n    if (dVar45 <= dVar40) {\n      dVar45 = dVar40;\n    }\n    if (dVar42 <= dVar39) {\n      dVar42 = dVar39;\n    }\n    pdVar14 = pdVar14 + 2;\n    dVar39 = dVar42;\n    dVar41 = dVar44;\n    dVar40 = dVar45;\n    dVar47 = dVar46;\n  } while ((double *)&uStack_648 != pdVar14);" (do "do") (compound_statement "{\n    dVar45 = pdVar14[2];\n    dVar44 = dVar45;\n    if (dVar41 <= dVar45) {\n      dVar44 = dVar41;\n    }\n    dVar42 = pdVar14[3];\n    dVar46 = dVar42;\n    if (dVar47 <= dVar42) {\n      dVar46 = dVar47;\n    }\n    if (dVar45 <= dVar40) {\n      dVar45 = dVar40;\n    }\n    if (dVar42 <= dVar39) {\n      dVar42 = dVar39;\n    }\n    pdVar14 = pdVar14 + 2;\n    dVar39 = dVar42;\n    dVar41 = dVar44;\n    dVar40 = dVar45;\n    dVar47 = dVar46;\n  }" ({ "{") (expression_statement "dVar45 = pdVar14[2];" (assignment_expression "dVar45 = pdVar14[2]" (identifier "dVar45") (= "=") (subscript_expression "pdVar14[2]" (identifier "pdVar14") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "dVar44 = dVar45;" (assignment_expression "dVar44 = dVar45" (identifier "dVar44") (= "=") (identifier "dVar45")) (; ";")) (if_statement "if (dVar41 <= dVar45) {\n      dVar44 = dVar41;\n    }" (if "if") (parenthesized_expression "(dVar41 <= dVar45)" (( "(") (binary_expression "dVar41 <= dVar45" (identifier "dVar41") (<= "<=") (identifier "dVar45")) () ")")) (compound_statement "{\n      dVar44 = dVar41;\n    }" ({ "{") (expression_statement "dVar44 = dVar41;" (assignment_expression "dVar44 = dVar41" (identifier "dVar44") (= "=") (identifier "dVar41")) (; ";")) (} "}"))) (expression_statement "dVar42 = pdVar14[3];" (assignment_expression "dVar42 = pdVar14[3]" (identifier "dVar42") (= "=") (subscript_expression "pdVar14[3]" (identifier "pdVar14") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "dVar46 = dVar42;" (assignment_expression "dVar46 = dVar42" (identifier "dVar46") (= "=") (identifier "dVar42")) (; ";")) (if_statement "if (dVar47 <= dVar42) {\n      dVar46 = dVar47;\n    }" (if "if") (parenthesized_expression "(dVar47 <= dVar42)" (( "(") (binary_expression "dVar47 <= dVar42" (identifier "dVar47") (<= "<=") (identifier "dVar42")) () ")")) (compound_statement "{\n      dVar46 = dVar47;\n    }" ({ "{") (expression_statement "dVar46 = dVar47;" (assignment_expression "dVar46 = dVar47" (identifier "dVar46") (= "=") (identifier "dVar47")) (; ";")) (} "}"))) (if_statement "if (dVar45 <= dVar40) {\n      dVar45 = dVar40;\n    }" (if "if") (parenthesized_expression "(dVar45 <= dVar40)" (( "(") (binary_expression "dVar45 <= dVar40" (identifier "dVar45") (<= "<=") (identifier "dVar40")) () ")")) (compound_statement "{\n      dVar45 = dVar40;\n    }" ({ "{") (expression_statement "dVar45 = dVar40;" (assignment_expression "dVar45 = dVar40" (identifier "dVar45") (= "=") (identifier "dVar40")) (; ";")) (} "}"))) (if_statement "if (dVar42 <= dVar39) {\n      dVar42 = dVar39;\n    }" (if "if") (parenthesized_expression "(dVar42 <= dVar39)" (( "(") (binary_expression "dVar42 <= dVar39" (identifier "dVar42") (<= "<=") (identifier "dVar39")) () ")")) (compound_statement "{\n      dVar42 = dVar39;\n    }" ({ "{") (expression_statement "dVar42 = dVar39;" (assignment_expression "dVar42 = dVar39" (identifier "dVar42") (= "=") (identifier "dVar39")) (; ";")) (} "}"))) (expression_statement "pdVar14 = pdVar14 + 2;" (assignment_expression "pdVar14 = pdVar14 + 2" (identifier "pdVar14") (= "=") (binary_expression "pdVar14 + 2" (identifier "pdVar14") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "dVar39 = dVar42;" (assignment_expression "dVar39 = dVar42" (identifier "dVar39") (= "=") (identifier "dVar42")) (; ";")) (expression_statement "dVar41 = dVar44;" (assignment_expression "dVar41 = dVar44" (identifier "dVar41") (= "=") (identifier "dVar44")) (; ";")) (expression_statement "dVar40 = dVar45;" (assignment_expression "dVar40 = dVar45" (identifier "dVar40") (= "=") (identifier "dVar45")) (; ";")) (expression_statement "dVar47 = dVar46;" (assignment_expression "dVar47 = dVar46" (identifier "dVar47") (= "=") (identifier "dVar46")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((double *)&uStack_648 != pdVar14)" (( "(") (binary_expression "(double *)&uStack_648 != pdVar14" (cast_expression "(double *)&uStack_648" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&uStack_648" (& "&") (identifier "uStack_648"))) (!= "!=") (identifier "pdVar14")) () ")")) (; ";")) (expression_statement "ppiVar24 = (int **)0x1;" (assignment_expression "ppiVar24 = (int **)0x1" (identifier "ppiVar24") (= "=") (cast_expression "(int **)0x1" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "pdVar29 = pdVar5;" (assignment_expression "pdVar29 = pdVar5" (identifier "pdVar29") (= "=") (identifier "pdVar5")) (; ";")) (expression_statement "iVar3 = (**(code **)(pcVar37 + -0x7074))(piVar2);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + -0x7074))(piVar2)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar37 + -0x7074))(piVar2)" (parenthesized_expression "(**(code **)(pcVar37 + -0x7074))" (( "(") (pointer_expression "**(code **)(pcVar37 + -0x7074)" (* "*") (pointer_expression "*(code **)(pcVar37 + -0x7074)" (* "*") (cast_expression "(code **)(pcVar37 + -0x7074)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + -0x7074)" (( "(") (binary_expression "pcVar37 + -0x7074" (identifier "pcVar37") (+ "+") (number_literal "-0x7074")) () ")"))))) () ")")) (argument_list "(piVar2)" (( "(") (identifier "piVar2") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n    dStack_750 = dVar44;\n    if (dVar44 <= 0.0) {\n      dStack_750 = 0.0;\n    }\n    dStack_748 = dVar46;\n    if (dVar46 <= 0.0) {\n      dStack_748 = 0.0;\n    }\n    dStack_740 = (double)piVar2[6];\n    if (piVar2[6] < 0) {\n      dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_740 = dStack_740 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar45 < dStack_740) {\n      dStack_740 = dVar45;\n    }\n    dStack_738 = (double)piVar2[7];\n    if (piVar2[7] < 0) {\n      dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_738 = dStack_738 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar42 < dStack_738) {\n      dStack_738 = dVar42;\n    }\n    dStack_6e8 = *pdVar16 * pdVar16[3] - pdVar16[1] * pdVar16[2];\n    if (0.0 <= dStack_6e8) {\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    }\n    else {\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);\n    }\n    if (dStack_6e8 * dVar39 < *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)) {\n      dStack_6e8 = dVar39 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8);\n    }\n    else {\n      dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;\n    }\n    dStack_700 = pdVar16[3] * dStack_6e8;\n    dStack_6f8 = -pdVar16[1] * dStack_6e8;\n    dStack_6f0 = -pdVar16[2] * dStack_6e8;\n    dStack_6e8 = *pdVar16 * dStack_6e8;\n    dStack_6e0 = dStack_700 * -pdVar16[4] - dStack_6f0 * pdVar16[5];\n    dStack_6d8 = dStack_6f8 * -pdVar16[4] - dStack_6e8 * pdVar16[5];\n    (**(code **)(pcStack_758 + -0x75e4))(piVar2,auStack_6d0);\n    dVar42 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0);\n    dVar39 = (double)(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar42);\n    dVar41 = (double)(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar42);\n    uVar4 = (**(code **)(pcStack_758 + -0x7144))(puVar23,pdVar5);\n    puVar35 = (undefined1 *)(**(code **)(pcStack_758 + -0x79c4))(piVar2,pdVar5);\n    iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23);\n    if (((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23), iVar3 == 3)) &&\n       ((iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 4 ||\n        (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3)))) {\n      (**(code **)(pcStack_758 + -0x775c))(7);\n      iVar10 = (int)dVar41 - (int)dVar39;\n      iVar3 = iVar10;\n      if (iVar10 < 0) {\n        iVar3 = iVar10 + 0x3f;\n      }\n      pdVar16 = (double *)(iVar3 >> 6);\n      if (extraout_v1 < (int)pdVar16) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        bVar1 = extraout_v1_01 < 2;\n      }\n      else {\n        bVar1 = iVar10 < 0x80;\n      }\n      pdVar29 = (double *)0x1;\n      if (((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16)\n         ) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_03;\n        pdVar16 = extraout_v1_03;\n      }\n    }\n    else {\n      uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar51 < 2) {\n          pdVar29 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }\n      else {\nLAB_000a77f8:\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n      }\n      uVar51 = (*pcVar37)(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_00;\n      }\n      else {\n        pdVar29 = (double *)0x2;\n      }\n    }\nLAB_000a7818:\n    pdStack_720 = &dStack_700;\n    puStack_714 = auStack_6d0;\n    pdStack_710 = &dStack_750;\n    iStack_704 = 1;\n    ppiVar24 = &piStack_72c;\n    piStack_72c = piVar2;\n    puStack_728 = puVar23;\n    pdStack_724 = pdVar5;\n    puStack_71c = puVar35;\n    uStack_718 = uVar4;\n    iStack_70c = (int)dVar39;\n    iStack_708 = (int)dVar41;\n    (**(code **)(pcStack_758 + -0x7700))\n              (*(int *)(pcStack_758 + -0x7ea0) + 0x34c4,ppiVar24,pdVar29,0);\n    iVar3 = iStack_704;\n    (**(code **)(pcStack_758 + -0x79a4))(uVar4);\n    (**(code **)(pcStack_758 + -0x79a4))(puVar35);\n  }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    dStack_750 = dVar44;\n    if (dVar44 <= 0.0) {\n      dStack_750 = 0.0;\n    }\n    dStack_748 = dVar46;\n    if (dVar46 <= 0.0) {\n      dStack_748 = 0.0;\n    }\n    dStack_740 = (double)piVar2[6];\n    if (piVar2[6] < 0) {\n      dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_740 = dStack_740 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar45 < dStack_740) {\n      dStack_740 = dVar45;\n    }\n    dStack_738 = (double)piVar2[7];\n    if (piVar2[7] < 0) {\n      dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }\n    dStack_738 = dStack_738 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    if (dVar42 < dStack_738) {\n      dStack_738 = dVar42;\n    }\n    dStack_6e8 = *pdVar16 * pdVar16[3] - pdVar16[1] * pdVar16[2];\n    if (0.0 <= dStack_6e8) {\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    }\n    else {\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);\n    }\n    if (dStack_6e8 * dVar39 < *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)) {\n      dStack_6e8 = dVar39 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8);\n    }\n    else {\n      dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;\n    }\n    dStack_700 = pdVar16[3] * dStack_6e8;\n    dStack_6f8 = -pdVar16[1] * dStack_6e8;\n    dStack_6f0 = -pdVar16[2] * dStack_6e8;\n    dStack_6e8 = *pdVar16 * dStack_6e8;\n    dStack_6e0 = dStack_700 * -pdVar16[4] - dStack_6f0 * pdVar16[5];\n    dStack_6d8 = dStack_6f8 * -pdVar16[4] - dStack_6e8 * pdVar16[5];\n    (**(code **)(pcStack_758 + -0x75e4))(piVar2,auStack_6d0);\n    dVar42 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0);\n    dVar39 = (double)(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar42);\n    dVar41 = (double)(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar42);\n    uVar4 = (**(code **)(pcStack_758 + -0x7144))(puVar23,pdVar5);\n    puVar35 = (undefined1 *)(**(code **)(pcStack_758 + -0x79c4))(piVar2,pdVar5);\n    iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23);\n    if (((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23), iVar3 == 3)) &&\n       ((iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 4 ||\n        (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3)))) {\n      (**(code **)(pcStack_758 + -0x775c))(7);\n      iVar10 = (int)dVar41 - (int)dVar39;\n      iVar3 = iVar10;\n      if (iVar10 < 0) {\n        iVar3 = iVar10 + 0x3f;\n      }\n      pdVar16 = (double *)(iVar3 >> 6);\n      if (extraout_v1 < (int)pdVar16) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        bVar1 = extraout_v1_01 < 2;\n      }\n      else {\n        bVar1 = iVar10 < 0x80;\n      }\n      pdVar29 = (double *)0x1;\n      if (((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16)\n         ) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_03;\n        pdVar16 = extraout_v1_03;\n      }\n    }\n    else {\n      uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar51 < 2) {\n          pdVar29 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }\n      else {\nLAB_000a77f8:\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n      }\n      uVar51 = (*pcVar37)(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_00;\n      }\n      else {\n        pdVar29 = (double *)0x2;\n      }\n    }\nLAB_000a7818:\n    pdStack_720 = &dStack_700;\n    puStack_714 = auStack_6d0;\n    pdStack_710 = &dStack_750;\n    iStack_704 = 1;\n    ppiVar24 = &piStack_72c;\n    piStack_72c = piVar2;\n    puStack_728 = puVar23;\n    pdStack_724 = pdVar5;\n    puStack_71c = puVar35;\n    uStack_718 = uVar4;\n    iStack_70c = (int)dVar39;\n    iStack_708 = (int)dVar41;\n    (**(code **)(pcStack_758 + -0x7700))\n              (*(int *)(pcStack_758 + -0x7ea0) + 0x34c4,ppiVar24,pdVar29,0);\n    iVar3 = iStack_704;\n    (**(code **)(pcStack_758 + -0x79a4))(uVar4);\n    (**(code **)(pcStack_758 + -0x79a4))(puVar35);\n  }" ({ "{") (expression_statement "dStack_750 = dVar44;" (assignment_expression "dStack_750 = dVar44" (identifier "dStack_750") (= "=") (identifier "dVar44")) (; ";")) (if_statement "if (dVar44 <= 0.0) {\n      dStack_750 = 0.0;\n    }" (if "if") (parenthesized_expression "(dVar44 <= 0.0)" (( "(") (binary_expression "dVar44 <= 0.0" (identifier "dVar44") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n      dStack_750 = 0.0;\n    }" ({ "{") (expression_statement "dStack_750 = 0.0;" (assignment_expression "dStack_750 = 0.0" (identifier "dStack_750") (= "=") (number_literal "0.0")) (; ";")) (} "}"))) (expression_statement "dStack_748 = dVar46;" (assignment_expression "dStack_748 = dVar46" (identifier "dStack_748") (= "=") (identifier "dVar46")) (; ";")) (if_statement "if (dVar46 <= 0.0) {\n      dStack_748 = 0.0;\n    }" (if "if") (parenthesized_expression "(dVar46 <= 0.0)" (( "(") (binary_expression "dVar46 <= 0.0" (identifier "dVar46") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n      dStack_748 = 0.0;\n    }" ({ "{") (expression_statement "dStack_748 = 0.0;" (assignment_expression "dStack_748 = 0.0" (identifier "dStack_748") (= "=") (number_literal "0.0")) (; ";")) (} "}"))) (expression_statement "dStack_740 = (double)piVar2[6];" (assignment_expression "dStack_740 = (double)piVar2[6]" (identifier "dStack_740") (= "=") (cast_expression "(double)piVar2[6]" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (subscript_expression "piVar2[6]" (identifier "piVar2") ([ "[") (number_literal "6") (] "]")))) (; ";")) (if_statement "if (piVar2[6] < 0) {\n      dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }" (if "if") (parenthesized_expression "(piVar2[6] < 0)" (( "(") (binary_expression "piVar2[6] < 0" (subscript_expression "piVar2[6]" (identifier "piVar2") ([ "[") (number_literal "6") (] "]")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }" ({ "{") (expression_statement "dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);" (assignment_expression "dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" (identifier "dStack_740") (= "=") (binary_expression "dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" (identifier "dStack_740") (+ "+") (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" (( "(") (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x43e8" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_758 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_758 + -0x7fd0)" (( "(") (binary_expression "pcStack_758 + -0x7fd0" (identifier "pcStack_758") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x43e8")) () ")")))))) (; ";")) (} "}"))) (expression_statement "dStack_740 = dStack_740 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);" (assignment_expression "dStack_740 = dStack_740 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" (identifier "dStack_740") (= "=") (binary_expression "dStack_740 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" (identifier "dStack_740") (- "-") (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" (( "(") (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_758 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_758 + -0x7fd0)" (( "(") (binary_expression "pcStack_758 + -0x7fd0" (identifier "pcStack_758") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4408")) () ")")))))) (; ";")) (if_statement "if (dVar45 < dStack_740) {\n      dStack_740 = dVar45;\n    }" (if "if") (parenthesized_expression "(dVar45 < dStack_740)" (( "(") (binary_expression "dVar45 < dStack_740" (identifier "dVar45") (< "<") (identifier "dStack_740")) () ")")) (compound_statement "{\n      dStack_740 = dVar45;\n    }" ({ "{") (expression_statement "dStack_740 = dVar45;" (assignment_expression "dStack_740 = dVar45" (identifier "dStack_740") (= "=") (identifier "dVar45")) (; ";")) (} "}"))) (expression_statement "dStack_738 = (double)piVar2[7];" (assignment_expression "dStack_738 = (double)piVar2[7]" (identifier "dStack_738") (= "=") (cast_expression "(double)piVar2[7]" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (subscript_expression "piVar2[7]" (identifier "piVar2") ([ "[") (number_literal "7") (] "]")))) (; ";")) (if_statement "if (piVar2[7] < 0) {\n      dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }" (if "if") (parenthesized_expression "(piVar2[7] < 0)" (( "(") (binary_expression "piVar2[7] < 0" (subscript_expression "piVar2[7]" (identifier "piVar2") ([ "[") (number_literal "7") (] "]")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);\n    }" ({ "{") (expression_statement "dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);" (assignment_expression "dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" (identifier "dStack_738") (= "=") (binary_expression "dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" (identifier "dStack_738") (+ "+") (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8)" (( "(") (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x43e8" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_758 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_758 + -0x7fd0)" (( "(") (binary_expression "pcStack_758 + -0x7fd0" (identifier "pcStack_758") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x43e8")) () ")")))))) (; ";")) (} "}"))) (expression_statement "dStack_738 = dStack_738 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);" (assignment_expression "dStack_738 = dStack_738 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" (identifier "dStack_738") (= "=") (binary_expression "dStack_738 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" (identifier "dStack_738") (- "-") (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" (( "(") (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_758 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_758 + -0x7fd0)" (( "(") (binary_expression "pcStack_758 + -0x7fd0" (identifier "pcStack_758") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4408")) () ")")))))) (; ";")) (if_statement "if (dVar42 < dStack_738) {\n      dStack_738 = dVar42;\n    }" (if "if") (parenthesized_expression "(dVar42 < dStack_738)" (( "(") (binary_expression "dVar42 < dStack_738" (identifier "dVar42") (< "<") (identifier "dStack_738")) () ")")) (compound_statement "{\n      dStack_738 = dVar42;\n    }" ({ "{") (expression_statement "dStack_738 = dVar42;" (assignment_expression "dStack_738 = dVar42" (identifier "dStack_738") (= "=") (identifier "dVar42")) (; ";")) (} "}"))) (expression_statement "dStack_6e8 = *pdVar16 * pdVar16[3] - pdVar16[1] * pdVar16[2];" (assignment_expression "dStack_6e8 = *pdVar16 * pdVar16[3] - pdVar16[1] * pdVar16[2]" (identifier "dStack_6e8") (= "=") (binary_expression "*pdVar16 * pdVar16[3] - pdVar16[1] * pdVar16[2]" (binary_expression "*pdVar16 * pdVar16[3]" (pointer_expression "*pdVar16" (* "*") (identifier "pdVar16")) (* "*") (subscript_expression "pdVar16[3]" (identifier "pdVar16") ([ "[") (number_literal "3") (] "]"))) (- "-") (binary_expression "pdVar16[1] * pdVar16[2]" (subscript_expression "pdVar16[1]" (identifier "pdVar16") ([ "[") (number_literal "1") (] "]")) (* "*") (subscript_expression "pdVar16[2]" (identifier "pdVar16") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (if_statement "if (0.0 <= dStack_6e8) {\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    }\n    else {\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);\n    }" (if "if") (parenthesized_expression "(0.0 <= dStack_6e8)" (( "(") (binary_expression "0.0 <= dStack_6e8" (number_literal "0.0") (<= "<=") (identifier "dStack_6e8")) () ")")) (compound_statement "{\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);\n    }" ({ "{") (expression_statement "dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);" (assignment_expression "dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" (identifier "dVar39") (= "=") (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" (( "(") (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_758 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_758 + -0x7fd0)" (( "(") (binary_expression "pcStack_758 + -0x7fd0" (identifier "pcStack_758") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4408")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);\n    }" (else "else") (compound_statement "{\n      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);\n    }" ({ "{") (expression_statement "dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);" (assignment_expression "dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418)" (identifier "dVar39") (= "=") (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x4418)" (( "(") (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x4418" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_758 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_758 + -0x7fd0)" (( "(") (binary_expression "pcStack_758 + -0x7fd0" (identifier "pcStack_758") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4418")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (dStack_6e8 * dVar39 < *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)) {\n      dStack_6e8 = dVar39 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8);\n    }\n    else {\n      dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;\n    }" (if "if") (parenthesized_expression "(dStack_6e8 * dVar39 < *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8))" (( "(") (binary_expression "dStack_6e8 * dVar39 < *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)" (binary_expression "dStack_6e8 * dVar39" (identifier "dStack_6e8") (* "*") (identifier "dVar39")) (< "<") (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)" (( "(") (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x43c8" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_758 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_758 + -0x7fd0)" (( "(") (binary_expression "pcStack_758 + -0x7fd0" (identifier "pcStack_758") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x43c8")) () ")"))))) () ")")) (compound_statement "{\n      dStack_6e8 = dVar39 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8);\n    }" ({ "{") (expression_statement "dStack_6e8 = dVar39 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8);" (assignment_expression "dStack_6e8 = dVar39 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)" (identifier "dStack_6e8") (= "=") (binary_expression "dVar39 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)" (identifier "dVar39") (/ "/") (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)" (( "(") (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x43c8" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_758 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_758 + -0x7fd0)" (( "(") (binary_expression "pcStack_758 + -0x7fd0" (identifier "pcStack_758") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x43c8")) () ")")))))) (; ";")) (} "}")) (else_clause "else {\n      dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;\n    }" (else "else") (compound_statement "{\n      dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;\n    }" ({ "{") (expression_statement "dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;" (assignment_expression "dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8" (identifier "dStack_6e8") (= "=") (binary_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8" (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x4408)" (( "(") (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x4408" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_758 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_758 + -0x7fd0)" (( "(") (binary_expression "pcStack_758 + -0x7fd0" (identifier "pcStack_758") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x4408")) () ")")))) (/ "/") (identifier "dStack_6e8"))) (; ";")) (} "}")))) (expression_statement "dStack_700 = pdVar16[3] * dStack_6e8;" (assignment_expression "dStack_700 = pdVar16[3] * dStack_6e8" (identifier "dStack_700") (= "=") (binary_expression "pdVar16[3] * dStack_6e8" (subscript_expression "pdVar16[3]" (identifier "pdVar16") ([ "[") (number_literal "3") (] "]")) (* "*") (identifier "dStack_6e8"))) (; ";")) (expression_statement "dStack_6f8 = -pdVar16[1] * dStack_6e8;" (assignment_expression "dStack_6f8 = -pdVar16[1] * dStack_6e8" (identifier "dStack_6f8") (= "=") (binary_expression "-pdVar16[1] * dStack_6e8" (unary_expression "-pdVar16[1]" (- "-") (subscript_expression "pdVar16[1]" (identifier "pdVar16") ([ "[") (number_literal "1") (] "]"))) (* "*") (identifier "dStack_6e8"))) (; ";")) (expression_statement "dStack_6f0 = -pdVar16[2] * dStack_6e8;" (assignment_expression "dStack_6f0 = -pdVar16[2] * dStack_6e8" (identifier "dStack_6f0") (= "=") (binary_expression "-pdVar16[2] * dStack_6e8" (unary_expression "-pdVar16[2]" (- "-") (subscript_expression "pdVar16[2]" (identifier "pdVar16") ([ "[") (number_literal "2") (] "]"))) (* "*") (identifier "dStack_6e8"))) (; ";")) (expression_statement "dStack_6e8 = *pdVar16 * dStack_6e8;" (assignment_expression "dStack_6e8 = *pdVar16 * dStack_6e8" (identifier "dStack_6e8") (= "=") (binary_expression "*pdVar16 * dStack_6e8" (pointer_expression "*pdVar16" (* "*") (identifier "pdVar16")) (* "*") (identifier "dStack_6e8"))) (; ";")) (expression_statement "dStack_6e0 = dStack_700 * -pdVar16[4] - dStack_6f0 * pdVar16[5];" (assignment_expression "dStack_6e0 = dStack_700 * -pdVar16[4] - dStack_6f0 * pdVar16[5]" (identifier "dStack_6e0") (= "=") (binary_expression "dStack_700 * -pdVar16[4] - dStack_6f0 * pdVar16[5]" (binary_expression "dStack_700 * -pdVar16[4]" (identifier "dStack_700") (* "*") (unary_expression "-pdVar16[4]" (- "-") (subscript_expression "pdVar16[4]" (identifier "pdVar16") ([ "[") (number_literal "4") (] "]")))) (- "-") (binary_expression "dStack_6f0 * pdVar16[5]" (identifier "dStack_6f0") (* "*") (subscript_expression "pdVar16[5]" (identifier "pdVar16") ([ "[") (number_literal "5") (] "]"))))) (; ";")) (expression_statement "dStack_6d8 = dStack_6f8 * -pdVar16[4] - dStack_6e8 * pdVar16[5];" (assignment_expression "dStack_6d8 = dStack_6f8 * -pdVar16[4] - dStack_6e8 * pdVar16[5]" (identifier "dStack_6d8") (= "=") (binary_expression "dStack_6f8 * -pdVar16[4] - dStack_6e8 * pdVar16[5]" (binary_expression "dStack_6f8 * -pdVar16[4]" (identifier "dStack_6f8") (* "*") (unary_expression "-pdVar16[4]" (- "-") (subscript_expression "pdVar16[4]" (identifier "pdVar16") ([ "[") (number_literal "4") (] "]")))) (- "-") (binary_expression "dStack_6e8 * pdVar16[5]" (identifier "dStack_6e8") (* "*") (subscript_expression "pdVar16[5]" (identifier "pdVar16") ([ "[") (number_literal "5") (] "]"))))) (; ";")) (expression_statement "(**(code **)(pcStack_758 + -0x75e4))(piVar2,auStack_6d0);" (call_expression "(**(code **)(pcStack_758 + -0x75e4))(piVar2,auStack_6d0)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x75e4))" (( "(") (pointer_expression "**(code **)(pcStack_758 + -0x75e4)" (* "*") (pointer_expression "*(code **)(pcStack_758 + -0x75e4)" (* "*") (cast_expression "(code **)(pcStack_758 + -0x75e4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_758 + -0x75e4)" (( "(") (binary_expression "pcStack_758 + -0x75e4" (identifier "pcStack_758") (+ "+") (number_literal "-0x75e4")) () ")"))))) () ")")) (argument_list "(piVar2,auStack_6d0)" (( "(") (identifier "piVar2") (, ",") (identifier "auStack_6d0") () ")"))) (; ";")) (expression_statement "dVar42 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0);" (assignment_expression "dVar42 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0)" (identifier "dVar42") (= "=") (pointer_expression "*(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0)" (* "*") (cast_expression "(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0)" (( "(") (binary_expression "*(int *)(pcStack_758 + -0x7fd0) + 0x43d0" (pointer_expression "*(int *)(pcStack_758 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_758 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_758 + -0x7fd0)" (( "(") (binary_expression "pcStack_758 + -0x7fd0" (identifier "pcStack_758") (+ "+") (number_literal "-0x7fd0")) () ")")))) (+ "+") (number_literal "0x43d0")) () ")"))))) (; ";")) (expression_statement "dVar39 = (double)(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar42);" (assignment_expression "dVar39 = (double)(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar42)" (identifier "dVar39") (= "=") (cast_expression "(double)(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar42)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar42)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x7c78))" (( "(") (pointer_expression "**(code **)(pcStack_758 + -0x7c78)" (* "*") (pointer_expression "*(code **)(pcStack_758 + -0x7c78)" (* "*") (cast_expression "(code **)(pcStack_758 + -0x7c78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_758 + -0x7c78)" (( "(") (binary_expression "pcStack_758 + -0x7c78" (identifier "pcStack_758") (+ "+") (number_literal "-0x7c78")) () ")"))))) () ")")) (argument_list "(dStack_748 - dVar42)" (( "(") (binary_expression "dStack_748 - dVar42" (identifier "dStack_748") (- "-") (identifier "dVar42")) () ")"))))) (; ";")) (expression_statement "dVar41 = (double)(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar42);" (assignment_expression "dVar41 = (double)(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar42)" (identifier "dVar41") (= "=") (cast_expression "(double)(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar42)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar42)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x7228))" (( "(") (pointer_expression "**(code **)(pcStack_758 + -0x7228)" (* "*") (pointer_expression "*(code **)(pcStack_758 + -0x7228)" (* "*") (cast_expression "(code **)(pcStack_758 + -0x7228)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_758 + -0x7228)" (( "(") (binary_expression "pcStack_758 + -0x7228" (identifier "pcStack_758") (+ "+") (number_literal "-0x7228")) () ")"))))) () ")")) (argument_list "(dStack_738 + dVar42)" (( "(") (binary_expression "dStack_738 + dVar42" (identifier "dStack_738") (+ "+") (identifier "dVar42")) () ")"))))) (; ";")) (expression_statement "uVar4 = (**(code **)(pcStack_758 + -0x7144))(puVar23,pdVar5);" (assignment_expression "uVar4 = (**(code **)(pcStack_758 + -0x7144))(puVar23,pdVar5)" (identifier "uVar4") (= "=") (call_expression "(**(code **)(pcStack_758 + -0x7144))(puVar23,pdVar5)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x7144))" (( "(") (pointer_expression "**(code **)(pcStack_758 + -0x7144)" (* "*") (pointer_expression "*(code **)(pcStack_758 + -0x7144)" (* "*") (cast_expression "(code **)(pcStack_758 + -0x7144)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_758 + -0x7144)" (( "(") (binary_expression "pcStack_758 + -0x7144" (identifier "pcStack_758") (+ "+") (number_literal "-0x7144")) () ")"))))) () ")")) (argument_list "(puVar23,pdVar5)" (( "(") (identifier "puVar23") (, ",") (identifier "pdVar5") () ")")))) (; ";")) (expression_statement "puVar35 = (undefined1 *)(**(code **)(pcStack_758 + -0x79c4))(piVar2,pdVar5);" (assignment_expression "puVar35 = (undefined1 *)(**(code **)(pcStack_758 + -0x79c4))(piVar2,pdVar5)" (identifier "puVar35") (= "=") (cast_expression "(undefined1 *)(**(code **)(pcStack_758 + -0x79c4))(piVar2,pdVar5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcStack_758 + -0x79c4))(piVar2,pdVar5)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x79c4))" (( "(") (pointer_expression "**(code **)(pcStack_758 + -0x79c4)" (* "*") (pointer_expression "*(code **)(pcStack_758 + -0x79c4)" (* "*") (cast_expression "(code **)(pcStack_758 + -0x79c4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_758 + -0x79c4)" (( "(") (binary_expression "pcStack_758 + -0x79c4" (identifier "pcStack_758") (+ "+") (number_literal "-0x79c4")) () ")"))))) () ")")) (argument_list "(piVar2,pdVar5)" (( "(") (identifier "piVar2") (, ",") (identifier "pdVar5") () ")"))))) (; ";")) (expression_statement "iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23);" (assignment_expression "iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcStack_758 + -0x73e4))(puVar23)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x73e4))" (( "(") (pointer_expression "**(code **)(pcStack_758 + -0x73e4)" (* "*") (pointer_expression "*(code **)(pcStack_758 + -0x73e4)" (* "*") (cast_expression "(code **)(pcStack_758 + -0x73e4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_758 + -0x73e4)" (( "(") (binary_expression "pcStack_758 + -0x73e4" (identifier "pcStack_758") (+ "+") (number_literal "-0x73e4")) () ")"))))) () ")")) (argument_list "(puVar23)" (( "(") (identifier "puVar23") () ")")))) (; ";")) (if_statement "if (((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23), iVar3 == 3)) &&\n       ((iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 4 ||\n        (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3)))) {\n      (**(code **)(pcStack_758 + -0x775c))(7);\n      iVar10 = (int)dVar41 - (int)dVar39;\n      iVar3 = iVar10;\n      if (iVar10 < 0) {\n        iVar3 = iVar10 + 0x3f;\n      }\n      pdVar16 = (double *)(iVar3 >> 6);\n      if (extraout_v1 < (int)pdVar16) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        bVar1 = extraout_v1_01 < 2;\n      }\n      else {\n        bVar1 = iVar10 < 0x80;\n      }\n      pdVar29 = (double *)0x1;\n      if (((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16)\n         ) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_03;\n        pdVar16 = extraout_v1_03;\n      }\n    }\n    else {\n      uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar51 < 2) {\n          pdVar29 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }\n      else {\nLAB_000a77f8:\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n      }\n      uVar51 = (*pcVar37)(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_00;\n      }\n      else {\n        pdVar29 = (double *)0x2;\n      }\n    }" (if "if") (parenthesized_expression "(((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23), iVar3 == 3)) &&\n       ((iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 4 ||\n        (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3))))" (( "(") (binary_expression "((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23), iVar3 == 3)) &&\n       ((iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 4 ||\n        (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3)))" (parenthesized_expression "((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23), iVar3 == 3))" (( "(") (binary_expression "(iVar3 == 4) || (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23), iVar3 == 3)" (parenthesized_expression "(iVar3 == 4)" (( "(") (binary_expression "iVar3 == 4" (identifier "iVar3") (== "==") (number_literal "4")) () ")")) (|| "||") (parenthesized_expression "(iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23), iVar3 == 3)" (( "(") (comma_expression "iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23), iVar3 == 3" (assignment_expression "iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcStack_758 + -0x73e4))(puVar23)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x73e4))" (( "(") (pointer_expression "**(code **)(pcStack_758 + -0x73e4)" (* "*") (pointer_expression "*(code **)(pcStack_758 + -0x73e4)" (* "*") (cast_expression "(code **)(pcStack_758 + -0x73e4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_758 + -0x73e4)" (( "(") (binary_expression "pcStack_758 + -0x73e4" (identifier "pcStack_758") (+ "+") (number_literal "-0x73e4")) () ")"))))) () ")")) (argument_list "(puVar23)" (( "(") (identifier "puVar23") () ")")))) (, ",") (binary_expression "iVar3 == 3" (identifier "iVar3") (== "==") (number_literal "3"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 4 ||\n        (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3)))" (( "(") (parenthesized_expression "(iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 4 ||\n        (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3))" (( "(") (comma_expression "iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 4 ||\n        (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3)" (assignment_expression "iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcStack_758 + -0x73e4))(piVar2)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x73e4))" (( "(") (pointer_expression "**(code **)(pcStack_758 + -0x73e4)" (* "*") (pointer_expression "*(code **)(pcStack_758 + -0x73e4)" (* "*") (cast_expression "(code **)(pcStack_758 + -0x73e4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_758 + -0x73e4)" (( "(") (binary_expression "pcStack_758 + -0x73e4" (identifier "pcStack_758") (+ "+") (number_literal "-0x73e4")) () ")"))))) () ")")) (argument_list "(piVar2)" (( "(") (identifier "piVar2") () ")")))) (, ",") (binary_expression "iVar3 == 4 ||\n        (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3)" (binary_expression "iVar3 == 4" (identifier "iVar3") (== "==") (number_literal "4")) (|| "||") (parenthesized_expression "(iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3)" (( "(") (comma_expression "iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3" (assignment_expression "iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcStack_758 + -0x73e4))(piVar2)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x73e4))" (( "(") (pointer_expression "**(code **)(pcStack_758 + -0x73e4)" (* "*") (pointer_expression "*(code **)(pcStack_758 + -0x73e4)" (* "*") (cast_expression "(code **)(pcStack_758 + -0x73e4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_758 + -0x73e4)" (( "(") (binary_expression "pcStack_758 + -0x73e4" (identifier "pcStack_758") (+ "+") (number_literal "-0x73e4")) () ")"))))) () ")")) (argument_list "(piVar2)" (( "(") (identifier "piVar2") () ")")))) (, ",") (binary_expression "iVar3 == 3" (identifier "iVar3") (== "==") (number_literal "3"))) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n      (**(code **)(pcStack_758 + -0x775c))(7);\n      iVar10 = (int)dVar41 - (int)dVar39;\n      iVar3 = iVar10;\n      if (iVar10 < 0) {\n        iVar3 = iVar10 + 0x3f;\n      }\n      pdVar16 = (double *)(iVar3 >> 6);\n      if (extraout_v1 < (int)pdVar16) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        bVar1 = extraout_v1_01 < 2;\n      }\n      else {\n        bVar1 = iVar10 < 0x80;\n      }\n      pdVar29 = (double *)0x1;\n      if (((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16)\n         ) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_03;\n        pdVar16 = extraout_v1_03;\n      }\n    }" ({ "{") (expression_statement "(**(code **)(pcStack_758 + -0x775c))(7);" (call_expression "(**(code **)(pcStack_758 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x775c))" (( "(") (pointer_expression "**(code **)(pcStack_758 + -0x775c)" (* "*") (pointer_expression "*(code **)(pcStack_758 + -0x775c)" (* "*") (cast_expression "(code **)(pcStack_758 + -0x775c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_758 + -0x775c)" (( "(") (binary_expression "pcStack_758 + -0x775c" (identifier "pcStack_758") (+ "+") (number_literal "-0x775c")) () ")"))))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (expression_statement "iVar10 = (int)dVar41 - (int)dVar39;" (assignment_expression "iVar10 = (int)dVar41 - (int)dVar39" (identifier "iVar10") (= "=") (binary_expression "(int)dVar41 - (int)dVar39" (cast_expression "(int)dVar41" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar41")) (- "-") (cast_expression "(int)dVar39" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar39")))) (; ";")) (expression_statement "iVar3 = iVar10;" (assignment_expression "iVar3 = iVar10" (identifier "iVar3") (= "=") (identifier "iVar10")) (; ";")) (if_statement "if (iVar10 < 0) {\n        iVar3 = iVar10 + 0x3f;\n      }" (if "if") (parenthesized_expression "(iVar10 < 0)" (( "(") (binary_expression "iVar10 < 0" (identifier "iVar10") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        iVar3 = iVar10 + 0x3f;\n      }" ({ "{") (expression_statement "iVar3 = iVar10 + 0x3f;" (assignment_expression "iVar3 = iVar10 + 0x3f" (identifier "iVar3") (= "=") (binary_expression "iVar10 + 0x3f" (identifier "iVar10") (+ "+") (number_literal "0x3f"))) (; ";")) (} "}"))) (expression_statement "pdVar16 = (double *)(iVar3 >> 6);" (assignment_expression "pdVar16 = (double *)(iVar3 >> 6)" (identifier "pdVar16") (= "=") (cast_expression "(double *)(iVar3 >> 6)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 >> 6)" (( "(") (binary_expression "iVar3 >> 6" (identifier "iVar3") (>> ">>") (number_literal "6")) () ")")))) (; ";")) (if_statement "if (extraout_v1 < (int)pdVar16) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        bVar1 = extraout_v1_01 < 2;\n      }\n      else {\n        bVar1 = iVar10 < 0x80;\n      }" (if "if") (parenthesized_expression "(extraout_v1 < (int)pdVar16)" (( "(") (binary_expression "extraout_v1 < (int)pdVar16" (identifier "extraout_v1") (< "<") (cast_expression "(int)pdVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar16"))) () ")")) (compound_statement "{\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        bVar1 = extraout_v1_01 < 2;\n      }" ({ "{") (expression_statement "(**(code **)(pcStack_758 + -0x775c))(7);" (call_expression "(**(code **)(pcStack_758 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x775c))" (( "(") (pointer_expression "**(code **)(pcStack_758 + -0x775c)" (* "*") (pointer_expression "*(code **)(pcStack_758 + -0x775c)" (* "*") (cast_expression "(code **)(pcStack_758 + -0x775c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_758 + -0x775c)" (( "(") (binary_expression "pcStack_758 + -0x775c" (identifier "pcStack_758") (+ "+") (number_literal "-0x775c")) () ")"))))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (expression_statement "bVar1 = extraout_v1_01 < 2;" (assignment_expression "bVar1 = extraout_v1_01 < 2" (identifier "bVar1") (= "=") (binary_expression "extraout_v1_01 < 2" (identifier "extraout_v1_01") (< "<") (number_literal "2"))) (; ";")) (} "}")) (else_clause "else {\n        bVar1 = iVar10 < 0x80;\n      }" (else "else") (compound_statement "{\n        bVar1 = iVar10 < 0x80;\n      }" ({ "{") (expression_statement "bVar1 = iVar10 < 0x80;" (assignment_expression "bVar1 = iVar10 < 0x80" (identifier "bVar1") (= "=") (binary_expression "iVar10 < 0x80" (identifier "iVar10") (< "<") (number_literal "0x80"))) (; ";")) (} "}")))) (expression_statement "pdVar29 = (double *)0x1;" (assignment_expression "pdVar29 = (double *)0x1" (identifier "pdVar29") (= "=") (cast_expression "(double *)0x1" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (if_statement "if (((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16)\n         ) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_03;\n        pdVar16 = extraout_v1_03;\n      }" (if "if") (parenthesized_expression "(((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16)\n         )" (( "(") (binary_expression "((bool)(bVar1 ^ 1)) &&\n         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16)" (parenthesized_expression "((bool)(bVar1 ^ 1))" (( "(") (cast_expression "(bool)(bVar1 ^ 1)" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (parenthesized_expression "(bVar1 ^ 1)" (( "(") (binary_expression "bVar1 ^ 1" (identifier "bVar1") (^ "^") (number_literal "1")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((**(code **)(pcStack_758 + -0x775c))(7), pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16)" (( "(") (comma_expression "(**(code **)(pcStack_758 + -0x775c))(7), pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16" (call_expression "(**(code **)(pcStack_758 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x775c))" (( "(") (pointer_expression "**(code **)(pcStack_758 + -0x775c)" (* "*") (pointer_expression "*(code **)(pcStack_758 + -0x775c)" (* "*") (cast_expression "(code **)(pcStack_758 + -0x775c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_758 + -0x775c)" (( "(") (binary_expression "pcStack_758 + -0x775c" (identifier "pcStack_758") (+ "+") (number_literal "-0x775c")) () ")"))))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (, ",") (comma_expression "pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16" (assignment_expression "pdVar29 = pdVar16" (identifier "pdVar29") (= "=") (identifier "pdVar16")) (, ",") (binary_expression "extraout_v1_02 < (int)pdVar16" (identifier "extraout_v1_02") (< "<") (cast_expression "(int)pdVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar16"))))) () ")"))) () ")")) (compound_statement "{\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_03;\n        pdVar16 = extraout_v1_03;\n      }" ({ "{") (expression_statement "(**(code **)(pcStack_758 + -0x775c))(7);" (call_expression "(**(code **)(pcStack_758 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x775c))" (( "(") (pointer_expression "**(code **)(pcStack_758 + -0x775c)" (* "*") (pointer_expression "*(code **)(pcStack_758 + -0x775c)" (* "*") (cast_expression "(code **)(pcStack_758 + -0x775c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_758 + -0x775c)" (( "(") (binary_expression "pcStack_758 + -0x775c" (identifier "pcStack_758") (+ "+") (number_literal "-0x775c")) () ")"))))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (expression_statement "pdVar29 = extraout_v1_03;" (assignment_expression "pdVar29 = extraout_v1_03" (identifier "pdVar29") (= "=") (identifier "extraout_v1_03")) (; ";")) (expression_statement "pdVar16 = extraout_v1_03;" (assignment_expression "pdVar16 = extraout_v1_03" (identifier "pdVar16") (= "=") (identifier "extraout_v1_03")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar51 < 2) {\n          pdVar29 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }\n      else {\nLAB_000a77f8:\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n      }\n      uVar51 = (*pcVar37)(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_00;\n      }\n      else {\n        pdVar29 = (double *)0x2;\n      }\n    }" (else "else") (compound_statement "{\n      uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar51 < 2) {\n          pdVar29 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }\n      else {\nLAB_000a77f8:\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n      }\n      uVar51 = (*pcVar37)(7);\n      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_00;\n      }\n      else {\n        pdVar29 = (double *)0x2;\n      }\n    }" ({ "{") (expression_statement "uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);" (assignment_expression "uVar51 = (**(code **)(pcStack_758 + -0x775c))(7)" (identifier "uVar51") (= "=") (call_expression "(**(code **)(pcStack_758 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x775c))" (( "(") (pointer_expression "**(code **)(pcStack_758 + -0x775c)" (* "*") (pointer_expression "*(code **)(pcStack_758 + -0x775c)" (* "*") (cast_expression "(code **)(pcStack_758 + -0x775c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_758 + -0x775c)" (( "(") (binary_expression "pcStack_758 + -0x775c" (identifier "pcStack_758") (+ "+") (number_literal "-0x775c")) () ")"))))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (if_statement "if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar51 < 2) {\n          pdVar29 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }\n      else {\nLAB_000a77f8:\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n      }" (if "if") (parenthesized_expression "(((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2))" (( "(") (binary_expression "((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)" (parenthesized_expression "((int)((ulonglong)uVar51 >> 0x20) == 0)" (( "(") (binary_expression "(int)((ulonglong)uVar51 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar51 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar51 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar51 >> 0x20" (cast_expression "(ulonglong)uVar51" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar51")) (>> ">>") (number_literal "0x20")) () ")"))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((uint)uVar51 < 2)" (( "(") (binary_expression "(uint)uVar51 < 2" (cast_expression "(uint)uVar51" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar51")) (< "<") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n        uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);\n        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a77f8;\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n        if ((uint)uVar51 < 2) {\n          pdVar29 = (double *)0x1;\n          goto LAB_000a7818;\n        }\n      }" ({ "{") (expression_statement "uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);" (assignment_expression "uVar51 = (**(code **)(pcStack_758 + -0x775c))(7)" (identifier "uVar51") (= "=") (call_expression "(**(code **)(pcStack_758 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x775c))" (( "(") (pointer_expression "**(code **)(pcStack_758 + -0x775c)" (* "*") (pointer_expression "*(code **)(pcStack_758 + -0x775c)" (* "*") (cast_expression "(code **)(pcStack_758 + -0x775c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_758 + -0x775c)" (( "(") (binary_expression "pcStack_758 + -0x775c" (identifier "pcStack_758") (+ "+") (number_literal "-0x775c")) () ")"))))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (if_statement "if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a77f8;" (if "if") (parenthesized_expression "((int)((ulonglong)uVar51 >> 0x20) != 0)" (( "(") (binary_expression "(int)((ulonglong)uVar51 >> 0x20) != 0" (cast_expression "(int)((ulonglong)uVar51 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar51 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar51 >> 0x20" (cast_expression "(ulonglong)uVar51" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar51")) (>> ">>") (number_literal "0x20")) () ")"))) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000a77f8;" (goto "goto") (statement_identifier "LAB_000a77f8") (; ";"))) (expression_statement "pcVar37 = *(code **)(pcStack_758 + -0x775c);" (assignment_expression "pcVar37 = *(code **)(pcStack_758 + -0x775c)" (identifier "pcVar37") (= "=") (pointer_expression "*(code **)(pcStack_758 + -0x775c)" (* "*") (cast_expression "(code **)(pcStack_758 + -0x775c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_758 + -0x775c)" (( "(") (binary_expression "pcStack_758 + -0x775c" (identifier "pcStack_758") (+ "+") (number_literal "-0x775c")) () ")"))))) (; ";")) (if_statement "if ((uint)uVar51 < 2) {\n          pdVar29 = (double *)0x1;\n          goto LAB_000a7818;\n        }" (if "if") (parenthesized_expression "((uint)uVar51 < 2)" (( "(") (binary_expression "(uint)uVar51 < 2" (cast_expression "(uint)uVar51" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar51")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n          pdVar29 = (double *)0x1;\n          goto LAB_000a7818;\n        }" ({ "{") (expression_statement "pdVar29 = (double *)0x1;" (assignment_expression "pdVar29 = (double *)0x1" (identifier "pdVar29") (= "=") (cast_expression "(double *)0x1" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (goto_statement "goto LAB_000a7818;" (goto "goto") (statement_identifier "LAB_000a7818") (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_000a77f8:\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n      }" (else "else") (compound_statement "{\nLAB_000a77f8:\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);\n      }" ({ "{") (labeled_statement "LAB_000a77f8:\n        pcVar37 = *(code **)(pcStack_758 + -0x775c);" (statement_identifier "LAB_000a77f8") (: ":") (expression_statement "pcVar37 = *(code **)(pcStack_758 + -0x775c);" (assignment_expression "pcVar37 = *(code **)(pcStack_758 + -0x775c)" (identifier "pcVar37") (= "=") (pointer_expression "*(code **)(pcStack_758 + -0x775c)" (* "*") (cast_expression "(code **)(pcStack_758 + -0x775c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_758 + -0x775c)" (( "(") (binary_expression "pcStack_758 + -0x775c" (identifier "pcStack_758") (+ "+") (number_literal "-0x775c")) () ")"))))) (; ";"))) (} "}")))) (expression_statement "uVar51 = (*pcVar37)(7);" (assignment_expression "uVar51 = (*pcVar37)(7)" (identifier "uVar51") (= "=") (call_expression "(*pcVar37)(7)" (parenthesized_expression "(*pcVar37)" (( "(") (pointer_expression "*pcVar37" (* "*") (identifier "pcVar37")) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (if_statement "if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_00;\n      }\n      else {\n        pdVar29 = (double *)0x2;\n      }" (if "if") (parenthesized_expression "(((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2))" (( "(") (binary_expression "((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)" (parenthesized_expression "((int)((ulonglong)uVar51 >> 0x20) == 0)" (( "(") (binary_expression "(int)((ulonglong)uVar51 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar51 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar51 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar51 >> 0x20" (cast_expression "(ulonglong)uVar51" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar51")) (>> ">>") (number_literal "0x20")) () ")"))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((uint)uVar51 < 2)" (( "(") (binary_expression "(uint)uVar51 < 2" (cast_expression "(uint)uVar51" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar51")) (< "<") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n        (**(code **)(pcStack_758 + -0x775c))(7);\n        pdVar29 = extraout_v1_00;\n      }" ({ "{") (expression_statement "(**(code **)(pcStack_758 + -0x775c))(7);" (call_expression "(**(code **)(pcStack_758 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x775c))" (( "(") (pointer_expression "**(code **)(pcStack_758 + -0x775c)" (* "*") (pointer_expression "*(code **)(pcStack_758 + -0x775c)" (* "*") (cast_expression "(code **)(pcStack_758 + -0x775c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_758 + -0x775c)" (( "(") (binary_expression "pcStack_758 + -0x775c" (identifier "pcStack_758") (+ "+") (number_literal "-0x775c")) () ")"))))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (expression_statement "pdVar29 = extraout_v1_00;" (assignment_expression "pdVar29 = extraout_v1_00" (identifier "pdVar29") (= "=") (identifier "extraout_v1_00")) (; ";")) (} "}")) (else_clause "else {\n        pdVar29 = (double *)0x2;\n      }" (else "else") (compound_statement "{\n        pdVar29 = (double *)0x2;\n      }" ({ "{") (expression_statement "pdVar29 = (double *)0x2;" (assignment_expression "pdVar29 = (double *)0x2" (identifier "pdVar29") (= "=") (cast_expression "(double *)0x2" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (; ";")) (} "}")))) (} "}")))) (labeled_statement "LAB_000a7818:\n    pdStack_720 = &dStack_700;" (statement_identifier "LAB_000a7818") (: ":") (expression_statement "pdStack_720 = &dStack_700;" (assignment_expression "pdStack_720 = &dStack_700" (identifier "pdStack_720") (= "=") (pointer_expression "&dStack_700" (& "&") (identifier "dStack_700"))) (; ";"))) (expression_statement "puStack_714 = auStack_6d0;" (assignment_expression "puStack_714 = auStack_6d0" (identifier "puStack_714") (= "=") (identifier "auStack_6d0")) (; ";")) (expression_statement "pdStack_710 = &dStack_750;" (assignment_expression "pdStack_710 = &dStack_750" (identifier "pdStack_710") (= "=") (pointer_expression "&dStack_750" (& "&") (identifier "dStack_750"))) (; ";")) (expression_statement "iStack_704 = 1;" (assignment_expression "iStack_704 = 1" (identifier "iStack_704") (= "=") (number_literal "1")) (; ";")) (expression_statement "ppiVar24 = &piStack_72c;" (assignment_expression "ppiVar24 = &piStack_72c" (identifier "ppiVar24") (= "=") (pointer_expression "&piStack_72c" (& "&") (identifier "piStack_72c"))) (; ";")) (expression_statement "piStack_72c = piVar2;" (assignment_expression "piStack_72c = piVar2" (identifier "piStack_72c") (= "=") (identifier "piVar2")) (; ";")) (expression_statement "puStack_728 = puVar23;" (assignment_expression "puStack_728 = puVar23" (identifier "puStack_728") (= "=") (identifier "puVar23")) (; ";")) (expression_statement "pdStack_724 = pdVar5;" (assignment_expression "pdStack_724 = pdVar5" (identifier "pdStack_724") (= "=") (identifier "pdVar5")) (; ";")) (expression_statement "puStack_71c = puVar35;" (assignment_expression "puStack_71c = puVar35" (identifier "puStack_71c") (= "=") (identifier "puVar35")) (; ";")) (expression_statement "uStack_718 = uVar4;" (assignment_expression "uStack_718 = uVar4" (identifier "uStack_718") (= "=") (identifier "uVar4")) (; ";")) (expression_statement "iStack_70c = (int)dVar39;" (assignment_expression "iStack_70c = (int)dVar39" (identifier "iStack_70c") (= "=") (cast_expression "(int)dVar39" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar39"))) (; ";")) (expression_statement "iStack_708 = (int)dVar41;" (assignment_expression "iStack_708 = (int)dVar41" (identifier "iStack_708") (= "=") (cast_expression "(int)dVar41" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar41"))) (; ";")) (expression_statement "(**(code **)(pcStack_758 + -0x7700))\n              (*(int *)(pcStack_758 + -0x7ea0) + 0x34c4,ppiVar24,pdVar29,0);" (call_expression "(**(code **)(pcStack_758 + -0x7700))\n              (*(int *)(pcStack_758 + -0x7ea0) + 0x34c4,ppiVar24,pdVar29,0)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x7700))" (( "(") (pointer_expression "**(code **)(pcStack_758 + -0x7700)" (* "*") (pointer_expression "*(code **)(pcStack_758 + -0x7700)" (* "*") (cast_expression "(code **)(pcStack_758 + -0x7700)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_758 + -0x7700)" (( "(") (binary_expression "pcStack_758 + -0x7700" (identifier "pcStack_758") (+ "+") (number_literal "-0x7700")) () ")"))))) () ")")) (argument_list "(*(int *)(pcStack_758 + -0x7ea0) + 0x34c4,ppiVar24,pdVar29,0)" (( "(") (binary_expression "*(int *)(pcStack_758 + -0x7ea0) + 0x34c4" (pointer_expression "*(int *)(pcStack_758 + -0x7ea0)" (* "*") (cast_expression "(int *)(pcStack_758 + -0x7ea0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_758 + -0x7ea0)" (( "(") (binary_expression "pcStack_758 + -0x7ea0" (identifier "pcStack_758") (+ "+") (number_literal "-0x7ea0")) () ")")))) (+ "+") (number_literal "0x34c4")) (, ",") (identifier "ppiVar24") (, ",") (identifier "pdVar29") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar3 = iStack_704;" (assignment_expression "iVar3 = iStack_704" (identifier "iVar3") (= "=") (identifier "iStack_704")) (; ";")) (expression_statement "(**(code **)(pcStack_758 + -0x79a4))(uVar4);" (call_expression "(**(code **)(pcStack_758 + -0x79a4))(uVar4)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x79a4))" (( "(") (pointer_expression "**(code **)(pcStack_758 + -0x79a4)" (* "*") (pointer_expression "*(code **)(pcStack_758 + -0x79a4)" (* "*") (cast_expression "(code **)(pcStack_758 + -0x79a4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_758 + -0x79a4)" (( "(") (binary_expression "pcStack_758 + -0x79a4" (identifier "pcStack_758") (+ "+") (number_literal "-0x79a4")) () ")"))))) () ")")) (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "(**(code **)(pcStack_758 + -0x79a4))(puVar35);" (call_expression "(**(code **)(pcStack_758 + -0x79a4))(puVar35)" (parenthesized_expression "(**(code **)(pcStack_758 + -0x79a4))" (( "(") (pointer_expression "**(code **)(pcStack_758 + -0x79a4)" (* "*") (pointer_expression "*(code **)(pcStack_758 + -0x79a4)" (* "*") (cast_expression "(code **)(pcStack_758 + -0x79a4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_758 + -0x79a4)" (( "(") (binary_expression "pcStack_758 + -0x79a4" (identifier "pcStack_758") (+ "+") (number_literal "-0x79a4")) () ")"))))) () ")")) (argument_list "(puVar35)" (( "(") (identifier "puVar35") () ")"))) (; ";")) (} "}"))) (if_statement "if (uStack_638._4_4_ == **(int **)(pcStack_758 + -0x7668)) {\n    return iVar3;\n  }" (if "if") (parenthesized_expression "(uStack_638._4_4_ == **(int **)(pcStack_758 + -0x7668))" (( "(") (binary_expression "uStack_638._4_4_ == **(int **)(pcStack_758 + -0x7668)" (field_expression "uStack_638._4_4_" (identifier "uStack_638") (. ".") (field_identifier "_4_4_")) (== "==") (pointer_expression "**(int **)(pcStack_758 + -0x7668)" (* "*") (pointer_expression "*(int **)(pcStack_758 + -0x7668)" (* "*") (cast_expression "(int **)(pcStack_758 + -0x7668)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_758 + -0x7668)" (( "(") (binary_expression "pcStack_758 + -0x7668" (identifier "pcStack_758") (+ "+") (number_literal "-0x7668")) () ")")))))) () ")")) (compound_statement "{\n    return iVar3;\n  }" ({ "{") (return_statement "return iVar3;" (return "return") (identifier "iVar3") (; ";")) (} "}"))) (expression_statement "pcVar37 = *(code **)(pcStack_758 + -0x7834);" (assignment_expression "pcVar37 = *(code **)(pcStack_758 + -0x7834)" (identifier "pcVar37") (= "=") (pointer_expression "*(code **)(pcStack_758 + -0x7834)" (* "*") (cast_expression "(code **)(pcStack_758 + -0x7834)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_758 + -0x7834)" (( "(") (binary_expression "pcStack_758 + -0x7834" (identifier "pcStack_758") (+ "+") (number_literal "-0x7834")) () ")"))))) (; ";")) (expression_statement "pcVar38 = DrawGradientImage;" (assignment_expression "pcVar38 = DrawGradientImage" (identifier "pcVar38") (= "=") (identifier "DrawGradientImage")) (; ";")) (expression_statement "iVar10 = uStack_638._4_4_;" (assignment_expression "iVar10 = uStack_638._4_4_" (identifier "iVar10") (= "=") (field_expression "uStack_638._4_4_" (identifier "uStack_638") (. ".") (field_identifier "_4_4_"))) (; ";")) (expression_statement "(*pcVar37)();" (call_expression "(*pcVar37)()" (parenthesized_expression "(*pcVar37)" (( "(") (pointer_expression "*pcVar37" (* "*") (identifier "pcVar37")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcStack_830 = pcVar37 + 0x359e18;" (assignment_expression "pcStack_830 = pcVar37 + 0x359e18" (identifier "pcStack_830") (= "=") (binary_expression "pcVar37 + 0x359e18" (identifier "pcVar37") (+ "+") (number_literal "0x359e18"))) (; ";")) (expression_statement "puStack_794 = (undefined8 *)**(undefined4 **)(pcVar37 + 0x3527b0);" (assignment_expression "puStack_794 = (undefined8 *)**(undefined4 **)(pcVar37 + 0x3527b0)" (identifier "puStack_794") (= "=") (cast_expression "(undefined8 *)**(undefined4 **)(pcVar37 + 0x3527b0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar37 + 0x3527b0)" (* "*") (pointer_expression "*(undefined4 **)(pcVar37 + 0x3527b0)" (* "*") (cast_expression "(undefined4 **)(pcVar37 + 0x3527b0)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x3527b0)" (( "(") (binary_expression "pcVar37 + 0x3527b0" (identifier "pcVar37") (+ "+") (number_literal "0x3527b0")) () ")"))))))) (; ";")) (expression_statement "pdStack_790 = pdVar16;" (assignment_expression "pdStack_790 = pdVar16" (identifier "pdStack_790") (= "=") (identifier "pdVar16")) (; ";")) (expression_statement "piStack_78c = piVar2;" (assignment_expression "piStack_78c = piVar2" (identifier "piStack_78c") (= "=") (identifier "piVar2")) (; ";")) (expression_statement "puStack_788 = puVar23;" (assignment_expression "puStack_788 = puVar23" (identifier "puStack_788") (= "=") (identifier "puVar23")) (; ";")) (expression_statement "pdStack_784 = pdVar5;" (assignment_expression "pdStack_784 = pdVar5" (identifier "pdStack_784") (= "=") (identifier "pdVar5")) (; ";")) (expression_statement "iStack_780 = iVar3;" (assignment_expression "iStack_780 = iVar3" (identifier "iStack_780") (= "=") (identifier "iVar3")) (; ";")) (expression_statement "pcStack_77c = pcVar38;" (assignment_expression "pcStack_77c = pcVar38" (identifier "pcStack_77c") (= "=") (identifier "pcVar38")) (; ";")) (expression_statement "dStack_778 = dVar42;" (assignment_expression "dStack_778 = dVar42" (identifier "dStack_778") (= "=") (identifier "dVar42")) (; ";")) (if_statement "if (iVar10 == 0) {\n    iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e48) + 0x3da0,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80a,*(int *)(pcVar37 + 0x351e4c) + 0x7818);\n    return iVar3;\n  }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e48) + 0x3da0,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80a,*(int *)(pcVar37 + 0x351e4c) + 0x7818);\n    return iVar3;\n  }" ({ "{") (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e48) + 0x3da0,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80a,*(int *)(pcVar37 + 0x351e4c) + 0x7818);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e48) + 0x3da0,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80a,*(int *)(pcVar37 + 0x351e4c) + 0x7818)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e48) + 0x3da0,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80a,*(int *)(pcVar37 + 0x351e4c) + 0x7818)" (parenthesized_expression "(**(code **)(pcVar37 + 0x352b88))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x352b88)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x352b88)" (* "*") (cast_expression "(code **)(pcVar37 + 0x352b88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x352b88)" (( "(") (binary_expression "pcVar37 + 0x352b88" (identifier "pcVar37") (+ "+") (number_literal "0x352b88")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar37 + 0x351e48) + 0x3da0,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80a,*(int *)(pcVar37 + 0x351e4c) + 0x7818)" (( "(") (binary_expression "*(int *)(pcVar37 + 0x351e48) + 0x3da0" (pointer_expression "*(int *)(pcVar37 + 0x351e48)" (* "*") (cast_expression "(int *)(pcVar37 + 0x351e48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x351e48)" (( "(") (binary_expression "pcVar37 + 0x351e48" (identifier "pcVar37") (+ "+") (number_literal "0x351e48")) () ")")))) (+ "+") (number_literal "0x3da0")) (, ",") (binary_expression "*(int *)(pcVar37 + 0x351e4c) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + 0x351e4c)" (* "*") (cast_expression "(int *)(pcVar37 + 0x351e4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x351e4c)" (( "(") (binary_expression "pcVar37 + 0x351e4c" (identifier "pcVar37") (+ "+") (number_literal "0x351e4c")) () ")")))) (+ "+") (number_literal "0x69c0")) (, ",") (number_literal "0x80a") (, ",") (binary_expression "*(int *)(pcVar37 + 0x351e4c) + 0x7818" (pointer_expression "*(int *)(pcVar37 + 0x351e4c)" (* "*") (cast_expression "(int *)(pcVar37 + 0x351e4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x351e4c)" (( "(") (binary_expression "pcVar37 + 0x351e4c" (identifier "pcVar37") (+ "+") (number_literal "0x351e4c")) () ")")))) (+ "+") (number_literal "0x7818")) () ")")))) (; ";")) (return_statement "return iVar3;" (return "return") (identifier "iVar3") (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar10 + 0x336c) != -0x54535255) {\n    iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e4c) + -0x784,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80b,*(int *)(pcVar37 + 0x351e4c) + 0x7818);\n    return iVar3;\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar10 + 0x336c) != -0x54535255)" (( "(") (binary_expression "*(int *)(iVar10 + 0x336c) != -0x54535255" (pointer_expression "*(int *)(iVar10 + 0x336c)" (* "*") (cast_expression "(int *)(iVar10 + 0x336c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x336c)" (( "(") (binary_expression "iVar10 + 0x336c" (identifier "iVar10") (+ "+") (number_literal "0x336c")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n    iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e4c) + -0x784,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80b,*(int *)(pcVar37 + 0x351e4c) + 0x7818);\n    return iVar3;\n  }" ({ "{") (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e4c) + -0x784,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80b,*(int *)(pcVar37 + 0x351e4c) + 0x7818);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e4c) + -0x784,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80b,*(int *)(pcVar37 + 0x351e4c) + 0x7818)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar37 + 0x352b88))\n                      (*(int *)(pcVar37 + 0x351e4c) + -0x784,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80b,*(int *)(pcVar37 + 0x351e4c) + 0x7818)" (parenthesized_expression "(**(code **)(pcVar37 + 0x352b88))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x352b88)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x352b88)" (* "*") (cast_expression "(code **)(pcVar37 + 0x352b88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x352b88)" (( "(") (binary_expression "pcVar37 + 0x352b88" (identifier "pcVar37") (+ "+") (number_literal "0x352b88")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar37 + 0x351e4c) + -0x784,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,\n                       0x80b,*(int *)(pcVar37 + 0x351e4c) + 0x7818)" (( "(") (binary_expression "*(int *)(pcVar37 + 0x351e4c) + -0x784" (pointer_expression "*(int *)(pcVar37 + 0x351e4c)" (* "*") (cast_expression "(int *)(pcVar37 + 0x351e4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x351e4c)" (( "(") (binary_expression "pcVar37 + 0x351e4c" (identifier "pcVar37") (+ "+") (number_literal "0x351e4c")) () ")")))) (+ "+") (number_literal "-0x784")) (, ",") (binary_expression "*(int *)(pcVar37 + 0x351e4c) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + 0x351e4c)" (* "*") (cast_expression "(int *)(pcVar37 + 0x351e4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x351e4c)" (( "(") (binary_expression "pcVar37 + 0x351e4c" (identifier "pcVar37") (+ "+") (number_literal "0x351e4c")) () ")")))) (+ "+") (number_literal "0x69c0")) (, ",") (number_literal "0x80b") (, ",") (binary_expression "*(int *)(pcVar37 + 0x351e4c) + 0x7818" (pointer_expression "*(int *)(pcVar37 + 0x351e4c)" (* "*") (cast_expression "(int *)(pcVar37 + 0x351e4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x351e4c)" (( "(") (binary_expression "pcVar37 + 0x351e4c" (identifier "pcVar37") (+ "+") (number_literal "0x351e4c")) () ")")))) (+ "+") (number_literal "0x7818")) () ")")))) (; ";")) (return_statement "return iVar3;" (return "return") (identifier "iVar3") (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar10 + 0x3350) != 0) {\n    iStack_838 = *(int *)(pcVar37 + 0x351e50) + -0x2f6c;\n    iStack_834 = iVar10 + 0x340;\n    (**(code **)(pcVar37 + 0x352760))\n              (0x8000,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,*(int *)(pcVar37 + 0x351e4c) + 0x7804,\n               0x80d);\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar10 + 0x3350) != 0)" (( "(") (binary_expression "*(int *)(iVar10 + 0x3350) != 0" (pointer_expression "*(int *)(iVar10 + 0x3350)" (* "*") (cast_expression "(int *)(iVar10 + 0x3350)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x3350)" (( "(") (binary_expression "iVar10 + 0x3350" (identifier "iVar10") (+ "+") (number_literal "0x3350")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iStack_838 = *(int *)(pcVar37 + 0x351e50) + -0x2f6c;\n    iStack_834 = iVar10 + 0x340;\n    (**(code **)(pcVar37 + 0x352760))\n              (0x8000,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,*(int *)(pcVar37 + 0x351e4c) + 0x7804,\n               0x80d);\n  }" ({ "{") (expression_statement "iStack_838 = *(int *)(pcVar37 + 0x351e50) + -0x2f6c;" (assignment_expression "iStack_838 = *(int *)(pcVar37 + 0x351e50) + -0x2f6c" (identifier "iStack_838") (= "=") (binary_expression "*(int *)(pcVar37 + 0x351e50) + -0x2f6c" (pointer_expression "*(int *)(pcVar37 + 0x351e50)" (* "*") (cast_expression "(int *)(pcVar37 + 0x351e50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x351e50)" (( "(") (binary_expression "pcVar37 + 0x351e50" (identifier "pcVar37") (+ "+") (number_literal "0x351e50")) () ")")))) (+ "+") (number_literal "-0x2f6c"))) (; ";")) (expression_statement "iStack_834 = iVar10 + 0x340;" (assignment_expression "iStack_834 = iVar10 + 0x340" (identifier "iStack_834") (= "=") (binary_expression "iVar10 + 0x340" (identifier "iVar10") (+ "+") (number_literal "0x340"))) (; ";")) (expression_statement "(**(code **)(pcVar37 + 0x352760))\n              (0x8000,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,*(int *)(pcVar37 + 0x351e4c) + 0x7804,\n               0x80d);" (call_expression "(**(code **)(pcVar37 + 0x352760))\n              (0x8000,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,*(int *)(pcVar37 + 0x351e4c) + 0x7804,\n               0x80d)" (parenthesized_expression "(**(code **)(pcVar37 + 0x352760))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x352760)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x352760)" (* "*") (cast_expression "(code **)(pcVar37 + 0x352760)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x352760)" (( "(") (binary_expression "pcVar37 + 0x352760" (identifier "pcVar37") (+ "+") (number_literal "0x352760")) () ")"))))) () ")")) (argument_list "(0x8000,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,*(int *)(pcVar37 + 0x351e4c) + 0x7804,\n               0x80d)" (( "(") (number_literal "0x8000") (, ",") (binary_expression "*(int *)(pcVar37 + 0x351e4c) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + 0x351e4c)" (* "*") (cast_expression "(int *)(pcVar37 + 0x351e4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x351e4c)" (( "(") (binary_expression "pcVar37 + 0x351e4c" (identifier "pcVar37") (+ "+") (number_literal "0x351e4c")) () ")")))) (+ "+") (number_literal "0x69c0")) (, ",") (binary_expression "*(int *)(pcVar37 + 0x351e4c) + 0x7804" (pointer_expression "*(int *)(pcVar37 + 0x351e4c)" (* "*") (cast_expression "(int *)(pcVar37 + 0x351e4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x351e4c)" (( "(") (binary_expression "pcVar37 + 0x351e4c" (identifier "pcVar37") (+ "+") (number_literal "0x351e4c")) () ")")))) (+ "+") (number_literal "0x7804")) (, ",") (number_literal "0x80d") () ")"))) (; ";")) (} "}"))) (if_statement "if (ppiVar24 == (int **)0x0) {\n    iVar3 = (**(code **)(pcStack_830 + -0x7290))\n                      (*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x69c0,0x80e,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x7818);\n    return iVar3;\n  }" (if "if") (parenthesized_expression "(ppiVar24 == (int **)0x0)" (( "(") (binary_expression "ppiVar24 == (int **)0x0" (identifier "ppiVar24") (== "==") (cast_expression "(int **)0x0" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    iVar3 = (**(code **)(pcStack_830 + -0x7290))\n                      (*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x69c0,0x80e,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x7818);\n    return iVar3;\n  }" ({ "{") (expression_statement "iVar3 = (**(code **)(pcStack_830 + -0x7290))\n                      (*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x69c0,0x80e,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x7818);" (assignment_expression "iVar3 = (**(code **)(pcStack_830 + -0x7290))\n                      (*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x69c0,0x80e,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x7818)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcStack_830 + -0x7290))\n                      (*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x69c0,0x80e,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x7818)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x7290))" (( "(") (pointer_expression "**(code **)(pcStack_830 + -0x7290)" (* "*") (pointer_expression "*(code **)(pcStack_830 + -0x7290)" (* "*") (cast_expression "(code **)(pcStack_830 + -0x7290)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_830 + -0x7290)" (( "(") (binary_expression "pcStack_830 + -0x7290" (identifier "pcStack_830") (+ "+") (number_literal "-0x7290")) () ")"))))) () ")")) (argument_list "(*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x69c0,0x80e,\n                       *(int *)(pcStack_830 + -0x7fcc) + 0x7818)" (( "(") (binary_expression "*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c" (pointer_expression "*(int *)(pcStack_830 + -0x7fcc)" (* "*") (cast_expression "(int *)(pcStack_830 + -0x7fcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_830 + -0x7fcc)" (( "(") (binary_expression "pcStack_830 + -0x7fcc" (identifier "pcStack_830") (+ "+") (number_literal "-0x7fcc")) () ")")))) (+ "+") (number_literal "0x6a8c")) (, ",") (binary_expression "*(int *)(pcStack_830 + -0x7fcc) + 0x69c0" (pointer_expression "*(int *)(pcStack_830 + -0x7fcc)" (* "*") (cast_expression "(int *)(pcStack_830 + -0x7fcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_830 + -0x7fcc)" (( "(") (binary_expression "pcStack_830 + -0x7fcc" (identifier "pcStack_830") (+ "+") (number_literal "-0x7fcc")) () ")")))) (+ "+") (number_literal "0x69c0")) (, ",") (number_literal "0x80e") (, ",") (binary_expression "*(int *)(pcStack_830 + -0x7fcc) + 0x7818" (pointer_expression "*(int *)(pcStack_830 + -0x7fcc)" (* "*") (cast_expression "(int *)(pcStack_830 + -0x7fcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_830 + -0x7fcc)" (( "(") (binary_expression "pcStack_830 + -0x7fcc" (identifier "pcStack_830") (+ "+") (number_literal "-0x7fcc")) () ")")))) (+ "+") (number_literal "0x7818")) () ")")))) (; ";")) (return_statement "return iVar3;" (return "return") (identifier "iVar3") (; ";")) (} "}"))) (expression_statement "ppiVar33 = ppiVar24 + 0x6e;" (assignment_expression "ppiVar33 = ppiVar24 + 0x6e" (identifier "ppiVar33") (= "=") (binary_expression "ppiVar24 + 0x6e" (identifier "ppiVar24") (+ "+") (number_literal "0x6e"))) (; ";")) (expression_statement "(**(code **)(pcStack_830 + -0x6fc4))\n            (ppiVar24[0x7c],ppiVar24[0x7d],0x60,*(int *)(pcStack_830 + -0x7ea0) + 0x224c);" (call_expression "(**(code **)(pcStack_830 + -0x6fc4))\n            (ppiVar24[0x7c],ppiVar24[0x7d],0x60,*(int *)(pcStack_830 + -0x7ea0) + 0x224c)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x6fc4))" (( "(") (pointer_expression "**(code **)(pcStack_830 + -0x6fc4)" (* "*") (pointer_expression "*(code **)(pcStack_830 + -0x6fc4)" (* "*") (cast_expression "(code **)(pcStack_830 + -0x6fc4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_830 + -0x6fc4)" (( "(") (binary_expression "pcStack_830 + -0x6fc4" (identifier "pcStack_830") (+ "+") (number_literal "-0x6fc4")) () ")"))))) () ")")) (argument_list "(ppiVar24[0x7c],ppiVar24[0x7d],0x60,*(int *)(pcStack_830 + -0x7ea0) + 0x224c)" (( "(") (subscript_expression "ppiVar24[0x7c]" (identifier "ppiVar24") ([ "[") (number_literal "0x7c") (] "]")) (, ",") (subscript_expression "ppiVar24[0x7d]" (identifier "ppiVar24") ([ "[") (number_literal "0x7d") (] "]")) (, ",") (number_literal "0x60") (, ",") (binary_expression "*(int *)(pcStack_830 + -0x7ea0) + 0x224c" (pointer_expression "*(int *)(pcStack_830 + -0x7ea0)" (* "*") (cast_expression "(int *)(pcStack_830 + -0x7ea0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_830 + -0x7ea0)" (( "(") (binary_expression "pcStack_830 + -0x7ea0" (identifier "pcStack_830") (+ "+") (number_literal "-0x7ea0")) () ")")))) (+ "+") (number_literal "0x224c")) () ")"))) (; ";")) (expression_statement "ppiVar34 = ppiVar24 + 0x74;" (assignment_expression "ppiVar34 = ppiVar24 + 0x74" (identifier "ppiVar34") (= "=") (binary_expression "ppiVar24 + 0x74" (identifier "ppiVar24") (+ "+") (number_literal "0x74"))) (; ";")) (expression_statement "dVar39 = (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) *\n           (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) +\n           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76)) *\n           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76));" (assignment_expression "dVar39 = (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) *\n           (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) +\n           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76)) *\n           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76))" (identifier "dVar39") (= "=") (binary_expression "(*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) *\n           (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) +\n           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76)) *\n           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76))" (binary_expression "(*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) *\n           (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74))" (parenthesized_expression "(*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74))" (( "(") (binary_expression "*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)" (pointer_expression "*(double *)(ppiVar24 + 0x78)" (* "*") (cast_expression "(double *)(ppiVar24 + 0x78)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppiVar24 + 0x78)" (( "(") (binary_expression "ppiVar24 + 0x78" (identifier "ppiVar24") (+ "+") (number_literal "0x78")) () ")")))) (- "-") (pointer_expression "*(double *)(ppiVar24 + 0x74)" (* "*") (cast_expression "(double *)(ppiVar24 + 0x74)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppiVar24 + 0x74)" (( "(") (binary_expression "ppiVar24 + 0x74" (identifier "ppiVar24") (+ "+") (number_literal "0x74")) () ")"))))) () ")")) (* "*") (parenthesized_expression "(*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74))" (( "(") (binary_expression "*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)" (pointer_expression "*(double *)(ppiVar24 + 0x78)" (* "*") (cast_expression "(double *)(ppiVar24 + 0x78)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppiVar24 + 0x78)" (( "(") (binary_expression "ppiVar24 + 0x78" (identifier "ppiVar24") (+ "+") (number_literal "0x78")) () ")")))) (- "-") (pointer_expression "*(double *)(ppiVar24 + 0x74)" (* "*") (cast_expression "(double *)(ppiVar24 + 0x74)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppiVar24 + 0x74)" (( "(") (binary_expression "ppiVar24 + 0x74" (identifier "ppiVar24") (+ "+") (number_literal "0x74")) () ")"))))) () ")"))) (+ "+") (binary_expression "(*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76)) *\n           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76))" (parenthesized_expression "(*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76))" (( "(") (binary_expression "*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76)" (pointer_expression "*(double *)(ppiVar24 + 0x7a)" (* "*") (cast_expression "(double *)(ppiVar24 + 0x7a)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppiVar24 + 0x7a)" (( "(") (binary_expression "ppiVar24 + 0x7a" (identifier "ppiVar24") (+ "+") (number_literal "0x7a")) () ")")))) (- "-") (pointer_expression "*(double *)(ppiVar24 + 0x76)" (* "*") (cast_expression "(double *)(ppiVar24 + 0x76)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppiVar24 + 0x76)" (( "(") (binary_expression "ppiVar24 + 0x76" (identifier "ppiVar24") (+ "+") (number_literal "0x76")) () ")"))))) () ")")) (* "*") (parenthesized_expression "(*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76))" (( "(") (binary_expression "*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76)" (pointer_expression "*(double *)(ppiVar24 + 0x7a)" (* "*") (cast_expression "(double *)(ppiVar24 + 0x7a)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppiVar24 + 0x7a)" (( "(") (binary_expression "ppiVar24 + 0x7a" (identifier "ppiVar24") (+ "+") (number_literal "0x7a")) () ")")))) (- "-") (pointer_expression "*(double *)(ppiVar24 + 0x76)" (* "*") (cast_expression "(double *)(ppiVar24 + 0x76)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppiVar24 + 0x76)" (( "(") (binary_expression "ppiVar24 + 0x76" (identifier "ppiVar24") (+ "+") (number_literal "0x76")) () ")"))))) () ")"))))) (; ";")) (expression_statement "dVar41 = SQRT(dVar39);" (assignment_expression "dVar41 = SQRT(dVar39)" (identifier "dVar41") (= "=") (call_expression "SQRT(dVar39)" (identifier "SQRT") (argument_list "(dVar39)" (( "(") (identifier "dVar39") () ")")))) (; ";")) (if_statement "if (0.0 <= dVar39) {\n    piStack_828 = ppiVar24[0x6f];\n  }\n  else {\n    (**(code **)(pcStack_830 + -0x7418))();\n    piStack_828 = ppiVar24[0x6f];\n  }" (if "if") (parenthesized_expression "(0.0 <= dVar39)" (( "(") (binary_expression "0.0 <= dVar39" (number_literal "0.0") (<= "<=") (identifier "dVar39")) () ")")) (compound_statement "{\n    piStack_828 = ppiVar24[0x6f];\n  }" ({ "{") (expression_statement "piStack_828 = ppiVar24[0x6f];" (assignment_expression "piStack_828 = ppiVar24[0x6f]" (identifier "piStack_828") (= "=") (subscript_expression "ppiVar24[0x6f]" (identifier "ppiVar24") ([ "[") (number_literal "0x6f") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n    (**(code **)(pcStack_830 + -0x7418))();\n    piStack_828 = ppiVar24[0x6f];\n  }" (else "else") (compound_statement "{\n    (**(code **)(pcStack_830 + -0x7418))();\n    piStack_828 = ppiVar24[0x6f];\n  }" ({ "{") (expression_statement "(**(code **)(pcStack_830 + -0x7418))();" (call_expression "(**(code **)(pcStack_830 + -0x7418))()" (parenthesized_expression "(**(code **)(pcStack_830 + -0x7418))" (( "(") (pointer_expression "**(code **)(pcStack_830 + -0x7418)" (* "*") (pointer_expression "*(code **)(pcStack_830 + -0x7418)" (* "*") (cast_expression "(code **)(pcStack_830 + -0x7418)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_830 + -0x7418)" (( "(") (binary_expression "pcStack_830 + -0x7418" (identifier "pcStack_830") (+ "+") (number_literal "-0x7418")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piStack_828 = ppiVar24[0x6f];" (assignment_expression "piStack_828 = ppiVar24[0x6f]" (identifier "piStack_828") (= "=") (subscript_expression "ppiVar24[0x6f]" (identifier "ppiVar24") ([ "[") (number_literal "0x6f") (] "]"))) (; ";")) (} "}")))) (expression_statement "piStack_824 = ppiVar24[0x70];" (assignment_expression "piStack_824 = ppiVar24[0x70]" (identifier "piStack_824") (= "=") (subscript_expression "ppiVar24[0x70]" (identifier "ppiVar24") ([ "[") (number_literal "0x70") (] "]"))) (; ";")) (expression_statement "piStack_820 = ppiVar24[0x71];" (assignment_expression "piStack_820 = ppiVar24[0x71]" (identifier "piStack_820") (= "=") (subscript_expression "ppiVar24[0x71]" (identifier "ppiVar24") ([ "[") (number_literal "0x71") (] "]"))) (; ";")) (expression_statement "piStack_81c = ppiVar24[0x72];" (assignment_expression "piStack_81c = ppiVar24[0x72]" (identifier "piStack_81c") (= "=") (subscript_expression "ppiVar24[0x72]" (identifier "ppiVar24") ([ "[") (number_literal "0x72") (] "]"))) (; ";")) (expression_statement "(**(code **)(pcStack_830 + -0x75e4))(iVar10,auStack_7f0);" (call_expression "(**(code **)(pcStack_830 + -0x75e4))(iVar10,auStack_7f0)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x75e4))" (( "(") (pointer_expression "**(code **)(pcStack_830 + -0x75e4)" (* "*") (pointer_expression "*(code **)(pcStack_830 + -0x75e4)" (* "*") (cast_expression "(code **)(pcStack_830 + -0x75e4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_830 + -0x75e4)" (( "(") (binary_expression "pcStack_830 + -0x75e4" (identifier "pcStack_830") (+ "+") (number_literal "-0x75e4")) () ")"))))) () ")")) (argument_list "(iVar10,auStack_7f0)" (( "(") (identifier "iVar10") (, ",") (identifier "auStack_7f0") () ")"))) (; ";")) (expression_statement "uVar4 = (**(code **)(pcStack_830 + -0x79c4))(iVar10,pdVar29);" (assignment_expression "uVar4 = (**(code **)(pcStack_830 + -0x79c4))(iVar10,pdVar29)" (identifier "uVar4") (= "=") (call_expression "(**(code **)(pcStack_830 + -0x79c4))(iVar10,pdVar29)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x79c4))" (( "(") (pointer_expression "**(code **)(pcStack_830 + -0x79c4)" (* "*") (pointer_expression "*(code **)(pcStack_830 + -0x79c4)" (* "*") (cast_expression "(code **)(pcStack_830 + -0x79c4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_830 + -0x79c4)" (( "(") (binary_expression "pcStack_830 + -0x79c4" (identifier "pcStack_830") (+ "+") (number_literal "-0x79c4")) () ")"))))) () ")")) (argument_list "(iVar10,pdVar29)" (( "(") (identifier "iVar10") (, ",") (identifier "pdVar29") () ")")))) (; ";")) (expression_statement "iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10);" (assignment_expression "iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcStack_830 + -0x73e4))(iVar10)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x73e4))" (( "(") (pointer_expression "**(code **)(pcStack_830 + -0x73e4)" (* "*") (pointer_expression "*(code **)(pcStack_830 + -0x73e4)" (* "*") (cast_expression "(code **)(pcStack_830 + -0x73e4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_830 + -0x73e4)" (( "(") (binary_expression "pcStack_830 + -0x73e4" (identifier "pcStack_830") (+ "+") (number_literal "-0x73e4")) () ")"))))) () ")")) (argument_list "(iVar10)" (( "(") (identifier "iVar10") () ")")))) (; ";")) (if_statement "if ((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 == 3)) {\n    iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10);\n    if ((iVar3 != 4) && (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 != 3))\n    goto LAB_000a7bf4;\n    (**(code **)(pcStack_830 + -0x775c))(7);\n    iVar49 = (int)piStack_824 - (int)piStack_81c;\n    iVar3 = iVar49;\n    if (iVar49 < 0) {\n      iVar3 = iVar49 + 0x3f;\n    }\n    if (extraout_v1_04 < iVar3 >> 6) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = iVar49 < 0x80;\n    }\n    iVar3 = 1;\n    dStack_818 = dVar41;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = (int)piStack_824 - (int)piStack_81c;\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      iVar3 = iVar3 >> 6;\n      dStack_818 = dVar41;\n      if (extraout_v1_07 < iVar3) {\n        (**(code **)(pcStack_830 + -0x775c))(7);\n        iVar3 = extraout_v1_08;\n        dStack_818 = dVar41;\n      }\n    }\n  }\n  else {\nLAB_000a7bf4:\n    uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n      if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a7c10;\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n      if ((uint)uVar51 < 2) {\n        iVar3 = 1;\n        dStack_818 = dVar41;\n        goto LAB_000a7c30;\n      }\n    }\n    else {\nLAB_000a7c10:\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n    }\n    uVar51 = (*pcVar37)(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = extraout_v1_05;\n      dStack_818 = dVar41;\n    }\n    else {\n      iVar3 = 2;\n      dStack_818 = dVar41;\n    }\n  }" (if "if") (parenthesized_expression "((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 == 3))" (( "(") (binary_expression "(iVar3 == 4) || (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 == 3)" (parenthesized_expression "(iVar3 == 4)" (( "(") (binary_expression "iVar3 == 4" (identifier "iVar3") (== "==") (number_literal "4")) () ")")) (|| "||") (parenthesized_expression "(iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 == 3)" (( "(") (comma_expression "iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 == 3" (assignment_expression "iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcStack_830 + -0x73e4))(iVar10)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x73e4))" (( "(") (pointer_expression "**(code **)(pcStack_830 + -0x73e4)" (* "*") (pointer_expression "*(code **)(pcStack_830 + -0x73e4)" (* "*") (cast_expression "(code **)(pcStack_830 + -0x73e4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_830 + -0x73e4)" (( "(") (binary_expression "pcStack_830 + -0x73e4" (identifier "pcStack_830") (+ "+") (number_literal "-0x73e4")) () ")"))))) () ")")) (argument_list "(iVar10)" (( "(") (identifier "iVar10") () ")")))) (, ",") (binary_expression "iVar3 == 3" (identifier "iVar3") (== "==") (number_literal "3"))) () ")"))) () ")")) (compound_statement "{\n    iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10);\n    if ((iVar3 != 4) && (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 != 3))\n    goto LAB_000a7bf4;\n    (**(code **)(pcStack_830 + -0x775c))(7);\n    iVar49 = (int)piStack_824 - (int)piStack_81c;\n    iVar3 = iVar49;\n    if (iVar49 < 0) {\n      iVar3 = iVar49 + 0x3f;\n    }\n    if (extraout_v1_04 < iVar3 >> 6) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = iVar49 < 0x80;\n    }\n    iVar3 = 1;\n    dStack_818 = dVar41;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = (int)piStack_824 - (int)piStack_81c;\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      iVar3 = iVar3 >> 6;\n      dStack_818 = dVar41;\n      if (extraout_v1_07 < iVar3) {\n        (**(code **)(pcStack_830 + -0x775c))(7);\n        iVar3 = extraout_v1_08;\n        dStack_818 = dVar41;\n      }\n    }\n  }" ({ "{") (expression_statement "iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10);" (assignment_expression "iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcStack_830 + -0x73e4))(iVar10)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x73e4))" (( "(") (pointer_expression "**(code **)(pcStack_830 + -0x73e4)" (* "*") (pointer_expression "*(code **)(pcStack_830 + -0x73e4)" (* "*") (cast_expression "(code **)(pcStack_830 + -0x73e4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_830 + -0x73e4)" (( "(") (binary_expression "pcStack_830 + -0x73e4" (identifier "pcStack_830") (+ "+") (number_literal "-0x73e4")) () ")"))))) () ")")) (argument_list "(iVar10)" (( "(") (identifier "iVar10") () ")")))) (; ";")) (if_statement "if ((iVar3 != 4) && (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 != 3))\n    goto LAB_000a7bf4;" (if "if") (parenthesized_expression "((iVar3 != 4) && (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 != 3))" (( "(") (binary_expression "(iVar3 != 4) && (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 != 3)" (parenthesized_expression "(iVar3 != 4)" (( "(") (binary_expression "iVar3 != 4" (identifier "iVar3") (!= "!=") (number_literal "4")) () ")")) (&& "&&") (parenthesized_expression "(iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 != 3)" (( "(") (comma_expression "iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 != 3" (assignment_expression "iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcStack_830 + -0x73e4))(iVar10)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x73e4))" (( "(") (pointer_expression "**(code **)(pcStack_830 + -0x73e4)" (* "*") (pointer_expression "*(code **)(pcStack_830 + -0x73e4)" (* "*") (cast_expression "(code **)(pcStack_830 + -0x73e4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_830 + -0x73e4)" (( "(") (binary_expression "pcStack_830 + -0x73e4" (identifier "pcStack_830") (+ "+") (number_literal "-0x73e4")) () ")"))))) () ")")) (argument_list "(iVar10)" (( "(") (identifier "iVar10") () ")")))) (, ",") (binary_expression "iVar3 != 3" (identifier "iVar3") (!= "!=") (number_literal "3"))) () ")"))) () ")")) (goto_statement "goto LAB_000a7bf4;" (goto "goto") (statement_identifier "LAB_000a7bf4") (; ";"))) (expression_statement "(**(code **)(pcStack_830 + -0x775c))(7);" (call_expression "(**(code **)(pcStack_830 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x775c))" (( "(") (pointer_expression "**(code **)(pcStack_830 + -0x775c)" (* "*") (pointer_expression "*(code **)(pcStack_830 + -0x775c)" (* "*") (cast_expression "(code **)(pcStack_830 + -0x775c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_830 + -0x775c)" (( "(") (binary_expression "pcStack_830 + -0x775c" (identifier "pcStack_830") (+ "+") (number_literal "-0x775c")) () ")"))))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (expression_statement "iVar49 = (int)piStack_824 - (int)piStack_81c;" (assignment_expression "iVar49 = (int)piStack_824 - (int)piStack_81c" (identifier "iVar49") (= "=") (binary_expression "(int)piStack_824 - (int)piStack_81c" (cast_expression "(int)piStack_824" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piStack_824")) (- "-") (cast_expression "(int)piStack_81c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piStack_81c")))) (; ";")) (expression_statement "iVar3 = iVar49;" (assignment_expression "iVar3 = iVar49" (identifier "iVar3") (= "=") (identifier "iVar49")) (; ";")) (if_statement "if (iVar49 < 0) {\n      iVar3 = iVar49 + 0x3f;\n    }" (if "if") (parenthesized_expression "(iVar49 < 0)" (( "(") (binary_expression "iVar49 < 0" (identifier "iVar49") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      iVar3 = iVar49 + 0x3f;\n    }" ({ "{") (expression_statement "iVar3 = iVar49 + 0x3f;" (assignment_expression "iVar3 = iVar49 + 0x3f" (identifier "iVar3") (= "=") (binary_expression "iVar49 + 0x3f" (identifier "iVar49") (+ "+") (number_literal "0x3f"))) (; ";")) (} "}"))) (if_statement "if (extraout_v1_04 < iVar3 >> 6) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }\n    else {\n      bVar1 = iVar49 < 0x80;\n    }" (if "if") (parenthesized_expression "(extraout_v1_04 < iVar3 >> 6)" (( "(") (binary_expression "extraout_v1_04 < iVar3 >> 6" (identifier "extraout_v1_04") (< "<") (binary_expression "iVar3 >> 6" (identifier "iVar3") (>> ">>") (number_literal "6"))) () ")")) (compound_statement "{\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      bVar1 = extraout_v1_06 < 2;\n    }" ({ "{") (expression_statement "(**(code **)(pcStack_830 + -0x775c))(7);" (call_expression "(**(code **)(pcStack_830 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x775c))" (( "(") (pointer_expression "**(code **)(pcStack_830 + -0x775c)" (* "*") (pointer_expression "*(code **)(pcStack_830 + -0x775c)" (* "*") (cast_expression "(code **)(pcStack_830 + -0x775c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_830 + -0x775c)" (( "(") (binary_expression "pcStack_830 + -0x775c" (identifier "pcStack_830") (+ "+") (number_literal "-0x775c")) () ")"))))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (expression_statement "bVar1 = extraout_v1_06 < 2;" (assignment_expression "bVar1 = extraout_v1_06 < 2" (identifier "bVar1") (= "=") (binary_expression "extraout_v1_06 < 2" (identifier "extraout_v1_06") (< "<") (number_literal "2"))) (; ";")) (} "}")) (else_clause "else {\n      bVar1 = iVar49 < 0x80;\n    }" (else "else") (compound_statement "{\n      bVar1 = iVar49 < 0x80;\n    }" ({ "{") (expression_statement "bVar1 = iVar49 < 0x80;" (assignment_expression "bVar1 = iVar49 < 0x80" (identifier "bVar1") (= "=") (binary_expression "iVar49 < 0x80" (identifier "iVar49") (< "<") (number_literal "0x80"))) (; ";")) (} "}")))) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" (identifier "iVar3") (= "=") (number_literal "1")) (; ";")) (expression_statement "dStack_818 = dVar41;" (assignment_expression "dStack_818 = dVar41" (identifier "dStack_818") (= "=") (identifier "dVar41")) (; ";")) (if_statement "if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = (int)piStack_824 - (int)piStack_81c;\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      iVar3 = iVar3 >> 6;\n      dStack_818 = dVar41;\n      if (extraout_v1_07 < iVar3) {\n        (**(code **)(pcStack_830 + -0x775c))(7);\n        iVar3 = extraout_v1_08;\n        dStack_818 = dVar41;\n      }\n    }" (if "if") (parenthesized_expression "((bool)(bVar1 ^ 1))" (( "(") (cast_expression "(bool)(bVar1 ^ 1)" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (parenthesized_expression "(bVar1 ^ 1)" (( "(") (binary_expression "bVar1 ^ 1" (identifier "bVar1") (^ "^") (number_literal "1")) () ")"))) () ")")) (compound_statement "{\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = (int)piStack_824 - (int)piStack_81c;\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      iVar3 = iVar3 >> 6;\n      dStack_818 = dVar41;\n      if (extraout_v1_07 < iVar3) {\n        (**(code **)(pcStack_830 + -0x775c))(7);\n        iVar3 = extraout_v1_08;\n        dStack_818 = dVar41;\n      }\n    }" ({ "{") (expression_statement "(**(code **)(pcStack_830 + -0x775c))(7);" (call_expression "(**(code **)(pcStack_830 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x775c))" (( "(") (pointer_expression "**(code **)(pcStack_830 + -0x775c)" (* "*") (pointer_expression "*(code **)(pcStack_830 + -0x775c)" (* "*") (cast_expression "(code **)(pcStack_830 + -0x775c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_830 + -0x775c)" (( "(") (binary_expression "pcStack_830 + -0x775c" (identifier "pcStack_830") (+ "+") (number_literal "-0x775c")) () ")"))))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (expression_statement "iVar3 = (int)piStack_824 - (int)piStack_81c;" (assignment_expression "iVar3 = (int)piStack_824 - (int)piStack_81c" (identifier "iVar3") (= "=") (binary_expression "(int)piStack_824 - (int)piStack_81c" (cast_expression "(int)piStack_824" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piStack_824")) (- "-") (cast_expression "(int)piStack_81c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piStack_81c")))) (; ";")) (if_statement "if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }" (if "if") (parenthesized_expression "(iVar3 < 0)" (( "(") (binary_expression "iVar3 < 0" (identifier "iVar3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        iVar3 = iVar3 + 0x3f;\n      }" ({ "{") (expression_statement "iVar3 = iVar3 + 0x3f;" (assignment_expression "iVar3 = iVar3 + 0x3f" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 0x3f" (identifier "iVar3") (+ "+") (number_literal "0x3f"))) (; ";")) (} "}"))) (expression_statement "iVar3 = iVar3 >> 6;" (assignment_expression "iVar3 = iVar3 >> 6" (identifier "iVar3") (= "=") (binary_expression "iVar3 >> 6" (identifier "iVar3") (>> ">>") (number_literal "6"))) (; ";")) (expression_statement "dStack_818 = dVar41;" (assignment_expression "dStack_818 = dVar41" (identifier "dStack_818") (= "=") (identifier "dVar41")) (; ";")) (if_statement "if (extraout_v1_07 < iVar3) {\n        (**(code **)(pcStack_830 + -0x775c))(7);\n        iVar3 = extraout_v1_08;\n        dStack_818 = dVar41;\n      }" (if "if") (parenthesized_expression "(extraout_v1_07 < iVar3)" (( "(") (binary_expression "extraout_v1_07 < iVar3" (identifier "extraout_v1_07") (< "<") (identifier "iVar3")) () ")")) (compound_statement "{\n        (**(code **)(pcStack_830 + -0x775c))(7);\n        iVar3 = extraout_v1_08;\n        dStack_818 = dVar41;\n      }" ({ "{") (expression_statement "(**(code **)(pcStack_830 + -0x775c))(7);" (call_expression "(**(code **)(pcStack_830 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x775c))" (( "(") (pointer_expression "**(code **)(pcStack_830 + -0x775c)" (* "*") (pointer_expression "*(code **)(pcStack_830 + -0x775c)" (* "*") (cast_expression "(code **)(pcStack_830 + -0x775c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_830 + -0x775c)" (( "(") (binary_expression "pcStack_830 + -0x775c" (identifier "pcStack_830") (+ "+") (number_literal "-0x775c")) () ")"))))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (expression_statement "iVar3 = extraout_v1_08;" (assignment_expression "iVar3 = extraout_v1_08" (identifier "iVar3") (= "=") (identifier "extraout_v1_08")) (; ";")) (expression_statement "dStack_818 = dVar41;" (assignment_expression "dStack_818 = dVar41" (identifier "dStack_818") (= "=") (identifier "dVar41")) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\nLAB_000a7bf4:\n    uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n      if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a7c10;\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n      if ((uint)uVar51 < 2) {\n        iVar3 = 1;\n        dStack_818 = dVar41;\n        goto LAB_000a7c30;\n      }\n    }\n    else {\nLAB_000a7c10:\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n    }\n    uVar51 = (*pcVar37)(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = extraout_v1_05;\n      dStack_818 = dVar41;\n    }\n    else {\n      iVar3 = 2;\n      dStack_818 = dVar41;\n    }\n  }" (else "else") (compound_statement "{\nLAB_000a7bf4:\n    uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n      if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a7c10;\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n      if ((uint)uVar51 < 2) {\n        iVar3 = 1;\n        dStack_818 = dVar41;\n        goto LAB_000a7c30;\n      }\n    }\n    else {\nLAB_000a7c10:\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n    }\n    uVar51 = (*pcVar37)(7);\n    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = extraout_v1_05;\n      dStack_818 = dVar41;\n    }\n    else {\n      iVar3 = 2;\n      dStack_818 = dVar41;\n    }\n  }" ({ "{") (labeled_statement "LAB_000a7bf4:\n    uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);" (statement_identifier "LAB_000a7bf4") (: ":") (expression_statement "uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);" (assignment_expression "uVar51 = (**(code **)(pcStack_830 + -0x775c))(7)" (identifier "uVar51") (= "=") (call_expression "(**(code **)(pcStack_830 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x775c))" (( "(") (pointer_expression "**(code **)(pcStack_830 + -0x775c)" (* "*") (pointer_expression "*(code **)(pcStack_830 + -0x775c)" (* "*") (cast_expression "(code **)(pcStack_830 + -0x775c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_830 + -0x775c)" (( "(") (binary_expression "pcStack_830 + -0x775c" (identifier "pcStack_830") (+ "+") (number_literal "-0x775c")) () ")"))))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";"))) (if_statement "if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n      if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a7c10;\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n      if ((uint)uVar51 < 2) {\n        iVar3 = 1;\n        dStack_818 = dVar41;\n        goto LAB_000a7c30;\n      }\n    }\n    else {\nLAB_000a7c10:\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n    }" (if "if") (parenthesized_expression "(((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2))" (( "(") (binary_expression "((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)" (parenthesized_expression "((int)((ulonglong)uVar51 >> 0x20) == 0)" (( "(") (binary_expression "(int)((ulonglong)uVar51 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar51 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar51 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar51 >> 0x20" (cast_expression "(ulonglong)uVar51" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar51")) (>> ">>") (number_literal "0x20")) () ")"))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((uint)uVar51 < 2)" (( "(") (binary_expression "(uint)uVar51 < 2" (cast_expression "(uint)uVar51" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar51")) (< "<") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n      uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);\n      if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a7c10;\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n      if ((uint)uVar51 < 2) {\n        iVar3 = 1;\n        dStack_818 = dVar41;\n        goto LAB_000a7c30;\n      }\n    }" ({ "{") (expression_statement "uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);" (assignment_expression "uVar51 = (**(code **)(pcStack_830 + -0x775c))(7)" (identifier "uVar51") (= "=") (call_expression "(**(code **)(pcStack_830 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x775c))" (( "(") (pointer_expression "**(code **)(pcStack_830 + -0x775c)" (* "*") (pointer_expression "*(code **)(pcStack_830 + -0x775c)" (* "*") (cast_expression "(code **)(pcStack_830 + -0x775c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_830 + -0x775c)" (( "(") (binary_expression "pcStack_830 + -0x775c" (identifier "pcStack_830") (+ "+") (number_literal "-0x775c")) () ")"))))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (if_statement "if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a7c10;" (if "if") (parenthesized_expression "((int)((ulonglong)uVar51 >> 0x20) != 0)" (( "(") (binary_expression "(int)((ulonglong)uVar51 >> 0x20) != 0" (cast_expression "(int)((ulonglong)uVar51 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar51 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar51 >> 0x20" (cast_expression "(ulonglong)uVar51" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar51")) (>> ">>") (number_literal "0x20")) () ")"))) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000a7c10;" (goto "goto") (statement_identifier "LAB_000a7c10") (; ";"))) (expression_statement "pcVar37 = *(code **)(pcStack_830 + -0x775c);" (assignment_expression "pcVar37 = *(code **)(pcStack_830 + -0x775c)" (identifier "pcVar37") (= "=") (pointer_expression "*(code **)(pcStack_830 + -0x775c)" (* "*") (cast_expression "(code **)(pcStack_830 + -0x775c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_830 + -0x775c)" (( "(") (binary_expression "pcStack_830 + -0x775c" (identifier "pcStack_830") (+ "+") (number_literal "-0x775c")) () ")"))))) (; ";")) (if_statement "if ((uint)uVar51 < 2) {\n        iVar3 = 1;\n        dStack_818 = dVar41;\n        goto LAB_000a7c30;\n      }" (if "if") (parenthesized_expression "((uint)uVar51 < 2)" (( "(") (binary_expression "(uint)uVar51 < 2" (cast_expression "(uint)uVar51" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar51")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n        iVar3 = 1;\n        dStack_818 = dVar41;\n        goto LAB_000a7c30;\n      }" ({ "{") (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" (identifier "iVar3") (= "=") (number_literal "1")) (; ";")) (expression_statement "dStack_818 = dVar41;" (assignment_expression "dStack_818 = dVar41" (identifier "dStack_818") (= "=") (identifier "dVar41")) (; ";")) (goto_statement "goto LAB_000a7c30;" (goto "goto") (statement_identifier "LAB_000a7c30") (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_000a7c10:\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n    }" (else "else") (compound_statement "{\nLAB_000a7c10:\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);\n    }" ({ "{") (labeled_statement "LAB_000a7c10:\n      pcVar37 = *(code **)(pcStack_830 + -0x775c);" (statement_identifier "LAB_000a7c10") (: ":") (expression_statement "pcVar37 = *(code **)(pcStack_830 + -0x775c);" (assignment_expression "pcVar37 = *(code **)(pcStack_830 + -0x775c)" (identifier "pcVar37") (= "=") (pointer_expression "*(code **)(pcStack_830 + -0x775c)" (* "*") (cast_expression "(code **)(pcStack_830 + -0x775c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_830 + -0x775c)" (( "(") (binary_expression "pcStack_830 + -0x775c" (identifier "pcStack_830") (+ "+") (number_literal "-0x775c")) () ")"))))) (; ";"))) (} "}")))) (expression_statement "uVar51 = (*pcVar37)(7);" (assignment_expression "uVar51 = (*pcVar37)(7)" (identifier "uVar51") (= "=") (call_expression "(*pcVar37)(7)" (parenthesized_expression "(*pcVar37)" (( "(") (pointer_expression "*pcVar37" (* "*") (identifier "pcVar37")) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (if_statement "if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = extraout_v1_05;\n      dStack_818 = dVar41;\n    }\n    else {\n      iVar3 = 2;\n      dStack_818 = dVar41;\n    }" (if "if") (parenthesized_expression "(((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2))" (( "(") (binary_expression "((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)" (parenthesized_expression "((int)((ulonglong)uVar51 >> 0x20) == 0)" (( "(") (binary_expression "(int)((ulonglong)uVar51 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar51 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar51 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar51 >> 0x20" (cast_expression "(ulonglong)uVar51" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar51")) (>> ">>") (number_literal "0x20")) () ")"))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((uint)uVar51 < 2)" (( "(") (binary_expression "(uint)uVar51 < 2" (cast_expression "(uint)uVar51" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar51")) (< "<") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n      (**(code **)(pcStack_830 + -0x775c))(7);\n      iVar3 = extraout_v1_05;\n      dStack_818 = dVar41;\n    }" ({ "{") (expression_statement "(**(code **)(pcStack_830 + -0x775c))(7);" (call_expression "(**(code **)(pcStack_830 + -0x775c))(7)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x775c))" (( "(") (pointer_expression "**(code **)(pcStack_830 + -0x775c)" (* "*") (pointer_expression "*(code **)(pcStack_830 + -0x775c)" (* "*") (cast_expression "(code **)(pcStack_830 + -0x775c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_830 + -0x775c)" (( "(") (binary_expression "pcStack_830 + -0x775c" (identifier "pcStack_830") (+ "+") (number_literal "-0x775c")) () ")"))))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (expression_statement "iVar3 = extraout_v1_05;" (assignment_expression "iVar3 = extraout_v1_05" (identifier "iVar3") (= "=") (identifier "extraout_v1_05")) (; ";")) (expression_statement "dStack_818 = dVar41;" (assignment_expression "dStack_818 = dVar41" (identifier "dStack_818") (= "=") (identifier "dVar41")) (; ";")) (} "}")) (else_clause "else {\n      iVar3 = 2;\n      dStack_818 = dVar41;\n    }" (else "else") (compound_statement "{\n      iVar3 = 2;\n      dStack_818 = dVar41;\n    }" ({ "{") (expression_statement "iVar3 = 2;" (assignment_expression "iVar3 = 2" (identifier "iVar3") (= "=") (number_literal "2")) (; ";")) (expression_statement "dStack_818 = dVar41;" (assignment_expression "dStack_818 = dVar41" (identifier "dStack_818") (= "=") (identifier "dVar41")) (; ";")) (} "}")))) (} "}")))) (labeled_statement "LAB_000a7c30:\n  puStack_7fc = auStack_7f0;" (statement_identifier "LAB_000a7c30") (: ":") (expression_statement "puStack_7fc = auStack_7f0;" (assignment_expression "puStack_7fc = auStack_7f0" (identifier "puStack_7fc") (= "=") (identifier "auStack_7f0")) (; ";"))) (expression_statement "ppiStack_7f8 = &piStack_828;" (assignment_expression "ppiStack_7f8 = &piStack_828" (identifier "ppiStack_7f8") (= "=") (pointer_expression "&piStack_828" (& "&") (identifier "piStack_828"))) (; ";")) (expression_statement "iStack_7f4 = 1;" (assignment_expression "iStack_7f4 = 1" (identifier "iStack_7f4") (= "=") (number_literal "1")) (; ";")) (expression_statement "iStack_810 = iVar10;" (assignment_expression "iStack_810 = iVar10" (identifier "iStack_810") (= "=") (identifier "iVar10")) (; ";")) (expression_statement "pdStack_80c = pdVar29;" (assignment_expression "pdStack_80c = pdVar29" (identifier "pdStack_80c") (= "=") (identifier "pdVar29")) (; ";")) (expression_statement "uStack_808 = uVar4;" (assignment_expression "uStack_808 = uVar4" (identifier "uStack_808") (= "=") (identifier "uVar4")) (; ";")) (expression_statement "ppiStack_804 = ppiVar33;" (assignment_expression "ppiStack_804 = ppiVar33" (identifier "ppiStack_804") (= "=") (identifier "ppiVar33")) (; ";")) (expression_statement "ppiStack_800 = ppiVar34;" (assignment_expression "ppiStack_800 = ppiVar34" (identifier "ppiStack_800") (= "=") (identifier "ppiVar34")) (; ";")) (expression_statement "(**(code **)(pcStack_830 + -0x7700))(*(int *)(pcStack_830 + -0x7ea0) + 0x549c,&dStack_818,iVar3,0)\n  ;" (call_expression "(**(code **)(pcStack_830 + -0x7700))(*(int *)(pcStack_830 + -0x7ea0) + 0x549c,&dStack_818,iVar3,0)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x7700))" (( "(") (pointer_expression "**(code **)(pcStack_830 + -0x7700)" (* "*") (pointer_expression "*(code **)(pcStack_830 + -0x7700)" (* "*") (cast_expression "(code **)(pcStack_830 + -0x7700)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_830 + -0x7700)" (( "(") (binary_expression "pcStack_830 + -0x7700" (identifier "pcStack_830") (+ "+") (number_literal "-0x7700")) () ")"))))) () ")")) (argument_list "(*(int *)(pcStack_830 + -0x7ea0) + 0x549c,&dStack_818,iVar3,0)" (( "(") (binary_expression "*(int *)(pcStack_830 + -0x7ea0) + 0x549c" (pointer_expression "*(int *)(pcStack_830 + -0x7ea0)" (* "*") (cast_expression "(int *)(pcStack_830 + -0x7ea0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_830 + -0x7ea0)" (( "(") (binary_expression "pcStack_830 + -0x7ea0" (identifier "pcStack_830") (+ "+") (number_literal "-0x7ea0")) () ")")))) (+ "+") (number_literal "0x549c")) (, ",") (pointer_expression "&dStack_818" (& "&") (identifier "dStack_818")) (, ",") (identifier "iVar3") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar3 = iStack_7f4;" (assignment_expression "iVar3 = iStack_7f4" (identifier "iVar3") (= "=") (identifier "iStack_7f4")) (; ";")) (expression_statement "(**(code **)(pcStack_830 + -0x79a4))(uVar4);" (call_expression "(**(code **)(pcStack_830 + -0x79a4))(uVar4)" (parenthesized_expression "(**(code **)(pcStack_830 + -0x79a4))" (( "(") (pointer_expression "**(code **)(pcStack_830 + -0x79a4)" (* "*") (pointer_expression "*(code **)(pcStack_830 + -0x79a4)" (* "*") (cast_expression "(code **)(pcStack_830 + -0x79a4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_830 + -0x79a4)" (( "(") (binary_expression "pcStack_830 + -0x79a4" (identifier "pcStack_830") (+ "+") (number_literal "-0x79a4")) () ")"))))) () ")")) (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (if_statement "if (puStack_794 == (undefined8 *)**(int **)(pcStack_830 + -0x7668)) {\n    return iVar3;\n  }" (if "if") (parenthesized_expression "(puStack_794 == (undefined8 *)**(int **)(pcStack_830 + -0x7668))" (( "(") (binary_expression "puStack_794 == (undefined8 *)**(int **)(pcStack_830 + -0x7668)" (identifier "puStack_794") (== "==") (cast_expression "(undefined8 *)**(int **)(pcStack_830 + -0x7668)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(int **)(pcStack_830 + -0x7668)" (* "*") (pointer_expression "*(int **)(pcStack_830 + -0x7668)" (* "*") (cast_expression "(int **)(pcStack_830 + -0x7668)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_830 + -0x7668)" (( "(") (binary_expression "pcStack_830 + -0x7668" (identifier "pcStack_830") (+ "+") (number_literal "-0x7668")) () ")"))))))) () ")")) (compound_statement "{\n    return iVar3;\n  }" ({ "{") (return_statement "return iVar3;" (return "return") (identifier "iVar3") (; ";")) (} "}"))) (expression_statement "pcVar37 = *(code **)(pcStack_830 + -0x7834);" (assignment_expression "pcVar37 = *(code **)(pcStack_830 + -0x7834)" (identifier "pcVar37") (= "=") (pointer_expression "*(code **)(pcStack_830 + -0x7834)" (* "*") (cast_expression "(code **)(pcStack_830 + -0x7834)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_830 + -0x7834)" (( "(") (binary_expression "pcStack_830 + -0x7834" (identifier "pcStack_830") (+ "+") (number_literal "-0x7834")) () ")"))))) (; ";")) (expression_statement "pcVar38 = GetAffineMatrix;" (assignment_expression "pcVar38 = GetAffineMatrix" (identifier "pcVar38") (= "=") (identifier "GetAffineMatrix")) (; ";")) (expression_statement "puVar20 = puStack_794;" (assignment_expression "puVar20 = puStack_794" (identifier "puVar20") (= "=") (identifier "puStack_794")) (; ";")) (expression_statement "(*pcVar37)();" (call_expression "(*pcVar37)()" (parenthesized_expression "(*pcVar37)" (( "(") (pointer_expression "*pcVar37" (* "*") (identifier "pcVar37")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcStack_858 = pcVar37 + 0x359994;" (assignment_expression "pcStack_858 = pcVar37 + 0x359994" (identifier "pcStack_858") (= "=") (binary_expression "pcVar37 + 0x359994" (identifier "pcVar37") (+ "+") (number_literal "0x359994"))) (; ";")) (expression_statement "iStack_860 = *(int *)(pcVar37 + 0x3519c8) + 0x10f4;" (assignment_expression "iStack_860 = *(int *)(pcVar37 + 0x3519c8) + 0x10f4" (identifier "iStack_860") (= "=") (binary_expression "*(int *)(pcVar37 + 0x3519c8) + 0x10f4" (pointer_expression "*(int *)(pcVar37 + 0x3519c8)" (* "*") (cast_expression "(int *)(pcVar37 + 0x3519c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x3519c8)" (( "(") (binary_expression "pcVar37 + 0x3519c8" (identifier "pcVar37") (+ "+") (number_literal "0x3519c8")) () ")")))) (+ "+") (number_literal "0x10f4"))) (; ";")) (expression_statement "uStack_850 = uVar4;" (assignment_expression "uStack_850 = uVar4" (identifier "uStack_850") (= "=") (identifier "uVar4")) (; ";")) (expression_statement "pcStack_84c = pcVar38;" (assignment_expression "pcStack_84c = pcVar38" (identifier "pcStack_84c") (= "=") (identifier "pcVar38")) (; ";")) (expression_statement "(**(code **)(pcVar37 + 0x3522dc))\n            (0x8000,*(int *)(pcVar37 + 0x3519c8) + 0x69c0,*(int *)(pcVar37 + 0x3519c8) + 0x76b0,\n             0x16d2);" (call_expression "(**(code **)(pcVar37 + 0x3522dc))\n            (0x8000,*(int *)(pcVar37 + 0x3519c8) + 0x69c0,*(int *)(pcVar37 + 0x3519c8) + 0x76b0,\n             0x16d2)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3522dc))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x3522dc)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x3522dc)" (* "*") (cast_expression "(code **)(pcVar37 + 0x3522dc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x3522dc)" (( "(") (binary_expression "pcVar37 + 0x3522dc" (identifier "pcVar37") (+ "+") (number_literal "0x3522dc")) () ")"))))) () ")")) (argument_list "(0x8000,*(int *)(pcVar37 + 0x3519c8) + 0x69c0,*(int *)(pcVar37 + 0x3519c8) + 0x76b0,\n             0x16d2)" (( "(") (number_literal "0x8000") (, ",") (binary_expression "*(int *)(pcVar37 + 0x3519c8) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + 0x3519c8)" (* "*") (cast_expression "(int *)(pcVar37 + 0x3519c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x3519c8)" (( "(") (binary_expression "pcVar37 + 0x3519c8" (identifier "pcVar37") (+ "+") (number_literal "0x3519c8")) () ")")))) (+ "+") (number_literal "0x69c0")) (, ",") (binary_expression "*(int *)(pcVar37 + 0x3519c8) + 0x76b0" (pointer_expression "*(int *)(pcVar37 + 0x3519c8)" (* "*") (cast_expression "(int *)(pcVar37 + 0x3519c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x3519c8)" (( "(") (binary_expression "pcVar37 + 0x3519c8" (identifier "pcVar37") (+ "+") (number_literal "0x3519c8")) () ")")))) (+ "+") (number_literal "0x76b0")) (, ",") (number_literal "0x16d2") () ")"))) (; ";")) (if_statement "if (puVar20 != (undefined8 *)0x0) {\n    (**(code **)(pcStack_858 + -0x71c4))(puVar20 + 1,0,0x28);\n    iVar3 = *(int *)(pcStack_858 + -0x7fd0);\n    uVar51 = *(undefined8 *)(iVar3 + 0x4408);\n    *puVar20 = uVar51;\n    puVar20[3] = uVar51;\n    return iVar3;\n  }" (if "if") (parenthesized_expression "(puVar20 != (undefined8 *)0x0)" (( "(") (binary_expression "puVar20 != (undefined8 *)0x0" (identifier "puVar20") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    (**(code **)(pcStack_858 + -0x71c4))(puVar20 + 1,0,0x28);\n    iVar3 = *(int *)(pcStack_858 + -0x7fd0);\n    uVar51 = *(undefined8 *)(iVar3 + 0x4408);\n    *puVar20 = uVar51;\n    puVar20[3] = uVar51;\n    return iVar3;\n  }" ({ "{") (expression_statement "(**(code **)(pcStack_858 + -0x71c4))(puVar20 + 1,0,0x28);" (call_expression "(**(code **)(pcStack_858 + -0x71c4))(puVar20 + 1,0,0x28)" (parenthesized_expression "(**(code **)(pcStack_858 + -0x71c4))" (( "(") (pointer_expression "**(code **)(pcStack_858 + -0x71c4)" (* "*") (pointer_expression "*(code **)(pcStack_858 + -0x71c4)" (* "*") (cast_expression "(code **)(pcStack_858 + -0x71c4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_858 + -0x71c4)" (( "(") (binary_expression "pcStack_858 + -0x71c4" (identifier "pcStack_858") (+ "+") (number_literal "-0x71c4")) () ")"))))) () ")")) (argument_list "(puVar20 + 1,0,0x28)" (( "(") (binary_expression "puVar20 + 1" (identifier "puVar20") (+ "+") (number_literal "1")) (, ",") (number_literal "0") (, ",") (number_literal "0x28") () ")"))) (; ";")) (expression_statement "iVar3 = *(int *)(pcStack_858 + -0x7fd0);" (assignment_expression "iVar3 = *(int *)(pcStack_858 + -0x7fd0)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(pcStack_858 + -0x7fd0)" (* "*") (cast_expression "(int *)(pcStack_858 + -0x7fd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_858 + -0x7fd0)" (( "(") (binary_expression "pcStack_858 + -0x7fd0" (identifier "pcStack_858") (+ "+") (number_literal "-0x7fd0")) () ")"))))) (; ";")) (expression_statement "uVar51 = *(undefined8 *)(iVar3 + 0x4408);" (assignment_expression "uVar51 = *(undefined8 *)(iVar3 + 0x4408)" (identifier "uVar51") (= "=") (pointer_expression "*(undefined8 *)(iVar3 + 0x4408)" (* "*") (cast_expression "(undefined8 *)(iVar3 + 0x4408)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x4408)" (( "(") (binary_expression "iVar3 + 0x4408" (identifier "iVar3") (+ "+") (number_literal "0x4408")) () ")"))))) (; ";")) (expression_statement "*puVar20 = uVar51;" (assignment_expression "*puVar20 = uVar51" (pointer_expression "*puVar20" (* "*") (identifier "puVar20")) (= "=") (identifier "uVar51")) (; ";")) (expression_statement "puVar20[3] = uVar51;" (assignment_expression "puVar20[3] = uVar51" (subscript_expression "puVar20[3]" (identifier "puVar20") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar51")) (; ";")) (return_statement "return iVar3;" (return "return") (identifier "iVar3") (; ";")) (} "}"))) (expression_statement "iVar49 = *(int *)(pcStack_858 + -0x7fcc) + 0x69c0;" (assignment_expression "iVar49 = *(int *)(pcStack_858 + -0x7fcc) + 0x69c0" (identifier "iVar49") (= "=") (binary_expression "*(int *)(pcStack_858 + -0x7fcc) + 0x69c0" (pointer_expression "*(int *)(pcStack_858 + -0x7fcc)" (* "*") (cast_expression "(int *)(pcStack_858 + -0x7fcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_858 + -0x7fcc)" (( "(") (binary_expression "pcStack_858 + -0x7fcc" (identifier "pcStack_858") (+ "+") (number_literal "-0x7fcc")) () ")")))) (+ "+") (number_literal "0x69c0"))) (; ";")) (expression_statement "iVar10 = *(int *)(pcStack_858 + -0x7fcc) + 0x6368;" (assignment_expression "iVar10 = *(int *)(pcStack_858 + -0x7fcc) + 0x6368" (identifier "iVar10") (= "=") (binary_expression "*(int *)(pcStack_858 + -0x7fcc) + 0x6368" (pointer_expression "*(int *)(pcStack_858 + -0x7fcc)" (* "*") (cast_expression "(int *)(pcStack_858 + -0x7fcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_858 + -0x7fcc)" (( "(") (binary_expression "pcStack_858 + -0x7fcc" (identifier "pcStack_858") (+ "+") (number_literal "-0x7fcc")) () ")")))) (+ "+") (number_literal "0x6368"))) (; ";")) (expression_statement "pcVar37 = *(code **)(pcStack_858 + -0x7290);" (assignment_expression "pcVar37 = *(code **)(pcStack_858 + -0x7290)" (identifier "pcVar37") (= "=") (pointer_expression "*(code **)(pcStack_858 + -0x7290)" (* "*") (cast_expression "(code **)(pcStack_858 + -0x7290)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_858 + -0x7290)" (( "(") (binary_expression "pcStack_858 + -0x7290" (identifier "pcStack_858") (+ "+") (number_literal "-0x7290")) () ")"))))) (; ";")) (expression_statement "pcVar38 = GetDrawInfo;" (assignment_expression "pcVar38 = GetDrawInfo" (identifier "pcVar38") (= "=") (identifier "GetDrawInfo")) (; ";")) (expression_statement "(*pcVar37)(iVar10,iVar49,0x16d3,*(int *)(pcStack_858 + -0x7fcc) + 0x76a0);" (call_expression "(*pcVar37)(iVar10,iVar49,0x16d3,*(int *)(pcStack_858 + -0x7fcc) + 0x76a0)" (parenthesized_expression "(*pcVar37)" (( "(") (pointer_expression "*pcVar37" (* "*") (identifier "pcVar37")) () ")")) (argument_list "(iVar10,iVar49,0x16d3,*(int *)(pcStack_858 + -0x7fcc) + 0x76a0)" (( "(") (identifier "iVar10") (, ",") (identifier "iVar49") (, ",") (number_literal "0x16d3") (, ",") (binary_expression "*(int *)(pcStack_858 + -0x7fcc) + 0x76a0" (pointer_expression "*(int *)(pcStack_858 + -0x7fcc)" (* "*") (cast_expression "(int *)(pcStack_858 + -0x7fcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_858 + -0x7fcc)" (( "(") (binary_expression "pcStack_858 + -0x7fcc" (identifier "pcStack_858") (+ "+") (number_literal "-0x7fcc")) () ")")))) (+ "+") (number_literal "0x76a0")) () ")"))) (; ";")) (expression_statement "iStack_888 = iVar3;" (assignment_expression "iStack_888 = iVar3" (identifier "iStack_888") (= "=") (identifier "iVar3")) (; ";")) (expression_statement "iStack_894 = **(int **)(pcVar37 + 0x352270);" (assignment_expression "iStack_894 = **(int **)(pcVar37 + 0x352270)" (identifier "iStack_894") (= "=") (pointer_expression "**(int **)(pcVar37 + 0x352270)" (* "*") (pointer_expression "*(int **)(pcVar37 + 0x352270)" (* "*") (cast_expression "(int **)(pcVar37 + 0x352270)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x352270)" (( "(") (binary_expression "pcVar37 + 0x352270" (identifier "pcVar37") (+ "+") (number_literal "0x352270")) () ")")))))) (; ";")) (expression_statement "puStack_88c = puVar20;" (assignment_expression "puStack_88c = puVar20" (identifier "puStack_88c") (= "=") (identifier "puVar20")) (; ";")) (expression_statement "pdStack_884 = pdVar29;" (assignment_expression "pdStack_884 = pdVar29" (identifier "pdStack_884") (= "=") (identifier "pdVar29")) (; ";")) (expression_statement "ppiStack_880 = ppiVar33;" (assignment_expression "ppiStack_880 = ppiVar33" (identifier "ppiStack_880") (= "=") (identifier "ppiVar33")) (; ";")) (expression_statement "ppiStack_87c = ppiVar34;" (assignment_expression "ppiStack_87c = ppiVar34" (identifier "ppiStack_87c") (= "=") (identifier "ppiVar34")) (; ";")) (expression_statement "puStack_878 = puVar35;" (assignment_expression "puStack_878 = puVar35" (identifier "puStack_878") (= "=") (identifier "puVar35")) (; ";")) (expression_statement "pcStack_874 = pcVar38;" (assignment_expression "pcStack_874 = pcVar38" (identifier "pcStack_874") (= "=") (identifier "pcVar38")) (; ";")) (expression_statement "(**(code **)(pcVar37 + 0x352220))\n            (0x8000,*(int *)(pcVar37 + 0x35190c) + 0x69c0,*(int *)(pcVar37 + 0x35190c) + 0x7694,\n             0x1702,*(int *)(pcVar37 + 0x35190c) + 0x10f4);" (call_expression "(**(code **)(pcVar37 + 0x352220))\n            (0x8000,*(int *)(pcVar37 + 0x35190c) + 0x69c0,*(int *)(pcVar37 + 0x35190c) + 0x7694,\n             0x1702,*(int *)(pcVar37 + 0x35190c) + 0x10f4)" (parenthesized_expression "(**(code **)(pcVar37 + 0x352220))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x352220)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x352220)" (* "*") (cast_expression "(code **)(pcVar37 + 0x352220)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x352220)" (( "(") (binary_expression "pcVar37 + 0x352220" (identifier "pcVar37") (+ "+") (number_literal "0x352220")) () ")"))))) () ")")) (argument_list "(0x8000,*(int *)(pcVar37 + 0x35190c) + 0x69c0,*(int *)(pcVar37 + 0x35190c) + 0x7694,\n             0x1702,*(int *)(pcVar37 + 0x35190c) + 0x10f4)" (( "(") (number_literal "0x8000") (, ",") (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" (* "*") (cast_expression "(int *)(pcVar37 + 0x35190c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x35190c)" (( "(") (binary_expression "pcVar37 + 0x35190c" (identifier "pcVar37") (+ "+") (number_literal "0x35190c")) () ")")))) (+ "+") (number_literal "0x69c0")) (, ",") (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x7694" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" (* "*") (cast_expression "(int *)(pcVar37 + 0x35190c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x35190c)" (( "(") (binary_expression "pcVar37 + 0x35190c" (identifier "pcVar37") (+ "+") (number_literal "0x35190c")) () ")")))) (+ "+") (number_literal "0x7694")) (, ",") (number_literal "0x1702") (, ",") (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x10f4" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" (* "*") (cast_expression "(int *)(pcVar37 + 0x35190c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x35190c)" (( "(") (binary_expression "pcVar37 + 0x35190c" (identifier "pcVar37") (+ "+") (number_literal "0x35190c")) () ")")))) (+ "+") (number_literal "0x10f4")) () ")"))) (; ";")) (if_statement "if (iVar49 == 0) {\n    (**(code **)(pcVar37 + 0x352648))\n              (*(int *)(pcVar37 + 0x351908) + 0x40e4,*(int *)(pcVar37 + 0x35190c) + 0x69c0,0x1703,\n               *(int *)(pcVar37 + 0x35190c) + 0x7688);\n  }\n  else {\n    (**(code **)(pcVar37 + 0x352714))(iVar49,0,0x3c0);\n    iVar10 = (**(code **)(pcVar37 + 0x3521dc))(iVar10);\n    (**(code **)(pcVar37 + 0x351e5c))(iVar49 + 0x18);\n    pdVar29 = (double *)(**(code **)(pcVar37 + 0x351f2c))();\n    ppiVar34 = (int **)(iVar49 + 0x48);\n    (**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar34,pdVar29);\n    ppiVar33 = (int **)(iVar49 + 0xa0);\n    (**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar33,pdVar29);\n    *(undefined4 *)(iVar49 + 0x238) = *(undefined4 *)(iVar10 + 0x14);\n    *(undefined8 *)(iVar49 + 0x1b0) = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4408);\n    *(undefined4 *)(iVar49 + 0x240) = 1;\n    *(undefined4 *)(iVar49 + 0x2cc) = *(undefined4 *)(*(int *)(pcVar37 + 0x351908) + 0x4aa8);\n    uVar51 = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4a48);\n    *(undefined8 *)(iVar49 + 0x398) = uVar51;\n    *(undefined8 *)(iVar49 + 0x3a0) = uVar51;\n    *(undefined4 *)(iVar49 + 0x244) = 1;\n    *(undefined4 *)(iVar49 + 0x248) = 1;\n    *(undefined4 *)(iVar49 + 0x24c) = 10;\n    *(undefined4 *)(iVar49 + 600) = 1;\n    *(undefined8 *)(iVar49 + 0x288) = *(undefined8 *)(*(int *)(pcVar37 + 0x35190c) + 0x7970);\n    *(undefined4 *)(iVar49 + 0x144) = 0;\n    *(undefined4 *)(iVar49 + 0x140) = 0;\n    *(undefined4 *)(iVar49 + 0x25c) = 0x36;\n    *(undefined4 *)(iVar49 + 0x2d0) = 1;\n    *(undefined4 *)(iVar49 + 0x3a8) = 0;\n    uVar4 = (**(code **)(pcVar37 + 0x3527e8))();\n    *(undefined4 *)(iVar49 + 0x38c) = uVar4;\n    if (*(int *)(iVar10 + 0x4c) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x264) = uVar4;\n    }\n    if (*(int *)(iVar10 + 0x54) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x290) = uVar4;\n    }\n    *(undefined4 *)(iVar49 + 0x23c) = *(undefined4 *)(iVar10 + 0x14);\n    uVar4 = *(undefined4 *)(iVar10 + 0x58);\n    if (*(double *)(*(int *)(pcVar37 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar10 + 0x58))) {\n      *(undefined4 *)(iVar49 + 0x28c) = *(undefined4 *)(iVar10 + 0x5c);\n      *(undefined4 *)(iVar49 + 0x288) = uVar4;\n    }\n    puVar13 = (undefined4 *)(iVar10 + 0x118);\n    puVar21 = (undefined4 *)(iVar49 + 0x150);\n    do {\n      puVar15 = puVar21;\n      puVar9 = puVar13;\n      uVar27 = puVar9[1];\n      uVar25 = puVar9[2];\n      uVar4 = puVar9[3];\n      *puVar15 = *puVar9;\n      puVar15[1] = uVar27;\n      puVar15[2] = uVar25;\n      puVar15[3] = uVar4;\n      puVar13 = puVar9 + 4;\n      puVar21 = puVar15 + 4;\n    } while (puVar13 != (undefined4 *)(iVar10 + 0x168));\n    uVar4 = puVar9[5];\n    puVar15[4] = *puVar13;\n    puVar15[5] = uVar4;\n    if (*(int *)(iVar10 + 0x48) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x29c) = uVar4;\n    }\n    iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ac4);\n    if (iVar3 != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x14,0,iVar3);\n      *(undefined4 *)(iVar49 + 0x388) = uVar4;\n      goto LAB_000a8298;\n    }\n  }" (if "if") (parenthesized_expression "(iVar49 == 0)" (( "(") (binary_expression "iVar49 == 0" (identifier "iVar49") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    (**(code **)(pcVar37 + 0x352648))\n              (*(int *)(pcVar37 + 0x351908) + 0x40e4,*(int *)(pcVar37 + 0x35190c) + 0x69c0,0x1703,\n               *(int *)(pcVar37 + 0x35190c) + 0x7688);\n  }" ({ "{") (expression_statement "(**(code **)(pcVar37 + 0x352648))\n              (*(int *)(pcVar37 + 0x351908) + 0x40e4,*(int *)(pcVar37 + 0x35190c) + 0x69c0,0x1703,\n               *(int *)(pcVar37 + 0x35190c) + 0x7688);" (call_expression "(**(code **)(pcVar37 + 0x352648))\n              (*(int *)(pcVar37 + 0x351908) + 0x40e4,*(int *)(pcVar37 + 0x35190c) + 0x69c0,0x1703,\n               *(int *)(pcVar37 + 0x35190c) + 0x7688)" (parenthesized_expression "(**(code **)(pcVar37 + 0x352648))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x352648)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x352648)" (* "*") (cast_expression "(code **)(pcVar37 + 0x352648)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x352648)" (( "(") (binary_expression "pcVar37 + 0x352648" (identifier "pcVar37") (+ "+") (number_literal "0x352648")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar37 + 0x351908) + 0x40e4,*(int *)(pcVar37 + 0x35190c) + 0x69c0,0x1703,\n               *(int *)(pcVar37 + 0x35190c) + 0x7688)" (( "(") (binary_expression "*(int *)(pcVar37 + 0x351908) + 0x40e4" (pointer_expression "*(int *)(pcVar37 + 0x351908)" (* "*") (cast_expression "(int *)(pcVar37 + 0x351908)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x351908)" (( "(") (binary_expression "pcVar37 + 0x351908" (identifier "pcVar37") (+ "+") (number_literal "0x351908")) () ")")))) (+ "+") (number_literal "0x40e4")) (, ",") (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x69c0" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" (* "*") (cast_expression "(int *)(pcVar37 + 0x35190c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x35190c)" (( "(") (binary_expression "pcVar37 + 0x35190c" (identifier "pcVar37") (+ "+") (number_literal "0x35190c")) () ")")))) (+ "+") (number_literal "0x69c0")) (, ",") (number_literal "0x1703") (, ",") (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x7688" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" (* "*") (cast_expression "(int *)(pcVar37 + 0x35190c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x35190c)" (( "(") (binary_expression "pcVar37 + 0x35190c" (identifier "pcVar37") (+ "+") (number_literal "0x35190c")) () ")")))) (+ "+") (number_literal "0x7688")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n    (**(code **)(pcVar37 + 0x352714))(iVar49,0,0x3c0);\n    iVar10 = (**(code **)(pcVar37 + 0x3521dc))(iVar10);\n    (**(code **)(pcVar37 + 0x351e5c))(iVar49 + 0x18);\n    pdVar29 = (double *)(**(code **)(pcVar37 + 0x351f2c))();\n    ppiVar34 = (int **)(iVar49 + 0x48);\n    (**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar34,pdVar29);\n    ppiVar33 = (int **)(iVar49 + 0xa0);\n    (**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar33,pdVar29);\n    *(undefined4 *)(iVar49 + 0x238) = *(undefined4 *)(iVar10 + 0x14);\n    *(undefined8 *)(iVar49 + 0x1b0) = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4408);\n    *(undefined4 *)(iVar49 + 0x240) = 1;\n    *(undefined4 *)(iVar49 + 0x2cc) = *(undefined4 *)(*(int *)(pcVar37 + 0x351908) + 0x4aa8);\n    uVar51 = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4a48);\n    *(undefined8 *)(iVar49 + 0x398) = uVar51;\n    *(undefined8 *)(iVar49 + 0x3a0) = uVar51;\n    *(undefined4 *)(iVar49 + 0x244) = 1;\n    *(undefined4 *)(iVar49 + 0x248) = 1;\n    *(undefined4 *)(iVar49 + 0x24c) = 10;\n    *(undefined4 *)(iVar49 + 600) = 1;\n    *(undefined8 *)(iVar49 + 0x288) = *(undefined8 *)(*(int *)(pcVar37 + 0x35190c) + 0x7970);\n    *(undefined4 *)(iVar49 + 0x144) = 0;\n    *(undefined4 *)(iVar49 + 0x140) = 0;\n    *(undefined4 *)(iVar49 + 0x25c) = 0x36;\n    *(undefined4 *)(iVar49 + 0x2d0) = 1;\n    *(undefined4 *)(iVar49 + 0x3a8) = 0;\n    uVar4 = (**(code **)(pcVar37 + 0x3527e8))();\n    *(undefined4 *)(iVar49 + 0x38c) = uVar4;\n    if (*(int *)(iVar10 + 0x4c) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x264) = uVar4;\n    }\n    if (*(int *)(iVar10 + 0x54) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x290) = uVar4;\n    }\n    *(undefined4 *)(iVar49 + 0x23c) = *(undefined4 *)(iVar10 + 0x14);\n    uVar4 = *(undefined4 *)(iVar10 + 0x58);\n    if (*(double *)(*(int *)(pcVar37 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar10 + 0x58))) {\n      *(undefined4 *)(iVar49 + 0x28c) = *(undefined4 *)(iVar10 + 0x5c);\n      *(undefined4 *)(iVar49 + 0x288) = uVar4;\n    }\n    puVar13 = (undefined4 *)(iVar10 + 0x118);\n    puVar21 = (undefined4 *)(iVar49 + 0x150);\n    do {\n      puVar15 = puVar21;\n      puVar9 = puVar13;\n      uVar27 = puVar9[1];\n      uVar25 = puVar9[2];\n      uVar4 = puVar9[3];\n      *puVar15 = *puVar9;\n      puVar15[1] = uVar27;\n      puVar15[2] = uVar25;\n      puVar15[3] = uVar4;\n      puVar13 = puVar9 + 4;\n      puVar21 = puVar15 + 4;\n    } while (puVar13 != (undefined4 *)(iVar10 + 0x168));\n    uVar4 = puVar9[5];\n    puVar15[4] = *puVar13;\n    puVar15[5] = uVar4;\n    if (*(int *)(iVar10 + 0x48) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x29c) = uVar4;\n    }\n    iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ac4);\n    if (iVar3 != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x14,0,iVar3);\n      *(undefined4 *)(iVar49 + 0x388) = uVar4;\n      goto LAB_000a8298;\n    }\n  }" (else "else") (compound_statement "{\n    (**(code **)(pcVar37 + 0x352714))(iVar49,0,0x3c0);\n    iVar10 = (**(code **)(pcVar37 + 0x3521dc))(iVar10);\n    (**(code **)(pcVar37 + 0x351e5c))(iVar49 + 0x18);\n    pdVar29 = (double *)(**(code **)(pcVar37 + 0x351f2c))();\n    ppiVar34 = (int **)(iVar49 + 0x48);\n    (**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar34,pdVar29);\n    ppiVar33 = (int **)(iVar49 + 0xa0);\n    (**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar33,pdVar29);\n    *(undefined4 *)(iVar49 + 0x238) = *(undefined4 *)(iVar10 + 0x14);\n    *(undefined8 *)(iVar49 + 0x1b0) = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4408);\n    *(undefined4 *)(iVar49 + 0x240) = 1;\n    *(undefined4 *)(iVar49 + 0x2cc) = *(undefined4 *)(*(int *)(pcVar37 + 0x351908) + 0x4aa8);\n    uVar51 = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4a48);\n    *(undefined8 *)(iVar49 + 0x398) = uVar51;\n    *(undefined8 *)(iVar49 + 0x3a0) = uVar51;\n    *(undefined4 *)(iVar49 + 0x244) = 1;\n    *(undefined4 *)(iVar49 + 0x248) = 1;\n    *(undefined4 *)(iVar49 + 0x24c) = 10;\n    *(undefined4 *)(iVar49 + 600) = 1;\n    *(undefined8 *)(iVar49 + 0x288) = *(undefined8 *)(*(int *)(pcVar37 + 0x35190c) + 0x7970);\n    *(undefined4 *)(iVar49 + 0x144) = 0;\n    *(undefined4 *)(iVar49 + 0x140) = 0;\n    *(undefined4 *)(iVar49 + 0x25c) = 0x36;\n    *(undefined4 *)(iVar49 + 0x2d0) = 1;\n    *(undefined4 *)(iVar49 + 0x3a8) = 0;\n    uVar4 = (**(code **)(pcVar37 + 0x3527e8))();\n    *(undefined4 *)(iVar49 + 0x38c) = uVar4;\n    if (*(int *)(iVar10 + 0x4c) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x264) = uVar4;\n    }\n    if (*(int *)(iVar10 + 0x54) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x290) = uVar4;\n    }\n    *(undefined4 *)(iVar49 + 0x23c) = *(undefined4 *)(iVar10 + 0x14);\n    uVar4 = *(undefined4 *)(iVar10 + 0x58);\n    if (*(double *)(*(int *)(pcVar37 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar10 + 0x58))) {\n      *(undefined4 *)(iVar49 + 0x28c) = *(undefined4 *)(iVar10 + 0x5c);\n      *(undefined4 *)(iVar49 + 0x288) = uVar4;\n    }\n    puVar13 = (undefined4 *)(iVar10 + 0x118);\n    puVar21 = (undefined4 *)(iVar49 + 0x150);\n    do {\n      puVar15 = puVar21;\n      puVar9 = puVar13;\n      uVar27 = puVar9[1];\n      uVar25 = puVar9[2];\n      uVar4 = puVar9[3];\n      *puVar15 = *puVar9;\n      puVar15[1] = uVar27;\n      puVar15[2] = uVar25;\n      puVar15[3] = uVar4;\n      puVar13 = puVar9 + 4;\n      puVar21 = puVar15 + 4;\n    } while (puVar13 != (undefined4 *)(iVar10 + 0x168));\n    uVar4 = puVar9[5];\n    puVar15[4] = *puVar13;\n    puVar15[5] = uVar4;\n    if (*(int *)(iVar10 + 0x48) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x29c) = uVar4;\n    }\n    iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ac4);\n    if (iVar3 != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x14,0,iVar3);\n      *(undefined4 *)(iVar49 + 0x388) = uVar4;\n      goto LAB_000a8298;\n    }\n  }" ({ "{") (expression_statement "(**(code **)(pcVar37 + 0x352714))(iVar49,0,0x3c0);" (call_expression "(**(code **)(pcVar37 + 0x352714))(iVar49,0,0x3c0)" (parenthesized_expression "(**(code **)(pcVar37 + 0x352714))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x352714)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x352714)" (* "*") (cast_expression "(code **)(pcVar37 + 0x352714)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x352714)" (( "(") (binary_expression "pcVar37 + 0x352714" (identifier "pcVar37") (+ "+") (number_literal "0x352714")) () ")"))))) () ")")) (argument_list "(iVar49,0,0x3c0)" (( "(") (identifier "iVar49") (, ",") (number_literal "0") (, ",") (number_literal "0x3c0") () ")"))) (; ";")) (expression_statement "iVar10 = (**(code **)(pcVar37 + 0x3521dc))(iVar10);" (assignment_expression "iVar10 = (**(code **)(pcVar37 + 0x3521dc))(iVar10)" (identifier "iVar10") (= "=") (call_expression "(**(code **)(pcVar37 + 0x3521dc))(iVar10)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521dc))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x3521dc)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x3521dc)" (* "*") (cast_expression "(code **)(pcVar37 + 0x3521dc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x3521dc)" (( "(") (binary_expression "pcVar37 + 0x3521dc" (identifier "pcVar37") (+ "+") (number_literal "0x3521dc")) () ")"))))) () ")")) (argument_list "(iVar10)" (( "(") (identifier "iVar10") () ")")))) (; ";")) (expression_statement "(**(code **)(pcVar37 + 0x351e5c))(iVar49 + 0x18);" (call_expression "(**(code **)(pcVar37 + 0x351e5c))(iVar49 + 0x18)" (parenthesized_expression "(**(code **)(pcVar37 + 0x351e5c))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x351e5c)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x351e5c)" (* "*") (cast_expression "(code **)(pcVar37 + 0x351e5c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x351e5c)" (( "(") (binary_expression "pcVar37 + 0x351e5c" (identifier "pcVar37") (+ "+") (number_literal "0x351e5c")) () ")"))))) () ")")) (argument_list "(iVar49 + 0x18)" (( "(") (binary_expression "iVar49 + 0x18" (identifier "iVar49") (+ "+") (number_literal "0x18")) () ")"))) (; ";")) (expression_statement "pdVar29 = (double *)(**(code **)(pcVar37 + 0x351f2c))();" (assignment_expression "pdVar29 = (double *)(**(code **)(pcVar37 + 0x351f2c))()" (identifier "pdVar29") (= "=") (cast_expression "(double *)(**(code **)(pcVar37 + 0x351f2c))()" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar37 + 0x351f2c))()" (parenthesized_expression "(**(code **)(pcVar37 + 0x351f2c))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x351f2c)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x351f2c)" (* "*") (cast_expression "(code **)(pcVar37 + 0x351f2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x351f2c)" (( "(") (binary_expression "pcVar37 + 0x351f2c" (identifier "pcVar37") (+ "+") (number_literal "0x351f2c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "ppiVar34 = (int **)(iVar49 + 0x48);" (assignment_expression "ppiVar34 = (int **)(iVar49 + 0x48)" (identifier "ppiVar34") (= "=") (cast_expression "(int **)(iVar49 + 0x48)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar49 + 0x48)" (( "(") (binary_expression "iVar49 + 0x48" (identifier "iVar49") (+ "+") (number_literal "0x48")) () ")")))) (; ";")) (expression_statement "(**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar34,pdVar29);" (call_expression "(**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar34,pdVar29)" (parenthesized_expression "(**(code **)(pcVar37 + 0x351e54))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x351e54)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x351e54)" (* "*") (cast_expression "(code **)(pcVar37 + 0x351e54)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x351e54)" (( "(") (binary_expression "pcVar37 + 0x351e54" (identifier "pcVar37") (+ "+") (number_literal "0x351e54")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar37 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar34,pdVar29)" (( "(") (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6ab4" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" (* "*") (cast_expression "(int *)(pcVar37 + 0x35190c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x35190c)" (( "(") (binary_expression "pcVar37 + 0x35190c" (identifier "pcVar37") (+ "+") (number_literal "0x35190c")) () ")")))) (+ "+") (number_literal "0x6ab4")) (, ",") (number_literal "0x7fffffff") (, ",") (identifier "ppiVar34") (, ",") (identifier "pdVar29") () ")"))) (; ";")) (expression_statement "ppiVar33 = (int **)(iVar49 + 0xa0);" (assignment_expression "ppiVar33 = (int **)(iVar49 + 0xa0)" (identifier "ppiVar33") (= "=") (cast_expression "(int **)(iVar49 + 0xa0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar49 + 0xa0)" (( "(") (binary_expression "iVar49 + 0xa0" (identifier "iVar49") (+ "+") (number_literal "0xa0")) () ")")))) (; ";")) (expression_statement "(**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar33,pdVar29);" (call_expression "(**(code **)(pcVar37 + 0x351e54))\n              (*(int *)(pcVar37 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar33,pdVar29)" (parenthesized_expression "(**(code **)(pcVar37 + 0x351e54))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x351e54)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x351e54)" (* "*") (cast_expression "(code **)(pcVar37 + 0x351e54)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x351e54)" (( "(") (binary_expression "pcVar37 + 0x351e54" (identifier "pcVar37") (+ "+") (number_literal "0x351e54")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar37 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar33,pdVar29)" (( "(") (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6abc" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" (* "*") (cast_expression "(int *)(pcVar37 + 0x35190c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x35190c)" (( "(") (binary_expression "pcVar37 + 0x35190c" (identifier "pcVar37") (+ "+") (number_literal "0x35190c")) () ")")))) (+ "+") (number_literal "0x6abc")) (, ",") (number_literal "0x7fffffff") (, ",") (identifier "ppiVar33") (, ",") (identifier "pdVar29") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar49 + 0x238) = *(undefined4 *)(iVar10 + 0x14);" (assignment_expression "*(undefined4 *)(iVar49 + 0x238) = *(undefined4 *)(iVar10 + 0x14)" (pointer_expression "*(undefined4 *)(iVar49 + 0x238)" (* "*") (cast_expression "(undefined4 *)(iVar49 + 0x238)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x238)" (( "(") (binary_expression "iVar49 + 0x238" (identifier "iVar49") (+ "+") (number_literal "0x238")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar10 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar10 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x14)" (( "(") (binary_expression "iVar10 + 0x14" (identifier "iVar10") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "*(undefined8 *)(iVar49 + 0x1b0) = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4408);" (assignment_expression "*(undefined8 *)(iVar49 + 0x1b0) = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4408)" (pointer_expression "*(undefined8 *)(iVar49 + 0x1b0)" (* "*") (cast_expression "(undefined8 *)(iVar49 + 0x1b0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x1b0)" (( "(") (binary_expression "iVar49 + 0x1b0" (identifier "iVar49") (+ "+") (number_literal "0x1b0")) () ")")))) (= "=") (pointer_expression "*(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4408)" (* "*") (cast_expression "(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4408)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar37 + 0x351908) + 0x4408)" (( "(") (binary_expression "*(int *)(pcVar37 + 0x351908) + 0x4408" (pointer_expression "*(int *)(pcVar37 + 0x351908)" (* "*") (cast_expression "(int *)(pcVar37 + 0x351908)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x351908)" (( "(") (binary_expression "pcVar37 + 0x351908" (identifier "pcVar37") (+ "+") (number_literal "0x351908")) () ")")))) (+ "+") (number_literal "0x4408")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar49 + 0x240) = 1;" (assignment_expression "*(undefined4 *)(iVar49 + 0x240) = 1" (pointer_expression "*(undefined4 *)(iVar49 + 0x240)" (* "*") (cast_expression "(undefined4 *)(iVar49 + 0x240)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x240)" (( "(") (binary_expression "iVar49 + 0x240" (identifier "iVar49") (+ "+") (number_literal "0x240")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(iVar49 + 0x2cc) = *(undefined4 *)(*(int *)(pcVar37 + 0x351908) + 0x4aa8);" (assignment_expression "*(undefined4 *)(iVar49 + 0x2cc) = *(undefined4 *)(*(int *)(pcVar37 + 0x351908) + 0x4aa8)" (pointer_expression "*(undefined4 *)(iVar49 + 0x2cc)" (* "*") (cast_expression "(undefined4 *)(iVar49 + 0x2cc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x2cc)" (( "(") (binary_expression "iVar49 + 0x2cc" (identifier "iVar49") (+ "+") (number_literal "0x2cc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(*(int *)(pcVar37 + 0x351908) + 0x4aa8)" (* "*") (cast_expression "(undefined4 *)(*(int *)(pcVar37 + 0x351908) + 0x4aa8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar37 + 0x351908) + 0x4aa8)" (( "(") (binary_expression "*(int *)(pcVar37 + 0x351908) + 0x4aa8" (pointer_expression "*(int *)(pcVar37 + 0x351908)" (* "*") (cast_expression "(int *)(pcVar37 + 0x351908)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x351908)" (( "(") (binary_expression "pcVar37 + 0x351908" (identifier "pcVar37") (+ "+") (number_literal "0x351908")) () ")")))) (+ "+") (number_literal "0x4aa8")) () ")"))))) (; ";")) (expression_statement "uVar51 = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4a48);" (assignment_expression "uVar51 = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4a48)" (identifier "uVar51") (= "=") (pointer_expression "*(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4a48)" (* "*") (cast_expression "(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4a48)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar37 + 0x351908) + 0x4a48)" (( "(") (binary_expression "*(int *)(pcVar37 + 0x351908) + 0x4a48" (pointer_expression "*(int *)(pcVar37 + 0x351908)" (* "*") (cast_expression "(int *)(pcVar37 + 0x351908)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x351908)" (( "(") (binary_expression "pcVar37 + 0x351908" (identifier "pcVar37") (+ "+") (number_literal "0x351908")) () ")")))) (+ "+") (number_literal "0x4a48")) () ")"))))) (; ";")) (expression_statement "*(undefined8 *)(iVar49 + 0x398) = uVar51;" (assignment_expression "*(undefined8 *)(iVar49 + 0x398) = uVar51" (pointer_expression "*(undefined8 *)(iVar49 + 0x398)" (* "*") (cast_expression "(undefined8 *)(iVar49 + 0x398)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x398)" (( "(") (binary_expression "iVar49 + 0x398" (identifier "iVar49") (+ "+") (number_literal "0x398")) () ")")))) (= "=") (identifier "uVar51")) (; ";")) (expression_statement "*(undefined8 *)(iVar49 + 0x3a0) = uVar51;" (assignment_expression "*(undefined8 *)(iVar49 + 0x3a0) = uVar51" (pointer_expression "*(undefined8 *)(iVar49 + 0x3a0)" (* "*") (cast_expression "(undefined8 *)(iVar49 + 0x3a0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x3a0)" (( "(") (binary_expression "iVar49 + 0x3a0" (identifier "iVar49") (+ "+") (number_literal "0x3a0")) () ")")))) (= "=") (identifier "uVar51")) (; ";")) (expression_statement "*(undefined4 *)(iVar49 + 0x244) = 1;" (assignment_expression "*(undefined4 *)(iVar49 + 0x244) = 1" (pointer_expression "*(undefined4 *)(iVar49 + 0x244)" (* "*") (cast_expression "(undefined4 *)(iVar49 + 0x244)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x244)" (( "(") (binary_expression "iVar49 + 0x244" (identifier "iVar49") (+ "+") (number_literal "0x244")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(iVar49 + 0x248) = 1;" (assignment_expression "*(undefined4 *)(iVar49 + 0x248) = 1" (pointer_expression "*(undefined4 *)(iVar49 + 0x248)" (* "*") (cast_expression "(undefined4 *)(iVar49 + 0x248)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x248)" (( "(") (binary_expression "iVar49 + 0x248" (identifier "iVar49") (+ "+") (number_literal "0x248")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(iVar49 + 0x24c) = 10;" (assignment_expression "*(undefined4 *)(iVar49 + 0x24c) = 10" (pointer_expression "*(undefined4 *)(iVar49 + 0x24c)" (* "*") (cast_expression "(undefined4 *)(iVar49 + 0x24c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x24c)" (( "(") (binary_expression "iVar49 + 0x24c" (identifier "iVar49") (+ "+") (number_literal "0x24c")) () ")")))) (= "=") (number_literal "10")) (; ";")) (expression_statement "*(undefined4 *)(iVar49 + 600) = 1;" (assignment_expression "*(undefined4 *)(iVar49 + 600) = 1" (pointer_expression "*(undefined4 *)(iVar49 + 600)" (* "*") (cast_expression "(undefined4 *)(iVar49 + 600)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 600)" (( "(") (binary_expression "iVar49 + 600" (identifier "iVar49") (+ "+") (number_literal "600")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined8 *)(iVar49 + 0x288) = *(undefined8 *)(*(int *)(pcVar37 + 0x35190c) + 0x7970);" (assignment_expression "*(undefined8 *)(iVar49 + 0x288) = *(undefined8 *)(*(int *)(pcVar37 + 0x35190c) + 0x7970)" (pointer_expression "*(undefined8 *)(iVar49 + 0x288)" (* "*") (cast_expression "(undefined8 *)(iVar49 + 0x288)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x288)" (( "(") (binary_expression "iVar49 + 0x288" (identifier "iVar49") (+ "+") (number_literal "0x288")) () ")")))) (= "=") (pointer_expression "*(undefined8 *)(*(int *)(pcVar37 + 0x35190c) + 0x7970)" (* "*") (cast_expression "(undefined8 *)(*(int *)(pcVar37 + 0x35190c) + 0x7970)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar37 + 0x35190c) + 0x7970)" (( "(") (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x7970" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" (* "*") (cast_expression "(int *)(pcVar37 + 0x35190c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x35190c)" (( "(") (binary_expression "pcVar37 + 0x35190c" (identifier "pcVar37") (+ "+") (number_literal "0x35190c")) () ")")))) (+ "+") (number_literal "0x7970")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar49 + 0x144) = 0;" (assignment_expression "*(undefined4 *)(iVar49 + 0x144) = 0" (pointer_expression "*(undefined4 *)(iVar49 + 0x144)" (* "*") (cast_expression "(undefined4 *)(iVar49 + 0x144)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x144)" (( "(") (binary_expression "iVar49 + 0x144" (identifier "iVar49") (+ "+") (number_literal "0x144")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar49 + 0x140) = 0;" (assignment_expression "*(undefined4 *)(iVar49 + 0x140) = 0" (pointer_expression "*(undefined4 *)(iVar49 + 0x140)" (* "*") (cast_expression "(undefined4 *)(iVar49 + 0x140)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x140)" (( "(") (binary_expression "iVar49 + 0x140" (identifier "iVar49") (+ "+") (number_literal "0x140")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar49 + 0x25c) = 0x36;" (assignment_expression "*(undefined4 *)(iVar49 + 0x25c) = 0x36" (pointer_expression "*(undefined4 *)(iVar49 + 0x25c)" (* "*") (cast_expression "(undefined4 *)(iVar49 + 0x25c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x25c)" (( "(") (binary_expression "iVar49 + 0x25c" (identifier "iVar49") (+ "+") (number_literal "0x25c")) () ")")))) (= "=") (number_literal "0x36")) (; ";")) (expression_statement "*(undefined4 *)(iVar49 + 0x2d0) = 1;" (assignment_expression "*(undefined4 *)(iVar49 + 0x2d0) = 1" (pointer_expression "*(undefined4 *)(iVar49 + 0x2d0)" (* "*") (cast_expression "(undefined4 *)(iVar49 + 0x2d0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x2d0)" (( "(") (binary_expression "iVar49 + 0x2d0" (identifier "iVar49") (+ "+") (number_literal "0x2d0")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(iVar49 + 0x3a8) = 0;" (assignment_expression "*(undefined4 *)(iVar49 + 0x3a8) = 0" (pointer_expression "*(undefined4 *)(iVar49 + 0x3a8)" (* "*") (cast_expression "(undefined4 *)(iVar49 + 0x3a8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x3a8)" (( "(") (binary_expression "iVar49 + 0x3a8" (identifier "iVar49") (+ "+") (number_literal "0x3a8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar4 = (**(code **)(pcVar37 + 0x3527e8))();" (assignment_expression "uVar4 = (**(code **)(pcVar37 + 0x3527e8))()" (identifier "uVar4") (= "=") (call_expression "(**(code **)(pcVar37 + 0x3527e8))()" (parenthesized_expression "(**(code **)(pcVar37 + 0x3527e8))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x3527e8)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x3527e8)" (* "*") (cast_expression "(code **)(pcVar37 + 0x3527e8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x3527e8)" (( "(") (binary_expression "pcVar37 + 0x3527e8" (identifier "pcVar37") (+ "+") (number_literal "0x3527e8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar49 + 0x38c) = uVar4;" (assignment_expression "*(undefined4 *)(iVar49 + 0x38c) = uVar4" (pointer_expression "*(undefined4 *)(iVar49 + 0x38c)" (* "*") (cast_expression "(undefined4 *)(iVar49 + 0x38c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x38c)" (( "(") (binary_expression "iVar49 + 0x38c" (identifier "iVar49") (+ "+") (number_literal "0x38c")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (if_statement "if (*(int *)(iVar10 + 0x4c) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x264) = uVar4;\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar10 + 0x4c) != 0)" (( "(") (binary_expression "*(int *)(iVar10 + 0x4c) != 0" (pointer_expression "*(int *)(iVar10 + 0x4c)" (* "*") (cast_expression "(int *)(iVar10 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x4c)" (( "(") (binary_expression "iVar10 + 0x4c" (identifier "iVar10") (+ "+") (number_literal "0x4c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x264) = uVar4;\n    }" ({ "{") (expression_statement "uVar4 = (**(code **)(pcVar37 + 0x352854))();" (assignment_expression "uVar4 = (**(code **)(pcVar37 + 0x352854))()" (identifier "uVar4") (= "=") (call_expression "(**(code **)(pcVar37 + 0x352854))()" (parenthesized_expression "(**(code **)(pcVar37 + 0x352854))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x352854)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x352854)" (* "*") (cast_expression "(code **)(pcVar37 + 0x352854)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x352854)" (( "(") (binary_expression "pcVar37 + 0x352854" (identifier "pcVar37") (+ "+") (number_literal "0x352854")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar49 + 0x264) = uVar4;" (assignment_expression "*(undefined4 *)(iVar49 + 0x264) = uVar4" (pointer_expression "*(undefined4 *)(iVar49 + 0x264)" (* "*") (cast_expression "(undefined4 *)(iVar49 + 0x264)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x264)" (( "(") (binary_expression "iVar49 + 0x264" (identifier "iVar49") (+ "+") (number_literal "0x264")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar10 + 0x54) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x290) = uVar4;\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar10 + 0x54) != 0)" (( "(") (binary_expression "*(int *)(iVar10 + 0x54) != 0" (pointer_expression "*(int *)(iVar10 + 0x54)" (* "*") (cast_expression "(int *)(iVar10 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x54)" (( "(") (binary_expression "iVar10 + 0x54" (identifier "iVar10") (+ "+") (number_literal "0x54")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x290) = uVar4;\n    }" ({ "{") (expression_statement "uVar4 = (**(code **)(pcVar37 + 0x352854))();" (assignment_expression "uVar4 = (**(code **)(pcVar37 + 0x352854))()" (identifier "uVar4") (= "=") (call_expression "(**(code **)(pcVar37 + 0x352854))()" (parenthesized_expression "(**(code **)(pcVar37 + 0x352854))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x352854)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x352854)" (* "*") (cast_expression "(code **)(pcVar37 + 0x352854)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x352854)" (( "(") (binary_expression "pcVar37 + 0x352854" (identifier "pcVar37") (+ "+") (number_literal "0x352854")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar49 + 0x290) = uVar4;" (assignment_expression "*(undefined4 *)(iVar49 + 0x290) = uVar4" (pointer_expression "*(undefined4 *)(iVar49 + 0x290)" (* "*") (cast_expression "(undefined4 *)(iVar49 + 0x290)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x290)" (( "(") (binary_expression "iVar49 + 0x290" (identifier "iVar49") (+ "+") (number_literal "0x290")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(iVar49 + 0x23c) = *(undefined4 *)(iVar10 + 0x14);" (assignment_expression "*(undefined4 *)(iVar49 + 0x23c) = *(undefined4 *)(iVar10 + 0x14)" (pointer_expression "*(undefined4 *)(iVar49 + 0x23c)" (* "*") (cast_expression "(undefined4 *)(iVar49 + 0x23c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x23c)" (( "(") (binary_expression "iVar49 + 0x23c" (identifier "iVar49") (+ "+") (number_literal "0x23c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar10 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar10 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x14)" (( "(") (binary_expression "iVar10 + 0x14" (identifier "iVar10") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "uVar4 = *(undefined4 *)(iVar10 + 0x58);" (assignment_expression "uVar4 = *(undefined4 *)(iVar10 + 0x58)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined4 *)(iVar10 + 0x58)" (* "*") (cast_expression "(undefined4 *)(iVar10 + 0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x58)" (( "(") (binary_expression "iVar10 + 0x58" (identifier "iVar10") (+ "+") (number_literal "0x58")) () ")"))))) (; ";")) (if_statement "if (*(double *)(*(int *)(pcVar37 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar10 + 0x58))) {\n      *(undefined4 *)(iVar49 + 0x28c) = *(undefined4 *)(iVar10 + 0x5c);\n      *(undefined4 *)(iVar49 + 0x288) = uVar4;\n    }" (if "if") (parenthesized_expression "(*(double *)(*(int *)(pcVar37 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar10 + 0x58)))" (( "(") (binary_expression "*(double *)(*(int *)(pcVar37 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar10 + 0x58))" (pointer_expression "*(double *)(*(int *)(pcVar37 + 0x351908) + 0x43c8)" (* "*") (cast_expression "(double *)(*(int *)(pcVar37 + 0x351908) + 0x43c8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar37 + 0x351908) + 0x43c8)" (( "(") (binary_expression "*(int *)(pcVar37 + 0x351908) + 0x43c8" (pointer_expression "*(int *)(pcVar37 + 0x351908)" (* "*") (cast_expression "(int *)(pcVar37 + 0x351908)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x351908)" (( "(") (binary_expression "pcVar37 + 0x351908" (identifier "pcVar37") (+ "+") (number_literal "0x351908")) () ")")))) (+ "+") (number_literal "0x43c8")) () ")")))) (<= "<=") (call_expression "ABS(*(double *)(iVar10 + 0x58))" (identifier "ABS") (argument_list "(*(double *)(iVar10 + 0x58))" (( "(") (pointer_expression "*(double *)(iVar10 + 0x58)" (* "*") (cast_expression "(double *)(iVar10 + 0x58)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x58)" (( "(") (binary_expression "iVar10 + 0x58" (identifier "iVar10") (+ "+") (number_literal "0x58")) () ")")))) () ")")))) () ")")) (compound_statement "{\n      *(undefined4 *)(iVar49 + 0x28c) = *(undefined4 *)(iVar10 + 0x5c);\n      *(undefined4 *)(iVar49 + 0x288) = uVar4;\n    }" ({ "{") (expression_statement "*(undefined4 *)(iVar49 + 0x28c) = *(undefined4 *)(iVar10 + 0x5c);" (assignment_expression "*(undefined4 *)(iVar49 + 0x28c) = *(undefined4 *)(iVar10 + 0x5c)" (pointer_expression "*(undefined4 *)(iVar49 + 0x28c)" (* "*") (cast_expression "(undefined4 *)(iVar49 + 0x28c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x28c)" (( "(") (binary_expression "iVar49 + 0x28c" (identifier "iVar49") (+ "+") (number_literal "0x28c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar10 + 0x5c)" (* "*") (cast_expression "(undefined4 *)(iVar10 + 0x5c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x5c)" (( "(") (binary_expression "iVar10 + 0x5c" (identifier "iVar10") (+ "+") (number_literal "0x5c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar49 + 0x288) = uVar4;" (assignment_expression "*(undefined4 *)(iVar49 + 0x288) = uVar4" (pointer_expression "*(undefined4 *)(iVar49 + 0x288)" (* "*") (cast_expression "(undefined4 *)(iVar49 + 0x288)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x288)" (( "(") (binary_expression "iVar49 + 0x288" (identifier "iVar49") (+ "+") (number_literal "0x288")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (} "}"))) (expression_statement "puVar13 = (undefined4 *)(iVar10 + 0x118);" (assignment_expression "puVar13 = (undefined4 *)(iVar10 + 0x118)" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)(iVar10 + 0x118)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x118)" (( "(") (binary_expression "iVar10 + 0x118" (identifier "iVar10") (+ "+") (number_literal "0x118")) () ")")))) (; ";")) (expression_statement "puVar21 = (undefined4 *)(iVar49 + 0x150);" (assignment_expression "puVar21 = (undefined4 *)(iVar49 + 0x150)" (identifier "puVar21") (= "=") (cast_expression "(undefined4 *)(iVar49 + 0x150)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x150)" (( "(") (binary_expression "iVar49 + 0x150" (identifier "iVar49") (+ "+") (number_literal "0x150")) () ")")))) (; ";")) (do_statement "do {\n      puVar15 = puVar21;\n      puVar9 = puVar13;\n      uVar27 = puVar9[1];\n      uVar25 = puVar9[2];\n      uVar4 = puVar9[3];\n      *puVar15 = *puVar9;\n      puVar15[1] = uVar27;\n      puVar15[2] = uVar25;\n      puVar15[3] = uVar4;\n      puVar13 = puVar9 + 4;\n      puVar21 = puVar15 + 4;\n    } while (puVar13 != (undefined4 *)(iVar10 + 0x168));" (do "do") (compound_statement "{\n      puVar15 = puVar21;\n      puVar9 = puVar13;\n      uVar27 = puVar9[1];\n      uVar25 = puVar9[2];\n      uVar4 = puVar9[3];\n      *puVar15 = *puVar9;\n      puVar15[1] = uVar27;\n      puVar15[2] = uVar25;\n      puVar15[3] = uVar4;\n      puVar13 = puVar9 + 4;\n      puVar21 = puVar15 + 4;\n    }" ({ "{") (expression_statement "puVar15 = puVar21;" (assignment_expression "puVar15 = puVar21" (identifier "puVar15") (= "=") (identifier "puVar21")) (; ";")) (expression_statement "puVar9 = puVar13;" (assignment_expression "puVar9 = puVar13" (identifier "puVar9") (= "=") (identifier "puVar13")) (; ";")) (expression_statement "uVar27 = puVar9[1];" (assignment_expression "uVar27 = puVar9[1]" (identifier "uVar27") (= "=") (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar25 = puVar9[2];" (assignment_expression "uVar25 = puVar9[2]" (identifier "uVar25") (= "=") (subscript_expression "puVar9[2]" (identifier "puVar9") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar4 = puVar9[3];" (assignment_expression "uVar4 = puVar9[3]" (identifier "uVar4") (= "=") (subscript_expression "puVar9[3]" (identifier "puVar9") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar15 = *puVar9;" (assignment_expression "*puVar15 = *puVar9" (pointer_expression "*puVar15" (* "*") (identifier "puVar15")) (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (expression_statement "puVar15[1] = uVar27;" (assignment_expression "puVar15[1] = uVar27" (subscript_expression "puVar15[1]" (identifier "puVar15") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar27")) (; ";")) (expression_statement "puVar15[2] = uVar25;" (assignment_expression "puVar15[2] = uVar25" (subscript_expression "puVar15[2]" (identifier "puVar15") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar25")) (; ";")) (expression_statement "puVar15[3] = uVar4;" (assignment_expression "puVar15[3] = uVar4" (subscript_expression "puVar15[3]" (identifier "puVar15") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "puVar13 = puVar9 + 4;" (assignment_expression "puVar13 = puVar9 + 4" (identifier "puVar13") (= "=") (binary_expression "puVar9 + 4" (identifier "puVar9") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "puVar21 = puVar15 + 4;" (assignment_expression "puVar21 = puVar15 + 4" (identifier "puVar21") (= "=") (binary_expression "puVar15 + 4" (identifier "puVar15") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar13 != (undefined4 *)(iVar10 + 0x168))" (( "(") (binary_expression "puVar13 != (undefined4 *)(iVar10 + 0x168)" (identifier "puVar13") (!= "!=") (cast_expression "(undefined4 *)(iVar10 + 0x168)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x168)" (( "(") (binary_expression "iVar10 + 0x168" (identifier "iVar10") (+ "+") (number_literal "0x168")) () ")")))) () ")")) (; ";")) (expression_statement "uVar4 = puVar9[5];" (assignment_expression "uVar4 = puVar9[5]" (identifier "uVar4") (= "=") (subscript_expression "puVar9[5]" (identifier "puVar9") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "puVar15[4] = *puVar13;" (assignment_expression "puVar15[4] = *puVar13" (subscript_expression "puVar15[4]" (identifier "puVar15") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*puVar13" (* "*") (identifier "puVar13"))) (; ";")) (expression_statement "puVar15[5] = uVar4;" (assignment_expression "puVar15[5] = uVar4" (subscript_expression "puVar15[5]" (identifier "puVar15") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (if_statement "if (*(int *)(iVar10 + 0x48) != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x29c) = uVar4;\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar10 + 0x48) != 0)" (( "(") (binary_expression "*(int *)(iVar10 + 0x48) != 0" (pointer_expression "*(int *)(iVar10 + 0x48)" (* "*") (cast_expression "(int *)(iVar10 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x48)" (( "(") (binary_expression "iVar10 + 0x48" (identifier "iVar10") (+ "+") (number_literal "0x48")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar4 = (**(code **)(pcVar37 + 0x352854))();\n      *(undefined4 *)(iVar49 + 0x29c) = uVar4;\n    }" ({ "{") (expression_statement "uVar4 = (**(code **)(pcVar37 + 0x352854))();" (assignment_expression "uVar4 = (**(code **)(pcVar37 + 0x352854))()" (identifier "uVar4") (= "=") (call_expression "(**(code **)(pcVar37 + 0x352854))()" (parenthesized_expression "(**(code **)(pcVar37 + 0x352854))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x352854)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x352854)" (* "*") (cast_expression "(code **)(pcVar37 + 0x352854)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x352854)" (( "(") (binary_expression "pcVar37 + 0x352854" (identifier "pcVar37") (+ "+") (number_literal "0x352854")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar49 + 0x29c) = uVar4;" (assignment_expression "*(undefined4 *)(iVar49 + 0x29c) = uVar4" (pointer_expression "*(undefined4 *)(iVar49 + 0x29c)" (* "*") (cast_expression "(undefined4 *)(iVar49 + 0x29c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x29c)" (( "(") (binary_expression "iVar49 + 0x29c" (identifier "iVar49") (+ "+") (number_literal "0x29c")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (} "}"))) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ac4);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ac4)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ac4)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" (* "*") (cast_expression "(code **)(pcVar37 + 0x3521a8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x3521a8)" (( "(") (binary_expression "pcVar37 + 0x3521a8" (identifier "pcVar37") (+ "+") (number_literal "0x3521a8")) () ")"))))) () ")")) (argument_list "(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ac4)" (( "(") (identifier "iVar10") (, ",") (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6ac4" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" (* "*") (cast_expression "(int *)(pcVar37 + 0x35190c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x35190c)" (( "(") (binary_expression "pcVar37 + 0x35190c" (identifier "pcVar37") (+ "+") (number_literal "0x35190c")) () ")")))) (+ "+") (number_literal "0x6ac4")) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n      uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x14,0,iVar3);\n      *(undefined4 *)(iVar49 + 0x388) = uVar4;\n      goto LAB_000a8298;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x14,0,iVar3);\n      *(undefined4 *)(iVar49 + 0x388) = uVar4;\n      goto LAB_000a8298;\n    }" ({ "{") (expression_statement "uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x14,0,iVar3);" (assignment_expression "uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x14,0,iVar3)" (identifier "uVar4") (= "=") (call_expression "(**(code **)(pcVar37 + 0x3526d4))(0x14,0,iVar3)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3526d4))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x3526d4)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x3526d4)" (* "*") (cast_expression "(code **)(pcVar37 + 0x3526d4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x3526d4)" (( "(") (binary_expression "pcVar37 + 0x3526d4" (identifier "pcVar37") (+ "+") (number_literal "0x3526d4")) () ")"))))) () ")")) (argument_list "(0x14,0,iVar3)" (( "(") (number_literal "0x14") (, ",") (number_literal "0") (, ",") (identifier "iVar3") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar49 + 0x388) = uVar4;" (assignment_expression "*(undefined4 *)(iVar49 + 0x388) = uVar4" (pointer_expression "*(undefined4 *)(iVar49 + 0x388)" (* "*") (cast_expression "(undefined4 *)(iVar49 + 0x388)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x388)" (( "(") (binary_expression "iVar49 + 0x388" (identifier "iVar49") (+ "+") (number_literal "0x388")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (goto_statement "goto LAB_000a8298;" (goto "goto") (statement_identifier "LAB_000a8298") (; ";")) (} "}"))) (} "}")))) (expression_statement "*(undefined4 *)(iVar49 + 0x388) = 0;" (assignment_expression "*(undefined4 *)(iVar49 + 0x388) = 0" (pointer_expression "*(undefined4 *)(iVar49 + 0x388)" (* "*") (cast_expression "(undefined4 *)(iVar49 + 0x388)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x388)" (( "(") (binary_expression "iVar49 + 0x388" (identifier "iVar49") (+ "+") (number_literal "0x388")) () ")")))) (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_000a8298:\n  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ad0);" (statement_identifier "LAB_000a8298") (: ":") (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ad0);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ad0)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ad0)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" (* "*") (cast_expression "(code **)(pcVar37 + 0x3521a8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x3521a8)" (( "(") (binary_expression "pcVar37 + 0x3521a8" (identifier "pcVar37") (+ "+") (number_literal "0x3521a8")) () ")"))))) () ")")) (argument_list "(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ad0)" (( "(") (identifier "iVar10") (, ",") (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6ad0" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" (* "*") (cast_expression "(int *)(pcVar37 + 0x35190c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x35190c)" (( "(") (binary_expression "pcVar37 + 0x35190c" (identifier "pcVar37") (+ "+") (number_literal "0x35190c")) () ")")))) (+ "+") (number_literal "0x6ad0")) () ")")))) (; ";"))) (if_statement "if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x280,iVar3);\n  }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x280,iVar3);\n  }" ({ "{") (expression_statement "(**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x280,iVar3);" (call_expression "(**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x280,iVar3)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3524c8))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x3524c8)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x3524c8)" (* "*") (cast_expression "(code **)(pcVar37 + 0x3524c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x3524c8)" (( "(") (binary_expression "pcVar37 + 0x3524c8" (identifier "pcVar37") (+ "+") (number_literal "0x3524c8")) () ")"))))) () ")")) (argument_list "(iVar49 + 0x280,iVar3)" (( "(") (binary_expression "iVar49 + 0x280" (identifier "iVar49") (+ "+") (number_literal "0x280")) (, ",") (identifier "iVar3") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6adc);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6adc)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6adc)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" (* "*") (cast_expression "(code **)(pcVar37 + 0x3521a8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x3521a8)" (( "(") (binary_expression "pcVar37 + 0x3521a8" (identifier "pcVar37") (+ "+") (number_literal "0x3521a8")) () ")"))))) () ")")) (argument_list "(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6adc)" (( "(") (identifier "iVar10") (, ",") (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6adc" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" (* "*") (cast_expression "(int *)(pcVar37 + 0x35190c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x35190c)" (( "(") (binary_expression "pcVar37 + 0x35190c" (identifier "pcVar37") (+ "+") (number_literal "0x35190c")) () ")")))) (+ "+") (number_literal "0x6adc")) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x26c,iVar3);\n  }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x26c,iVar3);\n  }" ({ "{") (expression_statement "(**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x26c,iVar3);" (call_expression "(**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x26c,iVar3)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3524c8))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x3524c8)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x3524c8)" (* "*") (cast_expression "(code **)(pcVar37 + 0x3524c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x3524c8)" (( "(") (binary_expression "pcVar37 + 0x3524c8" (identifier "pcVar37") (+ "+") (number_literal "0x3524c8")) () ")"))))) () ")")) (argument_list "(iVar49 + 0x26c,iVar3)" (( "(") (binary_expression "iVar49 + 0x26c" (identifier "iVar49") (+ "+") (number_literal "0x26c")) (, ",") (identifier "iVar3") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ae4);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ae4)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ae4)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" (* "*") (cast_expression "(code **)(pcVar37 + 0x3521a8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x3521a8)" (( "(") (binary_expression "pcVar37 + 0x3521a8" (identifier "pcVar37") (+ "+") (number_literal "0x3521a8")) () ")"))))) () ")")) (argument_list "(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ae4)" (( "(") (identifier "iVar10") (, ",") (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6ae4" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" (* "*") (cast_expression "(int *)(pcVar37 + 0x35190c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x35190c)" (( "(") (binary_expression "pcVar37 + 0x35190c" (identifier "pcVar37") (+ "+") (number_literal "0x35190c")) () ")")))) (+ "+") (number_literal "0x6ae4")) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar34,pdVar29);\n  }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar34,pdVar29);\n  }" ({ "{") (expression_statement "(**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar34,pdVar29);" (call_expression "(**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar34,pdVar29)" (parenthesized_expression "(**(code **)(pcVar37 + 0x351e54))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x351e54)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x351e54)" (* "*") (cast_expression "(code **)(pcVar37 + 0x351e54)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x351e54)" (( "(") (binary_expression "pcVar37 + 0x351e54" (identifier "pcVar37") (+ "+") (number_literal "0x351e54")) () ")"))))) () ")")) (argument_list "(iVar3,0x7fffffff,ppiVar34,pdVar29)" (( "(") (identifier "iVar3") (, ",") (number_literal "0x7fffffff") (, ",") (identifier "ppiVar34") (, ",") (identifier "pdVar29") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6aec);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6aec)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6aec)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" (* "*") (cast_expression "(code **)(pcVar37 + 0x3521a8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x3521a8)" (( "(") (binary_expression "pcVar37 + 0x3521a8" (identifier "pcVar37") (+ "+") (number_literal "0x3521a8")) () ")"))))) () ")")) (argument_list "(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6aec)" (( "(") (identifier "iVar10") (, ",") (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6aec" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" (* "*") (cast_expression "(int *)(pcVar37 + 0x35190c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x35190c)" (( "(") (binary_expression "pcVar37 + 0x35190c" (identifier "pcVar37") (+ "+") (number_literal "0x35190c")) () ")")))) (+ "+") (number_literal "0x6aec")) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n    uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x21,0,iVar3);\n    *(undefined4 *)(iVar49 + 0x298) = uVar4;\n  }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x21,0,iVar3);\n    *(undefined4 *)(iVar49 + 0x298) = uVar4;\n  }" ({ "{") (expression_statement "uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x21,0,iVar3);" (assignment_expression "uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x21,0,iVar3)" (identifier "uVar4") (= "=") (call_expression "(**(code **)(pcVar37 + 0x3526d4))(0x21,0,iVar3)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3526d4))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x3526d4)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x3526d4)" (* "*") (cast_expression "(code **)(pcVar37 + 0x3526d4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x3526d4)" (( "(") (binary_expression "pcVar37 + 0x3526d4" (identifier "pcVar37") (+ "+") (number_literal "0x3526d4")) () ")"))))) () ")")) (argument_list "(0x21,0,iVar3)" (( "(") (number_literal "0x21") (, ",") (number_literal "0") (, ",") (identifier "iVar3") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar49 + 0x298) = uVar4;" (assignment_expression "*(undefined4 *)(iVar49 + 0x298) = uVar4" (pointer_expression "*(undefined4 *)(iVar49 + 0x298)" (* "*") (cast_expression "(undefined4 *)(iVar49 + 0x298)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x298)" (( "(") (binary_expression "iVar49 + 0x298" (identifier "iVar49") (+ "+") (number_literal "0x298")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (} "}"))) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6af4);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6af4)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6af4)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" (* "*") (cast_expression "(code **)(pcVar37 + 0x3521a8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x3521a8)" (( "(") (binary_expression "pcVar37 + 0x3521a8" (identifier "pcVar37") (+ "+") (number_literal "0x3521a8")) () ")"))))) () ")")) (argument_list "(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6af4)" (( "(") (identifier "iVar10") (, ",") (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6af4" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" (* "*") (cast_expression "(int *)(pcVar37 + 0x35190c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x35190c)" (( "(") (binary_expression "pcVar37 + 0x35190c" (identifier "pcVar37") (+ "+") (number_literal "0x35190c")) () ")")))) (+ "+") (number_literal "0x6af4")) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x380) = dVar39;\n  }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x380) = dVar39;\n  }" ({ "{") (expression_statement "dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);" (assignment_expression "dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898)" (identifier "dVar39") (= "=") (cast_expression "(double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3527a8))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x3527a8)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x3527a8)" (* "*") (cast_expression "(code **)(pcVar37 + 0x3527a8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x3527a8)" (( "(") (binary_expression "pcVar37 + 0x3527a8" (identifier "pcVar37") (+ "+") (number_literal "0x3527a8")) () ")"))))) () ")")) (argument_list "(iVar3,auStack_898)" (( "(") (identifier "iVar3") (, ",") (identifier "auStack_898") () ")"))))) (; ";")) (if_statement "if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }" (if "if") (parenthesized_expression "(NAN(dVar39))" (( "(") (call_expression "NAN(dVar39)" (identifier "NAN") (argument_list "(dVar39)" (( "(") (identifier "dVar39") () ")"))) () ")")) (compound_statement "{\n      dVar39 = 0.0;\n    }" ({ "{") (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" (identifier "dVar39") (= "=") (number_literal "0.0")) (; ";")) (} "}")) (else_clause "else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }" (else "else") (if_statement "if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }" (if "if") (parenthesized_expression "(*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39)" (( "(") (binary_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39" (pointer_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960)" (* "*") (cast_expression "(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar37 + 0x35190c) + 0x7960)" (( "(") (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x7960" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" (* "*") (cast_expression "(int *)(pcVar37 + 0x35190c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x35190c)" (( "(") (binary_expression "pcVar37 + 0x35190c" (identifier "pcVar37") (+ "+") (number_literal "0x35190c")) () ")")))) (+ "+") (number_literal "0x7960")) () ")")))) (<= "<=") (identifier "dVar39")) () ")")) (compound_statement "{\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }" ({ "{") (if_statement "if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }" (if "if") (parenthesized_expression "(*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39)" (( "(") (binary_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39" (pointer_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968)" (* "*") (cast_expression "(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar37 + 0x35190c) + 0x7968)" (( "(") (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x7968" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" (* "*") (cast_expression "(int *)(pcVar37 + 0x35190c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x35190c)" (( "(") (binary_expression "pcVar37 + 0x35190c" (identifier "pcVar37") (+ "+") (number_literal "0x35190c")) () ")")))) (+ "+") (number_literal "0x7968")) () ")")))) (< "<") (identifier "dVar39")) () ")")) (compound_statement "{\n        dVar39 = 0.0;\n      }" ({ "{") (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" (identifier "dVar39") (= "=") (number_literal "0.0")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      dVar39 = 0.0;\n    }" (else "else") (compound_statement "{\n      dVar39 = 0.0;\n    }" ({ "{") (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" (identifier "dVar39") (= "=") (number_literal "0.0")) (; ";")) (} "}")))))) (expression_statement "*(double *)(iVar49 + 0x380) = dVar39;" (assignment_expression "*(double *)(iVar49 + 0x380) = dVar39" (pointer_expression "*(double *)(iVar49 + 0x380)" (* "*") (cast_expression "(double *)(iVar49 + 0x380)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x380)" (( "(") (binary_expression "iVar49 + 0x380" (identifier "iVar49") (+ "+") (number_literal "0x380")) () ")")))) (= "=") (identifier "dVar39")) (; ";")) (} "}"))) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b08);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b08)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b08)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" (* "*") (cast_expression "(code **)(pcVar37 + 0x3521a8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x3521a8)" (( "(") (binary_expression "pcVar37 + 0x3521a8" (identifier "pcVar37") (+ "+") (number_literal "0x3521a8")) () ")"))))) () ")")) (argument_list "(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b08)" (( "(") (identifier "iVar10") (, ",") (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6b08" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" (* "*") (cast_expression "(int *)(pcVar37 + 0x35190c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x35190c)" (( "(") (binary_expression "pcVar37 + 0x35190c" (identifier "pcVar37") (+ "+") (number_literal "0x35190c")) () ")")))) (+ "+") (number_literal "0x6b08")) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x378) = dVar39;\n  }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x378) = dVar39;\n  }" ({ "{") (expression_statement "dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);" (assignment_expression "dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898)" (identifier "dVar39") (= "=") (cast_expression "(double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3527a8))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x3527a8)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x3527a8)" (* "*") (cast_expression "(code **)(pcVar37 + 0x3527a8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x3527a8)" (( "(") (binary_expression "pcVar37 + 0x3527a8" (identifier "pcVar37") (+ "+") (number_literal "0x3527a8")) () ")"))))) () ")")) (argument_list "(iVar3,auStack_898)" (( "(") (identifier "iVar3") (, ",") (identifier "auStack_898") () ")"))))) (; ";")) (if_statement "if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }" (if "if") (parenthesized_expression "(NAN(dVar39))" (( "(") (call_expression "NAN(dVar39)" (identifier "NAN") (argument_list "(dVar39)" (( "(") (identifier "dVar39") () ")"))) () ")")) (compound_statement "{\n      dVar39 = 0.0;\n    }" ({ "{") (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" (identifier "dVar39") (= "=") (number_literal "0.0")) (; ";")) (} "}")) (else_clause "else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }" (else "else") (if_statement "if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }" (if "if") (parenthesized_expression "(*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39)" (( "(") (binary_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39" (pointer_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960)" (* "*") (cast_expression "(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar37 + 0x35190c) + 0x7960)" (( "(") (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x7960" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" (* "*") (cast_expression "(int *)(pcVar37 + 0x35190c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x35190c)" (( "(") (binary_expression "pcVar37 + 0x35190c" (identifier "pcVar37") (+ "+") (number_literal "0x35190c")) () ")")))) (+ "+") (number_literal "0x7960")) () ")")))) (<= "<=") (identifier "dVar39")) () ")")) (compound_statement "{\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }" ({ "{") (if_statement "if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }" (if "if") (parenthesized_expression "(*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39)" (( "(") (binary_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39" (pointer_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968)" (* "*") (cast_expression "(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar37 + 0x35190c) + 0x7968)" (( "(") (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x7968" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" (* "*") (cast_expression "(int *)(pcVar37 + 0x35190c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x35190c)" (( "(") (binary_expression "pcVar37 + 0x35190c" (identifier "pcVar37") (+ "+") (number_literal "0x35190c")) () ")")))) (+ "+") (number_literal "0x7968")) () ")")))) (< "<") (identifier "dVar39")) () ")")) (compound_statement "{\n        dVar39 = 0.0;\n      }" ({ "{") (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" (identifier "dVar39") (= "=") (number_literal "0.0")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      dVar39 = 0.0;\n    }" (else "else") (compound_statement "{\n      dVar39 = 0.0;\n    }" ({ "{") (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" (identifier "dVar39") (= "=") (number_literal "0.0")) (; ";")) (} "}")))))) (expression_statement "*(double *)(iVar49 + 0x378) = dVar39;" (assignment_expression "*(double *)(iVar49 + 0x378) = dVar39" (pointer_expression "*(double *)(iVar49 + 0x378)" (* "*") (cast_expression "(double *)(iVar49 + 0x378)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x378)" (( "(") (binary_expression "iVar49 + 0x378" (identifier "iVar49") (+ "+") (number_literal "0x378")) () ")")))) (= "=") (identifier "dVar39")) (; ";")) (} "}"))) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b1c);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b1c)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b1c)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" (* "*") (cast_expression "(code **)(pcVar37 + 0x3521a8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x3521a8)" (( "(") (binary_expression "pcVar37 + 0x3521a8" (identifier "pcVar37") (+ "+") (number_literal "0x3521a8")) () ")"))))) () ")")) (argument_list "(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b1c)" (( "(") (identifier "iVar10") (, ",") (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6b1c" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" (* "*") (cast_expression "(int *)(pcVar37 + 0x35190c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x35190c)" (( "(") (binary_expression "pcVar37 + 0x35190c" (identifier "pcVar37") (+ "+") (number_literal "0x35190c")) () ")")))) (+ "+") (number_literal "0x6b1c")) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x370) = dVar39;\n  }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x370) = dVar39;\n  }" ({ "{") (expression_statement "dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);" (assignment_expression "dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898)" (identifier "dVar39") (= "=") (cast_expression "(double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3527a8))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x3527a8)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x3527a8)" (* "*") (cast_expression "(code **)(pcVar37 + 0x3527a8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x3527a8)" (( "(") (binary_expression "pcVar37 + 0x3527a8" (identifier "pcVar37") (+ "+") (number_literal "0x3527a8")) () ")"))))) () ")")) (argument_list "(iVar3,auStack_898)" (( "(") (identifier "iVar3") (, ",") (identifier "auStack_898") () ")"))))) (; ";")) (if_statement "if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }" (if "if") (parenthesized_expression "(NAN(dVar39))" (( "(") (call_expression "NAN(dVar39)" (identifier "NAN") (argument_list "(dVar39)" (( "(") (identifier "dVar39") () ")"))) () ")")) (compound_statement "{\n      dVar39 = 0.0;\n    }" ({ "{") (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" (identifier "dVar39") (= "=") (number_literal "0.0")) (; ";")) (} "}")) (else_clause "else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }" (else "else") (if_statement "if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }" (if "if") (parenthesized_expression "(*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39)" (( "(") (binary_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39" (pointer_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960)" (* "*") (cast_expression "(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar37 + 0x35190c) + 0x7960)" (( "(") (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x7960" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" (* "*") (cast_expression "(int *)(pcVar37 + 0x35190c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x35190c)" (( "(") (binary_expression "pcVar37 + 0x35190c" (identifier "pcVar37") (+ "+") (number_literal "0x35190c")) () ")")))) (+ "+") (number_literal "0x7960")) () ")")))) (<= "<=") (identifier "dVar39")) () ")")) (compound_statement "{\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }" ({ "{") (if_statement "if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }" (if "if") (parenthesized_expression "(*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39)" (( "(") (binary_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39" (pointer_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968)" (* "*") (cast_expression "(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar37 + 0x35190c) + 0x7968)" (( "(") (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x7968" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" (* "*") (cast_expression "(int *)(pcVar37 + 0x35190c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x35190c)" (( "(") (binary_expression "pcVar37 + 0x35190c" (identifier "pcVar37") (+ "+") (number_literal "0x35190c")) () ")")))) (+ "+") (number_literal "0x7968")) () ")")))) (< "<") (identifier "dVar39")) () ")")) (compound_statement "{\n        dVar39 = 0.0;\n      }" ({ "{") (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" (identifier "dVar39") (= "=") (number_literal "0.0")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      dVar39 = 0.0;\n    }" (else "else") (compound_statement "{\n      dVar39 = 0.0;\n    }" ({ "{") (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" (identifier "dVar39") (= "=") (number_literal "0.0")) (; ";")) (} "}")))))) (expression_statement "*(double *)(iVar49 + 0x370) = dVar39;" (assignment_expression "*(double *)(iVar49 + 0x370) = dVar39" (pointer_expression "*(double *)(iVar49 + 0x370)" (* "*") (cast_expression "(double *)(iVar49 + 0x370)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x370)" (( "(") (binary_expression "iVar49 + 0x370" (identifier "iVar49") (+ "+") (number_literal "0x370")) () ")")))) (= "=") (identifier "dVar39")) (; ";")) (} "}"))) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b24);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b24)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b24)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" (* "*") (cast_expression "(code **)(pcVar37 + 0x3521a8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x3521a8)" (( "(") (binary_expression "pcVar37 + 0x3521a8" (identifier "pcVar37") (+ "+") (number_literal "0x3521a8")) () ")"))))) () ")")) (argument_list "(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b24)" (( "(") (identifier "iVar10") (, ",") (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6b24" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" (* "*") (cast_expression "(int *)(pcVar37 + 0x35190c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x35190c)" (( "(") (binary_expression "pcVar37 + 0x35190c" (identifier "pcVar37") (+ "+") (number_literal "0x35190c")) () ")")))) (+ "+") (number_literal "0x6b24")) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar33,pdVar29);\n  }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar33,pdVar29);\n  }" ({ "{") (expression_statement "(**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar33,pdVar29);" (call_expression "(**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar33,pdVar29)" (parenthesized_expression "(**(code **)(pcVar37 + 0x351e54))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x351e54)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x351e54)" (* "*") (cast_expression "(code **)(pcVar37 + 0x351e54)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x351e54)" (( "(") (binary_expression "pcVar37 + 0x351e54" (identifier "pcVar37") (+ "+") (number_literal "0x351e54")) () ")"))))) () ")")) (argument_list "(iVar3,0x7fffffff,ppiVar33,pdVar29)" (( "(") (identifier "iVar3") (, ",") (number_literal "0x7fffffff") (, ",") (identifier "ppiVar33") (, ",") (identifier "pdVar29") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b2c);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b2c)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b2c)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" (* "*") (cast_expression "(code **)(pcVar37 + 0x3521a8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x3521a8)" (( "(") (binary_expression "pcVar37 + 0x3521a8" (identifier "pcVar37") (+ "+") (number_literal "0x3521a8")) () ")"))))) () ")")) (argument_list "(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b2c)" (( "(") (identifier "iVar10") (, ",") (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6b2c" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" (* "*") (cast_expression "(int *)(pcVar37 + 0x35190c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x35190c)" (( "(") (binary_expression "pcVar37 + 0x35190c" (identifier "pcVar37") (+ "+") (number_literal "0x35190c")) () ")")))) (+ "+") (number_literal "0x6b2c")) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x1b0) = dVar39;\n  }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);\n    if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }\n    *(double *)(iVar49 + 0x1b0) = dVar39;\n  }" ({ "{") (expression_statement "dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);" (assignment_expression "dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898)" (identifier "dVar39") (= "=") (cast_expression "(double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3527a8))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x3527a8)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x3527a8)" (* "*") (cast_expression "(code **)(pcVar37 + 0x3527a8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x3527a8)" (( "(") (binary_expression "pcVar37 + 0x3527a8" (identifier "pcVar37") (+ "+") (number_literal "0x3527a8")) () ")"))))) () ")")) (argument_list "(iVar3,auStack_898)" (( "(") (identifier "iVar3") (, ",") (identifier "auStack_898") () ")"))))) (; ";")) (if_statement "if (NAN(dVar39)) {\n      dVar39 = 0.0;\n    }\n    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }" (if "if") (parenthesized_expression "(NAN(dVar39))" (( "(") (call_expression "NAN(dVar39)" (identifier "NAN") (argument_list "(dVar39)" (( "(") (identifier "dVar39") () ")"))) () ")")) (compound_statement "{\n      dVar39 = 0.0;\n    }" ({ "{") (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" (identifier "dVar39") (= "=") (number_literal "0.0")) (; ";")) (} "}")) (else_clause "else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }" (else "else") (if_statement "if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }\n    else {\n      dVar39 = 0.0;\n    }" (if "if") (parenthesized_expression "(*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39)" (( "(") (binary_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39" (pointer_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960)" (* "*") (cast_expression "(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar37 + 0x35190c) + 0x7960)" (( "(") (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x7960" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" (* "*") (cast_expression "(int *)(pcVar37 + 0x35190c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x35190c)" (( "(") (binary_expression "pcVar37 + 0x35190c" (identifier "pcVar37") (+ "+") (number_literal "0x35190c")) () ")")))) (+ "+") (number_literal "0x7960")) () ")")))) (<= "<=") (identifier "dVar39")) () ")")) (compound_statement "{\n      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }\n    }" ({ "{") (if_statement "if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {\n        dVar39 = 0.0;\n      }" (if "if") (parenthesized_expression "(*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39)" (( "(") (binary_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39" (pointer_expression "*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968)" (* "*") (cast_expression "(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar37 + 0x35190c) + 0x7968)" (( "(") (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x7968" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" (* "*") (cast_expression "(int *)(pcVar37 + 0x35190c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x35190c)" (( "(") (binary_expression "pcVar37 + 0x35190c" (identifier "pcVar37") (+ "+") (number_literal "0x35190c")) () ")")))) (+ "+") (number_literal "0x7968")) () ")")))) (< "<") (identifier "dVar39")) () ")")) (compound_statement "{\n        dVar39 = 0.0;\n      }" ({ "{") (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" (identifier "dVar39") (= "=") (number_literal "0.0")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      dVar39 = 0.0;\n    }" (else "else") (compound_statement "{\n      dVar39 = 0.0;\n    }" ({ "{") (expression_statement "dVar39 = 0.0;" (assignment_expression "dVar39 = 0.0" (identifier "dVar39") (= "=") (number_literal "0.0")) (; ";")) (} "}")))))) (expression_statement "*(double *)(iVar49 + 0x1b0) = dVar39;" (assignment_expression "*(double *)(iVar49 + 0x1b0) = dVar39" (pointer_expression "*(double *)(iVar49 + 0x1b0)" (* "*") (cast_expression "(double *)(iVar49 + 0x1b0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x1b0)" (( "(") (binary_expression "iVar49 + 0x1b0" (identifier "iVar49") (+ "+") (number_literal "0x1b0")) () ")")))) (= "=") (identifier "dVar39")) (; ";")) (} "}"))) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b38);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b38)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b38)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" (* "*") (cast_expression "(code **)(pcVar37 + 0x3521a8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x3521a8)" (( "(") (binary_expression "pcVar37 + 0x3521a8" (identifier "pcVar37") (+ "+") (number_literal "0x3521a8")) () ")"))))) () ")")) (argument_list "(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b38)" (( "(") (identifier "iVar10") (, ",") (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6b38" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" (* "*") (cast_expression "(int *)(pcVar37 + 0x35190c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x35190c)" (( "(") (binary_expression "pcVar37 + 0x35190c" (identifier "pcVar37") (+ "+") (number_literal "0x35190c")) () ")")))) (+ "+") (number_literal "0x6b38")) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n    uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x47,0,iVar3);\n    *(undefined4 *)(iVar49 + 0x274) = uVar4;\n  }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x47,0,iVar3);\n    *(undefined4 *)(iVar49 + 0x274) = uVar4;\n  }" ({ "{") (expression_statement "uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x47,0,iVar3);" (assignment_expression "uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x47,0,iVar3)" (identifier "uVar4") (= "=") (call_expression "(**(code **)(pcVar37 + 0x3526d4))(0x47,0,iVar3)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3526d4))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x3526d4)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x3526d4)" (* "*") (cast_expression "(code **)(pcVar37 + 0x3526d4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x3526d4)" (( "(") (binary_expression "pcVar37 + 0x3526d4" (identifier "pcVar37") (+ "+") (number_literal "0x3526d4")) () ")"))))) () ")")) (argument_list "(0x47,0,iVar3)" (( "(") (number_literal "0x47") (, ",") (number_literal "0") (, ",") (identifier "iVar3") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar49 + 0x274) = uVar4;" (assignment_expression "*(undefined4 *)(iVar49 + 0x274) = uVar4" (pointer_expression "*(undefined4 *)(iVar49 + 0x274)" (* "*") (cast_expression "(undefined4 *)(iVar49 + 0x274)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x274)" (( "(") (binary_expression "iVar49 + 0x274" (identifier "iVar49") (+ "+") (number_literal "0x274")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (} "}"))) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b40);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b40)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b40)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" (* "*") (cast_expression "(code **)(pcVar37 + 0x3521a8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x3521a8)" (( "(") (binary_expression "pcVar37 + 0x3521a8" (identifier "pcVar37") (+ "+") (number_literal "0x3521a8")) () ")"))))) () ")")) (argument_list "(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b40)" (( "(") (identifier "iVar10") (, ",") (binary_expression "*(int *)(pcVar37 + 0x35190c) + 0x6b40" (pointer_expression "*(int *)(pcVar37 + 0x35190c)" (* "*") (cast_expression "(int *)(pcVar37 + 0x35190c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x35190c)" (( "(") (binary_expression "pcVar37 + 0x35190c" (identifier "pcVar37") (+ "+") (number_literal "0x35190c")) () ")")))) (+ "+") (number_literal "0x6b40")) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,iVar49 + 0xf8,pdVar29);\n  }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,iVar49 + 0xf8,pdVar29);\n  }" ({ "{") (expression_statement "(**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,iVar49 + 0xf8,pdVar29);" (call_expression "(**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,iVar49 + 0xf8,pdVar29)" (parenthesized_expression "(**(code **)(pcVar37 + 0x351e54))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x351e54)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x351e54)" (* "*") (cast_expression "(code **)(pcVar37 + 0x351e54)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x351e54)" (( "(") (binary_expression "pcVar37 + 0x351e54" (identifier "pcVar37") (+ "+") (number_literal "0x351e54")) () ")"))))) () ")")) (argument_list "(iVar3,0x7fffffff,iVar49 + 0xf8,pdVar29)" (( "(") (identifier "iVar3") (, ",") (number_literal "0x7fffffff") (, ",") (binary_expression "iVar49 + 0xf8" (identifier "iVar49") (+ "+") (number_literal "0xf8")) (, ",") (identifier "pdVar29") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x351920) + -0x3000);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x351920) + -0x3000)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x351920) + -0x3000)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3521a8))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x3521a8)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x3521a8)" (* "*") (cast_expression "(code **)(pcVar37 + 0x3521a8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x3521a8)" (( "(") (binary_expression "pcVar37 + 0x3521a8" (identifier "pcVar37") (+ "+") (number_literal "0x3521a8")) () ")"))))) () ")")) (argument_list "(iVar10,*(int *)(pcVar37 + 0x351920) + -0x3000)" (( "(") (identifier "iVar10") (, ",") (binary_expression "*(int *)(pcVar37 + 0x351920) + -0x3000" (pointer_expression "*(int *)(pcVar37 + 0x351920)" (* "*") (cast_expression "(int *)(pcVar37 + 0x351920)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar37 + 0x351920)" (( "(") (binary_expression "pcVar37 + 0x351920" (identifier "pcVar37") (+ "+") (number_literal "0x351920")) () ")")))) (+ "+") (number_literal "-0x3000")) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n    iVar28 = (**(code **)(pcVar37 + 0x3526d4))(0x4c,0,iVar3);\n    if (iVar28 == -1) {\n      uVar4 = (**(code **)(pcVar37 + 0x352380))(iVar3,0,10);\n      *(undefined4 *)(iVar49 + 0x27c) = uVar4;\n    }\n    else {\n      *(int *)(iVar49 + 0x27c) = iVar28;\n    }\n  }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar28 = (**(code **)(pcVar37 + 0x3526d4))(0x4c,0,iVar3);\n    if (iVar28 == -1) {\n      uVar4 = (**(code **)(pcVar37 + 0x352380))(iVar3,0,10);\n      *(undefined4 *)(iVar49 + 0x27c) = uVar4;\n    }\n    else {\n      *(int *)(iVar49 + 0x27c) = iVar28;\n    }\n  }" ({ "{") (expression_statement "iVar28 = (**(code **)(pcVar37 + 0x3526d4))(0x4c,0,iVar3);" (assignment_expression "iVar28 = (**(code **)(pcVar37 + 0x3526d4))(0x4c,0,iVar3)" (identifier "iVar28") (= "=") (call_expression "(**(code **)(pcVar37 + 0x3526d4))(0x4c,0,iVar3)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3526d4))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x3526d4)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x3526d4)" (* "*") (cast_expression "(code **)(pcVar37 + 0x3526d4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x3526d4)" (( "(") (binary_expression "pcVar37 + 0x3526d4" (identifier "pcVar37") (+ "+") (number_literal "0x3526d4")) () ")"))))) () ")")) (argument_list "(0x4c,0,iVar3)" (( "(") (number_literal "0x4c") (, ",") (number_literal "0") (, ",") (identifier "iVar3") () ")")))) (; ";")) (if_statement "if (iVar28 == -1) {\n      uVar4 = (**(code **)(pcVar37 + 0x352380))(iVar3,0,10);\n      *(undefined4 *)(iVar49 + 0x27c) = uVar4;\n    }\n    else {\n      *(int *)(iVar49 + 0x27c) = iVar28;\n    }" (if "if") (parenthesized_expression "(iVar28 == -1)" (( "(") (binary_expression "iVar28 == -1" (identifier "iVar28") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n      uVar4 = (**(code **)(pcVar37 + 0x352380))(iVar3,0,10);\n      *(undefined4 *)(iVar49 + 0x27c) = uVar4;\n    }" ({ "{") (expression_statement "uVar4 = (**(code **)(pcVar37 + 0x352380))(iVar3,0,10);" (assignment_expression "uVar4 = (**(code **)(pcVar37 + 0x352380))(iVar3,0,10)" (identifier "uVar4") (= "=") (call_expression "(**(code **)(pcVar37 + 0x352380))(iVar3,0,10)" (parenthesized_expression "(**(code **)(pcVar37 + 0x352380))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x352380)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x352380)" (* "*") (cast_expression "(code **)(pcVar37 + 0x352380)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x352380)" (( "(") (binary_expression "pcVar37 + 0x352380" (identifier "pcVar37") (+ "+") (number_literal "0x352380")) () ")"))))) () ")")) (argument_list "(iVar3,0,10)" (( "(") (identifier "iVar3") (, ",") (number_literal "0") (, ",") (number_literal "10") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar49 + 0x27c) = uVar4;" (assignment_expression "*(undefined4 *)(iVar49 + 0x27c) = uVar4" (pointer_expression "*(undefined4 *)(iVar49 + 0x27c)" (* "*") (cast_expression "(undefined4 *)(iVar49 + 0x27c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x27c)" (( "(") (binary_expression "iVar49 + 0x27c" (identifier "iVar49") (+ "+") (number_literal "0x27c")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (} "}")) (else_clause "else {\n      *(int *)(iVar49 + 0x27c) = iVar28;\n    }" (else "else") (compound_statement "{\n      *(int *)(iVar49 + 0x27c) = iVar28;\n    }" ({ "{") (expression_statement "*(int *)(iVar49 + 0x27c) = iVar28;" (assignment_expression "*(int *)(iVar49 + 0x27c) = iVar28" (pointer_expression "*(int *)(iVar49 + 0x27c)" (* "*") (cast_expression "(int *)(iVar49 + 0x27c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x27c)" (( "(") (binary_expression "iVar49 + 0x27c" (identifier "iVar49") (+ "+") (number_literal "0x27c")) () ")")))) (= "=") (identifier "iVar28")) (; ";")) (} "}")))) (} "}"))) (expression_statement "(**(code **)(pcVar37 + 0x351d90))(pdVar29);" (call_expression "(**(code **)(pcVar37 + 0x351d90))(pdVar29)" (parenthesized_expression "(**(code **)(pcVar37 + 0x351d90))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x351d90)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x351d90)" (* "*") (cast_expression "(code **)(pcVar37 + 0x351d90)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x351d90)" (( "(") (binary_expression "pcVar37 + 0x351d90" (identifier "pcVar37") (+ "+") (number_literal "0x351d90")) () ")"))))) () ")")) (argument_list "(pdVar29)" (( "(") (identifier "pdVar29") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar49 + 0x390) = 0xabacadab;" (assignment_expression "*(undefined4 *)(iVar49 + 0x390) = 0xabacadab" (pointer_expression "*(undefined4 *)(iVar49 + 0x390)" (* "*") (cast_expression "(undefined4 *)(iVar49 + 0x390)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar49 + 0x390)" (( "(") (binary_expression "iVar49 + 0x390" (identifier "iVar49") (+ "+") (number_literal "0x390")) () ")")))) (= "=") (number_literal "0xabacadab")) (; ";")) (expression_statement "(**(code **)(pcVar37 + 0x352628))(iVar10);" (call_expression "(**(code **)(pcVar37 + 0x352628))(iVar10)" (parenthesized_expression "(**(code **)(pcVar37 + 0x352628))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x352628)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x352628)" (* "*") (cast_expression "(code **)(pcVar37 + 0x352628)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x352628)" (( "(") (binary_expression "pcVar37 + 0x352628" (identifier "pcVar37") (+ "+") (number_literal "0x352628")) () ")"))))) () ")")) (argument_list "(iVar10)" (( "(") (identifier "iVar10") () ")"))) (; ";")) (if_statement "if (iStack_894 == **(int **)(pcVar37 + 0x352270)) {\n    return **(int **)(pcVar37 + 0x352270);\n  }" (if "if") (parenthesized_expression "(iStack_894 == **(int **)(pcVar37 + 0x352270))" (( "(") (binary_expression "iStack_894 == **(int **)(pcVar37 + 0x352270)" (identifier "iStack_894") (== "==") (pointer_expression "**(int **)(pcVar37 + 0x352270)" (* "*") (pointer_expression "*(int **)(pcVar37 + 0x352270)" (* "*") (cast_expression "(int **)(pcVar37 + 0x352270)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x352270)" (( "(") (binary_expression "pcVar37 + 0x352270" (identifier "pcVar37") (+ "+") (number_literal "0x352270")) () ")")))))) () ")")) (compound_statement "{\n    return **(int **)(pcVar37 + 0x352270);\n  }" ({ "{") (return_statement "return **(int **)(pcVar37 + 0x352270);" (return "return") (pointer_expression "**(int **)(pcVar37 + 0x352270)" (* "*") (pointer_expression "*(int **)(pcVar37 + 0x352270)" (* "*") (cast_expression "(int **)(pcVar37 + 0x352270)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x352270)" (( "(") (binary_expression "pcVar37 + 0x352270" (identifier "pcVar37") (+ "+") (number_literal "0x352270")) () ")"))))) (; ";")) (} "}"))) (expression_statement "pcVar37 = *(code **)(pcVar37 + 0x3520a4);" (assignment_expression "pcVar37 = *(code **)(pcVar37 + 0x3520a4)" (identifier "pcVar37") (= "=") (pointer_expression "*(code **)(pcVar37 + 0x3520a4)" (* "*") (cast_expression "(code **)(pcVar37 + 0x3520a4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x3520a4)" (( "(") (binary_expression "pcVar37 + 0x3520a4" (identifier "pcVar37") (+ "+") (number_literal "0x3520a4")) () ")"))))) (; ";")) (expression_statement "(*pcVar37)();" (call_expression "(*pcVar37)()" (parenthesized_expression "(*pcVar37)" (( "(") (pointer_expression "*pcVar37" (* "*") (identifier "pcVar37")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar3 = (**(code **)(pcVar37 + 0x351be4))(0x3c0);" (assignment_expression "iVar3 = (**(code **)(pcVar37 + 0x351be4))(0x3c0)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar37 + 0x351be4))(0x3c0)" (parenthesized_expression "(**(code **)(pcVar37 + 0x351be4))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x351be4)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x351be4)" (* "*") (cast_expression "(code **)(pcVar37 + 0x351be4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x351be4)" (( "(") (binary_expression "pcVar37 + 0x351be4" (identifier "pcVar37") (+ "+") (number_literal "0x351be4")) () ")"))))) () ")")) (argument_list "(0x3c0)" (( "(") (number_literal "0x3c0") () ")")))) (; ";")) (expression_statement "(**(code **)(pcVar37 + 0x3518b4))(0,iVar3);" (call_expression "(**(code **)(pcVar37 + 0x3518b4))(0,iVar3)" (parenthesized_expression "(**(code **)(pcVar37 + 0x3518b4))" (( "(") (pointer_expression "**(code **)(pcVar37 + 0x3518b4)" (* "*") (pointer_expression "*(code **)(pcVar37 + 0x3518b4)" (* "*") (cast_expression "(code **)(pcVar37 + 0x3518b4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar37 + 0x3518b4)" (( "(") (binary_expression "pcVar37 + 0x3518b4" (identifier "pcVar37") (+ "+") (number_literal "0x3518b4")) () ")"))))) () ")")) (argument_list "(0,iVar3)" (( "(") (number_literal "0") (, ",") (identifier "iVar3") () ")"))) (; ";")) (return_statement "return iVar3;" (return "return") (identifier "iVar3") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (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: (identifier)) (declaration type: (primitive_type) 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: (type_identifier) declarator: (pointer_declarator 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: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator 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: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator 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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator 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: (type_identifier) 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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) 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: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator 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: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) 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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator 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: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (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: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (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: (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: (type_identifier) 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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (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: (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: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (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: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (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)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (unary_expression argument: (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_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: (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: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (unary_expression argument: (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (unary_expression argument: (identifier)) right: (identifier)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_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: (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: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (unary_expression argument: (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (unary_expression argument: (identifier)) right: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier)))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_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: (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: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (unary_expression argument: (identifier)) right: (identifier)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (unary_expression argument: (identifier)) right: (identifier)))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_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))))))) consequence: (goto_statement label: (statement_identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (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: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (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 (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (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 (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (for_statement condition: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (pointer_expression argument: (identifier))) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) right: (subscript_expression argument: (identifier) index: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_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) (number_literal) (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (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: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_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: (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: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_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: (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: (binary_expression left: (pointer_expression argument: (cast_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: (subscript_expression argument: (identifier) index: (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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (binary_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (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: (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: (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)))))))) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression 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: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))))) 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: (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: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier)))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier)))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier)))) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier)))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (pointer_expression argument: (cast_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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (pointer_expression argument: (cast_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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (pointer_expression argument: (cast_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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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 (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_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: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (pointer_expression argument: (cast_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))))) (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: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (binary_expression left: (identifier) right: (number_literal)))) (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)) 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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)) 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: (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: (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: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (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)))) (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: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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 (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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 (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (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) (identifier) (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: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) right: (identifier)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))) right: (identifier)) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (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: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (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: (number_literal)))))) right: (identifier)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier)))))) alternative: (else_clause (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: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (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: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) 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: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) right: (pointer_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: (binary_expression left: (identifier) right: (identifier)) right: (identifier))) consequence: (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) 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: (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: (call_expression function: (identifier) arguments: (argument_list (identifier))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (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 (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (identifier) field: (field_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: (call_expression function: (identifier) arguments: (argument_list (identifier))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) 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: (parenthesized_expression (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (binary_expression left: (number_literal) right: (identifier)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (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)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (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: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) consequence: (break_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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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: (identifier))))))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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 (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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 (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: (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: (identifier)) right: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (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 (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: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (number_literal))) (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (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: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_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: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression 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))))) (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))))))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (identifier)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier))))))) 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: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))))) alternative: (else_clause (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: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (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))))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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: (pointer_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 (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (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 (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (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)))) alternative: (else_clause (compound_statement (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: (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) (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)))))) (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: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal))))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_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: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (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))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression 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))) 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: (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: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))))))))) arguments: (argument_list)))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (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)))) alternative: (else_clause (compound_statement (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: (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) (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)))))) (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: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal))))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_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: (parenthesized_expression (binary_expression left: (identifier) right: (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: (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression 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))) 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: (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: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))))))))) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))) (return_statement (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_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: (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: (identifier)))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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 (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))))))))) (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 (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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)))) (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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 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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (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: (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 (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: (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 (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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 (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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) (identifier) (identifier) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (number_literal) right: (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: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (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 (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (pointer_expression argument: (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)))))))))) (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 (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))) right: (parenthesized_expression (comma_expression left: (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 (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (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)))) alternative: (else_clause (compound_statement (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: (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) (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (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)))))) (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (identifier))) right: (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (pointer_expression argument: (cast_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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (pointer_expression argument: (cast_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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (pointer_expression argument: (cast_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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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 (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (pointer_expression argument: (cast_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))))))) (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: (binary_expression left: (pointer_expression argument: (cast_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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (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: (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 (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))))))))) (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 (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (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: (type_identifier) 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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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 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 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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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) (subscript_expression argument: (identifier) index: (number_literal))))))) (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: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator 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))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (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: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_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: (number_literal) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (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: (identifier))))) alternative: (else_clause (compound_statement (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: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (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: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_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))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier)))) right: (identifier)) right: (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_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))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (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)))))))) (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 (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (identifier) (identifier) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_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))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) right: (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: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_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))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (goto_statement label: (statement_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: (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (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))))))) right: (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)))))))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (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: (identifier)))) (goto_statement label: (statement_identifier))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (parenthesized_expression (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)))))) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (field_expression argument: (identifier) field: (field_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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (do_statement body: (compound_statement (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 (identifier) (number_literal) (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (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: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_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: (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: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_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: (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: (binary_expression left: (pointer_expression argument: (cast_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: (subscript_expression argument: (identifier) index: (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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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 (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))) right: (parenthesized_expression (comma_expression left: (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 (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (identifier))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (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: (identifier))))) alternative: (else_clause (compound_statement (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: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (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: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier)))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (pointer_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 (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 (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) right: (identifier)))) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (goto_statement label: (statement_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))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (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) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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) (subscript_expression argument: (identifier) index: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (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: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (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: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (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: (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: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (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: (identifier)))))) (goto_statement label: (statement_identifier)))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (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 (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))) right: (parenthesized_expression (comma_expression left: (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 (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (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: (identifier))))) alternative: (else_clause (compound_statement (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: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (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: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier)))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (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 (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) right: (identifier)))) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (goto_statement label: (statement_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: (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (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: (identifier)))) (goto_statement label: (statement_identifier))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_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: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (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: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (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: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (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: (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: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (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: (identifier)))))) (goto_statement label: (statement_identifier)))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (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 (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))) right: (parenthesized_expression (comma_expression left: (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 (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (false)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (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: (identifier))))) alternative: (else_clause (compound_statement (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: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (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: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier)))) right: (identifier)) right: (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (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))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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 (unary_expression argument: (identifier)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (goto_statement label: (statement_identifier)))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (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: (identifier)))) (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (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) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (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) (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))))))))))) 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: (field_expression argument: (identifier) field: (field_identifier)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (identifier) field: (field_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 (unary_expression argument: (identifier)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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))))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (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: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) right: (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (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: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (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: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (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: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (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: (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: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (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: (identifier)))))) (goto_statement label: (statement_identifier)))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (binary_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_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: (subscript_expression argument: (identifier) index: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier)))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier)))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier)))) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier)))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (pointer_expression argument: (cast_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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (pointer_expression argument: (cast_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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (pointer_expression argument: (cast_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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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 (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (pointer_expression argument: (cast_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))))) (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: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) 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))))))))))) (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))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (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 (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))))))))) (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 (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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 (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 (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal) (binary_expression left: (pointer_expression argument: (cast_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))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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 (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (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)))))))) alternative: (else_clause (compound_statement (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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 (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 (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: (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) 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)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier))))) (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 (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: (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))))) (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: (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)))) (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: (identifier))))) (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 (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: (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))))) (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: (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)))) (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: (identifier))))) (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: (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)))) (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: (identifier))))) (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 (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: (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))))) (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: (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)))) (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: (identifier))))) (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 (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: (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))))) (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 (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: (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))))) (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: (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)))) (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: (identifier))))) (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 (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: (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))))) (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 (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: (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))))) (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: (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)))) (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: (identifier))))) (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: (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)))) (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: (identifier))))) (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: (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)))) (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: (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: (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))))) (return_statement (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) 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: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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 (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 (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (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 (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) 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 (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (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 (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (labeled_statement label: (statement_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 (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (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 (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) consequence: (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: (pointer_expression argument: (cast_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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) right: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (field_expression argument: (identifier) field: (field_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (field_expression argument: (identifier) field: (field_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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)))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (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: (pointer_expression argument: (cast_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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (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: (pointer_expression argument: (cast_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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) consequence: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (unary_expression argument: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (unary_expression argument: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (unary_expression argument: (subscript_expression argument: (identifier) index: (number_literal)))) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (unary_expression argument: (subscript_expression argument: (identifier) index: (number_literal)))) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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 (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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 (binary_expression left: (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 (binary_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))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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) (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (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)))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (parenthesized_expression (comma_expression left: (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)))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (comma_expression left: (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)))) right: (binary_expression left: (identifier) right: (number_literal)))))))))) consequence: (compound_statement (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 (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (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 (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (parenthesized_expression (comma_expression left: (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 (number_literal))) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) consequence: (compound_statement (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 (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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 (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) 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 (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) 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: (number_literal)))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (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 (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))) consequence: (compound_statement (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 (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (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 (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (identifier) (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) 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 (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 (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_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 (return_statement (identifier)))) (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 (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (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 (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) 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: (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 (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) 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: (binary_expression left: (pointer_expression argument: (cast_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)))) (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 (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (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 (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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 (subscript_expression argument: (identifier) index: (number_literal)) (subscript_expression argument: (identifier) index: (number_literal)) (number_literal) (binary_expression left: (pointer_expression argument: (cast_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)))) (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) alternative: (else_clause (compound_statement (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: (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (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: (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: (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (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)))) right: (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: (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (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)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (goto_statement label: (statement_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 (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (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 (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (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 (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (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 (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_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 (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) 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 (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (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 (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))) consequence: (compound_statement (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 (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (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 (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (pointer_expression argument: (identifier)) (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) 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 (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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 (return_statement (identifier)))) (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 (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (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 (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (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 (binary_expression left: (identifier) right: (number_literal)) (number_literal) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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 (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (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 (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (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 (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (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) (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))))) (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 (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: (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: (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 (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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 (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal) (identifier) (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: (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: (pointer_expression argument: (cast_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: (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: (pointer_expression argument: (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: (pointer_expression argument: (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: (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: (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))) (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: (pointer_expression argument: (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: (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 (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: (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: (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))) (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: (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: (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))))) (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: (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: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (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: (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: (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: (cast_expression type: (type_descriptor type: (type_identifier) 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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (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))) (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: (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: (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: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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 (number_literal) (number_literal) (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: (identifier))) (goto_statement label: (statement_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))) (labeled_statement label: (statement_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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (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 (binary_expression left: (identifier) right: (number_literal)) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (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 (binary_expression left: (identifier) right: (number_literal)) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (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) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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 (number_literal) (number_literal) (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: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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)))))) (if_statement condition: (parenthesized_expression (call_expression function: (identifier) arguments: (argument_list (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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)))))) (if_statement condition: (parenthesized_expression (call_expression function: (identifier) arguments: (argument_list (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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)))))) (if_statement condition: (parenthesized_expression (call_expression function: (identifier) arguments: (argument_list (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (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) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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)))))) (if_statement condition: (parenthesized_expression (call_expression function: (identifier) arguments: (argument_list (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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 (number_literal) (number_literal) (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: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (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) (binary_expression left: (identifier) right: (number_literal)) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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 (number_literal) (number_literal) (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: (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) (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)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (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 (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 (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)))) (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 (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))))))))) (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: (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 (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 (number_literal) (identifier)))) (return_statement (identifier)))))

int MASKED(undefined4 *param_1)

{
  bool bVar1;
  int *piVar2;
  int iVar3;
  undefined4 uVar4;
  double *pdVar5;
  undefined *puVar6;
  int *piVar7;
  uint uVar8;
  undefined4 *puVar9;
  int iVar10;
  int *piVar11;
  int iVar12;
  undefined4 *puVar13;
  double *pdVar14;
  int extraout_v1;
  double *extraout_v1_00;
  int extraout_v1_01;
  int extraout_v1_02;
  double *extraout_v1_03;
  int extraout_v1_04;
  int extraout_v1_05;
  int extraout_v1_06;
  int extraout_v1_07;
  int extraout_v1_08;
  undefined4 *puVar15;
  double *pdVar16;
  int *piVar17;
  uint uVar18;
  int *piVar19;
  undefined8 *puVar20;
  undefined4 *puVar21;
  uint uVar22;
  uint *puVar23;
  int **ppiVar24;
  undefined4 uVar25;
  uint uVar26;
  undefined4 uVar27;
  int iVar28;
  double *pdVar29;
  double *pdVar30;
  int unaff_s2;
  int iVar31;
  uint *puVar32;
  double *unaff_s3;
  int **ppiVar33;
  int *unaff_s4;
  int **ppiVar34;
  undefined1 *puVar35;
  double *unaff_s6;
  uint unaff_s7;
  undefined *puVar36;
  code *pcVar37;
  code *pcVar38;
  double dVar39;
  double dVar40;
  double dVar41;
  float fVar43;
  double dVar42;
  double dVar44;
  double dVar45;
  double dVar46;
  double in_f20_21;
  double dVar47;
  double in_f22_23;
  double in_f24_25;
  double in_f26_27;
  double in_f28_29;
  double in_f30_31;
  int *piVar48;
  int iVar49;
  int iVar50;
  undefined8 uVar51;
  undefined1 auStack_898 [4];
  int iStack_894;
  undefined8 *puStack_88c;
  int iStack_888;
  double *pdStack_884;
  int **ppiStack_880;
  int **ppiStack_87c;
  undefined1 *puStack_878;
  code *pcStack_874;
  int iStack_860;
  code *pcStack_858;
  undefined4 uStack_850;
  code *pcStack_84c;
  int iStack_838;
  int iStack_834;
  code *pcStack_830;
  int *piStack_828;
  int *piStack_824;
  int *piStack_820;
  int *piStack_81c;
  double dStack_818;
  int iStack_810;
  double *pdStack_80c;
  undefined4 uStack_808;
  int **ppiStack_804;
  int **ppiStack_800;
  undefined1 *puStack_7fc;
  int **ppiStack_7f8;
  int iStack_7f4;
  undefined1 auStack_7f0 [92];
  undefined8 *puStack_794;
  double *pdStack_790;
  int *piStack_78c;
  uint *puStack_788;
  double *pdStack_784;
  int iStack_780;
  code *pcStack_77c;
  double dStack_778;
  int iStack_760;
  int *piStack_75c;
  code *pcStack_758;
  double dStack_750;
  double dStack_748;
  double dStack_740;
  double dStack_738;
  int *piStack_72c;
  uint *puStack_728;
  double *pdStack_724;
  double *pdStack_720;
  undefined1 *puStack_71c;
  undefined4 uStack_718;
  undefined1 *puStack_714;
  double *pdStack_710;
  int iStack_70c;
  int iStack_708;
  int iStack_704;
  double dStack_700;
  double dStack_6f8;
  double dStack_6f0;
  double dStack_6e8;
  double dStack_6e0;
  double dStack_6d8;
  undefined1 auStack_6d0 [88];
  undefined8 uStack_678;
  undefined4 uStack_670;
  undefined4 uStack_66c;
  double dStack_668;
  undefined4 uStack_660;
  undefined4 uStack_65c;
  double dStack_658;
  double dStack_650;
  undefined4 uStack_648;
  undefined4 uStack_644;
  double dStack_640;
  undefined8 uStack_638;
  double *pdStack_62c;
  int *piStack_628;
  uint *puStack_624;
  double *pdStack_620;
  int iStack_61c;
  undefined1 *puStack_618;
  double *pdStack_614;
  uint uStack_610;
  code *pcStack_60c;
  double dStack_608;
  double dStack_600;
  double dStack_5f8;
  double dStack_5f0;
  int iStack_5d8;
  code *pcStack_5d0;
  double *pdStack_5c8;
  code *pcStack_5c4;
  undefined4 uStack_5b0;
  uint uStack_5ac;
  code *pcStack_5a8;
  undefined8 uStack_5a0;
  double dStack_598;
  double dStack_590;
  double *pdStack_588;
  int iStack_584;
  double dStack_580;
  double dStack_578;
  int iStack_570;
  undefined1 *puStack_56c;
  double *pdStack_568;
  uint uStack_564;
  double dStack_560;
  double dStack_558;
  uint uStack_550;
  undefined4 uStack_54c;
  double dStack_548;
  double dStack_540;
  uint uStack_538;
  undefined4 uStack_534;
  double dStack_530;
  uint uStack_528;
  undefined4 uStack_524;
  double dStack_520;
  double dStack_518;
  int aiStack_510 [4];
  undefined8 uStack_500;
  int iStack_4f8;
  double dStack_4e8;
  double dStack_4e0;
  double dStack_4d8;
  double dStack_4d0;
  double dStack_4c8;
  double dStack_4c0;
  int iStack_4b4;
  uint uStack_4b0;
  int iStack_4ac;
  double *pdStack_4a8;
  double *pdStack_4a4;
  int iStack_4a0;
  undefined4 *puStack_49c;
  double *pdStack_498;
  uint uStack_494;
  int iStack_490;
  code *pcStack_48c;
  double dStack_488;
  double dStack_480;
  double dStack_478;
  double dStack_470;
  double dStack_468;
  double dStack_460;
  int *piStack_448;
  uint uStack_444;
  code *pcStack_440;
  uint uStack_434;
  uint uStack_430;
  double *pdStack_42c;
  uint uStack_428;
  uint uStack_424;
  uint uStack_420;
  undefined4 uStack_41c;
  int aiStack_418 [10];
  double dStack_3f0;
  double dStack_3e8;
  double dStack_3e0;
  double dStack_3d8;
  double dStack_3d0;
  int iStack_3bc;
  int iStack_3b8;
  uint uStack_3b4;
  double *pdStack_3b0;
  double *pdStack_3ac;
  int *piStack_3a8;
  undefined4 *puStack_3a4;
  double *pdStack_3a0;
  uint uStack_39c;
  int iStack_398;
  code *pcStack_394;
  double dStack_390;
  double dStack_388;
  double dStack_380;
  double dStack_378;
  double dStack_370;
  undefined4 *puStack_358;
  undefined4 uStack_354;
  undefined *puStack_350;
  undefined8 uStack_348;
  double dStack_340;
  double dStack_338;
  double dStack_330;
  uint uStack_328;
  int iStack_324;
  double dStack_320;
  double dStack_318;
  uint uStack_310;
  undefined4 uStack_30c;
  int iStack_308;
  int *piStack_304;
  double dStack_300;
  uint uStack_2f8;
  int iStack_2f4;
  int iStack_2f0;
  double *pdStack_2ec;
  uint uStack_2e8;
  undefined4 uStack_2e4;
  uint uStack_2e0;
  undefined4 uStack_2dc;
  double *pdStack_2d8;
  uint uStack_2d4;
  undefined4 uStack_2d0;
  double *pdStack_2cc;
  uint uStack_2c8;
  undefined4 uStack_2c4;
  int iStack_2c0;
  undefined4 *puStack_2bc;
  double dStack_2b8;
  uint uStack_2b0;
  undefined4 uStack_2ac;
  double *pdStack_2a8;
  undefined1 *puStack_2a4;
  double *pdStack_2a0;
  int iStack_29c;
  undefined4 auStack_298 [18];
  double dStack_250;
  undefined4 auStack_240 [18];
  double dStack_1f8;
  int iStack_1e4;
  double *pdStack_1e0;
  int *piStack_1dc;
  int iStack_1d8;
  double *pdStack_1d4;
  int *piStack_1d0;
  undefined4 *puStack_1cc;
  double *pdStack_1c8;
  uint uStack_1c4;
  int iStack_1c0;
  code *pcStack_1bc;
  double dStack_1b8;
  double dStack_1b0;
  double dStack_1a8;
  double dStack_1a0;
  double dStack_198;
  double dStack_190;
  undefined8 local_178;
  double local_170;
  int *local_168;
  int *local_164;
  int local_110 [4];
  undefined8 local_100;
  int local_f8;
  double local_e8;
  double local_e0;
  double local_d8;
  double local_d0;
  double local_c8;
  double local_c0;
  int local_b8 [10];
  double local_90;
  double local_88;
  double local_80;
  double local_78;
  double local_70;
  int local_5c;
  
  local_5c = *(int *)PTR___stack_chk_guard_003fa248;
  pdVar29 = (double *)param_1[8];
  piVar2 = (int *)(*(code *)PTR_omp_get_num_threads_003fa924)();
  iVar3 = (*(code *)PTR_omp_get_thread_num_003fa520)();
  puVar36 = PTR_LAB_003f98e0;
  iVar10 = (param_1[9] + 1) - (int)pdVar29;
  if (piVar2 == (int *)0x0) {
    trap(7);
  }
  iVar49 = iVar10 / (int)piVar2;
  iVar10 = iVar10 % (int)piVar2;
  if (iVar3 < iVar10) {
    iVar49 = iVar49 + 1;
    iVar10 = 0;
  }
  iVar10 = iVar49 * iVar3 + iVar10;
  pdVar16 = (double *)(iVar49 + iVar10);
  iVar3 = (int)pdVar29 + iVar10;
  if (iVar10 < (int)pdVar16) {
    uVar4 = param_1[5];
    pdVar5 = (double *)param_1[4];
    unaff_s4 = (int *)param_1[2];
    unaff_s7 = param_1[1];
    piVar2 = (int *)*param_1;
    puVar6 = (undefined *)((int)pdVar29 + (int)pdVar16);
    dVar39 = *(double *)(PTR_LAB_003f98e0 + 0x43c8);
    in_f26_27 = *(double *)(PTR_LAB_003f98e0 + 0x4410);
    in_f30_31 = *(double *)(PTR_LAB_003f98e0 + 0x4a48);
    do {
      in_f24_25 = (double)iVar3;
      pdVar29 = (double *)param_1[3];
      in_f20_21 = *(double *)param_1[7];
      in_f28_29 = ((double *)param_1[7])[2];
      dVar40 = in_f24_25 * pdVar29[2] + pdVar29[4];
      dVar47 = *pdVar29;
      dVar41 = in_f28_29;
      if (dVar39 <= dVar47) {
        in_f22_23 = -dVar40 / dVar47;
        if (in_f22_23 <= in_f20_21) {
          in_f22_23 = in_f20_21;
        }
        dVar44 = (double)*(int *)(unaff_s7 + 0x18);
        if (*(int *)(unaff_s7 + 0x18) < 0) {
          dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);
        }
        dVar47 = (dVar44 - dVar40) / dVar47;
        if (dVar47 < in_f28_29) {
          dVar41 = dVar47;
        }
LAB_000a3890:
        dVar40 = in_f24_25 * pdVar29[3] + pdVar29[5];
        dVar47 = pdVar29[1];
        if (*(double *)(puVar36 + 0x43c8) <= dVar47) {
          dVar44 = -dVar40 / dVar47;
          if (-dVar40 / dVar47 <= in_f22_23) {
            dVar44 = in_f22_23;
          }
          in_f22_23 = dVar44;
          pdVar16 = *(double **)(unaff_s7 + 0x1c);
          dVar44 = (double)(int)pdVar16;
          if ((int)pdVar16 < 0) {
            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);
            pdVar16 = (double *)PTR_LAB_003f98e0;
          }
          in_f20_21 = (dVar44 - dVar40) / dVar47;
          if (dVar41 <= in_f20_21) {
            in_f20_21 = dVar41;
          }
        }
        else if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {
          dVar44 = (double)*(int *)(unaff_s7 + 0x1c);
          if (*(int *)(unaff_s7 + 0x1c) < 0) {
            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);
          }
          dVar44 = (dVar44 - dVar40) / dVar47;
          if (dVar44 <= in_f22_23) {
            dVar44 = in_f22_23;
          }
          in_f22_23 = dVar44;
          pdVar16 = (double *)((uint)((ulonglong)dVar40 >> 0x20) ^ 0x80000000);
          in_f20_21 = -dVar40 / dVar47;
          if (dVar41 <= -dVar40 / dVar47) {
            in_f20_21 = dVar41;
          }
        }
        else {
          pdVar16 = (double *)puVar36;
          in_f20_21 = in_f28_29;
          if (0.0 <= dVar40) {
            dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));
            if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {
              uVar26 = (uint)dVar40;
            }
            else {
              uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;
            }
            in_f20_21 = dVar41;
            if (*(uint *)(unaff_s7 + 0x1c) <= uVar26) {
              in_f20_21 = in_f28_29;
            }
          }
        }
        if (in_f22_23 <= in_f20_21) goto LAB_000a3938;
      }
      else {
        if (dVar47 < *(double *)(PTR_UINT_003f98e4 + 0x65b8)) {
          dVar44 = (double)*(int *)(unaff_s7 + 0x18);
          if (*(int *)(unaff_s7 + 0x18) < 0) {
            dVar44 = dVar44 + *(double *)(PTR_LAB_003f98e0 + 0x43e8);
          }
          in_f22_23 = (dVar44 - dVar40) / dVar47;
          if (in_f22_23 <= in_f20_21) {
            in_f22_23 = in_f20_21;
          }
          if (-dVar40 / dVar47 < in_f28_29) {
            dVar41 = -dVar40 / dVar47;
          }
          goto LAB_000a3890;
        }
        in_f22_23 = in_f20_21;
        if (0.0 <= dVar40) {
          dVar40 = (double)(*(code *)PTR_floor_003fa688)(dVar40 + *(double *)(puVar36 + 0x43d0));
          if (dVar40 < *(double *)(PTR_LAB_003f98e0 + 0x43e0)) {
            uVar26 = (uint)dVar40;
          }
          else {
            uVar26 = (int)(dVar40 - *(double *)(PTR_LAB_003f98e0 + 0x43e0)) | 0x80000000;
          }
          in_f22_23 = in_f20_21;
          in_f28_29 = dVar41;
          if (uVar26 < *(uint *)(unaff_s7 + 0x18)) goto LAB_000a3890;
        }
LAB_000a3938:
        in_f28_29 = *(double *)(puVar36 + 0x43d0);
        in_f22_23 = in_f22_23 - in_f28_29;
        dVar41 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);
        unaff_s2 = (int)dVar41;
        in_f28_29 = in_f20_21 + in_f28_29;
        dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);
        dVar40 = (double)(*(code *)PTR_ceil_003f9c38)(in_f22_23);
        dVar41 = (dVar41 - dVar40) + *(double *)(PTR_LAB_003f98e0 + 0x4408);
        in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x43e0);
        if (dVar41 < in_f20_21) {
          uVar26 = (uint)dVar41;
        }
        else {
          uVar26 = (int)(dVar41 - in_f20_21) | 0x80000000;
        }
        local_178 = (double)CONCAT44(1,unaff_s4);
        pdVar16 = pdVar5;
        pdVar29 = (double *)
                  (*(code *)PTR_GetCacheViewAuthenticPixels_003fa664)(pdVar5,unaff_s2,iVar3,uVar26);
        if (pdVar29 != (double *)0x0) {
          piVar17 = (int *)param_1[6];
          piVar48 = piVar17;
          piVar19 = local_b8;
          do {
            piVar11 = piVar19;
            piVar7 = piVar48;
            iVar28 = piVar7[1];
            iVar49 = piVar7[2];
            iVar10 = piVar7[3];
            *piVar11 = *piVar7;
            piVar11[1] = iVar28;
            piVar11[2] = iVar49;
            piVar11[3] = iVar10;
            piVar48 = piVar7 + 4;
            piVar19 = piVar11 + 4;
          } while (piVar48 != piVar17 + 0x14);
          iVar10 = piVar7[5];
          piVar11[4] = *piVar48;
          piVar11[5] = iVar10;
          piVar48 = piVar17;
          piVar19 = local_110;
          do {
            piVar11 = piVar19;
            piVar7 = piVar48;
            iVar28 = piVar7[1];
            iVar49 = piVar7[2];
            iVar10 = piVar7[3];
            *piVar11 = *piVar7;
            piVar11[1] = iVar28;
            piVar11[2] = iVar49;
            piVar11[3] = iVar10;
            piVar48 = piVar7 + 4;
            piVar19 = piVar11 + 4;
          } while (piVar48 != piVar17 + 0x14);
          iVar10 = piVar7[5];
          piVar11[4] = *piVar48;
          piVar11[5] = iVar10;
          dVar41 = (double)(*(code *)PTR_floor_003fa688)(in_f28_29);
          unaff_s3 = (double *)PTR_LAB_003f98e0;
          in_f22_23 = *(double *)(PTR_LAB_003f98e0 + 0x4418);
          in_f20_21 = *(double *)(PTR_LAB_003f98e0 + 0x4408);
          for (; unaff_s2 <= (int)dVar41; unaff_s2 = unaff_s2 + 1) {
            pdVar16 = (double *)param_1[3];
            local_168 = local_b8;
            local_170 = (double)unaff_s2 * pdVar16[1] + in_f24_25 * pdVar16[3] + pdVar16[5];
            local_178 = (double)unaff_s2 * *pdVar16 + in_f24_25 * pdVar16[2] + pdVar16[4];
            local_164 = unaff_s4;
            iVar10 = (*(code *)PTR_InterpolatePixelInfo_003fa0a4)(unaff_s7,uVar4,0);
            param_1[10] = iVar10;
            if (iVar10 == 0) break;
            (*(code *)PTR_ResetMagickMemory_003fa00c)(local_110,0,0x58);
            local_110[0] = 1;
            local_110[1] = 0x17;
            local_f8 = 0x10;
            local_110[2] = 0;
            local_c8 = in_f30_31;
            if (piVar2 != (int *)0x0) {
              local_110[0] = *piVar2;
              local_110[1] = piVar2[1];
              local_100 = *(undefined8 *)(piVar2 + 0x92);
              local_f8 = piVar2[8];
              local_110[2] = piVar2[0xaf];
              if (pdVar29 != (double *)0x0) {
                iVar10 = piVar2[0xb4];
                local_e8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4);
                local_e0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4);
                local_d8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4);
                if (*(int *)(iVar10 + 0x28) != 0) {
                  local_d0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4);
                }
                if (*(int *)(iVar10 + 0x34) != 0) {
                  local_c8 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4);
                  local_110[2] = 4;
                }
                if (*(int *)(iVar10 + 0x40) != 0) {
                  local_c0 = (double)*(float *)((int)pdVar29 + *(int *)(iVar10 + 0x44) * 4);
                }
              }
            }
            dVar40 = local_70 * in_f26_27;
            dVar47 = local_c8 * in_f26_27;
            dVar44 = (dVar40 + dVar47) - dVar40 * dVar47;
            if (0.0 <= dVar44) {
              local_c8 = dVar44;
              if (in_f20_21 < dVar44) {
                local_c8 = *(double *)((int)unaff_s3 + 0x4408);
              }
              local_c8 = local_c8 * *(double *)(puVar36 + 0x4a48);
              if (0.0 <= dVar44) {
                dVar45 = *(double *)((int)unaff_s3 + 0x4408);
              }
              else {
                dVar45 = *(double *)((int)unaff_s3 + 0x4418);
              }
            }
            else {
              local_c8 = 0.0;
              dVar45 = in_f22_23;
            }
            if (*(double *)(puVar36 + 0x43c8) <= dVar44 * dVar45) {
              dVar45 = *(double *)((int)unaff_s3 + 0x4408) / dVar44;
            }
            else {
              dVar45 = dVar45 / *(double *)(puVar36 + 0x43c8);
            }
            dVar44 = *(double *)((int)unaff_s3 + 0x4408) - dVar40;
            local_e8 = (dVar47 * local_e8 * dVar44 + dVar40 * local_90) * dVar45;
            local_e0 = (dVar47 * local_e0 * dVar44 + dVar40 * local_88) * dVar45;
            local_d8 = (dVar47 * local_d8 * dVar44 + dVar40 * local_80) * dVar45;
            if (local_110[1] == 2) {
              local_d0 = (dVar47 * local_d0 * dVar44 + dVar40 * local_78) * dVar45;
            }
            iVar10 = piVar2[0xb4];
            *(float *)((int)pdVar29 + *(int *)(iVar10 + 8) * 4) = (float)local_e8;
            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x14) * 4) = (float)local_e0;
            *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x20) * 4) = (float)local_d8;
            if (*(int *)(iVar10 + 0x28) != 0) {
              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x2c) * 4) = (float)local_d0;
            }
            if (*(int *)(iVar10 + 0x34) != 0) {
              if (local_110[2] == 0) {
                fVar43 = *(float *)(PTR_LAB_003f98e0 + 0x4aa8);
              }
              else {
                fVar43 = (float)local_c8;
              }
              *(float *)((int)pdVar29 + *(int *)(iVar10 + 0x38) * 4) = fVar43;
            }
            pdVar29 = (double *)((int)pdVar29 + piVar2[0xb0] * 4);
          }
          pdVar16 = pdVar5;
          iVar10 = (*(code *)PTR_SyncCacheViewAuthenticPixels_003fa510)(pdVar5,unaff_s4);
          if (iVar10 == 0) {
            param_1[10] = 0;
          }
        }
      }
      iVar3 = iVar3 + 1;
      unaff_s6 = (double *)puVar36;
    } while (iVar3 < (int)puVar6);
  }
  if (local_5c == *(int *)PTR___stack_chk_guard_003fa248) {
    return *(int *)PTR___stack_chk_guard_003fa248;
  }
  pcVar37 = FUN_000a3ef0;
  puVar36 = PTR___stack_chk_fail_003fa07c;
  (*(code *)PTR___stack_chk_fail_003fa07c)();
  puStack_350 = puVar36 + 0x35d9c0;
  iStack_1e4 = **(int **)(puVar36 + 0x356358);
  iVar28 = *(int *)((int)pdVar16 + 0x24);
  pdStack_2a8 = pdVar16;
  pdStack_1e0 = pdVar29;
  piStack_1dc = piVar2;
  iStack_1d8 = unaff_s2;
  pdStack_1d4 = unaff_s3;
  piStack_1d0 = unaff_s4;
  puStack_1cc = param_1;
  pdStack_1c8 = unaff_s6;
  uStack_1c4 = unaff_s7;
  iStack_1c0 = iVar3;
  pcStack_1bc = pcVar37;
  dStack_1b8 = in_f20_21;
  dStack_1b0 = in_f22_23;
  dStack_1a8 = in_f24_25;
  dStack_1a0 = in_f26_27;
  dStack_198 = in_f28_29;
  dStack_190 = in_f30_31;
  iVar10 = (**(code **)(puVar36 + 0x356a34))();
  iVar49 = (**(code **)(puStack_350 + -0x7390))();
  iVar12 = (*(int *)(pdVar16 + 5) + 1) - iVar28;
  if (iVar10 == 0) {
    trap(7);
  }
  iVar50 = iVar12 / iVar10;
  iVar12 = iVar12 % iVar10;
  uVar26 = (uint)(iVar49 < iVar12);
  if (uVar26 != 0) {
    iVar50 = iVar50 + 1;
    iVar12 = 0;
  }
  uVar8 = iVar50 * iVar49 + iVar12;
  pdVar29 = (double *)(iVar50 + uVar8);
  if ((int)uVar8 < (int)pdVar29) {
    iStack_29c = *(int *)((int)pdStack_2a8 + 0x1c);
    in_f28_29 = *pdStack_2a8;
    iStack_2f4 = *(int *)(pdStack_2a8 + 3);
    pdStack_2a0 = *(double **)((int)pdStack_2a8 + 0x14);
    uStack_2d0 = *(undefined4 *)(pdStack_2a8 + 2);
    iStack_324 = *(int *)((int)pdStack_2a8 + 0xc);
    unaff_s6 = *(double **)(pdStack_2a8 + 1);
    iStack_2f0 = iVar28 + uVar8;
    puStack_2a4 = (undefined1 *)(iVar28 + (int)pdVar29);
    unaff_s7 = *(uint *)(puStack_350 + -0x7fd0);
    dStack_320 = *(double *)(unaff_s7 + 0x4408);
    iVar3 = *(int *)(puStack_350 + -0x7fd0);
    dStack_2b8 = *(double *)(iVar3 + 0x43c8);
    uStack_2f8 = uVar8;
    do {
      iVar28 = (**(code **)(puStack_350 + -0x7390))();
      if (*(int *)((int)pdStack_2a8 + 0x2c) != 0) {
        pdVar29 = *(double **)(pdStack_2a8 + 4);
        in_f20_21 = *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x43d0);
        dVar39 = (double)(**(code **)(puStack_350 + -0x7c78))(*pdVar29 - in_f20_21);
        uStack_2d4 = (uint)dVar39;
        dVar39 = (double)(**(code **)(puStack_350 + -0x7228))(pdVar29[2] + in_f20_21);
        uVar26 = uStack_2d4;
        pdVar16 = (double *)(int)dVar39;
        uStack_354 = uStack_2d0;
        puStack_358 = (undefined4 *)0x1;
        pdVar29 = pdStack_2a0;
        pdStack_2cc = pdVar16;
        iStack_308 = (**(code **)(puStack_350 + -0x724c))
                               (pdStack_2a0,uStack_2d4,iStack_2f0,
                                (undefined *)((int)pdVar16 + (1 - uStack_2d4)));
        if (iStack_308 == 0) {
          *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;
        }
        else {
          iVar28 = iVar28 * 4;
          puVar36 = puStack_350;
          if ((int)uVar26 <= (int)pdVar16) {
            puStack_2bc = (undefined4 *)(iStack_29c + iVar28);
            uStack_328 = uStack_2d4;
            pdVar16 = unaff_s6;
            do {
              unaff_s4 = (int *)*puStack_2bc;
              iStack_2c0 = *(int *)(iStack_324 + 0x240);
              unaff_s3 = (double *)*unaff_s4;
              puVar13 = (undefined4 *)unaff_s4[1];
              pdStack_2ec = unaff_s3;
              if ((int)puVar13 < 1) {
                if (iStack_2f4 != 0) {
                  dStack_338 = 0.0;
                  dStack_340 = 0.0;
                  dVar39 = in_f30_31;
LAB_000a4f34:
                  pdVar29 = (double *)*unaff_s4;
                  if (0 < (int)puVar13) goto LAB_000a4f3c;
                  goto LAB_000a4684;
                }
LAB_000a4f94:
                if (*(int *)(iStack_324 + 0x238) == 0) {
                  dStack_338 = 0.0;
                  dStack_340 = 0.0;
                  dVar39 = in_f30_31;
LAB_000a4ec0:
                  iVar10 = *(int *)(puVar36 + -0x7fd0);
                  goto LAB_000a4ec4;
                }
                dStack_338 = 0.0;
                dStack_340 = 0.0;
                dVar39 = in_f30_31;
              }
              else {
                in_f26_27 = (double)iStack_2f0;
                iVar10 = *(int *)(puVar36 + -0x7fd0);
                dVar39 = *(double *)(iVar10 + 0x43d0);
                param_1 = (undefined4 *)0x0;
                if ((unaff_s3[1] - in_f28_29) - dVar39 < in_f26_27) {
                  dStack_338 = 0.0;
                  dStack_340 = 0.0;
                  pdVar29 = unaff_s3;
                  dStack_330 = dVar39;
                  pdStack_2d8 = pdVar16;
                  do {
                    pdVar16 = pdStack_2ec;
                    iVar49 = iStack_2f4;
                    if (in_f26_27 <= in_f28_29 + pdVar29[3] + dVar39) {
                      in_f22_23 = (double)(int)uStack_328;
                      if (((*pdVar29 - in_f28_29) - dStack_330 < in_f22_23) &&
                         (in_f22_23 <= in_f28_29 + pdVar29[2] + *(double *)(iVar10 + 0x43d0))) {
                        iVar28 = *(int *)(pdVar29 + 7);
                        dVar41 = (double)iVar28;
                        if (iVar28 < 0) {
                          dVar41 = dVar41 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);
                        }
                        if (dVar41 <= *(double *)(unaff_s7 + 0x4408)) {
                          iVar28 = 1;
                        }
                        if (iVar28 < *(int *)((int)pdVar29 + 0x2c)) {
                          iVar12 = *(int *)(pdVar29 + 5);
                          iVar50 = (iVar28 + 0xfffffff) * 0x10;
                          pdVar16 = (double *)(iVar12 + iVar50);
                          dVar41 = *(double *)(iVar10 + 0x43d0);
                          if ((pdVar16[1] - in_f28_29) - dVar41 < in_f26_27) {
                            dStack_318 = *(double *)(unaff_s7 + 0x4408);
                            iVar31 = *(int *)(puVar36 + -0x7fcc);
                            dStack_300 = *(double *)(iVar31 + 0x2a8);
                            piStack_304 = unaff_s4;
                            do {
                              iVar50 = iVar50 + 0x10;
                              dVar40 = dStack_340;
                              if (in_f26_27 <= in_f28_29 + *(double *)(iVar12 + iVar50 + 8) + dVar41
                                 ) {
                                if (in_f26_27 != pdVar29[4]) {
                                  pdVar29[4] = in_f26_27;
                                  *(int *)(pdVar29 + 7) = iVar28;
                                }
                                dVar44 = pdVar16[2] - *pdVar16;
                                dVar42 = pdVar16[3] - pdVar16[1];
                                dVar47 = in_f22_23 - *pdVar16;
                                dVar40 = in_f26_27 - pdVar16[1];
                                dVar45 = dVar44 * dVar47 + dVar42 * dVar40;
                                if (0.0 < dVar45) {
                                  dVar46 = dVar44 * dVar44 + dVar42 * dVar42;
                                  if (dVar46 <= dVar45) {
                                    dVar47 = in_f22_23 - pdVar16[2];
                                    dVar40 = in_f26_27 - pdVar16[3];
                                    in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;
                                  }
                                  else {
                                    if (*(double *)(iVar3 + 0x43c8) <= dVar46) {
                                      dVar46 = *(double *)(unaff_s7 + 0x4408) / dVar46;
                                    }
                                    else {
                                      dVar46 = *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4a40);
                                    }
                                    in_f20_21 = (dVar44 * dVar40 - dVar42 * dVar47) +
                                                *(double *)(iVar3 + 0x43c8);
                                    in_f20_21 = in_f20_21 * dVar46 * in_f20_21;
                                  }
                                }
                                else {
                                  in_f20_21 = dVar47 * dVar47 + dVar40 * dVar40;
                                }
                                dVar40 = dStack_338;
                                if (*(int *)((int)pdVar29 + 0x34) == 0) {
                                  if (*(double *)(unaff_s7 + 0x4408) <= dStack_338) {
                                    uStack_348 = 0.0;
                                  }
                                  else {
                                    dVar47 = in_f28_29 + *(double *)(iVar10 + 0x43d0) + dStack_300;
                                    if (in_f20_21 <= dVar47 * dVar47) {
                                      dVar40 = (in_f28_29 - *(double *)(iVar10 + 0x43d0)) +
                                               *(double *)(iVar31 + 0x2a8);
                                      if (dVar40 * dVar40 < in_f20_21) {
                                        dVar40 = in_f20_21 - *(double *)(unaff_s7 + 0x4408);
                                        uStack_2ac = SUB84(dVar40,0);
                                        uStack_2b0 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;
                                        uStack_348 = *(double *)(unaff_s7 + 0x4408);
                                        if ((*(double *)(iVar3 + 0x43c8) <= ABS(dVar40)) &&
                                           (uStack_348 = SQRT(in_f20_21), in_f20_21 < 0.0)) {
                                          (**(code **)(puVar36 + -0x7418))(in_f20_21);
                                          puVar36 = puStack_350;
                                        }
                                        dVar40 = ((uStack_348 - in_f28_29) -
                                                 *(double *)(iVar10 + 0x43d0)) -
                                                 *(double *)(iVar31 + 0x2a8);
                                        dVar40 = dVar40 * dVar40;
                                        if (dVar40 <= dStack_338) {
                                          dVar40 = dStack_338;
                                        }
                                      }
                                      else {
                                        uStack_348 = 0.0;
                                        dVar40 = *(double *)(unaff_s7 + 0x4408);
                                      }
                                    }
                                    else {
                                      uStack_348 = 0.0;
                                    }
                                  }
                                }
                                else {
                                  uStack_348 = 0.0;
                                }
                                dStack_338 = dVar40;
                                dVar40 = dStack_340;
                                if (((iVar49 != 0) && (in_f20_21 <= dStack_320)) &&
                                   (dStack_340 < dStack_318)) {
                                  if (0.0 < in_f20_21) {
                                    uStack_310 = uStack_348._0_4_ & 0x7fffffff;
                                    uStack_30c = uStack_348._4_4_;
                                    dVar40 = *(double *)(unaff_s7 + 0x4408);
                                    if (ABS(uStack_348) < dStack_2b8) {
                                      dVar40 = in_f20_21 - dVar40;
                                      uStack_2c4 = SUB84(dVar40,0);
                                      uStack_2c8 = (uint)((ulonglong)dVar40 >> 0x20) & 0x7fffffff;
                                      uStack_348 = *(double *)(unaff_s7 + 0x4408);
                                      if ((ABS(dVar40) < *(double *)(iVar3 + 0x43c8)) ||
                                         (uStack_348 = SQRT(in_f20_21), 0.0 <= in_f20_21)) {
                                        dVar40 = *(double *)(unaff_s7 + 0x4408);
                                      }
                                      else {
                                        (**(code **)(puVar36 + -0x7418))(in_f20_21);
                                        dVar40 = *(double *)(unaff_s7 + 0x4408);
                                        puVar36 = puStack_350;
                                      }
                                    }
                                    dVar40 = (uStack_348 - dVar40) * (uStack_348 - dVar40);
                                    if (dVar40 <= dStack_340) {
                                      dVar40 = dStack_340;
                                    }
                                  }
                                  else {
                                    dVar40 = *(double *)(unaff_s7 + 0x4408);
                                  }
                                }
                              }
                              dStack_340 = dVar40;
                              iVar28 = iVar28 + 1;
                              unaff_s4 = piStack_304;
                              in_f24_25 = dVar41;
                              if (*(int *)((int)pdVar29 + 0x2c) <= iVar28) break;
                              iVar12 = *(int *)(pdVar29 + 5);
                              pdVar16 = (double *)(iVar12 + iVar50);
                            } while ((pdVar16[1] - in_f28_29) - *(double *)(iVar10 + 0x43d0) <
                                     in_f26_27);
                          }
                        }
                      }
                    }
                    else {
                      if (puVar13 <= param_1) {
                        iVar3 = (**(code **)(puVar36 + -0x7290))
                                          (*(int *)(puVar36 + -0x7fcc) + 0x69fc,
                                           *(int *)(puVar36 + -0x7fcc) + 0x69c0,0x3e3,
                                           *(int *)(puVar36 + -0x7fcc) + 0x773c);
                        return iVar3;
                      }
                      iVar49 = *unaff_s4 - (int)pdStack_2ec;
                      uVar4 = (**(code **)(puVar36 + -0x78d8))
                                        (*(undefined4 *)((int)pdVar29 + iVar49 + 0x28));
                      *(undefined4 *)((int)pdVar29 + iVar49 + 0x28) = uVar4;
                      puVar13 = (undefined4 *)(unaff_s4[1] + -1);
                      unaff_s4[1] = (int)puVar13;
                      puVar36 = puStack_350;
                      if (param_1 < puVar13) {
                        (**(code **)(puStack_350 + -0x7948))
                                  ((undefined *)((int)pdVar29 + (*unaff_s4 - (int)pdVar16)),
                                   *unaff_s4 + ((int)param_1 + 1) * 0x40,
                                   ((int)puVar13 - (int)param_1) * 0x40);
                        puVar36 = puStack_350;
                      }
                    }
                    param_1 = (undefined4 *)((int)param_1 + 1);
                    unaff_s3 = pdVar29 + 8;
                    puVar13 = (undefined4 *)unaff_s4[1];
                  } while (((int)param_1 < (int)puVar13) &&
                          (pdVar16 = pdVar29 + 9, pdVar29 = unaff_s3,
                          (*pdVar16 - in_f28_29) - *(double *)(iVar10 + 0x43d0) < in_f26_27));
                  pdVar16 = pdStack_2d8;
                  if (iStack_2f4 != 0) {
                    if (dStack_340 < *(double *)(unaff_s7 + 0x4408)) goto LAB_000a4f34;
                    goto LAB_000a4528;
                  }
                  if (*(int *)(iStack_324 + 0x238) == 0) {
                    dStack_340 = 0.0;
                    goto LAB_000a4ec0;
                  }
                  dStack_340 = 0.0;
                  goto LAB_000a46d8;
                }
                if (iStack_2f4 == 0) goto LAB_000a4f94;
                pdVar29 = (double *)*unaff_s4;
                dStack_338 = 0.0;
                dStack_340 = 0.0;
                dVar39 = in_f30_31;
LAB_000a4f3c:
                dVar41 = (double)iStack_2f0;
                puVar21 = (undefined4 *)0x0;
                if (pdVar29[1] < dVar41) {
                  uVar26 = 0;
                  do {
                    if ((dVar41 <= pdVar29[3]) &&
                       (dVar40 = (double)(int)uStack_328, *pdVar29 < dVar40)) {
                      iVar10 = -1;
                      if (dVar40 <= pdVar29[2]) {
                        iVar10 = *(int *)(pdVar29 + 7);
                        dVar47 = (double)iVar10;
                        if (iVar10 < 0) {
                          dVar47 = dVar47 + *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x43e8);
                        }
                        if (dVar47 <= *(double *)(unaff_s7 + 0x4408)) {
                          iVar10 = 1;
                        }
                        iVar49 = *(int *)((int)pdVar29 + 0x2c) + -1;
                        if (iVar10 < iVar49) {
                          iVar28 = *(int *)(pdVar29 + 5) + iVar10 * 0x10;
                          dVar47 = *(double *)(iVar28 + 8);
                          while (dVar47 < dVar41) {
                            iVar10 = iVar10 + 1;
                            if (iVar49 <= iVar10) break;
                            dVar47 = *(double *)(iVar28 + 0x18);
                            iVar28 = iVar28 + 0x10;
                          }
                        }
                        pdVar5 = (double *)(*(int *)(pdVar29 + 5) + (iVar10 + 0xfffffff) * 0x10);
                        iVar10 = -1;
                        if ((pdVar5[2] - *pdVar5) * (dVar41 - pdVar5[1]) <=
                            (pdVar5[3] - pdVar5[1]) * (dVar40 - *pdVar5)) {
                          if (*(int *)(pdVar29 + 6) != 0) {
                            iVar10 = 1;
                          }
                          uVar26 = uVar26 + iVar10;
                        }
                      }
                      else {
                        if (*(int *)(pdVar29 + 6) != 0) {
                          iVar10 = 1;
                        }
                        uVar26 = uVar26 + iVar10;
                      }
                    }
                    puVar21 = (undefined4 *)((int)puVar21 + 1);
                  } while ((puVar21 != puVar13) &&
                          (pdVar5 = pdVar29 + 9, pdVar29 = pdVar29 + 8, *pdVar5 < dVar41));
                  if (iStack_2c0 != 2) {
                    if ((int)uVar26 < 0) {
                      uVar26 = -uVar26;
                    }
                    if ((uVar26 & 1) != 0) goto LAB_000a4528;
                    goto LAB_000a4684;
                  }
                  if (uVar26 != 0) {
LAB_000a4528:
                    dStack_340 = *(double *)(unaff_s7 + 0x4408);
                    if (*(int *)(iStack_324 + 0x238) == 0) goto LAB_000a4ec0;
                    goto LAB_000a46d8;
                  }
                  iVar10 = *(int *)(iStack_324 + 0x238);
                }
                else {
LAB_000a4684:
                  iVar10 = *(int *)(iStack_324 + 0x238);
                }
                if (iVar10 == 0) {
                  iVar10 = *(int *)(puVar36 + -0x7fd0);
                  bVar1 = dStack_340 <= *(double *)(iVar10 + 0x43d0);
                  dStack_340 = *(double *)(unaff_s7 + 0x4408);
                  if (bVar1) {
                    dStack_340 = 0.0;
                    goto LAB_000a4ec0;
                  }
LAB_000a4ec4:
                  bVar1 = dStack_338 <= *(double *)(iVar10 + 0x43d0);
                  dStack_338 = *(double *)(unaff_s7 + 0x4408);
                  if (bVar1) {
                    dStack_338 = 0.0;
                  }
                }
              }
LAB_000a46d8:
              uVar26 = uStack_2f8;
              iVar28 = uStack_328 - uStack_2d4;
              iVar10 = *(int *)(iStack_324 + 0x1a8);
              if (iVar10 == 0) {
                puVar13 = (undefined4 *)(iStack_324 + 0x48);
                puVar21 = auStack_298;
                do {
                  puVar15 = puVar21;
                  puVar9 = puVar13;
                  uVar27 = puVar9[1];
                  uVar25 = puVar9[2];
                  uVar4 = puVar9[3];
                  *puVar15 = *puVar9;
                  puVar15[1] = uVar27;
                  puVar15[2] = uVar25;
                  puVar15[3] = uVar4;
                  puVar13 = puVar9 + 4;
                  puVar21 = puVar15 + 4;
                } while (puVar13 != (undefined4 *)(iStack_324 + 0x98));
                uVar4 = puVar9[5];
                puVar15[4] = *puVar13;
                puVar15[5] = uVar4;
              }
              else {
                uStack_354 = uStack_2d0;
                puStack_358 = auStack_298;
                (**(code **)(puVar36 + -0x747c))
                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),
                           uStack_2f8 + *(int *)(iVar10 + 0x29c));
                uStack_2e4 = *(undefined4 *)(iStack_324 + 0x39c);
                pdVar29 = (double *)(iStack_324 + 0x398);
                uStack_2e8 = *(uint *)pdVar29 & 0x7fffffff;
                puVar36 = puStack_350;
                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {
                  dStack_250 = dStack_250 *
                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);
                }
              }
              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {
                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);
              }
              else {
                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);
              }
              dVar41 = dStack_340 * dStack_250 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);
              dVar40 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);
              dVar41 = (dVar41 + dVar40) - dVar41 * dVar40;
              in_f30_31 = dVar39;
              if (0 < *(int *)(pdVar16 + 0x58)) {
                iVar49 = 0;
                iVar10 = 0;
                in_f26_27 = 0.0;
                in_f20_21 = *(double *)(unaff_s7 + 0x4408);
                do {
                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar49);
                  uStack_348 = dVar41;
                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {
                    /* WARNING: Could not recover jumptable at 0x000a4924. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                    iVar3 = (*(code *)(puVar36 +
                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7370 + uVar8 * 4)))()
                    ;
                    return iVar3;
                  }
                  iVar10 = iVar10 + 1;
                  iVar49 = iVar49 + 0xc;
                  in_f22_23 = in_f20_21;
                  in_f24_25 = in_f20_21;
                  in_f30_31 = in_f20_21;
                } while (iVar10 < *(int *)(pdVar16 + 0x58));
              }
              iVar10 = *(int *)(iStack_324 + 0x1ac);
              if (iVar10 == 0) {
                puVar13 = (undefined4 *)(iStack_324 + 0xa0);
                puVar21 = auStack_240;
                do {
                  puVar15 = puVar21;
                  puVar9 = puVar13;
                  uVar27 = puVar9[1];
                  uVar25 = puVar9[2];
                  uVar4 = puVar9[3];
                  *puVar15 = *puVar9;
                  puVar15[1] = uVar27;
                  puVar15[2] = uVar25;
                  puVar15[3] = uVar4;
                  puVar13 = puVar9 + 4;
                  puVar21 = puVar15 + 4;
                } while (puVar13 != (undefined4 *)(iStack_324 + 0xf0));
                uVar4 = puVar9[5];
                puVar15[4] = *puVar13;
                puVar15[5] = uVar4;
              }
              else {
                uStack_354 = uStack_2d0;
                puStack_358 = auStack_240;
                (**(code **)(puVar36 + -0x747c))
                          (iVar10,6,iVar28 + *(int *)(iVar10 + 0x298),
                           uVar26 + *(int *)(iVar10 + 0x29c));
                uStack_2dc = *(undefined4 *)(iStack_324 + 0x3a4);
                pdVar29 = (double *)(iStack_324 + 0x3a0);
                uStack_2e0 = *(uint *)pdVar29 & 0x7fffffff;
                puVar36 = puStack_350;
                if (*(double *)(iVar3 + 0x43c8) <= ABS(*pdVar29)) {
                  dStack_1f8 = dStack_1f8 *
                               *pdVar29 * *(double *)(*(int *)(puStack_350 + -0x7fd0) + 0x4410);
                }
              }
              if (*(int *)(*(int *)(pdVar16 + 0x5a) + 0x34) == 0) {
                fVar43 = *(float *)(*(int *)(puVar36 + -0x7fd0) + 0x4aa8);
              }
              else {
                fVar43 = *(float *)(iStack_308 + *(int *)(*(int *)(pdVar16 + 0x5a) + 0x38) * 4);
              }
              dVar39 = dStack_338 * dStack_1f8 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);
              dVar41 = (double)fVar43 * *(double *)(*(int *)(puVar36 + -0x7fd0) + 0x4410);
              dVar39 = (dVar39 + dVar41) - dVar39 * dVar41;
              iVar10 = *(int *)(pdVar16 + 0x58);
              if (0 < iVar10) {
                iVar12 = 0;
                iVar49 = 0;
                in_f30_31 = 0.0;
                in_f20_21 = *(double *)(unaff_s7 + 0x4408);
                do {
                  uVar8 = *(uint *)(*(int *)(pdVar16 + 0x5a) + iVar12);
                  uStack_348 = dVar39;
                  if ((*(int *)(*(int *)(pdVar16 + 0x5a) + uVar8 * 0xc + 4) != 0) && (uVar8 < 5)) {
                    /* WARNING: Could not recover jumptable at 0x000a4c24. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                    iVar3 = (*(code *)(puVar36 +
                                      *(int *)(*(int *)(puVar36 + -0x7fcc) + 0x7384 + uVar8 * 4)))
                                      (in_f20_21,
                                       *(undefined8 *)(*(int *)(puVar36 + -0x7fd0) + 0x4a48));
                    return iVar3;
                  }
                  iVar49 = iVar49 + 1;
                  iVar10 = *(int *)(pdVar16 + 0x58);
                  iVar12 = iVar12 + 0xc;
                  in_f22_23 = in_f20_21;
                  in_f24_25 = in_f20_21;
                  in_f26_27 = in_f20_21;
                } while (iVar49 < iVar10);
              }
              iStack_308 = iStack_308 + iVar10 * 4;
              uStack_328 = uStack_328 + 1;
              unaff_s6 = pdVar16;
            } while ((int)uStack_328 <= (int)pdStack_2cc);
          }
          pdVar29 = pdStack_2a0;
          iVar10 = (**(code **)(puVar36 + -0x73a0))(pdStack_2a0,uStack_2d0);
          if (iVar10 == 0) {
            *(undefined4 *)((int)pdStack_2a8 + 0x2c) = 0;
          }
        }
      }
      iStack_2f0 = iStack_2f0 + 1;
      uStack_2f8 = uStack_2f8 + 1;
    } while (iStack_2f0 < (int)puStack_2a4);
  }
  if (iStack_1e4 == **(int **)(puStack_350 + -0x7668)) {
    return **(int **)(puStack_350 + -0x7668);
  }
  pcVar37 = *(code **)(puStack_350 + -0x7834);
  pcVar38 = FUN_000a5040;
  (*pcVar37)();
  pcStack_440 = pcVar37 + 0x35c870;
  iStack_3bc = **(int **)(pcVar37 + 0x355208);
  uVar8 = *(uint *)(pdVar29 + 3);
  pdVar5 = pdVar29;
  uStack_428 = uVar8;
  iStack_3b8 = iVar28;
  uStack_3b4 = uVar26;
  pdStack_3b0 = pdVar16;
  pdStack_3ac = unaff_s3;
  piStack_3a8 = unaff_s4;
  puStack_3a4 = param_1;
  pdStack_3a0 = unaff_s6;
  uStack_39c = unaff_s7;
  iStack_398 = iVar3;
  pcStack_394 = pcVar38;
  dStack_390 = in_f20_21;
  dStack_388 = in_f22_23;
  dStack_380 = in_f24_25;
  dStack_378 = in_f26_27;
  dStack_370 = in_f28_29;
  iVar3 = (**(code **)(pcVar37 + 0x3558e4))();
  iVar10 = (**(code **)(pcStack_440 + -0x7390))();
  iVar49 = (*(uint *)((int)pdVar29 + 0x1c) + 1) - uVar8;
  if (iVar3 == 0) {
    trap(7);
  }
  iVar28 = iVar49 / iVar3;
  iVar49 = iVar49 % iVar3;
  uVar26 = (uint)(iVar10 < iVar49);
  if (uVar26 != 0) {
    iVar28 = iVar28 + 1;
    iVar49 = 0;
  }
  iVar49 = iVar28 * iVar10 + iVar49;
  iVar28 = iVar28 + iVar49;
  iVar3 = *(int *)(pcStack_440 + -0x7fd0);
  pcVar37 = pcStack_440;
  if (iVar49 < iVar28) {
    pdStack_42c = *(double **)(pdVar29 + 2);
    uStack_430 = *(uint *)((int)pdVar29 + 0xc);
    unaff_s6 = *(double **)(pdVar29 + 1);
    uStack_424 = *(uint *)((int)pdVar29 + 4);
    unaff_s7 = *(uint *)pdVar29;
    iVar49 = uStack_428 + iVar49;
    iVar28 = uStack_428 + iVar28;
    in_f22_23 = *(double *)(iVar3 + 0x43d0);
    in_f26_27 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x43c8);
    in_f28_29 = *(double *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4410);
    do {
      in_f20_21 = *(double *)(iVar3 + 0x43d0);
      if (*(uint *)(pdVar29 + 4) != 0) {
        pdVar16 = *(double **)((int)pdVar29 + 0x14);
        dVar39 = (double)(**(code **)(pcVar37 + -0x7c78))(*pdVar16 - in_f20_21);
        uStack_434 = (uint)dVar39;
        dVar39 = (double)(**(code **)(pcStack_440 + -0x7228))(pdVar16[2] + in_f20_21);
        uVar26 = uStack_434;
        param_1 = (undefined4 *)(int)dVar39;
        uStack_444 = uStack_430;
        piStack_448 = (int *)0x1;
        pdVar5 = pdStack_42c;
        pdVar16 = (double *)
                  (**(code **)(pcStack_440 + -0x724c))
                            (pdStack_42c,uStack_434,iVar49,(int)param_1 + (1 - uStack_434));
        if (pdVar16 == (double *)0x0) {
          *(uint *)(pdVar29 + 4) = 0;
          pcVar37 = pcStack_440;
        }
        else {
          (**(code **)(pcStack_440 + -0x75e4))(unaff_s7,aiStack_418);
          bVar1 = (int)uVar26 <= (int)param_1;
          uVar26 = uStack_434;
          if (bVar1) {
            in_f20_21 = *(double *)(iVar3 + 0x43d0);
            in_f24_25 = (double)CONCAT44((int)((ulonglong)in_f24_25 >> 0x20),
                                         *(undefined4 *)(*(int *)(pcStack_440 + -0x7fd0) + 0x4aa8));
            do {
              dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(*unaff_s6 - in_f20_21);
              if (((int)dVar39 == uVar26) &&
                 (dVar39 = (double)(**(code **)(pcStack_440 + -0x7c78))(unaff_s6[1] - in_f22_23),
                 iVar49 == (int)dVar39)) {
                iVar10 = *(int *)(uStack_424 + 0x1a8);
                if (iVar10 == 0) {
                  piVar2 = (int *)(uStack_424 + 0x48);
                  piVar48 = aiStack_418;
                  do {
                    piVar17 = piVar48;
                    piVar19 = piVar2;
                    iVar50 = piVar19[1];
                    iVar12 = piVar19[2];
                    iVar10 = piVar19[3];
                    *piVar17 = *piVar19;
                    piVar17[1] = iVar50;
                    piVar17[2] = iVar12;
                    piVar17[3] = iVar10;
                    piVar2 = piVar19 + 4;
                    piVar48 = piVar17 + 4;
                  } while (piVar2 != (int *)(uStack_424 + 0x98));
                  iVar10 = piVar19[5];
                  piVar17[4] = *piVar2;
                  piVar17[5] = iVar10;
                }
                else {
                  uStack_444 = uStack_430;
                  piStack_448 = aiStack_418;
                  (**(code **)(pcStack_440 + -0x747c))
                            (iVar10,6,(uVar26 - uStack_434) + *(int *)(iVar10 + 0x298),
                             (iVar49 - uStack_428) + *(int *)(iVar10 + 0x29c));
                  uStack_41c = *(undefined4 *)(uStack_424 + 0x39c);
                  pdVar5 = (double *)(uStack_424 + 0x398);
                  uStack_420 = *(uint *)pdVar5 & 0x7fffffff;
                  if (in_f26_27 <= ABS(*pdVar5)) {
                    dStack_3d0 = dStack_3d0 * *pdVar5 * in_f28_29;
                  }
                }
                iVar10 = *(int *)(unaff_s7 + 0x2d0);
                *(float *)((int)pdVar16 + *(int *)(iVar10 + 8) * 4) = (float)dStack_3f0;
                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x14) * 4) = (float)dStack_3e8;
                *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x20) * 4) = (float)dStack_3e0;
                if (*(int *)(iVar10 + 0x28) != 0) {
                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x2c) * 4) = (float)dStack_3d8;
                }
                if (*(int *)(iVar10 + 0x34) != 0) {
                  if (aiStack_418[2] == 0) {
                    fVar43 = SUB84(in_f24_25,0);
                  }
                  else {
                    fVar43 = (float)dStack_3d0;
                  }
                  *(float *)((int)pdVar16 + *(int *)(iVar10 + 0x38) * 4) = fVar43;
                }
              }
              pdVar16 = (double *)((int)pdVar16 + *(int *)(unaff_s7 + 0x2c0) * 4);
              uVar26 = uVar26 + 1;
            } while ((int)uVar26 <= (int)param_1);
          }
          pdVar5 = pdStack_42c;
          iVar10 = (**(code **)(pcStack_440 + -0x73a0))(pdStack_42c,uStack_430);
          pcVar37 = pcStack_440;
          if (iVar10 == 0) {
            *(uint *)(pdVar29 + 4) = 0;
          }
        }
      }
      iVar49 = iVar49 + 1;
    } while (iVar49 < iVar28);
  }
  if (iStack_3bc == **(int **)(pcVar37 + -0x7668)) {
    return **(int **)(pcVar37 + -0x7668);
  }
  pcVar37 = *(code **)(pcVar37 + -0x7834);
  pcVar38 = FUN_000a549c;
  (*pcVar37)();
  pcStack_5a8 = pcVar37 + 0x35c414;
  iStack_4b4 = **(int **)(pcVar37 + 0x354dac);
  puVar32 = *(uint **)(pdVar5 + 4);
  pdVar30 = (double *)puVar32[3];
  pdVar14 = pdVar5;
  uStack_4b0 = uVar26;
  iStack_4ac = iVar49;
  pdStack_4a8 = pdVar16;
  pdStack_4a4 = pdVar29;
  iStack_4a0 = iVar28;
  puStack_49c = param_1;
  pdStack_498 = unaff_s6;
  uStack_494 = unaff_s7;
  iStack_490 = iVar3;
  pcStack_48c = pcVar38;
  dStack_488 = in_f20_21;
  dStack_480 = in_f22_23;
  dStack_478 = in_f24_25;
  dStack_470 = in_f26_27;
  dStack_468 = in_f28_29;
  dStack_460 = in_f30_31;
  iVar3 = (**(code **)(pcVar37 + 0x355488))();
  iVar10 = (**(code **)(pcStack_5a8 + -0x7390))();
  if (iVar3 == 0) {
    trap(7);
  }
  iVar49 = (int)(puVar32[1] - (int)pdVar30) / iVar3;
  piVar48 = (int *)((int)(puVar32[1] - (int)pdVar30) % iVar3);
  piVar2 = piVar48;
  if (iVar10 < (int)piVar48) {
    iVar49 = iVar49 + 1;
    piVar2 = (int *)0x0;
  }
  piVar2 = (int *)(iVar49 * iVar10 + (int)piVar2);
  puVar35 = (undefined1 *)((int)pdVar30 + (int)piVar2);
  pcVar37 = pcStack_5a8;
  if ((int)piVar2 < iVar49 + (int)piVar2) {
    dStack_580 = *pdVar5;
    pdStack_588 = *(double **)(pdVar5 + 3);
    puVar32 = *(uint **)((int)pdVar5 + 0x14);
    pdStack_568 = *(double **)(pdVar5 + 2);
    uStack_564 = *(uint *)((int)pdVar5 + 0xc);
    piVar48 = *(int **)(pdVar5 + 1);
    puStack_56c = (undefined1 *)((int)pdVar30 + iVar49 + (int)piVar2);
    dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);
    if (dStack_580 < 0.0) {
      dStack_578 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
    }
    iStack_570 = *(int *)(pcStack_5a8 + -0x7fd0);
    dStack_598 = *(double *)(iStack_570 + 0x4a48);
    iStack_584 = *(int *)(pcStack_5a8 + -0x7fd0);
    dStack_560 = *(double *)(iStack_584 + 0x43d0);
    unaff_s6 = *(double **)(pcStack_5a8 + -0x7fd0);
    dStack_548 = unaff_s6[0x879];
    do {
      if (*(uint *)((int)pdVar5 + 0x24) != 0) {
        uStack_5ac = uStack_564;
        uStack_5b0 = 1;
        pdVar14 = pdStack_568;
        pdVar30 = (double *)(**(code **)(pcVar37 + -0x724c))(pdStack_568,0,puVar35,piVar48[6]);
        if (pdVar30 == (double *)0x0) {
          *(uint *)((int)pdVar5 + 0x24) = 0;
          pcVar37 = pcStack_5a8;
        }
        else {
          piVar17 = *(int **)((int)pdVar5 + 0x1c);
          piVar2 = piVar17;
          piVar19 = aiStack_510;
          do {
            piVar11 = piVar19;
            piVar7 = piVar2;
            iVar49 = piVar7[1];
            iVar10 = piVar7[2];
            iVar3 = piVar7[3];
            *piVar11 = *piVar7;
            piVar11[1] = iVar49;
            piVar11[2] = iVar10;
            piVar11[3] = iVar3;
            piVar2 = piVar7 + 4;
            piVar19 = piVar11 + 4;
          } while (piVar2 != piVar17 + 0x14);
          iVar10 = *piVar2;
          iVar3 = piVar7[5];
          *piVar19 = iVar10;
          piVar11[5] = iVar3;
          in_f20_21 = *(double *)(piVar17 + 10);
          in_f22_23 = *(double *)(piVar17 + 0xc);
          in_f24_25 = *(double *)(piVar17 + 0xe);
          dStack_590 = *(double *)(piVar17 + 0x10);
          dVar39 = *(double *)(piVar17 + 0x12);
          if (*puVar32 < 2) {
            uStack_5a0 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);
            dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);
            dStack_540 = 0.0 - *(double *)(puVar32 + 6);
            dStack_530 = (double)(int)puVar35 - *(double *)(puVar32 + 8);
            dVar41 = dStack_540 * dStack_540 + dStack_530 * dStack_530;
            dStack_558 = SQRT(dVar41);
            if (0.0 <= dVar41) {
              dVar41 = dVar40 * dVar40;
            }
            else {
              (**(code **)(pcStack_5a8 + -0x7418))();
              dVar41 = dVar40 * dVar40;
            }
            dVar41 = uStack_5a0 * uStack_5a0 + dVar41;
            in_f26_27 = SQRT(dVar41);
            if (dVar41 < 0.0) {
              (**(code **)(pcStack_5a8 + -0x7418))();
            }
            in_f26_27 = dStack_558 * in_f26_27;
            if (0.0 <= in_f26_27) {
              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);
            }
            else {
              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
            }
            if (unaff_s6[0x879] <= in_f26_27 * dVar41) {
              dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / in_f26_27;
            }
            else {
              in_f26_27 = unaff_s6[0x879];
              dVar41 = dVar41 / in_f26_27;
            }
            uStack_5a0 = (uStack_5a0 * dStack_540 + dVar40 * dStack_530) * dVar41 * dStack_558;
LAB_000a56c0:
            uVar26 = *puVar32;
LAB_000a56c4:
            if (uVar26 != 2) {
              if (unaff_s6[0x879] <= dStack_580 * dStack_578) {
                dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dStack_580;
              }
              else {
                dVar41 = dStack_578 / unaff_s6[0x879];
              }
              uStack_5a0 = uStack_5a0 * dVar41;
            }
          }
          else {
            if (*puVar32 != 2) {
              uStack_5a0 = 0.0;
              goto LAB_000a56c0;
            }
            if (puVar32[0x10] != 3) {
              in_f26_27 = 0.0;
              dVar40 = 0.0 - *(double *)(puVar32 + 0x12);
              (**(code **)(pcStack_5a8 + -0x78e0))
                        ((*(double *)(puVar32 + 0x1c) *
                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /
                         *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80),piVar19,iVar10,
                         &dStack_518,&dStack_520);
              dVar41 = *(double *)(puVar32 + 0x16);
              if (in_f26_27 <= dVar41) {
                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);
              }
              else {
                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
              }
              if (unaff_s6[0x879] <= dVar41 * dVar47) {
                dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;
              }
              else {
                dVar47 = dVar47 / unaff_s6[0x879];
              }
              dVar47 = (dVar40 * dStack_520 +
                       ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) * dVar47;
              dVar41 = *(double *)(puVar32 + 0x18);
              if (0.0 <= dVar41) {
                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408);
              }
              else {
                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
              }
              if (unaff_s6[0x879] <= dVar41 * dVar44) {
                dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4408) / dVar41;
              }
              else {
                dVar44 = dVar44 / unaff_s6[0x879];
              }
              dVar44 = (dVar40 * dStack_518 -
                       dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) * dVar44;
              dVar41 = dVar47 * dVar47 + dVar44 * dVar44;
              uStack_5a0 = SQRT(dVar41);
              if (0.0 <= dVar41) goto LAB_000a5700;
              (**(code **)(pcStack_5a8 + -0x7418))();
              uVar26 = *puVar32;
              goto LAB_000a56c4;
            }
            dVar41 = (0.0 - *(double *)(puVar32 + 0x12)) * (0.0 - *(double *)(puVar32 + 0x12)) +
                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *
                     ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));
            uStack_5a0 = SQRT(dVar41);
            if (dVar41 < 0.0) {
              (**(code **)(pcStack_5a8 + -0x7418))();
              uVar26 = *puVar32;
              goto LAB_000a56c4;
            }
          }
LAB_000a5700:
          iVar28 = (*(int **)(pdVar5 + 4))[2];
          pdVar29 = *(double **)(pcStack_5a8 + -0x7fd0);
          if (iVar28 < **(int **)(pdVar5 + 4)) {
            dStack_540 = pdVar29[0x881];
            dStack_558 = (double)CONCAT44(*(int *)(pcStack_5a8 + -0x7fd0),dStack_558._4_4_);
            dVar41 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4410);
            do {
              (**(code **)(pcStack_5a8 + -0x78a4))(aiStack_510,0,0x58);
              aiStack_510[0] = 1;
              aiStack_510[1] = 0x17;
              iStack_4f8 = 0x10;
              aiStack_510[2] = 0;
              dStack_4c8 = dStack_598;
              if (piVar48 != (int *)0x0) {
                aiStack_510[0] = *piVar48;
                aiStack_510[1] = piVar48[1];
                uStack_500 = *(undefined8 *)(piVar48 + 0x92);
                iStack_4f8 = piVar48[8];
                aiStack_510[2] = piVar48[0xaf];
                if (pdVar30 != (double *)0x0) {
                  iVar3 = piVar48[0xb4];
                  dStack_4e8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4);
                  dStack_4e0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4);
                  dStack_4d8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4);
                  if (*(int *)(iVar3 + 0x28) != 0) {
                    dStack_4d0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4);
                  }
                  if (*(int *)(iVar3 + 0x34) != 0) {
                    dStack_4c8 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4);
                    aiStack_510[2] = 4;
                  }
                  if (*(int *)(iVar3 + 0x40) != 0) {
                    dStack_4c0 = (double)*(float *)((int)pdVar30 + *(int *)(iVar3 + 0x44) * 4);
                  }
                }
              }
              unaff_s7 = puVar32[0x10];
              if (unaff_s7 == 2) {
                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))(*pdStack_588 - dStack_560);
                if (((int)dVar39 == iVar28) &&
                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))
                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),
                   puVar35 == (undefined1 *)(int)dVar39)) {
LAB_000a63a4:
                  if (uStack_5a0 < 0.0) {
                    uStack_550 = uStack_5a0._0_4_ ^ 0x80000000;
                    uStack_54c = uStack_5a0._4_4_;
                    uStack_5a0 = -uStack_5a0;
                  }
LAB_000a63bc:
                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);
                }
                else {
                  if (*puVar32 < 2) {
                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);
                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);
                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);
                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);
                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;
                    uStack_5a0 = SQRT(dVar39);
                    if (0.0 <= dVar39) {
                      dVar39 = dVar40 * dVar40;
                    }
                    else {
                      (**(code **)(pcStack_5a8 + -0x7418))();
                      dVar39 = dVar40 * dVar40;
                    }
                    dVar39 = dVar44 * dVar44 + dVar39;
                    dVar42 = SQRT(dVar39);
                    if (dVar39 < 0.0) {
                      (**(code **)(pcStack_5a8 + -0x7418))();
                    }
                    dVar42 = uStack_5a0 * dVar42;
                    if (0.0 <= dVar42) {
                      in_f26_27 = pdVar29[0x881];
                    }
                    else {
                      in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                    }
                    if (unaff_s6[0x879] <= dVar42 * in_f26_27) {
                      in_f26_27 = pdVar29[0x881] / dVar42;
                    }
                    else {
                      in_f26_27 = in_f26_27 / unaff_s6[0x879];
                    }
                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;
                    uStack_5a0 = in_f26_27 * uStack_5a0;
LAB_000a6368:
                    if (*puVar32 != 2) {
LAB_000a6378:
                      if (dStack_548 <= dStack_580 * dStack_578) {
                        dVar39 = dStack_540 / dStack_580;
                      }
                      else {
                        dVar39 = dStack_578 / unaff_s6[0x879];
                      }
                      uStack_5a0 = uStack_5a0 * dVar39;
                    }
                    goto LAB_000a63a4;
                  }
                  if (*puVar32 != 2) {
                    uStack_5a0 = 0.0;
                    goto LAB_000a6368;
                  }
                  dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);
                  (**(code **)(pcStack_5a8 + -0x78e0))
                            ((*(double *)(puVar32 + 0x1c) *
                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /
                             *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));
                  dVar39 = *(double *)(puVar32 + 0x16);
                  if (0.0 <= dVar39) {
                    dVar47 = pdVar29[0x881];
                  }
                  else {
                    dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                  }
                  if (unaff_s6[0x879] <= dVar39 * dVar47) {
                    dVar47 = pdVar29[0x881] / dVar39;
                  }
                  else {
                    dVar47 = dVar47 / unaff_s6[0x879];
                  }
                  dVar39 = *(double *)(puVar32 + 0x18);
                  dVar47 = (dVar40 * dStack_520 +
                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *
                           dVar47;
                  if (0.0 <= dVar39) {
                    dVar44 = pdVar29[0x881];
                  }
                  else {
                    dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                  }
                  if (unaff_s6[0x879] <= dVar39 * dVar44) {
                    dVar44 = pdVar29[0x881] / dVar39;
                  }
                  else {
                    dVar44 = dVar44 / unaff_s6[0x879];
                  }
                  dVar44 = (dVar40 * dStack_518 -
                           dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *
                           dVar44;
                  dVar39 = dVar47 * dVar47 + dVar44 * dVar44;
                  uStack_5a0 = SQRT(dVar39);
                  if (0.0 <= dVar39) goto LAB_000a63bc;
                  (**(code **)(pcStack_5a8 + -0x7418))();
                  if (*puVar32 != 2) goto LAB_000a6378;
                  iVar3 = *(int *)(pcStack_5a8 + -0x7fcc);
                }
                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))
                                           (uStack_5a0,*(undefined8 *)(iVar3 + 0x298));
                if ((int)dVar39 == 0) {
                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))
                                                 (uStack_5a0,pdVar29[0x881]);
                }
                else {
                  dVar39 = pdVar29[0x881];
                  uStack_5a0 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(uStack_5a0,dVar39);
                  uStack_5a0 = dVar39 - uStack_5a0;
                }
                uVar26 = puVar32[0xf];
                if (0 < (int)uVar26) {
                  uVar8 = puVar32[0xe];
                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {
                    pdVar16 = (double *)(uVar8 + 0xb8);
                    uVar18 = 0;
                    do {
                      uVar22 = uVar18;
                      uVar18 = uVar22 + 1;
                      if (uVar18 == uVar26) {
                        if (uVar18 == 0) goto LAB_000a6248;
                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;
                        in_f20_21 = *(double *)(iVar3 + 0x28);
                        in_f22_23 = *(double *)(iVar3 + 0x30);
                        in_f24_25 = *(double *)(iVar3 + 0x38);
                        dStack_590 = *(double *)(iVar3 + 0x40);
                        dVar39 = *(double *)(iVar3 + 0x48);
                        goto LAB_000a5af8;
                      }
                      dVar39 = *pdVar16;
                      pdVar16 = pdVar16 + 0xc;
                    } while (dVar39 <= uStack_5a0);
                    if (uVar18 != 0) {
                      iVar10 = uVar8 + uVar22 * 0x60;
                      iVar3 = uVar8 + uVar18 * 0x60;
                      dVar39 = (uStack_5a0 - *(double *)(iVar10 + 0x58)) /
                               (*(double *)(iVar3 + 0x58) - *(double *)(iVar10 + 0x58));
                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *
                               *(double *)(dStack_558._0_4_ + 0x4410);
                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *
                               *(double *)(dStack_558._0_4_ + 0x4410);
                      dVar44 = dVar47 + dVar40;
                      if (0.0 <= dVar44) {
                        if (pdVar29[0x881] < dVar44) {
                          dVar44 = pdVar29[0x881];
                          goto LAB_000a6e58;
                        }
                        if (0.0 <= dVar44) {
                          dVar39 = dVar44;
                          if (pdVar29[0x881] < dVar44) {
                            dVar39 = pdVar29[0x881];
                          }
                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);
                          if (dVar44 < 0.0) {
                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                          }
                          else {
                            dVar45 = pdVar29[0x881];
                          }
                        }
                        else {
                          dVar39 = 0.0;
                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                        }
                      }
                      else {
                        dVar44 = 0.0;
LAB_000a6e58:
                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);
                        dVar45 = pdVar29[0x881];
                      }
                      if (unaff_s6[0x879] <= dVar45 * dVar44) {
                        dVar45 = pdVar29[0x881] / dVar44;
                      }
                      else {
                        dVar45 = dVar45 / unaff_s6[0x879];
                      }
                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +
                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;
                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +
                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;
                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +
                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;
                      if (*(int *)(iVar3 + 4) == 2) {
                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +
                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;
                      }
                      goto LAB_000a5af8;
                    }
                  }
                }
LAB_000a6248:
                uVar26 = puVar32[0xe];
                in_f20_21 = *(double *)(uVar26 + 0x28);
                in_f22_23 = *(double *)(uVar26 + 0x30);
                in_f24_25 = *(double *)(uVar26 + 0x38);
                dStack_590 = *(double *)(uVar26 + 0x40);
                dVar39 = *(double *)(uVar26 + 0x48);
              }
              else if (unaff_s7 < 2) {
                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))
                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));
                if (((int)dVar39 == iVar28) &&
                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))
                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),
                   puVar35 == (undefined1 *)(int)dVar39)) goto LAB_000a6944;
                if (*puVar32 < 2) {
                  dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);
                  dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);
                  dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);
                  dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);
                  dVar39 = dVar45 * dVar45 + dVar47 * dVar47;
                  uStack_5a0 = SQRT(dVar39);
                  if (0.0 <= dVar39) {
                    dVar39 = dVar40 * dVar40;
                  }
                  else {
                    (**(code **)(pcStack_5a8 + -0x7418))();
                    dVar39 = dVar40 * dVar40;
                  }
                  dVar39 = dVar44 * dVar44 + dVar39;
                  dVar42 = SQRT(dVar39);
                  if (dVar39 < 0.0) {
                    (**(code **)(pcStack_5a8 + -0x7418))();
                  }
                  dVar42 = uStack_5a0 * dVar42;
                  if (0.0 <= dVar42) {
                    in_f26_27 = pdVar29[0x881];
                  }
                  else {
                    in_f26_27 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                  }
                  if (unaff_s6[0x879] <= dVar42 * in_f26_27) {
                    in_f26_27 = pdVar29[0x881] / dVar42;
                  }
                  else {
                    in_f26_27 = in_f26_27 / unaff_s6[0x879];
                  }
                  in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * in_f26_27;
                  uStack_5a0 = in_f26_27 * uStack_5a0;
LAB_000a6908:
                  uVar26 = *puVar32;
LAB_000a690c:
                  if (uVar26 != 2) {
                    if (unaff_s6[0x879] <= dStack_580 * dStack_578) {
                      dVar39 = pdVar29[0x881] / dStack_580;
                    }
                    else {
                      dVar39 = dStack_578 / unaff_s6[0x879];
                    }
                    uStack_5a0 = uStack_5a0 * dVar39;
                  }
                }
                else {
                  if (*puVar32 != 2) {
                    uStack_5a0 = 0.0;
                    goto LAB_000a6908;
                  }
                  if (unaff_s7 != 3) {
                    dVar40 = (double)iVar28 - *(double *)(puVar32 + 0x12);
                    (**(code **)(pcStack_5a8 + -0x78e0))
                              ((*(double *)(puVar32 + 0x1c) *
                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a88)) /
                               *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4a80));
                    dVar39 = *(double *)(puVar32 + 0x16);
                    if (0.0 <= dVar39) {
                      dVar47 = pdVar29[0x881];
                    }
                    else {
                      dVar47 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                    }
                    if (unaff_s6[0x879] <= dVar39 * dVar47) {
                      dVar47 = pdVar29[0x881] / dVar39;
                    }
                    else {
                      dVar47 = dVar47 / unaff_s6[0x879];
                    }
                    dVar39 = *(double *)(puVar32 + 0x18);
                    dVar47 = (dVar40 * dStack_520 +
                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) * dStack_518) *
                             dVar47;
                    if (0.0 <= dVar39) {
                      dVar44 = pdVar29[0x881];
                    }
                    else {
                      dVar44 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                    }
                    if (unaff_s6[0x879] <= dVar39 * dVar44) {
                      dVar44 = pdVar29[0x881] / dVar39;
                    }
                    else {
                      dVar44 = dVar44 / unaff_s6[0x879];
                    }
                    dVar44 = (dVar40 * dStack_518 -
                             dStack_520 * ((double)(int)puVar35 - *(double *)(puVar32 + 0x14))) *
                             dVar44;
                    dVar39 = dVar47 * dVar47 + dVar44 * dVar44;
                    uStack_5a0 = SQRT(dVar39);
                    if (0.0 <= dVar39) goto LAB_000a6944;
                    (**(code **)(pcStack_5a8 + -0x7418))();
                    uVar26 = *puVar32;
                    goto LAB_000a690c;
                  }
                  dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *
                           ((double)iVar28 - *(double *)(puVar32 + 0x12)) +
                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *
                           ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));
                  uStack_5a0 = SQRT(dVar39);
                  if (dVar39 < 0.0) {
                    (**(code **)(pcStack_5a8 + -0x7418))();
                    uVar26 = *puVar32;
                    goto LAB_000a690c;
                  }
                }
LAB_000a6944:
                uVar26 = puVar32[0xf];
                if (0 < (int)uVar26) {
                  uVar8 = puVar32[0xe];
                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {
                    pdVar16 = (double *)(uVar8 + 0xb8);
                    uVar18 = 0;
                    do {
                      uVar22 = uVar18;
                      uVar18 = uVar22 + 1;
                      if (uVar18 == uVar26) {
                        if (uStack_5a0 < 0.0) goto LAB_000a6694;
                        dVar39 = pdVar29[0x881];
                        uVar18 = uVar26;
                        goto LAB_000a6f20;
                      }
                      dVar39 = *pdVar16;
                      pdVar16 = pdVar16 + 0xc;
                    } while (dVar39 <= uStack_5a0);
                    if ((0.0 <= uStack_5a0) && (dVar39 = pdVar29[0x881], uVar18 != 0)) {
LAB_000a6f20:
                      if ((dVar39 < uStack_5a0) || (uVar26 == uVar18)) {
                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;
                        in_f20_21 = *(double *)(iVar3 + 0x28);
                        in_f22_23 = *(double *)(iVar3 + 0x30);
                        in_f24_25 = *(double *)(iVar3 + 0x38);
                        dStack_590 = *(double *)(iVar3 + 0x40);
                        dVar39 = *(double *)(iVar3 + 0x48);
                        goto LAB_000a5af8;
                      }
                      iVar3 = uVar8 + uVar22 * 0x60;
                      iVar10 = uVar8 + uVar18 * 0x60;
                      dVar39 = (uStack_5a0 - *(double *)(iVar3 + 0x58)) /
                               (*(double *)(iVar10 + 0x58) - *(double *)(iVar3 + 0x58));
                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar3 + 0x48) *
                               *(double *)(dStack_558._0_4_ + 0x4410);
                      dVar40 = dVar39 * *(double *)(iVar10 + 0x48) *
                               *(double *)(dStack_558._0_4_ + 0x4410);
                      dVar44 = dVar47 + dVar40;
                      if (0.0 <= dVar44) {
                        if (pdVar29[0x881] < dVar44) {
                          dVar44 = pdVar29[0x881];
                          goto LAB_000a6740;
                        }
                        if (0.0 <= dVar44) {
                          dVar39 = dVar44;
                          if (pdVar29[0x881] < dVar44) {
                            dVar39 = pdVar29[0x881];
                          }
                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);
                          if (dVar44 < 0.0) {
                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                          }
                          else {
                            dVar45 = pdVar29[0x881];
                          }
                        }
                        else {
                          dVar39 = 0.0;
                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                        }
                      }
                      else {
                        dVar44 = 0.0;
LAB_000a6740:
                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);
                        dVar45 = pdVar29[0x881];
                      }
                      if (unaff_s6[0x879] <= dVar45 * dVar44) {
                        dVar45 = pdVar29[0x881] / dVar44;
                      }
                      else {
                        dVar45 = dVar45 / unaff_s6[0x879];
                      }
                      in_f20_21 = (dVar47 * *(double *)(iVar3 + 0x28) +
                                  dVar40 * *(double *)(iVar10 + 0x28)) * dVar45;
                      in_f22_23 = (dVar47 * *(double *)(iVar3 + 0x30) +
                                  dVar40 * *(double *)(iVar10 + 0x30)) * dVar45;
                      in_f24_25 = (dVar47 * *(double *)(iVar3 + 0x38) +
                                  dVar40 * *(double *)(iVar10 + 0x38)) * dVar45;
                      if (*(int *)(iVar10 + 4) == 2) {
                        dStack_590 = (dVar47 * *(double *)(iVar3 + 0x40) +
                                     dVar40 * *(double *)(iVar10 + 0x40)) * dVar45;
                      }
                      goto LAB_000a5af8;
                    }
                  }
                }
LAB_000a6694:
                uVar26 = puVar32[0xe];
                in_f20_21 = *(double *)(uVar26 + 0x28);
                in_f22_23 = *(double *)(uVar26 + 0x30);
                in_f24_25 = *(double *)(uVar26 + 0x38);
                dStack_590 = *(double *)(uVar26 + 0x40);
                dVar39 = *(double *)(uVar26 + 0x48);
              }
              else if (unaff_s7 == 3) {
                dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))
                                           (*pdStack_588 - *(double *)(iStack_584 + 0x43d0));
                if (((int)dVar39 == iVar28) &&
                   (dVar39 = (double)(**(code **)(pcStack_5a8 + -0x7c78))
                                               (pdStack_588[1] - *(double *)(iStack_584 + 0x43d0)),
                   puVar35 == (undefined1 *)(int)dVar39)) {
                  dVar40 = 0.0;
                  bVar1 = false;
                }
                else {
                  if (*puVar32 < 2) {
                    dVar44 = *(double *)(puVar32 + 10) - *(double *)(puVar32 + 6);
                    dVar40 = *(double *)(puVar32 + 0xc) - *(double *)(puVar32 + 8);
                    dVar45 = (double)iVar28 - *(double *)(puVar32 + 6);
                    dVar47 = (double)(int)puVar35 - *(double *)(puVar32 + 8);
                    dVar39 = dVar45 * dVar45 + dVar47 * dVar47;
                    uStack_5a0 = SQRT(dVar39);
                    if (0.0 <= dVar39) {
                      dVar39 = dVar40 * dVar40;
                    }
                    else {
                      (**(code **)(pcStack_5a8 + -0x7418))();
                      dVar39 = dVar40 * dVar40;
                    }
                    dVar39 = dVar44 * dVar44 + dVar39;
                    dVar42 = SQRT(dVar39);
                    if (dVar39 < 0.0) {
                      (**(code **)(pcStack_5a8 + -0x7418))();
                    }
                    dVar42 = uStack_5a0 * dVar42;
                    if (0.0 <= dVar42) {
                      dVar39 = pdVar29[0x881];
                    }
                    else {
                      dVar39 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                    }
                    if (unaff_s6[0x879] <= dVar42 * dVar39) {
                      dVar39 = pdVar29[0x881] / dVar42;
                    }
                    else {
                      dVar39 = dVar39 / unaff_s6[0x879];
                    }
                    in_f26_27 = (dVar44 * dVar45 + dVar40 * dVar47) * dVar39 * uStack_5a0;
LAB_000a5e90:
                    uVar26 = *puVar32;
LAB_000a5e94:
                    if (uVar26 == 1) {
                      dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);
                      uStack_5a0 = dVar39;
                      if (0.0 <= dVar39) {
                        dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(in_f26_27,dStack_580);
                      }
                      else {
                        uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);
                        uStack_528 = uStack_5a0._0_4_ ^ 0x80000000;
                        uStack_5a0._4_4_ = SUB84(dVar39,0);
                        uStack_524 = uStack_5a0._4_4_;
                        dVar40 = dStack_580;
                        dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dStack_580);
                        dVar40 = dVar40 - dVar39;
                      }
                      bVar1 = dVar40 < dStack_580 && dStack_580 < dVar40 + pdVar29[0x881];
                      if (unaff_s6[0x879] <= dStack_580 * dStack_578) {
                        uStack_5a0 = pdVar29[0x881] / dStack_580;
                      }
                      else {
                        uStack_5a0 = dStack_578 / unaff_s6[0x879];
                      }
                      uStack_5a0 = dVar40 * uStack_5a0;
                      goto LAB_000a5f08;
                    }
                  }
                  else {
                    if (*puVar32 != 2) {
                      in_f26_27 = 0.0;
                      goto LAB_000a5e90;
                    }
                    dVar39 = ((double)iVar28 - *(double *)(puVar32 + 0x12)) *
                             ((double)iVar28 - *(double *)(puVar32 + 0x12)) +
                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14)) *
                             ((double)(int)puVar35 - *(double *)(puVar32 + 0x14));
                    in_f26_27 = SQRT(dVar39);
                    if (dVar39 < 0.0) {
                      (**(code **)(pcStack_5a8 + -0x7418))();
                      uVar26 = *puVar32;
                      goto LAB_000a5e94;
                    }
                  }
                  dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))
                                             (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));
                  uStack_5a0 = dVar39;
                  if (0.0 <= dVar39) {
                    dVar40 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))
                                               (in_f26_27,*(undefined8 *)(puVar32 + 0x1a));
                  }
                  else {
                    dVar40 = *(double *)(puVar32 + 0x1a);
                    uStack_5a0._0_4_ = (uint)((ulonglong)dVar39 >> 0x20);
                    uStack_538 = uStack_5a0._0_4_ ^ 0x80000000;
                    uStack_5a0._4_4_ = SUB84(dVar39,0);
                    uStack_534 = uStack_5a0._4_4_;
                    dVar39 = (double)(**(code **)(pcStack_5a8 + -0x6ee0))(-dVar39,dVar40);
                    dVar40 = dVar40 - dVar39;
                  }
                  bVar1 = *(double *)(puVar32 + 0x1a) < dVar40 + pdVar29[0x881];
                  uStack_5a0 = dVar40 / *(double *)(puVar32 + 0x1a);
                }
LAB_000a5f08:
                uVar26 = puVar32[0xf];
                if (0 < (int)uVar26) {
                  uVar8 = puVar32[0xe];
                  if (*(double *)(uVar8 + 0x58) <= uStack_5a0) {
                    pdVar16 = (double *)(uVar8 + 0xb8);
                    uVar18 = 0;
                    do {
                      uVar22 = uVar18;
                      uVar18 = uVar22 + 1;
                      if (uVar18 == uVar26) {
                        if (uVar18 == 0) goto LAB_000a5db0;
                        iVar3 = uVar8 + uVar26 * 0x60 + -0x60;
                        in_f20_21 = *(double *)(iVar3 + 0x28);
                        in_f22_23 = *(double *)(iVar3 + 0x30);
                        in_f24_25 = *(double *)(iVar3 + 0x38);
                        dStack_590 = *(double *)(iVar3 + 0x40);
                        dVar39 = *(double *)(iVar3 + 0x48);
                        goto LAB_000a5af8;
                      }
                      dVar39 = *pdVar16;
                      pdVar16 = pdVar16 + 0xc;
                    } while (dVar39 <= uStack_5a0);
                    if (uVar18 != 0) {
                      dVar39 = *(double *)(uVar8 + uVar22 * 0x60 + 0x58);
                      if (bVar1) {
                        dVar39 = dStack_580;
                        if (*puVar32 != 1) {
                          dVar39 = *(double *)(puVar32 + 0x1a);
                        }
                        dVar39 = dVar39 - dVar40;
                        uVar18 = uVar26 - 1;
                        uVar22 = 0;
                      }
                      else {
                        dVar39 = (uStack_5a0 - dVar39) /
                                 (*(double *)(uVar8 + uVar18 * 0x60 + 0x58) - dVar39);
                      }
                      iVar10 = uVar8 + uVar22 * 0x60;
                      iVar3 = uVar8 + uVar18 * 0x60;
                      dVar47 = (pdVar29[0x881] - dVar39) * *(double *)(iVar10 + 0x48) *
                               *(double *)(dStack_558._0_4_ + 0x4410);
                      dVar40 = dVar39 * *(double *)(iVar3 + 0x48) *
                               *(double *)(dStack_558._0_4_ + 0x4410);
                      dVar44 = dVar47 + dVar40;
                      if (0.0 <= dVar44) {
                        if (pdVar29[0x881] < dVar44) {
                          dVar44 = pdVar29[0x881];
                          goto LAB_000a6d30;
                        }
                        if (0.0 <= dVar44) {
                          dVar39 = dVar44;
                          if (pdVar29[0x881] < dVar44) {
                            dVar39 = pdVar29[0x881];
                          }
                          dVar39 = dVar39 * *(double *)(iStack_570 + 0x4a48);
                          if (dVar44 < 0.0) {
                            dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                          }
                          else {
                            dVar45 = pdVar29[0x881];
                          }
                        }
                        else {
                          dVar39 = 0.0;
                          dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                        }
                      }
                      else {
                        dVar44 = 0.0;
LAB_000a6d30:
                        dVar39 = dVar44 * *(double *)(iStack_570 + 0x4a48);
                        dVar45 = pdVar29[0x881];
                      }
                      if (unaff_s6[0x879] <= dVar45 * dVar44) {
                        dVar45 = pdVar29[0x881] / dVar44;
                      }
                      else {
                        dVar45 = dVar45 / unaff_s6[0x879];
                      }
                      in_f20_21 = (dVar47 * *(double *)(iVar10 + 0x28) +
                                  dVar40 * *(double *)(iVar3 + 0x28)) * dVar45;
                      in_f22_23 = (dVar47 * *(double *)(iVar10 + 0x30) +
                                  dVar40 * *(double *)(iVar3 + 0x30)) * dVar45;
                      in_f24_25 = (dVar47 * *(double *)(iVar10 + 0x38) +
                                  dVar40 * *(double *)(iVar3 + 0x38)) * dVar45;
                      if (*(int *)(iVar3 + 4) == 2) {
                        dStack_590 = (dVar47 * *(double *)(iVar10 + 0x40) +
                                     dVar40 * *(double *)(iVar3 + 0x40)) * dVar45;
                      }
                      goto LAB_000a5af8;
                    }
                  }
                }
LAB_000a5db0:
                uVar26 = puVar32[0xe];
                in_f20_21 = *(double *)(uVar26 + 0x28);
                in_f22_23 = *(double *)(uVar26 + 0x30);
                in_f24_25 = *(double *)(uVar26 + 0x38);
                dStack_590 = *(double *)(uVar26 + 0x40);
                dVar39 = *(double *)(uVar26 + 0x48);
              }
LAB_000a5af8:
              dVar44 = dVar39 * dVar41;
              dVar47 = dStack_4c8 * dVar41;
              dVar40 = (dVar44 + dVar47) - dVar44 * dVar47;
              if (0.0 <= dVar40) {
                dStack_4c8 = pdVar29[0x881];
                if (dVar40 <= pdVar29[0x881]) {
                  dStack_4c8 = dVar40;
                }
                dStack_4c8 = dStack_4c8 * *(double *)(iStack_570 + 0x4a48);
                if (0.0 <= dVar40) {
                  dVar45 = pdVar29[0x881];
                }
                else {
                  dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
                }
              }
              else {
                dStack_4c8 = 0.0;
                dVar45 = *(double *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4418);
              }
              if (unaff_s6[0x879] <= dVar40 * dVar45) {
                dVar45 = pdVar29[0x881] / dVar40;
              }
              else {
                dVar45 = dVar45 / unaff_s6[0x879];
              }
              dVar40 = pdVar29[0x881] - dVar44;
              dStack_4e8 = (dVar47 * dStack_4e8 * dVar40 + dVar44 * in_f20_21) * dVar45;
              dStack_4e0 = (dVar47 * dStack_4e0 * dVar40 + in_f22_23 * dVar44) * dVar45;
              dStack_4d8 = (dVar47 * dStack_4d8 * dVar40 + dVar44 * in_f24_25) * dVar45;
              if (aiStack_510[1] == 2) {
                dStack_4d0 = (dVar47 * dStack_4d0 * dVar40 + dStack_590 * dVar44) * dVar45;
              }
              iVar3 = piVar48[0xb4];
              *(float *)((int)pdVar30 + *(int *)(iVar3 + 8) * 4) = (float)dStack_4e8;
              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x14) * 4) = (float)dStack_4e0;
              *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x20) * 4) = (float)dStack_4d8;
              if (*(int *)(iVar3 + 0x28) != 0) {
                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x2c) * 4) = (float)dStack_4d0;
              }
              if (*(int *)(iVar3 + 0x34) != 0) {
                if (aiStack_510[2] == 0) {
                  fVar43 = *(float *)(*(int *)(pcStack_5a8 + -0x7fd0) + 0x4aa8);
                }
                else {
                  fVar43 = (float)dStack_4c8;
                }
                *(float *)((int)pdVar30 + *(int *)(iVar3 + 0x38) * 4) = fVar43;
              }
              pdVar30 = (double *)((int)pdVar30 + piVar48[0xb0] * 4);
              iVar28 = iVar28 + 1;
            } while (iVar28 < **(int **)(pdVar5 + 4));
          }
          pdVar14 = pdStack_568;
          iVar3 = (**(code **)(pcStack_5a8 + -0x73a0))(pdStack_568,uStack_564);
          pcVar37 = pcStack_5a8;
          if (iVar3 == 0) {
            *(uint *)((int)pdVar5 + 0x24) = 0;
          }
        }
      }
      puVar35 = puVar35 + 1;
    } while ((int)puVar35 < (int)puStack_56c);
  }
  if (iStack_4b4 == **(int **)(pcVar37 + -0x7668)) {
    return **(int **)(pcVar37 + -0x7668);
  }
  pcVar37 = *(code **)(pcVar37 + -0x7834);
  pcVar38 = DestroyDrawInfo;
  (*pcVar37)();
  pcStack_5d0 = pcVar37 + 0x35a8f0;
  pdStack_5c8 = pdVar30;
  pcStack_5c4 = pcVar38;
  if (pdVar14 == (double *)0x0) {
    (**(code **)(pcVar37 + 0x353660))
              (*(int *)(pcVar37 + 0x352920) + 0x40e4,*(int *)(pcVar37 + 0x352924) + 0x69c0,0x39a,
               *(int *)(pcVar37 + 0x352924) + 0x7914);
    pdVar14 = pdVar30;
LAB_000a7234:
    iStack_5d8 = *(int *)(pcVar37 + 0x352924) + 0x10f4;
    (**(code **)(pcVar37 + 0x353238))
              (0x8000,*(int *)(pcVar37 + 0x352924) + 0x69c0,*(int *)(pcVar37 + 0x352924) + 0x7904,
               0x39c);
    uVar26 = *(uint *)(pdVar14 + 0x72);
  }
  else {
    if (*(uint *)((int)pdVar14 + 0x38c) != 0) goto LAB_000a7234;
    uVar26 = *(uint *)(pdVar14 + 0x72);
  }
  if (uVar26 == 0xabacadab) {
    if (*(uint *)(pdVar14 + 0x77) != 0) {
      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();
      *(uint *)(pdVar14 + 0x77) = uVar26;
    }
    if (*(uint *)pdVar14 != 0) {
      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();
      *(uint *)pdVar14 = uVar26;
    }
    if (*(uint *)(pdVar14 + 0x4c) != 0) {
      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();
      *(uint *)(pdVar14 + 0x4c) = uVar26;
    }
    if (*(uint *)((int)pdVar14 + 4) != 0) {
      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();
      *(uint *)((int)pdVar14 + 4) = uVar26;
    }
    if (*(uint *)(pdVar14 + 0x35) != 0) {
      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();
      *(uint *)(pdVar14 + 0x35) = uVar26;
    }
    if (*(uint *)((int)pdVar14 + 0x1ac) != 0) {
      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();
      *(uint *)((int)pdVar14 + 0x1ac) = uVar26;
    }
    if (*(uint *)((int)pdVar14 + 0x264) != 0) {
      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();
      *(uint *)((int)pdVar14 + 0x264) = uVar26;
    }
    if (*(uint *)(pdVar14 + 0x4d) != 0) {
      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();
      *(uint *)(pdVar14 + 0x4d) = uVar26;
    }
    if (*(uint *)((int)pdVar14 + 0x26c) != 0) {
      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();
      *(uint *)((int)pdVar14 + 0x26c) = uVar26;
    }
    if (*(uint *)(pdVar14 + 0x50) != 0) {
      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();
      *(uint *)(pdVar14 + 0x50) = uVar26;
    }
    if (*(uint *)(pdVar14 + 0x52) != 0) {
      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();
      *(uint *)(pdVar14 + 0x52) = uVar26;
    }
    if (*(uint *)((int)pdVar14 + 0x29c) != 0) {
      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();
      *(uint *)((int)pdVar14 + 0x29c) = uVar26;
    }
    if (*(uint *)(pdVar14 + 0x54) != 0) {
      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();
      *(uint *)(pdVar14 + 0x54) = uVar26;
    }
    if (*(uint *)(pdVar14 + 0x3e) != 0) {
      uVar26 = (**(code **)(pcStack_5d0 + -0x78d8))();
      *(uint *)(pdVar14 + 0x3e) = uVar26;
    }
    if (*(uint *)((int)pdVar14 + 0x2a4) != 0) {
      uVar26 = (**(code **)(pcStack_5d0 + -0x7824))();
      *(uint *)((int)pdVar14 + 0x2a4) = uVar26;
    }
    if (*(uint *)((int)pdVar14 + 0x3ac) != 0) {
      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();
      *(uint *)((int)pdVar14 + 0x3ac) = uVar26;
    }
    if (*(uint *)((int)pdVar14 + 0x3b4) != 0) {
      uVar26 = (**(code **)(pcStack_5d0 + -0x794c))();
      *(uint *)((int)pdVar14 + 0x3b4) = uVar26;
    }
    *(uint *)(pdVar14 + 0x72) = 0x54535254;
    iVar3 = (**(code **)(pcStack_5d0 + -0x78d8))(pdVar14);
    return iVar3;
  }
  pdVar5 = (double *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x7914);
  pdVar16 = (double *)&DAT_0000039d;
  puVar23 = (uint *)(*(int *)(pcStack_5d0 + -0x7fcc) + 0x69c0);
  piVar2 = (int *)(*(int *)(pcStack_5d0 + -0x7fd0) + 0x4128);
  pcVar37 = *(code **)(pcStack_5d0 + -0x7290);
  pcVar38 = DrawAffineImage;
  (*pcVar37)();
  pcStack_758 = pcVar37 + 0x35a61c;
  uStack_638._4_4_ = **(int **)(pcVar37 + 0x352fb4);
  pdStack_62c = pdVar14;
  piStack_628 = piVar48;
  puStack_624 = puVar32;
  pdStack_620 = pdVar29;
  iStack_61c = iVar28;
  puStack_618 = puVar35;
  pdStack_614 = unaff_s6;
  uStack_610 = unaff_s7;
  pcStack_60c = pcVar38;
  dStack_608 = in_f20_21;
  dStack_600 = in_f22_23;
  dStack_5f8 = in_f24_25;
  dStack_5f0 = in_f26_27;
  if (piVar2 == (int *)0x0) {
    (**(code **)(pcVar37 + 0x35338c))
              (*(int *)(pcVar37 + 0x35264c) + 0x3da0,*(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c0,
               *(int *)(pcVar37 + 0x352650) + 0x78f4);
    pdVar16 = pdVar14;
    piVar2 = piVar48;
    puVar23 = puVar32;
    pdVar5 = pdVar29;
LAB_000a7434:
    piVar48 = (int *)(**(code **)(pcVar37 + 0x35338c))
                               (*(int *)(pcVar37 + 0x352650) + -0x784,
                                *(int *)(pcVar37 + 0x352650) + 0x69c0,0x4c1,
                                *(int *)(pcVar37 + 0x352650) + 0x78f4);
LAB_000a745c:
    iStack_760 = *(int *)(pcVar37 + 0x352654) + -0x2f6c;
    piStack_75c = piVar48;
    (**(code **)(pcVar37 + 0x352f64))
              (0x8000,*(int *)(pcVar37 + 0x352650) + 0x69c0,*(int *)(pcVar37 + 0x352650) + 0x78e4,
               0x4c3);
  }
  else {
    if (piVar2[0xcdb] != -0x54535255) goto LAB_000a7434;
    piVar48 = piVar2 + 0xd0;
    if (piVar2[0xcd4] != 0) goto LAB_000a745c;
  }
  pcVar37 = pcStack_758;
  if (puVar23 == (uint *)0x0) {
    (**(code **)(pcStack_758 + -0x7290))
              (*(int *)(pcStack_758 + -0x7fcc) + 0x6a20,*(int *)(pcStack_758 + -0x7fcc) + 0x69c0,
               0x4c4,*(int *)(pcStack_758 + -0x7fcc) + 0x78f4);
LAB_000a74c4:
    (**(code **)(pcVar37 + -0x7290))
              (*(int *)(pcVar37 + -0x7fcc) + 0x6a40,*(int *)(pcVar37 + -0x7fcc) + 0x69c0);
LAB_000a74e8:
    dStack_668 = (double)(**(code **)(pcVar37 + -0x7290))
                                   (*(int *)(pcVar37 + -0x7fcc) + 0x6a6c,
                                    *(int *)(pcVar37 + -0x7fcc) + 0x69c0);
LAB_000a750c:
    dStack_668 = dStack_668 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);
  }
  else {
    if (puVar23[0xcdb] != 0xabacadab) goto LAB_000a74c4;
    if (pdVar16 == (double *)0x0) goto LAB_000a74e8;
    uStack_678._4_4_ = 0;
    uStack_678._0_4_ = 0;
    uStack_66c = 0;
    uStack_670 = 0;
    dStack_668 = (double)(int)puVar23[6];
    if ((int)puVar23[6] < 0) goto LAB_000a750c;
  }
  dStack_668 = dStack_668 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408);
  uStack_65c = 0;
  uStack_660 = 0;
  dStack_658 = dStack_668;
  dStack_650 = (double)(int)puVar23[7];
  if ((int)puVar23[7] < 0) {
    dStack_650 = dStack_650 + *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x43e8);
  }
  dStack_650 = dStack_650 - *(double *)(*(int *)(pcVar37 + -0x7fd0) + 0x4408);
  uStack_644 = 0;
  uStack_648 = 0;
  dStack_640 = dStack_650;
  dVar45 = *pdVar16;
  dVar44 = pdVar16[2];
  dVar47 = pdVar16[4];
  dVar40 = pdVar16[1];
  dVar41 = pdVar16[3];
  dVar39 = pdVar16[5];
  pdVar14 = (double *)&uStack_678;
  pdVar29 = pdVar14;
  do {
    dVar42 = *pdVar29;
    *pdVar29 = dVar45 * dVar42 + dVar44 * pdVar29[1] + dVar47;
    pdVar29[1] = dVar40 * dVar42 + dVar41 * pdVar29[1] + dVar39;
    pdVar29 = pdVar29 + 2;
  } while (pdVar29 != (double *)&uStack_638);
  dVar39 = (double)CONCAT44(uStack_670,uStack_66c);
  dVar41 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_);
  dVar40 = (double)CONCAT44(uStack_678._0_4_,uStack_678._4_4_);
  dVar47 = (double)CONCAT44(uStack_670,uStack_66c);
  do {
    dVar45 = pdVar14[2];
    dVar44 = dVar45;
    if (dVar41 <= dVar45) {
      dVar44 = dVar41;
    }
    dVar42 = pdVar14[3];
    dVar46 = dVar42;
    if (dVar47 <= dVar42) {
      dVar46 = dVar47;
    }
    if (dVar45 <= dVar40) {
      dVar45 = dVar40;
    }
    if (dVar42 <= dVar39) {
      dVar42 = dVar39;
    }
    pdVar14 = pdVar14 + 2;
    dVar39 = dVar42;
    dVar41 = dVar44;
    dVar40 = dVar45;
    dVar47 = dVar46;
  } while ((double *)&uStack_648 != pdVar14);
  ppiVar24 = (int **)0x1;
  pdVar29 = pdVar5;
  iVar3 = (**(code **)(pcVar37 + -0x7074))(piVar2);
  if (iVar3 != 0) {
    dStack_750 = dVar44;
    if (dVar44 <= 0.0) {
      dStack_750 = 0.0;
    }
    dStack_748 = dVar46;
    if (dVar46 <= 0.0) {
      dStack_748 = 0.0;
    }
    dStack_740 = (double)piVar2[6];
    if (piVar2[6] < 0) {
      dStack_740 = dStack_740 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);
    }
    dStack_740 = dStack_740 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);
    if (dVar45 < dStack_740) {
      dStack_740 = dVar45;
    }
    dStack_738 = (double)piVar2[7];
    if (piVar2[7] < 0) {
      dStack_738 = dStack_738 + *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43e8);
    }
    dStack_738 = dStack_738 - *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);
    if (dVar42 < dStack_738) {
      dStack_738 = dVar42;
    }
    dStack_6e8 = *pdVar16 * pdVar16[3] - pdVar16[1] * pdVar16[2];
    if (0.0 <= dStack_6e8) {
      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408);
    }
    else {
      dVar39 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4418);
    }
    if (dStack_6e8 * dVar39 < *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8)) {
      dStack_6e8 = dVar39 / *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43c8);
    }
    else {
      dStack_6e8 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x4408) / dStack_6e8;
    }
    dStack_700 = pdVar16[3] * dStack_6e8;
    dStack_6f8 = -pdVar16[1] * dStack_6e8;
    dStack_6f0 = -pdVar16[2] * dStack_6e8;
    dStack_6e8 = *pdVar16 * dStack_6e8;
    dStack_6e0 = dStack_700 * -pdVar16[4] - dStack_6f0 * pdVar16[5];
    dStack_6d8 = dStack_6f8 * -pdVar16[4] - dStack_6e8 * pdVar16[5];
    (**(code **)(pcStack_758 + -0x75e4))(piVar2,auStack_6d0);
    dVar42 = *(double *)(*(int *)(pcStack_758 + -0x7fd0) + 0x43d0);
    dVar39 = (double)(**(code **)(pcStack_758 + -0x7c78))(dStack_748 - dVar42);
    dVar41 = (double)(**(code **)(pcStack_758 + -0x7228))(dStack_738 + dVar42);
    uVar4 = (**(code **)(pcStack_758 + -0x7144))(puVar23,pdVar5);
    puVar35 = (undefined1 *)(**(code **)(pcStack_758 + -0x79c4))(piVar2,pdVar5);
    iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23);
    if (((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(puVar23), iVar3 == 3)) &&
       ((iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 4 ||
        (iVar3 = (**(code **)(pcStack_758 + -0x73e4))(piVar2), iVar3 == 3)))) {
      (**(code **)(pcStack_758 + -0x775c))(7);
      iVar10 = (int)dVar41 - (int)dVar39;
      iVar3 = iVar10;
      if (iVar10 < 0) {
        iVar3 = iVar10 + 0x3f;
      }
      pdVar16 = (double *)(iVar3 >> 6);
      if (extraout_v1 < (int)pdVar16) {
        (**(code **)(pcStack_758 + -0x775c))(7);
        bVar1 = extraout_v1_01 < 2;
      }
      else {
        bVar1 = iVar10 < 0x80;
      }
      pdVar29 = (double *)0x1;
      if (((bool)(bVar1 ^ 1)) &&
         ((**(code **)(pcStack_758 + -0x775c))(7), pdVar29 = pdVar16, extraout_v1_02 < (int)pdVar16)
         ) {
        (**(code **)(pcStack_758 + -0x775c))(7);
        pdVar29 = extraout_v1_03;
        pdVar16 = extraout_v1_03;
      }
    }
    else {
      uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);
      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {
        uVar51 = (**(code **)(pcStack_758 + -0x775c))(7);
        if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a77f8;
        pcVar37 = *(code **)(pcStack_758 + -0x775c);
        if ((uint)uVar51 < 2) {
          pdVar29 = (double *)0x1;
          goto LAB_000a7818;
        }
      }
      else {
LAB_000a77f8:
        pcVar37 = *(code **)(pcStack_758 + -0x775c);
      }
      uVar51 = (*pcVar37)(7);
      if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {
        (**(code **)(pcStack_758 + -0x775c))(7);
        pdVar29 = extraout_v1_00;
      }
      else {
        pdVar29 = (double *)0x2;
      }
    }
LAB_000a7818:
    pdStack_720 = &dStack_700;
    puStack_714 = auStack_6d0;
    pdStack_710 = &dStack_750;
    iStack_704 = 1;
    ppiVar24 = &piStack_72c;
    piStack_72c = piVar2;
    puStack_728 = puVar23;
    pdStack_724 = pdVar5;
    puStack_71c = puVar35;
    uStack_718 = uVar4;
    iStack_70c = (int)dVar39;
    iStack_708 = (int)dVar41;
    (**(code **)(pcStack_758 + -0x7700))
              (*(int *)(pcStack_758 + -0x7ea0) + 0x34c4,ppiVar24,pdVar29,0);
    iVar3 = iStack_704;
    (**(code **)(pcStack_758 + -0x79a4))(uVar4);
    (**(code **)(pcStack_758 + -0x79a4))(puVar35);
  }
  if (uStack_638._4_4_ == **(int **)(pcStack_758 + -0x7668)) {
    return iVar3;
  }
  pcVar37 = *(code **)(pcStack_758 + -0x7834);
  pcVar38 = DrawGradientImage;
  iVar10 = uStack_638._4_4_;
  (*pcVar37)();
  pcStack_830 = pcVar37 + 0x359e18;
  puStack_794 = (undefined8 *)**(undefined4 **)(pcVar37 + 0x3527b0);
  pdStack_790 = pdVar16;
  piStack_78c = piVar2;
  puStack_788 = puVar23;
  pdStack_784 = pdVar5;
  iStack_780 = iVar3;
  pcStack_77c = pcVar38;
  dStack_778 = dVar42;
  if (iVar10 == 0) {
    iVar3 = (**(code **)(pcVar37 + 0x352b88))
                      (*(int *)(pcVar37 + 0x351e48) + 0x3da0,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,
                       0x80a,*(int *)(pcVar37 + 0x351e4c) + 0x7818);
    return iVar3;
  }
  if (*(int *)(iVar10 + 0x336c) != -0x54535255) {
    iVar3 = (**(code **)(pcVar37 + 0x352b88))
                      (*(int *)(pcVar37 + 0x351e4c) + -0x784,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,
                       0x80b,*(int *)(pcVar37 + 0x351e4c) + 0x7818);
    return iVar3;
  }
  if (*(int *)(iVar10 + 0x3350) != 0) {
    iStack_838 = *(int *)(pcVar37 + 0x351e50) + -0x2f6c;
    iStack_834 = iVar10 + 0x340;
    (**(code **)(pcVar37 + 0x352760))
              (0x8000,*(int *)(pcVar37 + 0x351e4c) + 0x69c0,*(int *)(pcVar37 + 0x351e4c) + 0x7804,
               0x80d);
  }
  if (ppiVar24 == (int **)0x0) {
    iVar3 = (**(code **)(pcStack_830 + -0x7290))
                      (*(int *)(pcStack_830 + -0x7fcc) + 0x6a8c,
                       *(int *)(pcStack_830 + -0x7fcc) + 0x69c0,0x80e,
                       *(int *)(pcStack_830 + -0x7fcc) + 0x7818);
    return iVar3;
  }
  ppiVar33 = ppiVar24 + 0x6e;
  (**(code **)(pcStack_830 + -0x6fc4))
            (ppiVar24[0x7c],ppiVar24[0x7d],0x60,*(int *)(pcStack_830 + -0x7ea0) + 0x224c);
  ppiVar34 = ppiVar24 + 0x74;
  dVar39 = (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) *
           (*(double *)(ppiVar24 + 0x78) - *(double *)(ppiVar24 + 0x74)) +
           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76)) *
           (*(double *)(ppiVar24 + 0x7a) - *(double *)(ppiVar24 + 0x76));
  dVar41 = SQRT(dVar39);
  if (0.0 <= dVar39) {
    piStack_828 = ppiVar24[0x6f];
  }
  else {
    (**(code **)(pcStack_830 + -0x7418))();
    piStack_828 = ppiVar24[0x6f];
  }
  piStack_824 = ppiVar24[0x70];
  piStack_820 = ppiVar24[0x71];
  piStack_81c = ppiVar24[0x72];
  (**(code **)(pcStack_830 + -0x75e4))(iVar10,auStack_7f0);
  uVar4 = (**(code **)(pcStack_830 + -0x79c4))(iVar10,pdVar29);
  iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10);
  if ((iVar3 == 4) || (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 == 3)) {
    iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10);
    if ((iVar3 != 4) && (iVar3 = (**(code **)(pcStack_830 + -0x73e4))(iVar10), iVar3 != 3))
    goto LAB_000a7bf4;
    (**(code **)(pcStack_830 + -0x775c))(7);
    iVar49 = (int)piStack_824 - (int)piStack_81c;
    iVar3 = iVar49;
    if (iVar49 < 0) {
      iVar3 = iVar49 + 0x3f;
    }
    if (extraout_v1_04 < iVar3 >> 6) {
      (**(code **)(pcStack_830 + -0x775c))(7);
      bVar1 = extraout_v1_06 < 2;
    }
    else {
      bVar1 = iVar49 < 0x80;
    }
    iVar3 = 1;
    dStack_818 = dVar41;
    if ((bool)(bVar1 ^ 1)) {
      (**(code **)(pcStack_830 + -0x775c))(7);
      iVar3 = (int)piStack_824 - (int)piStack_81c;
      if (iVar3 < 0) {
        iVar3 = iVar3 + 0x3f;
      }
      iVar3 = iVar3 >> 6;
      dStack_818 = dVar41;
      if (extraout_v1_07 < iVar3) {
        (**(code **)(pcStack_830 + -0x775c))(7);
        iVar3 = extraout_v1_08;
        dStack_818 = dVar41;
      }
    }
  }
  else {
LAB_000a7bf4:
    uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);
    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {
      uVar51 = (**(code **)(pcStack_830 + -0x775c))(7);
      if ((int)((ulonglong)uVar51 >> 0x20) != 0) goto LAB_000a7c10;
      pcVar37 = *(code **)(pcStack_830 + -0x775c);
      if ((uint)uVar51 < 2) {
        iVar3 = 1;
        dStack_818 = dVar41;
        goto LAB_000a7c30;
      }
    }
    else {
LAB_000a7c10:
      pcVar37 = *(code **)(pcStack_830 + -0x775c);
    }
    uVar51 = (*pcVar37)(7);
    if (((int)((ulonglong)uVar51 >> 0x20) == 0) && ((uint)uVar51 < 2)) {
      (**(code **)(pcStack_830 + -0x775c))(7);
      iVar3 = extraout_v1_05;
      dStack_818 = dVar41;
    }
    else {
      iVar3 = 2;
      dStack_818 = dVar41;
    }
  }
LAB_000a7c30:
  puStack_7fc = auStack_7f0;
  ppiStack_7f8 = &piStack_828;
  iStack_7f4 = 1;
  iStack_810 = iVar10;
  pdStack_80c = pdVar29;
  uStack_808 = uVar4;
  ppiStack_804 = ppiVar33;
  ppiStack_800 = ppiVar34;
  (**(code **)(pcStack_830 + -0x7700))(*(int *)(pcStack_830 + -0x7ea0) + 0x549c,&dStack_818,iVar3,0)
  ;
  iVar3 = iStack_7f4;
  (**(code **)(pcStack_830 + -0x79a4))(uVar4);
  if (puStack_794 == (undefined8 *)**(int **)(pcStack_830 + -0x7668)) {
    return iVar3;
  }
  pcVar37 = *(code **)(pcStack_830 + -0x7834);
  pcVar38 = GetAffineMatrix;
  puVar20 = puStack_794;
  (*pcVar37)();
  pcStack_858 = pcVar37 + 0x359994;
  iStack_860 = *(int *)(pcVar37 + 0x3519c8) + 0x10f4;
  uStack_850 = uVar4;
  pcStack_84c = pcVar38;
  (**(code **)(pcVar37 + 0x3522dc))
            (0x8000,*(int *)(pcVar37 + 0x3519c8) + 0x69c0,*(int *)(pcVar37 + 0x3519c8) + 0x76b0,
             0x16d2);
  if (puVar20 != (undefined8 *)0x0) {
    (**(code **)(pcStack_858 + -0x71c4))(puVar20 + 1,0,0x28);
    iVar3 = *(int *)(pcStack_858 + -0x7fd0);
    uVar51 = *(undefined8 *)(iVar3 + 0x4408);
    *puVar20 = uVar51;
    puVar20[3] = uVar51;
    return iVar3;
  }
  iVar49 = *(int *)(pcStack_858 + -0x7fcc) + 0x69c0;
  iVar10 = *(int *)(pcStack_858 + -0x7fcc) + 0x6368;
  pcVar37 = *(code **)(pcStack_858 + -0x7290);
  pcVar38 = GetDrawInfo;
  (*pcVar37)(iVar10,iVar49,0x16d3,*(int *)(pcStack_858 + -0x7fcc) + 0x76a0);
  iStack_888 = iVar3;
  iStack_894 = **(int **)(pcVar37 + 0x352270);
  puStack_88c = puVar20;
  pdStack_884 = pdVar29;
  ppiStack_880 = ppiVar33;
  ppiStack_87c = ppiVar34;
  puStack_878 = puVar35;
  pcStack_874 = pcVar38;
  (**(code **)(pcVar37 + 0x352220))
            (0x8000,*(int *)(pcVar37 + 0x35190c) + 0x69c0,*(int *)(pcVar37 + 0x35190c) + 0x7694,
             0x1702,*(int *)(pcVar37 + 0x35190c) + 0x10f4);
  if (iVar49 == 0) {
    (**(code **)(pcVar37 + 0x352648))
              (*(int *)(pcVar37 + 0x351908) + 0x40e4,*(int *)(pcVar37 + 0x35190c) + 0x69c0,0x1703,
               *(int *)(pcVar37 + 0x35190c) + 0x7688);
  }
  else {
    (**(code **)(pcVar37 + 0x352714))(iVar49,0,0x3c0);
    iVar10 = (**(code **)(pcVar37 + 0x3521dc))(iVar10);
    (**(code **)(pcVar37 + 0x351e5c))(iVar49 + 0x18);
    pdVar29 = (double *)(**(code **)(pcVar37 + 0x351f2c))();
    ppiVar34 = (int **)(iVar49 + 0x48);
    (**(code **)(pcVar37 + 0x351e54))
              (*(int *)(pcVar37 + 0x35190c) + 0x6ab4,0x7fffffff,ppiVar34,pdVar29);
    ppiVar33 = (int **)(iVar49 + 0xa0);
    (**(code **)(pcVar37 + 0x351e54))
              (*(int *)(pcVar37 + 0x35190c) + 0x6abc,0x7fffffff,ppiVar33,pdVar29);
    *(undefined4 *)(iVar49 + 0x238) = *(undefined4 *)(iVar10 + 0x14);
    *(undefined8 *)(iVar49 + 0x1b0) = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4408);
    *(undefined4 *)(iVar49 + 0x240) = 1;
    *(undefined4 *)(iVar49 + 0x2cc) = *(undefined4 *)(*(int *)(pcVar37 + 0x351908) + 0x4aa8);
    uVar51 = *(undefined8 *)(*(int *)(pcVar37 + 0x351908) + 0x4a48);
    *(undefined8 *)(iVar49 + 0x398) = uVar51;
    *(undefined8 *)(iVar49 + 0x3a0) = uVar51;
    *(undefined4 *)(iVar49 + 0x244) = 1;
    *(undefined4 *)(iVar49 + 0x248) = 1;
    *(undefined4 *)(iVar49 + 0x24c) = 10;
    *(undefined4 *)(iVar49 + 600) = 1;
    *(undefined8 *)(iVar49 + 0x288) = *(undefined8 *)(*(int *)(pcVar37 + 0x35190c) + 0x7970);
    *(undefined4 *)(iVar49 + 0x144) = 0;
    *(undefined4 *)(iVar49 + 0x140) = 0;
    *(undefined4 *)(iVar49 + 0x25c) = 0x36;
    *(undefined4 *)(iVar49 + 0x2d0) = 1;
    *(undefined4 *)(iVar49 + 0x3a8) = 0;
    uVar4 = (**(code **)(pcVar37 + 0x3527e8))();
    *(undefined4 *)(iVar49 + 0x38c) = uVar4;
    if (*(int *)(iVar10 + 0x4c) != 0) {
      uVar4 = (**(code **)(pcVar37 + 0x352854))();
      *(undefined4 *)(iVar49 + 0x264) = uVar4;
    }
    if (*(int *)(iVar10 + 0x54) != 0) {
      uVar4 = (**(code **)(pcVar37 + 0x352854))();
      *(undefined4 *)(iVar49 + 0x290) = uVar4;
    }
    *(undefined4 *)(iVar49 + 0x23c) = *(undefined4 *)(iVar10 + 0x14);
    uVar4 = *(undefined4 *)(iVar10 + 0x58);
    if (*(double *)(*(int *)(pcVar37 + 0x351908) + 0x43c8) <= ABS(*(double *)(iVar10 + 0x58))) {
      *(undefined4 *)(iVar49 + 0x28c) = *(undefined4 *)(iVar10 + 0x5c);
      *(undefined4 *)(iVar49 + 0x288) = uVar4;
    }
    puVar13 = (undefined4 *)(iVar10 + 0x118);
    puVar21 = (undefined4 *)(iVar49 + 0x150);
    do {
      puVar15 = puVar21;
      puVar9 = puVar13;
      uVar27 = puVar9[1];
      uVar25 = puVar9[2];
      uVar4 = puVar9[3];
      *puVar15 = *puVar9;
      puVar15[1] = uVar27;
      puVar15[2] = uVar25;
      puVar15[3] = uVar4;
      puVar13 = puVar9 + 4;
      puVar21 = puVar15 + 4;
    } while (puVar13 != (undefined4 *)(iVar10 + 0x168));
    uVar4 = puVar9[5];
    puVar15[4] = *puVar13;
    puVar15[5] = uVar4;
    if (*(int *)(iVar10 + 0x48) != 0) {
      uVar4 = (**(code **)(pcVar37 + 0x352854))();
      *(undefined4 *)(iVar49 + 0x29c) = uVar4;
    }
    iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ac4);
    if (iVar3 != 0) {
      uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x14,0,iVar3);
      *(undefined4 *)(iVar49 + 0x388) = uVar4;
      goto LAB_000a8298;
    }
  }
  *(undefined4 *)(iVar49 + 0x388) = 0;
LAB_000a8298:
  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ad0);
  if (iVar3 != 0) {
    (**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x280,iVar3);
  }
  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6adc);
  if (iVar3 != 0) {
    (**(code **)(pcVar37 + 0x3524c8))(iVar49 + 0x26c,iVar3);
  }
  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6ae4);
  if (iVar3 != 0) {
    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar34,pdVar29);
  }
  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6aec);
  if (iVar3 != 0) {
    uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x21,0,iVar3);
    *(undefined4 *)(iVar49 + 0x298) = uVar4;
  }
  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6af4);
  if (iVar3 != 0) {
    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);
    if (NAN(dVar39)) {
      dVar39 = 0.0;
    }
    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {
      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {
        dVar39 = 0.0;
      }
    }
    else {
      dVar39 = 0.0;
    }
    *(double *)(iVar49 + 0x380) = dVar39;
  }
  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b08);
  if (iVar3 != 0) {
    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);
    if (NAN(dVar39)) {
      dVar39 = 0.0;
    }
    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {
      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {
        dVar39 = 0.0;
      }
    }
    else {
      dVar39 = 0.0;
    }
    *(double *)(iVar49 + 0x378) = dVar39;
  }
  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b1c);
  if (iVar3 != 0) {
    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);
    if (NAN(dVar39)) {
      dVar39 = 0.0;
    }
    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {
      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {
        dVar39 = 0.0;
      }
    }
    else {
      dVar39 = 0.0;
    }
    *(double *)(iVar49 + 0x370) = dVar39;
  }
  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b24);
  if (iVar3 != 0) {
    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,ppiVar33,pdVar29);
  }
  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b2c);
  if (iVar3 != 0) {
    dVar39 = (double)(**(code **)(pcVar37 + 0x3527a8))(iVar3,auStack_898);
    if (NAN(dVar39)) {
      dVar39 = 0.0;
    }
    else if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7960) <= dVar39) {
      if (*(double *)(*(int *)(pcVar37 + 0x35190c) + 0x7968) < dVar39) {
        dVar39 = 0.0;
      }
    }
    else {
      dVar39 = 0.0;
    }
    *(double *)(iVar49 + 0x1b0) = dVar39;
  }
  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b38);
  if (iVar3 != 0) {
    uVar4 = (**(code **)(pcVar37 + 0x3526d4))(0x47,0,iVar3);
    *(undefined4 *)(iVar49 + 0x274) = uVar4;
  }
  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x35190c) + 0x6b40);
  if (iVar3 != 0) {
    (**(code **)(pcVar37 + 0x351e54))(iVar3,0x7fffffff,iVar49 + 0xf8,pdVar29);
  }
  iVar3 = (**(code **)(pcVar37 + 0x3521a8))(iVar10,*(int *)(pcVar37 + 0x351920) + -0x3000);
  if (iVar3 != 0) {
    iVar28 = (**(code **)(pcVar37 + 0x3526d4))(0x4c,0,iVar3);
    if (iVar28 == -1) {
      uVar4 = (**(code **)(pcVar37 + 0x352380))(iVar3,0,10);
      *(undefined4 *)(iVar49 + 0x27c) = uVar4;
    }
    else {
      *(int *)(iVar49 + 0x27c) = iVar28;
    }
  }
  (**(code **)(pcVar37 + 0x351d90))(pdVar29);
  *(undefined4 *)(iVar49 + 0x390) = 0xabacadab;
  (**(code **)(pcVar37 + 0x352628))(iVar10);
  if (iStack_894 == **(int **)(pcVar37 + 0x352270)) {
    return **(int **)(pcVar37 + 0x352270);
  }
  pcVar37 = *(code **)(pcVar37 + 0x3520a4);
  (*pcVar37)();
  iVar3 = (**(code **)(pcVar37 + 0x351be4))(0x3c0);
  (**(code **)(pcVar37 + 0x3518b4))(0,iVar3);
  return iVar3;
}

